{"id":6904,"date":"2021-06-02T09:24:49","date_gmt":"2021-06-02T03:54:49","guid":{"rendered":"https:\/\/opstree.com\/blog\/\/?p=6904"},"modified":"2021-06-02T09:54:41","modified_gmt":"2021-06-02T04:24:41","slug":"microservices-unlock-great-power","status":"publish","type":"post","link":"https:\/\/opstree.com\/blog\/2021\/06\/02\/microservices-unlock-great-power\/","title":{"rendered":"Microservices: Unlock Great Power"},"content":{"rendered":"\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2021\/05\/4e91f-19wnl5vxsoodmmibkhtomyq.png\" alt=\"\" \/><\/figure>\n\n\n\n<p id=\"459d\">At OpsTree, our mission has always been about \u2018Simplifying DevSecOps &amp; Sharing Knowledge\u2019 and staying true to our ethos, here in this blog, I\u2019ve tried to summarise in the most simplistic terms, some of the propelling motivations behind the adoption of micro services and making it successful !<\/p>\n\n\n\n<p id=\"e808\">I see huge interest amongst various business leaders and our clients to adopt or migrate to a Microservice architecture. Thankfully, I am old enough in the world of&nbsp;<em>Software Craftsmanship<\/em>&nbsp;to have witnessed how these patterns have evolved over the years :<\/p>\n\n\n\n<!--more-->\n\n\n\n<ol><li>Starting from Huge Monoliths based on amazing frameworks like Spring<\/li><li>Then Migration to semi scalable architecture called SOA<\/li><li>And then to fully scalable modular architecture called Microservice Architecture<\/li><li>And the Journey is still on.<\/li><\/ol>\n\n\n\n<p id=\"8340\">I have also been in the heated debates of these transitions and have seen one win over another. The transitions were driven by paradigm shifts in the nature, scale and magnitude of the tech problem rather than the inherent issues or fallacies in the preceding architectural approaches. I have also seen few next gen adoptions happening more due to technical urge and prowess rather than the business needs. Such adoptions have failed miserably and would have been better off adopting the older ways as they were still solving older problems.<\/p>\n\n\n\n<p id=\"091f\"><em>I strongly believe that the evolution of these architectural patterns was largely driven by a change in need rather than their inherent issues or fallacies! In fact, any design being good or bad is always in the context of the problem it is solving.<\/em><\/p>\n\n\n\n<p id=\"64e6\">Captured here is a glimpse of the problems that microservices can solve and how !<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Problem 1: Can we \u201cMake the elephant dance\u201d? Modularity is the key!<\/p><\/blockquote>\n\n\n\n<p id=\"ce65\">As systems succeed they start becoming large. Large means complex and how complex \u2014 like a bowl of spaghetti. Once that happens, even simple change becomes difficult as the system itself is so complex. Hence, designing systems with a Modular mindset is a must \u2014 the base representation of which can be a Class in the OOPS world and its pinnacle in today\u2019s world is a microservice. The decision has to be taken carefully and if done well the&nbsp;<em>Elephant can definitely dance<\/em>.<\/p>\n\n\n\n<p id=\"b6ba\">The microservice ecosystem consists of a powerful group of functionalities encapsulated in individual microservices. They communicate with each other over a defined contract. This means, as long as the contract is valid the implementations can change without impacting other microservices.<\/p>\n\n\n\n<p id=\"3749\"><em>Give this freedom to a Monolith developer and they will attain Nirvana!&nbsp;<\/em>And, if you can make the elephant dance, here are the benefits that you can derive:<\/p>\n\n\n\n<ol><li>Easy change management<\/li><li>Comprehensive functionality testing<\/li><li>Quick feedback incorporation and responsiveness<\/li><li>Ability to ship changes at desired frequency<\/li><\/ol>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Problem 2: Individual Attention and Focus \u2014 A must for happy functionalities!<\/p><\/blockquote>\n\n\n\n<p id=\"20ac\">From static websites and simple computations to eCommerce behemoths and Intelligent Assistants- the world of software has gone through tremendous change. As businesses are setting up ambitious goals of solving very complex business problems; so to strike the right note of perfection it becomes inevitable to pay individual attention and focus on every functionality. Right language, right data store, right libraries, right developers, right infrastructure, right autoscaling, right security, and the list goes on and on\u2026<\/p>\n\n\n\n<p id=\"212e\">Encapsulating the modular functionalities of a whole into smaller microservices gives the right freedom to teams to develop, deliver and deploy independently, with the following benefits:<\/p>\n\n\n\n<ol><li>Complete focus and hence accountability of a small dedicated team<\/li><li>Deep expertise and domain knowledge-based outcomes<\/li><li>Option to identify individual excellence which can then be cross-pollinated<\/li><li>Option to choose the best language, tools, and libraries available for the functionality implementation<\/li><li>Best data store options (SQL or NoSQL) etc<\/li><li>Define best-suited infrastructure and scalability parameters<\/li><\/ol>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Problem 3: Managing Availability &amp; Reliability \u2014 More stability and less flux!<\/p><\/blockquote>\n\n\n\n<p id=\"dc89\">Today\u2019s application systems are way more complex and have become a tightly knit part of our daily lives. For such mission-critical applications Availability and Reliability is an absolute necessity. Fresh from my memory \u2014 30 mins of Google blackout and the havoc it created!<\/p>\n\n\n\n<p id=\"41e0\">Microservices can save us from \u2014 \u2018we sail together; we sink together\u2019 paradigm of Monoliths!! With clear focus, it\u2019s possible to implement systems that are designed for Availability. Failures are inevitable, but we can choose to ring fence them OR allow them to create a domino effect. Stress and load variations on a system often form a predictable pattern. At certain hours of the day, certain days of the week, and in certain periods of the year, the load variations are much more than normal. Systems should be able to meet these demands with the least manual intervention and with complete reliability.<\/p>\n\n\n\n<p id=\"fb71\">Microservice approach and associated tooling are inherently geared towards achieving these goals only if the team has the right focus on Availability and Reliability, which can ultimately lead to:<\/p>\n\n\n\n<ol><li>Highly available systems<\/li><li>Controlled failures with quick recoveries and rollbacks<\/li><li>Resilient systems with the ability to scale up and down without manual intervention<\/li><li>Modularized deep observability settings leading to low MTTR<\/li><\/ol>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Problem 4: Making Functionalities Reusable, not just code \u2014 Stop reinventing the wheel!<\/p><\/blockquote>\n\n\n\n<p id=\"25d7\">Reusable code has always been in the reckoning, but re-usable functionalities have appealed to the businesses like never before. Imagine the re-usability of \u2018payment service\u2019 at Amazon and its usage across the entire Amazon ecosystem! Reusable functionality is the fundamental tenet of the Microservice way of development. Individual services or a set of services can be designed to independently deliver functionality for a host of different sets of consumers over a defined set of contracts.<\/p>\n\n\n\n<p id=\"9300\">Here are some benefits that you can achieve with this philosophy of&nbsp;<em>\u2018Products over projects\u2019<\/em><\/p>\n\n\n\n<ol><li>Centralised knowledge and functionality that can be leveraged for multiple features.<\/li><li>Repeatable dependable functionality with better ROI.<\/li><\/ol>\n\n\n\n<p id=\"4148\">\u201c<em>By breaking the whole system or application into smaller independent components, Microservices help to achieve reduced duplication and increased cohesion, thus making the overall system parts easier to understand, more scalable, and easier to change.\u201d -Lucas Krause<\/em><\/p>\n\n\n\n<p id=\"a630\">Competition from startups along with increased customer expectations is what compels established organisations to ponder and think over new strategies to deliver their services and offerings. So, in order to compete and outperform in the modern age, businesses need software architectures that are agile, adaptive, and extensible. Micro services brings it all !<\/p>\n\n\n\n<p id=\"480f\"><em>However, to gain the desired outcomes from your microservices applications, there also emerges a need for a robust underlying platform for the application delivery, that enables Infrastructure creation, Kubernetes clusters management, security, Configuration management, Macro &amp; micro CI-CD pipelines, observability \u2014 essentially everything that is needed to take that modularised code from a developer\u2019s workstation, all the way to Production environment and managing it well there !<\/em><\/p>\n\n\n\n<p id=\"70d8\"><em>In BuildPiper, we have created this platform to enable the development teams to be able to Go-Live with Micro services Apps in under a day with 10X reduced time &amp; investments required to onboard &amp; securely manage Kubernetes &amp; micro services application setup and deployments with highly empowered developers and reduced people dependency.<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2021\/05\/05f85-06kt8gllbsf2n6q8d.png\" alt=\"\" width=\"700\" \/><\/figure>\n\n\n\n<p id=\"bff7\"><a href=\"https:\/\/www.buildpiper.io\/\" target=\"_blank\" rel=\"noopener\"><em>BuildPiper \u2014 The Micro services Application Delivery Platform<\/em><\/a><\/p>\n\n\n\n<p id=\"1481\"><em>So, go on and make the Microservices journey of your product a hugely rewarding one with BuildPiper ! Wishing you the best and helping you to Unlock the great power of Microservices!!!!<\/em><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Opstree is an End to End DevOps solution provider<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link\" href=\"https:\/\/www.opstree.com\/contact-us\" target=\"_blank\" rel=\"noreferrer noopener\">CONTACT US<\/a><\/div>\n<\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>At OpsTree, our mission has always been about \u2018Simplifying DevSecOps &amp; Sharing Knowledge\u2019 and staying true to our ethos, here in this blog, I\u2019ve tried to summarise in the most simplistic terms, some of the propelling motivations behind the adoption of micro services and making it successful ! I see huge interest amongst various business &hellip; <a href=\"https:\/\/opstree.com\/blog\/2021\/06\/02\/microservices-unlock-great-power\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Microservices: Unlock Great Power&#8221;<\/span><\/a><\/p>\n","protected":false},"author":207103662,"featured_media":29900,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[708216545],"tags":[645199654,768739309,230861335,17060625,711435559],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2025\/11\/DevSecOps-1.jpg","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfDBOm-1Nm","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/6904"}],"collection":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/users\/207103662"}],"replies":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/comments?post=6904"}],"version-history":[{"count":7,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/6904\/revisions"}],"predecessor-version":[{"id":6947,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/6904\/revisions\/6947"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media\/29900"}],"wp:attachment":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media?parent=6904"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/categories?post=6904"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/tags?post=6904"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}