Hands-On Docker for Microservices with Python
上QQ阅读APP看书,第一时间看更新

Making the Move – Design, Plan, and Execute

As web services get more and more complex, and software service companies grow in size, we require new ways of working to adapt and increase the speed of change, while setting a high quality standard. Microservices architecture has emerged as one of the best tools to control big software systems, enabled by new tools such as containers and orchestrators. We will start by presenting the differences between the traditional monolith architecture and the microservices architecture, as well as the advantages of moving to the latter. We will cover how to structure an architecture migration and how to plan to succeed in this difficult process.

In this book, we will deal with web server services, though some of the ideas can be used for other kinds of software applications, obviously by adapting them. The monolith/microservice architectures have some similarities with the monolithic/microkernel discussions in operating system design, including the famous debate (https://www.oreilly.com/openbook/opensources/book/appa.html) between Linus Torvalds and Andrew S. Tanenbaum, back in 1992. This chapter is relatively agnostic about tools, while the following chapters will present specific ones.

The following topics will be covered in this chapter:

  • The traditional monolith approach and its problems
  • The characteristics of a microservices approach
  • Parallel deployment and development speed
  • Challenges and red flags
  • Analyzing the current system
  • Preparing and adapting by measuring usage
  • Strategic planning to break the monolith
  • Executing the move

At the end of the chapter, you'll be familiar with the basic concepts we will be using throughout the book, different strategies for how to proceed with and structure work during the migration to microservices, and a practical example that we will be working on in the remaining chapters.