{"id":36052,"date":"2024-12-31T11:53:03","date_gmt":"2024-12-31T06:23:03","guid":{"rendered":"https:\/\/www.codeavail.com\/blog\/?p=36052"},"modified":"2025-01-03T15:32:11","modified_gmt":"2025-01-03T10:02:11","slug":"microservices-architecture","status":"publish","type":"post","link":"https:\/\/www.codeavail.com\/blog\/microservices-architecture\/","title":{"rendered":"Advantages and Disadvantages of Microservices Architecture"},"content":{"rendered":"\n<p>In today\u2019s software world of rapid development, scalability, flexibility, and shorter time to market, prepared microservices architecture for organizations. Microservice architecture is relatively new and has gained popularity far from the monolithic approach to the development of large-scale micro applications. This architecture has revolutionized the manner in which software is implemented and supported, for it makes it possible to create crosscutting services that can be interdependently deployed.<\/p>\n\n\n\n<p>Let\u2019s also note that many successful modern businesses, including Netflix, Spotify, and Amazon, use microservices to maintain efficiency and organizational scalability. That being said, microservices also come with their own set of problems that must be suited in order to avoid some undesirable outcomes. In this blog post, you\u2019ll learn about the pros and cons of adopting microservices architecture, factors to consider in deciding when to use this architecture, and how to use microservices to your advantage.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"what-is-microservices-architecture\"><\/span>What is Microservices Architecture?<span class=\"ez-toc-section-end\"><\/span><\/h2><div id=\"ez-toc-container\" class=\"ez-toc-v2_0_69_1 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<p class=\"ez-toc-title\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a34d6e3a617c\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a34d6e3a617c\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.codeavail.com\/blog\/microservices-architecture\/#what-is-microservices-architecture\" title=\"What is Microservices Architecture?\">What is Microservices Architecture?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.codeavail.com\/blog\/microservices-architecture\/#advantages-of-microservices-architecture\" title=\"Advantages of Microservices Architecture\">Advantages of Microservices Architecture<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.codeavail.com\/blog\/microservices-architecture\/#1-scalability\" title=\"1. Scalability\">1. Scalability<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.codeavail.com\/blog\/microservices-architecture\/#2-flexibility-in-technology-stack\" title=\"2. Flexibility in Technology Stack\">2. Flexibility in Technology Stack<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.codeavail.com\/blog\/microservices-architecture\/#3-faster-development-and-deployment-cycles\" title=\"3. Faster Development and Deployment Cycles\">3. Faster Development and Deployment Cycles<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.codeavail.com\/blog\/microservices-architecture\/#4-fault-isolation\" title=\"4. Fault Isolation\">4. Fault Isolation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.codeavail.com\/blog\/microservices-architecture\/#5-enhanced-team-productivity\" title=\"5. Enhanced Team Productivity\">5. Enhanced Team Productivity<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.codeavail.com\/blog\/microservices-architecture\/#6-reusability-of-services\" title=\"6. Reusability of Services\">6. Reusability of Services<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.codeavail.com\/blog\/microservices-architecture\/#7-simplified-maintenance-and-upgrades\" title=\"7. Simplified Maintenance and Upgrades\">7. Simplified Maintenance and Upgrades<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.codeavail.com\/blog\/microservices-architecture\/#disadvantages-of-microservices-architecture\" title=\"Disadvantages of Microservices Architecture\">Disadvantages of Microservices Architecture<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.codeavail.com\/blog\/microservices-architecture\/#1-increased-complexity\" title=\"1. Increased Complexity\">1. Increased Complexity<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.codeavail.com\/blog\/microservices-architecture\/#2-communication-overhead\" title=\"2. Communication Overhead\">2. Communication Overhead<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.codeavail.com\/blog\/microservices-architecture\/#3-deployment-challenges\" title=\"3. Deployment Challenges\">3. Deployment Challenges<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.codeavail.com\/blog\/microservices-architecture\/#4-data-consistency-issues\" title=\"4. Data Consistency Issues\">4. Data Consistency Issues<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.codeavail.com\/blog\/microservices-architecture\/#5-security-vulnerabilities\" title=\"5. Security Vulnerabilities\">5. Security Vulnerabilities<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/www.codeavail.com\/blog\/microservices-architecture\/#6-higher-infrastructure-costs\" title=\"6. Higher Infrastructure Costs\">6. Higher Infrastructure Costs<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/www.codeavail.com\/blog\/microservices-architecture\/#7-steep-learning-curve\" title=\"7. Steep Learning Curve\">7. Steep Learning Curve<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/www.codeavail.com\/blog\/microservices-architecture\/#conclusion\" title=\"Conclusion\">Conclusion<\/a><\/li><\/ul><\/nav><\/div>\n\n\n\n\n<p>Microservices have become an architectural style of designing applications as a set of smaller and independent services. One or more services support and manage one business capability and interact with other services using simple mechanisms, such as REST endpoints, messaging, or eventing. This kind of structure helps a great deal when it comes to scaling, upgrading, or modifying different subsets of an application.<\/p>\n\n\n\n<p>For instance, in e-commerce, product catalog, payment gateway, inventory control and customer identification can all be independent services. These services \u2013 can be built, used, and possibly scaled more independently of one another than in monolithic systems \u2013 As such, there is often operational flexibility and fault localization.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"advantages-of-microservices-architecture\"><\/span>Advantages of Microservices Architecture<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1-scalability\"><\/span>1. Scalability<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Microservices are amazing when it comes to scaling applications as they allow the different components of an application the scales they need. While in monolith applications, scaling means simply copying the whole application, microservices enable only several concrete services to be scaled.<\/p>\n\n\n\n<p>For instance, in a food delivery app, the service of placing the order is likely to be more popular than the service of writing a review. Using microservices, on the other han,d only allows the order placement service to be horizontally scalable; this is important when it comes to using resources and slicing operating costs.<\/p>\n\n\n\n<p>Scaling microservices also gives a fuller manageability over the system\u2019s performance. Optimizable services like analytical ones or real-time recommendation services can be given more resources if needed, while other components that are not as resource-consumptive are not affected.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2-flexibility-in-technology-stack\"><\/span>2. Flexibility in Technology Stack<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>In a microservices architecture, the developer leverages the tools, programming languages, and frameworks needed for that particular service. This makes it possible for many teams to take advantage of the various technologies where certain necessities are in demand.<\/p>\n\n\n\n<p><strong>For example:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>For instance, a service that needs very many calculations, such as a <a href=\"https:\/\/www.codeavail.com\/blog\/machine-learning-project-ideas-for-final-year-students\/\">machine learning <\/a>inference layer, can be developed in Python using TensorFlow.<\/li>\n\n\n\n<li>Another service that can be associated with speed and dependability can be developed in Go.<\/li>\n<\/ul>\n\n\n\n<p>This polyglot nature also optimizes throughput and enables organizations to adopt emerging technologies into an application without affecting the other part.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3-faster-development-and-deployment-cycles\"><\/span>3. Faster Development and Deployment Cycles<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Because microservices are independently built and released, different teams can work on different services simultaneously, thereby not overstressing the development process. This proves in parallel with Agile where features can be prototyped and released easily to the market.<\/p>\n\n\n\n<p>However, the use of microservices makes deployment simpler because it can blend well with CI\/CD cycles. This cyclic model guarantees that any new enhancements or problem-solving changes can be implemented swiftly without having to redesign the whole system.<\/p>\n\n\n\n<p>For example, in an online streaming service, a team can improve the recommendation system, and another team can simultaneously build a better user interface\u2014a great feature can be worked on and released separately from the other feature.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"4-fault-isolation\"><\/span>4. Fault Isolation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Microservices act as a fault tolerance platform since the fault effects will be limited to a specific service. As in a monolithic architecture, a flaw in one component normally propagates through other components, possibly bringing down the whole application. A failure in a microservices context will only potentially affect the service in question in question.<\/p>\n\n\n\n<p>Thus, for example, if the payment gateway service of an e-commerce platform has an issue, then another service, such as browsing through the products or adding them to the cart, will not be a problem. This fault isolation enhances the reliability of a system in circulation and, consequently, a better experience with the product.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"5-enhanced-team-productivity\"><\/span>5. Enhanced Team Productivity<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Microservices facilitate development as a distributed undertaking, meaning that teams can own individual services. Instead of having to communicate with other teams constantly, each team is in charge of developing, creating, and maintaining its service.<\/p>\n\n\n\n<p>Such division of tasks ensures efficiency and eliminates cases where one instance slows down progress through a hold-up. For example, the team that handles the search for drivers in the ride-sharing app can improve specific functionality, such as searching separately from the team, which works with booking or payments.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"6-reusability-of-services\"><\/span>6. Reusability of Services<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Free standing code is less complex and easier to read debug than a large project code. Just like in real life, a large family is hard to handle compared to a small family. An update or a change can be done in one service without necessarily affecting all the others, and thus bring in new problems.<\/p>\n\n\n\n<p><strong>For instance,<\/strong> changing the recommendation engine of an e-commerce application does not entail redeployment of the application; hence simpler.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"7-simplified-maintenance-and-upgrades\"><\/span>7. Simplified Maintenance and Upgrades<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Independent codebases, as compared to large ones,s are more comprehensible and easier to debug and maintain. In one service, updates or changes can be applied at the same time without affecting another service; thus, there is a lesser chance of bringing in more bugs.<\/p>\n\n\n\n<p>For instance, modification of the recommendation engine of an online store does not warrant a redesign of the application. In contrast, the modification of the recommendation engine of the application does not warrant the reinstallation of the entire application.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"disadvantages-of-microservices-architecture\"><\/span>Disadvantages of Microservices Architecture<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1-increased-complexity\"><\/span>1. Increased Complexity<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Today, microservices make some aspects of development easier, but they bring considerable operational challenges. The coordination problem of managing independent services increases as the number of services increases, which may be challenging when addressing a range of them on a large scale.<\/p>\n\n\n\n<p>For example, it may be difficult to ensure that you have the same configuration, dependencies, and versioning as the tens of hundreds of services that you possess. The complexities mentioned above are usually solved by tools such as Kubernetes, service mesh, and API gateways.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2-communication-overhead\"><\/span>2. Communication Overhead<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>One of the aspects of microservices architecture is that by using APIs or message queues to process data between services, thereby, creating a potential network bottleneck. While within monolithic applications, function calls are done within memory; microservices require interprocess communication within a network.<\/p>\n\n\n\n<p><strong>For example,<\/strong> the inventory service in an online store may deliver a response to the checkout service in too long a time, implying that the user transaction experience is not good. Some of the techniques to be applied in order to enhance efficient communication include caching, load balancing and circuit breakers.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3-deployment-challenges\"><\/span>3. Deployment Challenges<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>In the context of microservice architecture, managing numerous groups of applications and coordinating their deployments can be challenging. When several services are interconnected, changes to one of the services can cause changes to the other services, which is not efficient.<\/p>\n\n\n\n<p>For instance, ordering service in a meal delivery application can create a new version that can integrate the delivery tracking service, making it likely to reach a state where both services and the application as a whole need updating, raising the probability of downtimes or a faulty deployment.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"4-data-consistency-issues\"><\/span>4. Data Consistency Issues<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Finally, in microservices, the idea often appears that each service has its <a href=\"https:\/\/en.wikipedia.org\/wiki\/Database\" target=\"_blank\" rel=\"noopener\">database<\/a>. However, it contributes to worsening the scalability since data consistency becomes an issue in such systems.<\/p>\n\n\n\n<p>For instance, it becomes tricky to guarantee that the inventory and order services within an e-commerce platform are real-time. Event-based systems and eventual consistency approaches are frequently implemented. However, they cause latency or inconsistency in some cases.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"5-security-vulnerabilities\"><\/span>5. Security Vulnerabilities<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>It also increases the exposure area since microservices are distributed in scope. Each of the services we describe below provides APIs that have to be protected from access or modification by unauthorized customers.<\/p>\n\n\n\n<p>For instance, weak security management of APIs in a banking app throws the users\u2019 financial information into the public domain. Authentication methods like OAuth and encryption are more complicated and require professional interventions.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"6-higher-infrastructure-costs\"><\/span>6. Higher Infrastructure Costs<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Many microservices are containerized, orchestrated and required to have monitoring tools; this adds to infrastructure costs. While monolithic structures are implemented singularly, these are multiple instances but they consume the resources.<\/p>\n\n\n\n<p>For example, engineering a microservices system targeting a high-profile monolith like a web-scale microservices application on Kubernetes may lead to steep costs in hosting, scaling, or monitoring, especially for a startup or organization of limited means.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"7-steep-learning-curve\"><\/span>7. Steep Learning Curve<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>However, transitioning to microservices means a culture, processes, and tools shift in the development of software solutions. Teams have to learn to deal with such notions as container orchestration, distributed tracing, and service discovery.<\/p>\n\n\n\n<p>For example, a project changing from the monolithic application model to a microservices architecture variant may take time for employees to be trained, which may initially slow down a project.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The advantages of microservices are a multitude: scalability, flexibility and fault isolation are the key reasons for the popularity of the microservices architecture for constructing modern distributed applications. This is the case; nonetheless, cheaper, easier, and less complex than traditional connections. It also adds complexity, overhead in communication, and costs.<\/p>\n\n\n\n<p>Due to these considerations, organizations should take time and look at their requirements, resources and future directions to determine <\/p>\n\n\n\n<p>whether microservices are ideal for their organization. So, while monolithic or hybrid architectures are a better fit for huge complex applications, basic and evolving apps should consider monolithic designs.<\/p>\n\n\n\n<p>Thus, by analyzing the strengths and weaknesses of microservices architecture, organizations are ready to make an appropriate choice and get the full potential from such an approach.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In today\u2019s software world of rapid development, scalability, flexibility, and shorter time to market, prepared microservices architecture for organizations. Microservice architecture is relatively new and has gained popularity far from the monolithic approach to the development of large-scale micro applications. This architecture has revolutionized the manner in which software is implemented and supported, for it [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":36053,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"rank_math_lock_modified_date":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1587],"tags":[],"class_list":["post-36052","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-computing"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.codeavail.com\/blog\/wp-json\/wp\/v2\/posts\/36052","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codeavail.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codeavail.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codeavail.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codeavail.com\/blog\/wp-json\/wp\/v2\/comments?post=36052"}],"version-history":[{"count":1,"href":"https:\/\/www.codeavail.com\/blog\/wp-json\/wp\/v2\/posts\/36052\/revisions"}],"predecessor-version":[{"id":36054,"href":"https:\/\/www.codeavail.com\/blog\/wp-json\/wp\/v2\/posts\/36052\/revisions\/36054"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codeavail.com\/blog\/wp-json\/wp\/v2\/media\/36053"}],"wp:attachment":[{"href":"https:\/\/www.codeavail.com\/blog\/wp-json\/wp\/v2\/media?parent=36052"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codeavail.com\/blog\/wp-json\/wp\/v2\/categories?post=36052"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codeavail.com\/blog\/wp-json\/wp\/v2\/tags?post=36052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}