A guide to adopting microservices as a part of your cloud migration
By Simon Horrocks, country manager, Australia - New Zealand at AppDynamics
Considering the benefits of increased flexibility and reduced costings, a huge proportion of enterprises worldwide are migrating existing applications to the cloud.
In just 15 months, it is estimated 80% of all IT budgets will be committed to cloud solutions.
With this mass migration to a whole new way of storing data and running a business comes an opportunity to improve the architectures of applications, including the adoption of microservices.
Recent industry predictions for 2018 released by the International Data Corporation (IDC) predict that 90% of applications on cloud platforms will be using microservices by 2021.
This enormous uptake is understandable.
In a world supercharged by digital, businesses will pull ahead or fall behind based on their ability to rapidly develop and update applications that are optimised for smooth user experience and shifting consumer demands.
Whereas previously large monolithic applications were once running a single codebase on a few pieces of hardware, today it makes sense to break these applications into microservices. This shift allows development teams to use the right technology stack for each task, respond more flexibly to business requirements, and provide support across a variety of delivery platforms including mobile, web and native apps.
So what are the basic benefits, principles and challenges to watch out for?
How microservices can have big impactMicroservices enable organisations to accelerate and improve software development.
The term refers to application subcomponents, which can be built separately, often to improve on particular function.
Ecommerce players are a great example, with many utilising several microservices in order to improve the user shopping experience, payment gateways, inventory management, and shipping.
In fact, many of the world's largest social media and eCommerce giants rely on microservices, including PayPal, Amazon, eBay, and Netflix.
The reason for this push toward microservices is varied. Several trends playing out have put distinct pressure on existing application architectures to evolve, with consumers now expecting a rich, interactive and cutting-edge user experience across a variety of devices.
Making the decision to adopt microservices is relatively easy. However, making the shift in practice does come with its challenges.
What are the typical challenges associated with adopting microservices as part of your cloud migration?1. Building the right team structure
Collaboration is going to be key to ensure learnings are shared across the whole development team and that there is no uncertainty in the responsibilities for each of the microservices.
As applications are broken into smaller pieces, so will your teams need to be.
Rapid development requires rapid communication, and if your team isn't able to keep pace, the mistakes and delays will creep in.
2. Identifying the scope of your application and what to migrate to microservices
Before your application can be broken into microservices, it is imperative to map out every component of the application and understand the relationship between these pieces.
It can be challenging to reach an overarching view of the application due to a lack of up-to-date information, and a solution will be needed to reach the right information and identify what needs to be migrated.
3. Measuring the impact of microservices on user experience
As with any business function, measurement is key to understanding the impact of how change affects an organisation in the long and short term.
When planning a migration, you need to consider a way to compare performance metrics from pre and post-migration to ensure user experience was not negatively impacted.
The challenge here is that the architecture of the two environments can be very different.
One solution is to establish a baseline to measure performance and user experience through capturing key user interactions, before starting your migration.
While other metrics may change, key user interactions should remain consistent. Comparing baseline data on these interactions should offer insight into the impact on user experience as a result of the migration.
Once the new microservice environment is in place, the application is going to need a greater number of monitoring tools. Each service will now have the potential to implement its own solution for database, technology stack and hosting provider.
Businesses need to look for a unified monitoring platform which can support all of its environments, regardless of technology stack or language.
In the current marketplace, those who win will be the ones that act first. Increasing the pace of your innovation is going to be key to ensuring you don't get left behind in the race to the top.
Adopting microservices as part of your cloud migration is a valuable step to enabling the rapid and flexible development needed in a world driven by the ability to be agile.