More than 300 people have signed up for our Massachusetts Microservices Meetup, which shows how microservices have become the foundation for continuous delivery of cloud applications. Big monolithic applications take a long time to test, so if you want to test quickly and release frequently, you need smaller services. I just recorded a podcast with Paul Barnhill about using MAXOS (Matrix of Services), where he asked how to migrate from monolith applications to microservices. Here are some of the tactics that we have been trying.
The Wrap — Wrap your existing monolithic apps in API’s. Now, they are part of a matrix of Web services. BONUS: You probably already did this so you can serve up mobile apps. Add some automated integration testing.
The Peel— After you wrap, you can go into the monolithic code and peel off useful components that are easier to test. I think this process can be automated.
The Batch- Find your batch and cron jobs. Those are microservices. Organize testing and deployment.
The Queue — Put input and events into a message queue before you give them to your old app. Now you can respond to them with small event processing scripts — microservices. Organize testing and deployment.
The Page — Select a frequently-changed page from a Web site or app and implement it as a stand-alone service. Turn the dev team lose on their own release schedule and monitoring.
The Lift and Shift — When you move your apps to public clouds, you can add some automated testing and deployment, and start using Web services for things like storage, logging, monitoring, and analysis.