Going from monolith to microservices: deciding when and how

As the migration of enterprise to the cloud accelerates, the monolithic approach to software development seems doomed to extinction. Cloud-based microservices are increasingly the preferred approach, and it’s easy to see why. Microservices break down large software projects into smaller, more independent units that communicate with each other through simple APIs. And because they’re independent units, microservices allow for more speed, quality and scalability than is possible when teams have to consider the whole of a monolithic architecture. The rise of microservices has empowered the DevOps philosophy, shortening cycle times and boosting innovation.
Yes, cloud-based microservices are here to stay. And sooner or later, it seems, you’ll have to refactor your applications to take advantage of them. But the last thing you want to do is over-engineer for a hypothetical future need. So, where do you go from here?
First, recognize that a great many applications still function quite well in a monolithic environment. But when they stop working so well for your business, you’ll see signals in three main areas:
- Velocity
- Scaling
- Deployment
- Don’t prop up a failing system
- Split where it makes sense
- Convert modules one by one