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

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.
主站蜘蛛池模板: 舒兰市| 噶尔县| 奇台县| 惠来县| 大姚县| 边坝县| 稻城县| 金乡县| 额济纳旗| 图片| 宝清县| 新龙县| 康平县| 伊宁市| 云林县| 固安县| 和林格尔县| 平定县| 大悟县| 东莞市| 板桥市| 马关县| 屏东县| 深圳市| 昭通市| 建水县| 广东省| 龙泉市| 馆陶县| 洛隆县| 交城县| 枝江市| 佛山市| 娱乐| 屏山县| 志丹县| 临江市| 额济纳旗| 尼木县| 敦煌市| 金山区|