官术网_书友最值得收藏!

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:

  1. 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:
  1. 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
  1. 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.
主站蜘蛛池模板: 河西区| 中宁县| 井研县| 三亚市| 海宁市| 历史| 和顺县| 尼勒克县| 周至县| 邵阳县| 孙吴县| 杂多县| 武夷山市| 无为县| 罗城| 梓潼县| 文成县| 广元市| 亳州市| 昭平县| 合阳县| 东阳市| 凭祥市| 绍兴县| 汤阴县| 景德镇市| 台中县| 疏勒县| 扎兰屯市| 延寿县| 罗江县| 区。| 三都| 宣武区| 茶陵县| 旺苍县| 东乡县| 双峰县| 治县。| 新干县| 浦江县|