{"id":18113,"date":"2020-09-03T15:49:14","date_gmt":"2020-09-03T15:49:14","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=18113"},"modified":"2020-09-04T04:33:42","modified_gmt":"2020-09-04T04:33:42","slug":"advantages-of-microservices","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/advantages-of-microservices\/","title":{"rendered":"Advantages of Microservices"},"content":{"rendered":"\n<p>Now that we have a basic understanding of what defines monoliths and microservices, let&#8217;s explore what advantages Microservices brings to<br>the table. In particular, one of the most beneficial things that microservices bring is that it enables you to efficiently manage the development<br>and maintenance of large application that requires the efforts of dozens or even hundreds of software developers. lets me show you why. But<br>first. let&#8217;s set the stage for the remainder of this course. I&#8217;ll be explaining concepts and illustrating them in the context of a fictitious social media<br>company called Global Man Ticks. Global manteaux Provides a social media platform where users can create and publish posts, connect with<br>friends, view of feed of posts from there friends, network share photos and videos, comment on posts and chat directly with one another.<br>Global manteaux has hundreds of thousands of users and is growing expecting to have millions of users within a year. Global Mantex revenue comes from<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"940\" height=\"382\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/09\/benefits-of-microservices-and-specialized-team.png\" alt=\"\" class=\"wp-image-18114\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/09\/benefits-of-microservices-and-specialized-team.png 940w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/09\/benefits-of-microservices-and-specialized-team-300x122.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/09\/benefits-of-microservices-and-specialized-team-768x312.png 768w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><\/figure>\n\n\n\n<p>advertising in the news feed, where user-created posts are displayed. Advertisers can pay to intersperse their posts into the news feed to reach<br>segments of the global manteaux user base for some time. Global Mantex currently has around 80 software developers, including four software architect.<br>Since global Mantex is still relatively small as far as social media companies go, they currently have a monolithic codebase and need to make<br>decisions about how to support the anticipated growth in user base, how to efficiently add features, and how to maintain the quality of their platform. if you consider a large monolithic application like what global Mantex has, it&#8217;s going to be comprised of several different modules. Those modules usually represent concentrations of some sort of knowledge. in the case of global semantics.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/09\/globalmantix.png\" alt=\"\" class=\"wp-image-18115\" width=\"507\" height=\"259\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/09\/globalmantix.png 906w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/09\/globalmantix-300x154.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/09\/globalmantix-768x394.png 768w\" sizes=\"auto, (max-width: 507px) 100vw, 507px\" \/><\/figure>\n\n\n\n<p> Thus far in its stage of growth, every developer is expected to be effective in adding features across the entire application codebase, regardless of which modules might need to be affected. this could be a tall order for most developers were maintaining an understanding of the domain knowledge.<br>Technical specifics and performance considerations of each module, as well as an understanding of the overall architectural structure between those<br>modules, becomes more and more difficult as an application accumulates more features over time. The truth is, no real-world project of any<br>significant size works this way. In practice, the domain knowledge, technical specifics, and performance considerations for each module are almost always concentrated in some subset of the entire team. In the global Mantex case, let&#8217;s consider the module that represents users&#8217; news feeds. there is some specialized knowledge that&#8217;s required to maintain it, like how feeds air composed of both posts from their networks and advertisers. and in which order.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"911\" height=\"416\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/09\/Development-Team.png\" alt=\"\" class=\"wp-image-18116\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/09\/Development-Team.png 911w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/09\/Development-Team-300x137.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/09\/Development-Team-768x351.png 768w\" sizes=\"auto, (max-width: 911px) 100vw, 911px\" \/><\/figure>\n\n\n\n<p><br>It also happens that there is a group of developers out of global manteaux 80 software developers that have that specialized knowledge. If we were to take that module and make a microservice out of it, organizing a team containing those developers with that specialized knowledge and place that microservice<br>exclusively in the care of that team, that team can be far more effective in its unique context. and the broader team can be free from the<br>risk of accidentally introducing problems into the news feed modules because they don&#8217;t have the necessary specialized knowledge by decomposing. A large code base into<br>microservice is that are in the care of teams such that specialized knowledge and the code that represents that specialized knowledge is<br>concentrated together, you can maximize the effectiveness of individual developers teams and the organization as a whole. For<br>individual developers, Narrowing the scope of responsibility to just a portion of the whole application make it far easier to develop<br>expertise. <\/p>\n\n\n\n<p>This minimizes the risk that any one person&#8217;s knowledge can become a bottleneck that can slow or stop feature<br>development from moving forward. it mitigates the risk that an unforeseen event like someone being hospitalized or getting hired by another company causes a<br>costly emergency.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Read also:<br><a href=\"https:\/\/www.devopsschool.com\/blog\/understanding-the-benefit-of-microservices\/\">Understanding the Benefit of Microservices<\/a><\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Now that we have a basic understanding of what defines monoliths and microservices, let&#8217;s explore what advantages Microservices brings tothe table. In particular, one of the most beneficial things that microservices bring is that it enables you to efficiently manage the developmentand maintenance of large application that requires the efforts of dozens or even hundreds&#8230;<\/p>\n","protected":false},"author":14,"featured_media":18103,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","_joinchat":[],"footnotes":""},"categories":[5124],"tags":[1056,5676,5546,5125],"class_list":["post-18113","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-microservices","tag-api","tag-api-server","tag-best-websites","tag-microservices"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/18113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=18113"}],"version-history":[{"count":2,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/18113\/revisions"}],"predecessor-version":[{"id":18138,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/18113\/revisions\/18138"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media\/18103"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=18113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=18113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=18113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}