|
|
By Ruxit Blog |
Article Rating: |
|
September 1, 2016 09:15 AM EDT |
Reads: |
5,744 |
This is a no-hype, pragmatic post about why I think you should consider architecting your next project the way SOA and/or microservices suggest. No matter if it’s a greenfield approach or if you’re in dire need of refactoring. Please note: considering still keeps open the option of not taking that approach. After reading this, you will have a better idea about whether building multiple small components instead of a single, large component makes sense for your project.
This post assumes that you have experience with software architecture and services (you’ll find some words about my experience on the bottom of this post). I won’t go into the details of Wikipedia’s or Martin Fowler’s definitions per se. Much more I will talk about what microservices and/or SOA could and should do for your project.
Microservices? SOA? Both? None? I’ll leave it up to you if they are both the same. Some say, microservices is just SOA done right. Some say, microservices has common roots with SOA but is really next-gen and lightweight and less-enterprisey and whatnot.
I don’t stand the slightest chance of resolving this. Therefore, I won’t go with either of them. I’ll go with microsoavices instead. It’s not meant to be funny (in the first place, that is), it’s meant to be a pragmatical phrase that saves me from overhead typing.
The perfect software architecture doesn’t exist There is no perfect generic software architecture approach but you knew that already. Microsoavices might just not be the perfect fit for your project or even your company. What’s a microsoavice anyway? First and foremost, I’d like to reduce it to two simple key points
- Fine-grained responsibility
- Built for fault-tolerance
Those two things are the least common denominator for me on everything you and I already have read about the topic. They should be the basis for any project, no matter if it’s your shiny (shabby?) little garage project or if you’re out for something really big.
Fine-grained responsibility Microsoavices may be single-task or single domain. Here’s an example for a single-task microsoavice.
Most likely, projects not merely consist of business logic and application domains. There are always some plain utilities involved. I once worked on a project that needed to convert RTF files to HTML. We used a library for that, so it was really easy. On the other hand, updating the library required us to re-deploy all instances of our application. Deployment was automated and we didn’t have to send out floppy-disks with the new versions to our customers but anyway, for a team of three maintaining dozens of instances it required quite some attention.
Wrapping that same library into a stand-alone application that’s listening for incoming HTTP requests was all that was necessary to turn it into a microsoavice (yes, and that final re-deployment of all the instances that changed the internal library call into an external HTTP request). Anyway, from that day on, updating that library was just a matter of re-deploying that single component (as long as the API stayed stable).
Besides single-task microsoavices there’s also more than enough use-cases for covering application domains instead of just single tasks. Take a shopping cart as an example. There are simple functions like
- Add product to cart
- Remove product from cart
- Update product’s quantity in cart
Nobody seriously thinks about creating separate services for those tasks and that’s the reason why it’s as fine-grained as it needs to be (and should be, probably).
Built for fault tolerance In-process method calls, are replaced with external calls between components. The big difference is that external calls are much more likely to fail. And they will. This requires attention but taking care of it appropriately makes your whole system much more stable and fault-tolerant by design already.
It’s up to you whether you go for a library that handles the issue for you or if you want to take care of it yourself but don’t make the mistake of not taking care. Fault tolerance really is a central issue. Getting it done right early on is the key to succeed with microsoavices.
The problems Building, deploying and maintaining an ecosystem of many small, independent components poses its own problems. You not only face the problem of fault tolerance, but also the problems of
- Configuration (where do I reach that service?)
- Monitoring (what services are available?)
- Deployment (how many instances are up? on which hosts are they running)
- Testing (what to do in case of a failing service call?)
- And quite some more.
Testing and deployment should be taken care of by continuous integration and deployment tools that are available. Monitoring was not there until recently but is already catching up with new products entering the market. Central configuration of a microsoavice environment is probably something that could be solved by using some ESB-like tool.
You see, there seems to be a solution for everything, you might just not be all too happy with them. And I honestly think that we’re not fully there yet when it comes to tooling. The future will bring lots of good tools that make building, deploying and maintaining microsoavices much easier.
The mindset From my own experience I can say that going down microsoavice lane is not just about all the technical problems. It’s a little bit like the agile thing, which is really also quite a bit about the mindset.
If you are concerned about increased danger of failure because of single failing services, then you probably need to think about it again. If you see how all those small components help you decrease the likeliness of failure, you’re probably settled.
One most important thing not to forget is your developers. Make sure they get the idea of what microsoavices are all about. I will try to cover in a future post, how microsoavices change and improve a developer’s everyday life.
My experience I have been working as a software developer for about a decade. During that time I worked on all different kinds of projects. I did about 90% web stuff with Java and JavaScript, and also some C#.NET, Visual Basic (pre-dotnet), perl, php, python, etc. I worked several years as a senior lead developer / architect hybrid but also did projects as a one-man-team handling everything from development to deployment and maintainance. Yes, sounds impressive, but, hey, I just did my job.
Looking back, I did some projects which would have really benefitted from doing the microsoavice approach and some others, which surely would have not. And I did one project that was forced into the enteprise-SOA thing in a very dogmatic way, which is why I want to write about the topic pragmatically and from a practical perspective.
Up next This was just a short introduction to the topic to get your mouth wet. I just touched some keypoints briefly but I will go much more into detail in the posts to follow.
While you’re waiting, why not sharing some of your worst experiences with the topic so far? Tell me about ignorant software architects and blind followers of dogmas, I’m always in for a good laugh.
The post SOA or microservices? (It doesn’t matter a pair of fetid dingo’s kidneys) appeared first on The ruxit blog.
Building a revolutionary approach to software performance monitoring takes an extraordinary team. With decades of combined experience and an impressive history of disruptive innovation, that’s exactly what we ruxit has.
Get to know ruxit, and get to know the future of data analytics.
@CloudExpo Stories By Pat Romanski  WebRTC adoption has generated a wave of creative uses of communications and collaboration through websites, sales apps, customer care and business applications. As WebRTC has become more mainstream it has evolved to use cases beyond the original peer-to-peer case, which has led to a repeating requirement for interoperability with existing infrastructures.
In his session at @ThingsExpo, Graham Holt, Executive Vice President of Daitan Group, will cover implementation examples that have enabled ea... Sep. 23, 2016 09:00 PM EDT Reads: 1,369 | By Liz McMillan  Information technology is an industry that has always experienced change, and the dramatic change sweeping across the industry today could not be truthfully described as the first time we've seen such widespread change impacting customer investments. However, the rate of the change, and the potential outcomes from today's digital transformation has the distinct potential to separate the industry into two camps: Organizations that see the change coming, embrace it, and successful leverage it; and... Sep. 23, 2016 08:30 PM EDT Reads: 921 | By Elizabeth White  SYS-CON Events announced today that Secure Channels will exhibit at the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA.
The bedrock of Secure Channels Technology is a uniquely modified and enhanced process based on superencipherment. Superencipherment is the process of encrypting an already encrypted message one or more times, either using the same or a different algorithm. Sep. 23, 2016 08:15 PM EDT Reads: 1,314 |  The Transparent Cloud-computing Consortium (abbreviation: T-Cloud Consortium) will conduct research activities into changes in the computing model as a result of collaboration between "device" and "cloud" and the creation of new value and markets through organic data processing High speed and high quality networks, and dramatic improvements in computer processing capabilities, have greatly changed the nature of applications and made the storing and processing of data on the network commonplace. Sep. 23, 2016 08:15 PM EDT Reads: 526 | By Elizabeth White  I'm a lonely sensor. I spend all day telling the world how I'm feeling, but none of the other sensors seem to care.
I want to be connected. I want to build relationships with other sensors to be more useful for my human. I want my human to understand that when my friends next door are too hot for a while, I'll soon be flaming. And when all my friends go outside without me, I may be left behind.
Don't just log my data; use the relationship graph.
In his session at @ThingsExpo, Ryan Boyd, Engi... Sep. 23, 2016 06:15 PM EDT Reads: 1,140 | By Pat Romanski  The many IoT deployments around the world are busy integrating smart devices and sensors into their enterprise IT infrastructures. Yet all of this technology – and there are an amazing number of choices – is of no use without the software to gather, communicate, and analyze the new data flows. Without software, there is no IT.
In this power panel at @ThingsExpo, moderated by Conference Chair Roger Strukhoff, panelists will look at the protocols that communicate data and the emerging data analy... Sep. 23, 2016 06:00 PM EDT Reads: 1,461 | By Glenn Rossman  Hostway is announcing its hybrid cloud service based on Azure – all backed by managed support for configuration and provisioning, monitoring resource utilization, virtual networks, backup, storage and much more. Now, organizations can choose the best technology infrastructure to run their business whether it’s public or private cloud or a combination. Sep. 23, 2016 05:00 PM EDT Reads: 1,200 | By Pat Romanski  DevOps at Cloud Expo, taking place Nov 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with 19th Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world.
The widespread success of cloud computing is driving the DevOps revolution in enterprise IT. Now as never before, development teams must communicate and collaborate in a dynamic, 24/7/365 environment. There is no time to wait for long dev... Sep. 23, 2016 03:30 PM EDT Reads: 3,276 | By Elizabeth White  SYS-CON Events announced today the Enterprise IoT Bootcamp, being held November 1-2, 2016, in conjunction with 19th Cloud Expo | @ThingsExpo at the Santa Clara Convention Center in Santa Clara, CA.
Combined with real-world scenarios and use cases, the Enterprise IoT Bootcamp is not just based on presentations but with hands-on demos and detailed walkthroughs. We will introduce you to a variety of real world use cases prototyped using Arduino, Raspberry Pi, BeagleBone, Spark, and Intel Edison. Y... Sep. 23, 2016 03:15 PM EDT Reads: 2,701 |  SYS-CON Events announced today that SoftLayer, an IBM Company, has been named “Gold Sponsor” of SYS-CON's 18th Cloud Expo, which will take place on June 7-9, 2016, at the Javits Center in New York, New York. SoftLayer, an IBM Company, provides cloud infrastructure as a service from a growing number of data centers and network points of presence around the world. SoftLayer’s customers range from Web startups to global enterprises. Sep. 23, 2016 03:00 PM EDT Reads: 531 | By Elizabeth White  SYS-CON Events announced today that China Unicom will exhibit at the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA.
China United Network Communications Group Co. Ltd ("China Unicom") was officially established in 2009 on the basis of the merger of former China Netcom and former China Unicom.
China Unicom mainly operates a full range of telecommunications services including mobile broadband (GSM, WCDMA, LTE F... Sep. 23, 2016 01:00 PM EDT Reads: 1,623 | By Liz McMillan  Enterprise IT has been in the era of Hybrid Cloud for some time now. But it seems most conversations about Hybrid are focused on integrating AWS, Microsoft Azure, or Google ECM into existing on-premises systems. Where is all the Private Cloud? What do technology providers need to do to make their offerings more compelling? How should enterprise IT executives and buyers define their focus, needs, and roadmap, and communicate that clearly to the providers? Sep. 23, 2016 12:00 PM EDT Reads: 1,393 | By Pat Romanski  Keeping pace with advancements in software delivery processes and tooling is taxing even for the most proficient organizations. Point tools, platforms, open source and the increasing adoption of private and public cloud services requires strong engineering rigor - all in the face of developer demands to use the tools of choice. As Agile has settled in as a mainstream practice, now DevOps has emerged as the next wave to improve software delivery speed and output. To make DevOps work, organization... Sep. 23, 2016 12:00 PM EDT Reads: 1,454 | By Elizabeth White  Digital innovation is the next big wave of business transformation based on digital technologies of which IoT and Big Data are key components, For example:
Business boundary innovation is a challenge to excavate third-party business value using IoT and BigData, like Nest
Business structure innovation may propose re-building business structure from scratch, as Uber does in the taxicab industry
The social model innovation is also a big challenge to the new social architecture with the design fr... Sep. 23, 2016 10:30 AM EDT Reads: 967 | By Elizabeth White  Big Data has been changing the world. IoT fuels the further transformation recently. How are Big Data and IoT related?
In his session at @BigDataExpo, Tony Shan, a renowned visionary and thought leader, will explore the interplay of Big Data and IoT. He will anatomize Big Data and IoT separately in terms of what, which, why, where, when, who, how and how much. He will then analyze the relationship between IoT and Big Data, specifically the drilldown of how the 4Vs of Big Data (Volume, Variety,... Sep. 23, 2016 10:00 AM EDT Reads: 800 | By Elizabeth White  SYS-CON Events announced today the Kubernetes and Google Container Engine Workshop, being held November 3, 2016, in conjunction with @DevOpsSummit at 19th Cloud Expo at the Santa Clara Convention Center in Santa Clara, CA.
This workshop led by Sebastian Scheele introduces participants to Kubernetes and Google Container Engine (GKE). Through a combination of instructor-led presentations, demonstrations, and hands-on labs, students learn the key concepts and practices for deploying and maintainin... Sep. 23, 2016 07:45 AM EDT Reads: 2,477 | By Liz McMillan  All clouds are not equal. To succeed in a DevOps context, organizations should plan to develop/deploy apps across a choice of on-premise and public clouds simultaneously depending on the business needs. This is where the concept of the Lean Cloud comes in - resting on the idea that you often need to relocate your app modules over their life cycles for both innovation and operational efficiency in the cloud.
In his session at @DevOpsSummit at19th Cloud Expo, Valentin (Val) Bercovici, CTO of So... Sep. 23, 2016 06:00 AM EDT Reads: 1,265 | By Kevin Benedict  Digital transformation is too big and important for our future success to not understand the rules that apply to it. The first three rules for winning in this age of hyper-digital transformation are:
Advantages in speed, analytics and operational tempos must be captured by implementing an optimized information logistics system (OILS)
Real-time operational tempos (IT, people and business processes) must be achieved
Businesses that can "analyze data and act and with speed" will dominate those t... Sep. 23, 2016 04:15 AM EDT Reads: 863 | By Elizabeth White  Most of us already know that adopting new cloud applications can boost a business’s productivity by enabling organizations to be more agile and ready to change course in our fast-moving and connected digital world. But the rapid adoption of cloud apps and services also brings with it profound security threats, including visibility and control challenges that aren’t present in traditional on-premises environments. At the same time, the cloud – because of its interconnected, flexible and adaptable... Sep. 23, 2016 03:15 AM EDT Reads: 1,439 | By Liz McMillan  Technology vendors and analysts are eager to paint a rosy picture of how wonderful IoT is and why your deployment will be great with the use of their products and services. While it is easy to showcase successful IoT solutions, identifying IoT systems that missed the mark or failed can often provide more in the way of key lessons learned.
In his session at @ThingsExpo, Peter Vanderminden, Principal Industry Analyst for IoT & Digital Supply Chain to Flatiron Strategies, will focus on how IoT de... Sep. 23, 2016 02:30 AM EDT Reads: 843 |
|
|
|
|
|
|