Chapter 7. Migration
This chapter covers
- Migrating from a monolith to microservices
- Exploring an e-commerce website example
- Understanding migration tactics
- Adopting refinement as a core construction philosophy
- Moving from the general to the specific
You’ll seldom have the luxury of making the move to microservices without considering the impact of your new architecture on your organization’s legacy systems. Even if you’re lucky and able to use microservices for a new project, you’ll still have to integrate with existing systems and work within the operational constraints imposed by your environment, such as strictly enforced quality assurance policies. The most likely scenario is that you’ll need to migrate an existing monolith to the brave new world of microservices. You’ll have to do this while at the same time continuing feature development, maintaining a live system, and keeping all the other stakeholders in your organization not only happy but also willing to sign off on your experiment.[1]
1A reading of Niccoló Machiavelli’s The Prince is much recommended for those introducing microservices to a large organization, for “... there is nothing more difficult to take in hand, more perilous to conduct, or more uncertain in its success, than to take the lead in the introduction of a new order of things. Because the innovator has for enemies all those who have done well under the old conditions, and lukewarm defenders in those who may do well under the new.”