Microservices Architecture with Agility in focus is shifting gear towards cloud journey

Achyuth Belgundi
4 min readJun 5, 2021

Microservices Architecture is very trending especially at time when there are more people aiming to go cloud in an unprecedented times. Many enterprises have aiming to modernize their applications into Microservices Architecture and deploy into Cloud.

Surely Microservices Architecture with Agility in focus is shifting gear, I must tell you it’s actually more than microservices architecture on plate to be part of cloud journey.

Decision to modernize application has to be seen in the context of a product building, it’s start to make more sense when product is built with small little micro features, evolve in a more meaningful way.

Before I go to more details of microservices, How different it is from earlier developments we used to have but still many product based companies existed..!!

Back in 2009, I was working on large Enterprise Applications where we had a decent adoption to SOA design principles. I would say we met industry standards in terms of designing and modularizing a product for it to evolve in an ever changing business and technology requirements. These applications were deployed in on-premise DCs.

Back then I remember as an application owner for deployments — I was in discussions to get a slot, approvals and plan for deployment window with multiple stake holders that including QA, Infrastructure and a Release team. Although we tried to balance the complex SDLC process with speed in which business wants go to market, there were many operational challenges in a delivery process.

Fast forward — I was once told, AWS deploys approx. 110 features in a week. Now here is the game changer from how Delivery process has evolved. You may be knowing AWS & Azure products are known for its success due to Agility in their product offering. The products & services that you see today in AWS/Azure was not released on day 1. They first launched small but kept evolving along with customer’s feedback and experiences. I know this is happy story but what matters the most here is Agility, the speed in which they turn around the services based on customer experience/feedback.

I have a difference in their view where in some blogs SOA based design principles and architecture have also been called out as Monolith. In my view, Microservice is yet another evolved version in the context of Service Oriented Design Principles.

The success of Agile Delivery caught an attention to enterprise applications across industries so their enterprise applications have become Agile in their Delivery Process. Why not?

More important question is what makes Agile Delivery success?

Was legacy SOA based application not ready for Agile Delivery? Can we deploy the same packages in agile, arguably yes but not recommended as it only makes it worse changing whole lot of things and deploy together will increase the scope so does the complexity, in ensuring requirements are met, ensuring dependent code parts are not affected, quality is not comprised etc.

With Agility in focus, from design point of view, it becomes essential to reduce complexity involved in dealing with entire product and this can be achieved with further break down of a large application package into logical parts that can independently offer its service, does not matter even if it is a small service. This is where the concept of microservice architecture has evolved so much that such break down into microservice help independently design, develop and evolve.

From a release point of view, DevOps is yet another tool that fits so rightly in an Agile Delivery. DevOps Continuous Integration/Continuous Deployment (CI/CD) is a complete workflow package feeding on to delivery process where

  • CI pipeline scripts takes the role of continuously integrating the code commits, build, testing without having developer/release team to manually operate.
  • CD pipeline scripts takes care of publishing the test successful artifacts into tests/production server in the workflow process again without having developer/release team to operate.

With Agility in focus, it was easy to build & release (micro) services automate pulling code commits, automated testing and eventually roll out to end users. So this brings us to another trending topic on test automations fitting in the context of DevOps CI/CD.

Well what about infrastructure that needs to be procured or sized for every release cycle. We cannot afford to plan for meetings to procure infrastructure, size and setup for every deployment. The answer is Cloud — Organizations have come long way from a typical data center model to Cloud adaption (public/private does not matter), it has become obvious choice not only to gain cost benefits but also take advantage of ever growing automation capabilities that their DCs lacked. You can provision VMs on just click of button, Scale in/out, build resiliency with rules & policies.

— —

To sum it up, I repeat question “what makes Agile Delivery success”

1. Agility in focus

2. Microservice Architecture

3. DevOps, Tests automation

4. Automation capabilities that Cloud Services (public & private) offer — Elasticity, Scalability

With all that said above it is not just Microservice but holistically Delivery Process put together enable us for faster and effective way to enrich customer experience time-2-time.

Disclaimer:

Opinions expressed are of my own and do not necessarily share any views or opinions of my employer.

--

--