In prior posts, I have discussed what microservices are, how the cloud enables microservices, and how microservice architecture is a great fit for our agile project approach. So you may ask yourself, “sounds like microservices is a great way for Kingland to develop software, but what is in it for me as a potential customer?”
The microservice architecture pattern has a number of advantages that directly benefit a software license owner. Some of the main advantages include operational cost savings, reduced revision risk, faster turnaround on feature requests, improved scalability to meet user load, and ease of adjusting to technological advances. Let's take a closer look at the advantages.
Operational Cost Savings
Microservices can run on relatively cheap commodity hardware, often resulting in savings of 40% or more over the expensive hardware needed to run monolithic applications. In many cases the cost savings can be even larger when using serverless services, where providers such as AWS only charge for the time the microservice is executing requests.
Reduced Revision Risk
Since each microservice is limited to a small piece of functionality, it requires less code. Smaller codebases make maintenance less risky, which means developers will have an easier time understanding the code and what needs to change. The fact that they are independent services also make maintenance less risky, since there is less chance that other services are impacted. In addition, should an issue make it into production it will not cause a large system failure.
Big services fail big. Small services fail small.
Faster Turnaround on Feature Requests
Microservices do not require teams to rewrite the whole application if they want to add new features. Often the change is isolated to a single service, enabling focused regression and acceptance testing. Since the service is small, it also deploys fast, putting new functionality in the hands of your end users sooner with no disruptions. There is no need to bundle the service with the rest of your application, and usually no need to wait for a release window.
Improved Scalability to Meet User Load
Demanding services can be deployed onto multiple servers to enhance performance, isolated from other services so they don’t impact them. Many cloud providers offer auto-scaling capabilities that manage this based on user load. This results in less wait time or timeouts for your end users during peak hours.
Ease of Adjusting to Technology Advances
Since each microservice is a separate executable, they can be based on different technologies, allowing you to pick those that are best suited to address the individual requirements. This may change over time as technology advances are made, but adjusting to such advances will only impact the service(s) where they should be used.
We believe microservices architecture is worth serious consideration for your enterprise applications needs. A monolithic architecture is useful for simple, lightweight applications, but can be a maintenance nightmare if used for complex applications. We have therefore based our Platform on the microservice architecture, providing our solution teams a solid foundation for building complex, evolving applications for our customers.
These Stories on Architecture & Development
Comments (5)