{"id":1011,"date":"2022-04-07T18:30:59","date_gmt":"2022-04-07T18:30:59","guid":{"rendered":"https:\/\/highclasswriters.com\/blog\/?p=1011"},"modified":"2022-04-07T18:31:00","modified_gmt":"2022-04-07T18:31:00","slug":"the-software-architect-and-devops","status":"publish","type":"post","link":"https:\/\/highclasswriters.com\/blog\/the-software-architect-and-devops\/","title":{"rendered":"The Software Architect and DevOps"},"content":{"rendered":"\n<ol class=\"wp-block-list\"><li>A brief summary of the article<\/li><li>A description of the article&#8217;s relevance to Software security\u00a0<\/li><li>Research and reflect on the development of this topic in the past 5 years. Based on your research and personal experience, what do you think is the direction of this topic in the next 5 years?\u00a0 cite examples of past and future work to strengthen your argum<\/li><\/ol>\n\n\n\n<p>8 IEEE SOFTWARE | PUBLISHED BY THE IEEE COMPUTER SOCIETY<br>THE PRAGMATIC<br>ARCHITECT<br>Editor: Eoin Woods<br>Endava<br>eoin.woods@endava.com<br>The Software Architect<br>and DevOps<br>Len Bass<br>ETSY UPDATES ITS production<br>servers more than 50 times a day.1<br>How long does your organization<br>take to get an update into production? Google has a team that only<br>handles incidents.2 Why? How does<br>your organization handle incidents?<br>SourceD builds an Amazon Web<br>Services deployment script automatically with input from both the<br>application developers and security<br>engineers (see Figure 1).<br>These are three examples of practices that fall under the name DevOps.<br>They deal with the velocity of releases,<br>how fast incidents are handled, and<br>the enforcement of organizationally<br>specified security practices. All these<br>are critical for success in today\u2019s environment, and the architect is critical<br>for success in adopting DevOps practices. Here, I explain why.<br>The Architect\u2019s Importance<br>\u201cDevOps is a set of practices intended to reduce the time between<br>committing a change to a system and<br>the change being placed into normal production, while ensuring high<br>quality.\u201d3 These practices involve<br>four main concerns:<br>\u2022 Quickly getting a change into<br>production.<br>\u2022 Finding errors through automated testing.<br>\u2022 Reducing or eliminating errors<br>that occur during deployment.<br>\u2022 Quickly finding and repairing<br>faults in the system.<br>All these concerns have organizational, cultural, and technical<br>aspects. For example, one practice<br>for quickly getting a change into<br>production is to do only automated<br>testing. This will mean a change in<br>the quality assurance team\u2019s role or<br>possibly its elimination. Changing<br>a team\u2019s role is an organizational<br>change, adapting to differing roles<br>is a cultural change, and developing<br>the appropriate set of test cases is a<br>technical change.<br>In all these changes, the software<br>architect is important. The architect<br>is usually a role model for the rest<br>of the team, so his or her reaction to<br>these changes will impact the team\u2019s<br>morale. In this article, I focus on<br>the software architect\u2019s technical<br>aspects with respect to DevOps<br>practices, but the organizational<br>and cultural aspects shouldn\u2019t be<br>ignored. In addition, DevOps practices rely heavily on tool support<br>and automation. So, the architect<br>must work with the team to ensure there are personnel to support<br>the tools and that the team is familiar with the tools that support<br>production.<br>The Deployment Pipeline<br>Assume a deployment pipeline that<br>consists of a development environment, build environment, staging<br>environment, and production environment. Figure 2 illustrates a<br>simplified pipeline. A code commit<br>comes from the development environment, undergoes integration and<br>certain tests in the build environment, undergoes other tests in the<br>staging environment, and is placed<br>into production.<br>All these environments should, as<br>much as possible, be the same. All<br>team members should develop using<br>the same OS version, the same version of the supporting libraries, and<br>the same IDE version. Furthermore,<br>these should be the same in the production environment and intermediate test environments. The architect<br>must work with the team to ensure<br>that this is the case.<br>Provisioning tools such as Vagrant will create identically provisioned virtual machines (VMs)<br>for development. Every team member can use a Vagrant script (version controlled, of course) to create<br>a new identical VM with a single<br>command. If the VM\u2019s elements<br>change\u2014for example, owing to a<br>new release of an OS\u2014then updating the provisioning script and recreating the appropriate VMs will keep<br>THE PRAGMATIC ARCHITECT<br>JANUARY\/FEBRUARY 2018 | IEEE SOFTWARE 9<br>the team synchronized. Other tools<br>such as CloudFormation are used<br>to establish the environment. Tools<br>such as Chef, Puppet, or Ansible<br>can be used to maintain the desired<br>configuration in environments other<br>than the development environment.<br>Continuous Deployment<br>The DevOps practice that probably<br>gets the most press is continuous deployment or continuous delivery.4<br>This means that after a developer<br>commits code to the version control<br>system, it\u2019s automatically subjected<br>to a variety of tests and, assuming<br>the tests are passed, placed into production. Modern systems can be deployed multiple times a day. Rapid<br>deployments mean that human testing is impossible. All testing must be<br>automated. Even if only one deployment a day was necessary, the testing<br>load would overload human testers.<br>So, test automation is critical for<br>rapid deployment.<br>The architect works with the<br>team to select test cases. Test cases<br>must be complete enough for good<br>coverage of both the system\u2019s functions and its qualities, such as performance and security. Tests can<br>consume much time, so having the<br>minimal number of them that provides good coverage for functions<br>and qualities is critical. Choosing<br>the test cases thus becomes important. One side effect of the ability to<br>deploy rapidly is that if a developer<br>discovers an error, he or she can repair it and deploy the fix quickly.<br>The ability to continuously deploy<br>also depends on the system architecture and the processes the developers<br>use. Suppose that a new feature is to<br>be added to the system that involves<br>several development teams. Continuous deployment means that Team A\u2019s<br>changes can be deployed regardless<br>of the state of Team B\u2019s changes. Architectural choices such as using a microservice architecture can enable this<br>practice. So can process activities such<br>as ensuring backward compatibility<br>and graceful handling of unknown<br>method invocations. (For more details, see Chapter 6 of DevOps: A<br>Software Architect\u2019s Perspective.3)<br>The architect must not only<br>guide the architectural choices but<br>also work with the team so that<br>developers understand and correctly<br>implement the prescribed processes.<br>For example, backward compatibility of services can be prescribed to<br>allow for independent deployment<br>of different services of a new feature.<br>However, maintaining backward<br>compatibility is difficult and might<br>not happen owing to time pressure.<br>This leads to incompatibilities and<br>errors. Tests can help enforce the<br>necessary processes.<br>Operations<br>repository (Git)<br>Application<br>repository (Git)<br>\u2022 Application code<br>\u2022 Application CF<br>\u2022 Load-balancing<br>setup<br>\u2022 Virtual Private Cloud<br>\u2022 Subnets<br>\u2022 Security groups<br>\u2022 CF frameworks<br>\u2022 Best practice<br>CloudFormation<br>(CF) script<br>Atlassian<br>Bamboo<br>FIGURE 1. Creating an Amazon Web Services deployment script automatically with<br>input from developers and operations. Such enforcement of organizationally specified<br>security practices falls into the category of DevOps.<br>Precommit<br>tests Commit<br>X<br>Build image<br>and perform<br>integration<br>tests<br>User<br>acceptance<br>testing,<br>staging, and<br>performance<br>tests<br>Deploy to<br>production<br>Promote<br>to normal<br>production<br>Commit Precommit<br>tests<br>Developers<br>FIGURE 2. A deployment pipeline in which the movement from commit to production<br>is automatic. Each environment in the pipeline should, as much as possible, be the<br>same.<br>THE PRAGMATIC ARCHITECT<br>10<br>Once a new version of a service<br>has been deployed, the developers<br>should monitor its behavior carefully<br>until they gain confidence that it has<br>no problems. \u201cMonitor carefully\u201d<br>means that developers should be able<br>to examine measures such as latency,<br>failure rates, and the number of requests serviced per unit time. This is<br>the case for not only the newly deployed service but also the system as<br>a whole because a new version of a<br>service might impact the whole system. This monitoring involves both<br>measures normally collected by the<br>infrastructure, such as CPU utilization of a VM or container, and business- and service-specific measures.<br>In other words, the service or new<br>feature should be instrumented to<br>record a variety of information and<br>make that information visible so that<br>the effectiveness of the change or<br>new feature can be determined. The<br>architecture of the service and system must support the collecting and<br>reporting of a variety of measures.<br>So, determining what\u2019s monitored<br>and reported and how to accomplish<br>this is something the architect must<br>do in conjunction with the team.<br>Dealing with Errors<br>A final DevOps practice involving<br>the architect is dealing with errors<br>once the system is in production. The<br>person on call, possibly a developer,<br>has a short-term task and a longerterm task.<br>The short-term task is to find a<br>work-around for the error so that<br>the system can continue to operate.<br>This task requires understanding the<br>system, its services, and how they interact. Although typically the architect won\u2019t be the person doing this,<br>it exercises skills an architect needs.<br>So, the architect should nurture team<br>members who show such skills. For<br>a thorough discussion of this aspect,<br>see Site Reliability Engineering: How<br>Google Runs Production Systems.2<br>The longer-term task is to determine the root cause and propose<br>a process so that this type of error<br>doesn\u2019t recur. This task depends on<br>the system elements\u2019 traceability. Every service in production should be<br>traceable back to its constituent elements. The following aspects are<br>also relevant and should be recorded:<br>\u2022 the environment in which the<br>service is executing,<br>\u2022 the test cases to which the service was subjected,<br>\u2022 the service\u2019s dependencies, and<br>\u2022 the versions of the tools in the<br>pipeline that were used to deploy<br>the system.<br>This should be done automatically<br>as part of the build-and-deployment<br>process.<br>A second type of traceability involves recording the sequence of<br>events that led to the error. This sequence includes the user request that<br>triggered an error, the services that<br>processed that request, and the services that the failing service invoked.<br>Component traceability is the responsibility of the various tools in<br>the pipeline, but determining the sequence of events that led to the error<br>requires recording information similar to the monitoring information I<br>discussed earlier. This type of recording is architectural. Tools such<br>as Zipkin or Jaeger are useful in this<br>context.<br>Architects who can play the<br>role I described here will<br>become real leaders of<br>change, as they enable fundamental<br>improvements in their organization\u2019s<br>capability through DevOps implementation.<br>References<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>J. Miranda, \u201cHow Etsy Deploys<br>More Than 50 Times a Day,\u201d InfoQ,<br>17 Mar. 2014; www.infoq.com\/news<br>\/2014\/03\/etsy-deploy-50-times-a-day.<\/li><li>B. Beyer et al., Site Reliability Engineering: How Google Runs Production Systems, O\u2019Reilly Media, 2016.<\/li><li>L. Bass, I. Weber, and Z. Liming,<br>DevOps: A Software Architect\u2019s<br>Perspective, Addison-Wesley, 2015.<\/li><li>J. Humble and D. Farley, Continuous<br>Delivery: Reliable Software Releases<br>through Build, Test, and Deployment<br>Automation, Addison-Wesley, 2010.<br>Read your subscriptions<br>through the myCS<br>publications portal at<br>http:\/\/mycs.computer.org<br>ABOUT THE AUTHOR<br>LEN BASS is an adjunct faculty member for Carnegie Mellon University\u2019s<br>Master of Software Engineering program. Contact him at lenbass@cmu<br>.edu.<br>IEEE SOFTWARE | WWW.COMPUTER.ORG\/S O FTWARE | @IEEES O FTWARE .<\/li><\/ol>\n","protected":false},"excerpt":{"rendered":"<p>A brief summary of the article A description of the article&#8217;s relevance to Software security\u00a0 Research and reflect on the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","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":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","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":[1],"tags":[],"class_list":["post-1011","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>The Software Architect and DevOps - Highclasswriters<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/highclasswriters.com\/blog\/the-software-architect-and-devops\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Software Architect and DevOps - Highclasswriters\" \/>\n<meta property=\"og:description\" content=\"A brief summary of the article A description of the article&#8217;s relevance to Software security\u00a0 Research and reflect on the [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/highclasswriters.com\/blog\/the-software-architect-and-devops\/\" \/>\n<meta property=\"og:site_name\" content=\"Highclasswriters\" \/>\n<meta property=\"article:published_time\" content=\"2022-04-07T18:30:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-04-07T18:31:00+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/highclasswriters.com\/blog\/the-software-architect-and-devops\/\",\"url\":\"https:\/\/highclasswriters.com\/blog\/the-software-architect-and-devops\/\",\"name\":\"The Software Architect and DevOps - Highclasswriters\",\"isPartOf\":{\"@id\":\"https:\/\/highclasswriters.com\/blog\/#website\"},\"datePublished\":\"2022-04-07T18:30:59+00:00\",\"dateModified\":\"2022-04-07T18:31:00+00:00\",\"author\":{\"@id\":\"https:\/\/highclasswriters.com\/blog\/#\/schema\/person\/06412d8249aafcb0c75ea9958c98aaae\"},\"breadcrumb\":{\"@id\":\"https:\/\/highclasswriters.com\/blog\/the-software-architect-and-devops\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/highclasswriters.com\/blog\/the-software-architect-and-devops\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/highclasswriters.com\/blog\/the-software-architect-and-devops\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/highclasswriters.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Software Architect and DevOps\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/highclasswriters.com\/blog\/#website\",\"url\":\"https:\/\/highclasswriters.com\/blog\/\",\"name\":\"Highclasswriters\",\"description\":\"Essay Writing Service\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/highclasswriters.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/highclasswriters.com\/blog\/#\/schema\/person\/06412d8249aafcb0c75ea9958c98aaae\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/highclasswriters.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/99ccb26aea1053c4c33c76cde1eee45f1ec58485d03e72c412d111c386e42174?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/99ccb26aea1053c4c33c76cde1eee45f1ec58485d03e72c412d111c386e42174?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/highclasswriters.com\/blog\"],\"url\":\"https:\/\/highclasswriters.com\/blog\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The Software Architect and DevOps - Highclasswriters","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/highclasswriters.com\/blog\/the-software-architect-and-devops\/","og_locale":"en_US","og_type":"article","og_title":"The Software Architect and DevOps - Highclasswriters","og_description":"A brief summary of the article A description of the article&#8217;s relevance to Software security\u00a0 Research and reflect on the [&hellip;]","og_url":"https:\/\/highclasswriters.com\/blog\/the-software-architect-and-devops\/","og_site_name":"Highclasswriters","article_published_time":"2022-04-07T18:30:59+00:00","article_modified_time":"2022-04-07T18:31:00+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/highclasswriters.com\/blog\/the-software-architect-and-devops\/","url":"https:\/\/highclasswriters.com\/blog\/the-software-architect-and-devops\/","name":"The Software Architect and DevOps - Highclasswriters","isPartOf":{"@id":"https:\/\/highclasswriters.com\/blog\/#website"},"datePublished":"2022-04-07T18:30:59+00:00","dateModified":"2022-04-07T18:31:00+00:00","author":{"@id":"https:\/\/highclasswriters.com\/blog\/#\/schema\/person\/06412d8249aafcb0c75ea9958c98aaae"},"breadcrumb":{"@id":"https:\/\/highclasswriters.com\/blog\/the-software-architect-and-devops\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/highclasswriters.com\/blog\/the-software-architect-and-devops\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/highclasswriters.com\/blog\/the-software-architect-and-devops\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/highclasswriters.com\/blog\/"},{"@type":"ListItem","position":2,"name":"The Software Architect and DevOps"}]},{"@type":"WebSite","@id":"https:\/\/highclasswriters.com\/blog\/#website","url":"https:\/\/highclasswriters.com\/blog\/","name":"Highclasswriters","description":"Essay Writing Service","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/highclasswriters.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/highclasswriters.com\/blog\/#\/schema\/person\/06412d8249aafcb0c75ea9958c98aaae","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/highclasswriters.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/99ccb26aea1053c4c33c76cde1eee45f1ec58485d03e72c412d111c386e42174?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/99ccb26aea1053c4c33c76cde1eee45f1ec58485d03e72c412d111c386e42174?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/highclasswriters.com\/blog"],"url":"https:\/\/highclasswriters.com\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/highclasswriters.com\/blog\/wp-json\/wp\/v2\/posts\/1011","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/highclasswriters.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/highclasswriters.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/highclasswriters.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/highclasswriters.com\/blog\/wp-json\/wp\/v2\/comments?post=1011"}],"version-history":[{"count":1,"href":"https:\/\/highclasswriters.com\/blog\/wp-json\/wp\/v2\/posts\/1011\/revisions"}],"predecessor-version":[{"id":1012,"href":"https:\/\/highclasswriters.com\/blog\/wp-json\/wp\/v2\/posts\/1011\/revisions\/1012"}],"wp:attachment":[{"href":"https:\/\/highclasswriters.com\/blog\/wp-json\/wp\/v2\/media?parent=1011"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/highclasswriters.com\/blog\/wp-json\/wp\/v2\/categories?post=1011"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/highclasswriters.com\/blog\/wp-json\/wp\/v2\/tags?post=1011"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}