- Microservices Development Cookbook
- Paul Osman
- 286字
- 2021-07-16 17:48:25
How to do it...
Decomposing your monolith by business capability is a process. These steps can be carried out in parallel for each new service you identify a need for, but you may want to start with one service and apply the lessons you learn to subsequent efforts:
- Identify a business capability that is currently provided by your monolith. This will be the target for our first service. Ideally this business capability is something that has some focus on the roadmap you worked on in the previous recipe and ownership can be given to one of your newly created teams. Let's use our fictional photo messaging service as an example and assume we'll start with the ability to upload and display media as our first identified business capability. This functionality is currently implemented as a single model and controller in your Ruby on Rails monolith:

- In the preceding screenshot, AttachmentsController has four methods (called actions in Ruby on Rails lingo), which roughly correspond to the create, retrieve, update, delete (CRUD) operations you want to perform on an Attachment resource. We don't strictly need it, and so will omit the update action. This maps very nicely to a RESTful service, so you can design, implement, and deploy a microservice with the following API:
POST /attachments
GET /attachments/:id
DELETE /attachments/:id
- With the new microservice deployed (migrating data is discussed in a later recipe), you can now begin modifying client code paths to use the new service. You can begin by replacing the code in the AttachmentsController action's methods to make an HTTP request to our new microservice. Techniques for doing this are covered in the Evolving your monolith into services recipe later in this chapter.
推薦閱讀
- EDA技術與VHDL編程
- Proxmox High Availability
- HTML5 Game development with ImpactJS
- 互聯網安全的40個智慧洞見:2015年中國互聯網安全大會文集
- 計算機網絡與通信(第2版)
- Mastering TypeScript 3
- 網絡安全應急響應技術實戰
- Mastering Dart
- jQuery Mobile Web Development Essentials
- Android UI Design
- 物聯網場景設計與開發(初級)
- 6G無線網絡空口關鍵技術
- 網絡工程實施技術與方案大全
- Learning Node.js Development
- 5G非正交多址接入技術:理論、算法與實現