## 微服务架构拯救你
Mary has come to the conclusion that FTGO must migrate to the microservice architecture.
Interestingly, software architecture has very little to do with functional requirements. You can implement a set of use cases—an application’s functional requirements—with any architecture. In fact, it’s common for successful applications, such as the FTGO application, to be big balls of mud. Architecture matters, however, because of how it affects the so-called quality of service requirements, also called nonfunctional requirements, quality attributes, or ilities. As the FTGO application has grown, various quality attributes have suffered, most notably those that impact the velocity of software delivery: maintainability, extensibility, and testability. On the one hand, a disciplined team can slow down the pace of its descent toward monolithic hell. Team members can work hard to maintain the modularity of their application. They can write comprehensive automated tests. On the other hand, they can’t avoid the issues of a large team working on a single monolithic application. Nor can they solve the problem of an increasingly obsolete technology stack. The best a team can do is delay the inevitable. To escape monolithic hell, they must migrate to a new architecture: the Microservice architecture. Today, the growing consensus is that if you’re building a large, complex application, you should consider using the microservice architecture. But what are microservices exactly? Unfortunately, the name doesn’t help because it overemphasizes size. There are numerous definitions of the microservice architecture. Some take the name too literally and claim that a service should be tiny—for example, 100 LOC. Others claim that a service should only take two weeks to develop. Adrian Cockcroft, formerly of Netflix, defines a microservice architecture as a service-oriented architecture composed of loosely coupled elements that have bounded contexts. That’s not a bad definition, but it is a little dense. Let’s see if we can do better.
- 空白目录
- 1. Escaping monolithic hell
- 1.1 The slow march toward monolithic hell
- 1.1.1 The architecture of the FTGO application
- 1.1.2 The benefits of the monolithic architecture
- 1.2 Why this book is relevant to you
- 1.3 What you’ll learn in this book
- 1.4 Microservice architecture to the rescue
- 1.5 Benefits and drawbacks of the microservice architecture
- 1.6 The Microservice architecture pattern language
- 1.7 Beyond microservices: Process and organization
- 2. Decomposition strategies