{"id":1651,"date":"2013-02-05T16:14:47","date_gmt":"2013-02-05T16:14:47","guid":{"rendered":"http:\/\/www.cloudcomp.ch\/?p=1651"},"modified":"2013-02-05T16:14:47","modified_gmt":"2013-02-05T16:14:47","slug":"how-do-you-organise-your-openstack-deployment","status":"publish","type":"post","link":"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/","title":{"rendered":"How Do You Organise Your OpenStack Deployment?"},"content":{"rendered":"<p>So you have a new shiny OpenStack installation! Within that installation you may have differing classes of hardware and so you wish to be able to organise those classes.<\/p>\n<p>To organise your OpenStack deployment there are two concepts currently available: <b>Availability Zones (AZs)<\/b> and <b>Cells<\/b>. These allow you categorise your resources within an OpenStack deployment and organise those resources as you see fit. These is a very useful feature in order to offer different types of the same service. For example you might want to offer a compute service that runs on SSDs or plain spinning disks.<\/p>\n<p>In this article we&#8217;ll describe OpenStack Availability Zones (AZs) and OpenStack Cells. We&#8217;ll also show how each differ.<\/p>\n<p>AZs are already available in Essex and Folsom releases. AZs allow you organise groups of hosts by tag (think <a href=\"https:\/\/en.wikipedia.org\/wiki\/Folksonomy\">folksonomy<\/a>), however each compute node only can have one tag &#8211; the name of the availability zone their part of.<\/p>\n<p style=\"text-align: center\"><a href=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2013\/02\/AZs.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-1652\" alt=\"AZs\" src=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2013\/02\/AZs.png\" width=\"443\" height=\"318\" srcset=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2013\/02\/AZs.png 554w, https:\/\/blog.zhaw.ch\/icclab\/files\/2013\/02\/AZs-300x215.png 300w, https:\/\/blog.zhaw.ch\/icclab\/files\/2013\/02\/AZs-417x300.png 417w\" sizes=\"auto, (max-width: 443px) 100vw, 443px\" \/><\/a><\/p>\n<p>In <a href=\"http:\/\/www.sebastien-han.fr\/blog\/2013\/01\/24\/openstack-nova-play-with-availability-zones\/\">this blog post<\/a> is was said that &#8220;The good thing with availability zones is that you can manage and isolate different entities in your infrastructure.&#8221; However, there is little in terms of isolation given with AZs as all instances, without significant customisation, are still sharing the same infrastructure and OpenStack services. AZs allow you organise both compute and volume services and to enable the AZ feature you simply only have to declare node_availability_zone = $YOUR_AZ_NAME in the \/etc\/nova\/nova.conf file (or configuration file fragment e.g. nova-compute.conf). This should be done on a per-node basis (so using parameterised puppet classes is useful here ;-). To list your nodes along with their assigned AZ, simply execute nova-manage service list. To allocate an instance upon a specific AZ you need to add &#8211;availability-zone $TARGET_AZ to the nova boot command. Currently, AZs are not exposed in the Horizon dashboard.<\/p>\n<p>An alternative to AZs are <a href=\"http:\/\/wiki.openstack.org\/blueprint-nova-compute-cells\">OpenStack Cells<\/a>. Cells separate much of the OpenStack services that are not separated by default when using AZs. These are only available in the current development edition of OpenStack and are targeted at the Grizzly release. Cells allow you organise groups of hosts as a directed graph (think ontology) or in other words, a tree. This is shown below (<a href=\"http:\/\/comstud.com\/GrizzlyCells.pdf\">source<\/a>).<\/p>\n<p style=\"text-align: center\"><a href=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2013\/02\/cells.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-1653\" alt=\"cells\" src=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2013\/02\/cells.png\" width=\"251\" height=\"296\" srcset=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2013\/02\/cells.png 419w, https:\/\/blog.zhaw.ch\/icclab\/files\/2013\/02\/cells-254x300.png 254w\" sizes=\"auto, (max-width: 251px) 100vw, 251px\" \/><\/a><\/p>\n<p>For each cell there is a separate message bus and database. The head of the tree has the OpenStack API service running. All child nodes within the cell tree are known to the OpenStack scheduler service and depending on what cell is selected, the scheduler will route a new instance request to that cell. In this way you can think of the request processing as IP packet routing. This certainly makes for more flexible organisation of larger OpenStack deployments, however perhaps add some amount of delay to provisioning: only benchmarking will tell. For further details on its configuration and setup see the <a href=\"http:\/\/wiki.openstack.org\/blueprint-nova-compute-cells\">Cell OpenStack wiki article<\/a>. This is also <a href=\"http:\/\/comstud.com\/GrizzlyCells.pdf\">a good overview presentation of Cells<\/a> by one of the key developers. Cells are pretty cool and possibly lend themselves well to providing management capabilities where a provider has inter-connected data centres.<\/p>\n<p>The great thing with both of these approaches is that it allows you to offer differentiated services to your customers. Could they be used together, most likely! We&#8217;ll certainly be experimenting with these features on our <a title=\"Parallel OpenStack Multi Hosts Deployments with Foreman and Puppet\" href=\"http:\/\/www.cloudcomp.ch\/2012\/12\/parallel-openstack-multi-hosts-deployments-with-foreman-and-puppet\/\">ICCLab OpenStack cluster<\/a>.<\/p>\n<div class=\"pt-sm\">Schlagw\u00f6rter: <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/availability\/\">availability<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/cells\/\">cells<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/openstack\/\">openstack<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/organise\/\">organise<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/structure\/\">structure<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/zones\/\">zones<\/a><br><\/div>","protected":false},"excerpt":{"rendered":"<p>So you have a new shiny OpenStack installation! Within that installation you may have differing classes of hardware and so you wish to be able to organise those classes<\/p>\n<p>To organise your OpenStack deployment there are two concepts currently available: Availability Zones (AZs) and Cells. These allow you categorise your resources within an OpenStack deployment and organise those resources as you see fit. These is a very useful feature in order to offer different types of the same service. For example you might want to offer a compute service that runs on SSDs or plain spinning disks.<\/p>\n<p>In this article we&#8217;ll describe OpenStack Availability Zones (AZs) and OpenStack Cells. We&#8217;ll also show how each differ.<\/p>\n","protected":false},"author":72,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[5,21],"tags":[52,66,240,244,316,356],"features":[],"class_list":["post-1651","post","type-post","status-publish","format-standard","hentry","category-articles","category-openstack-2","tag-availability","tag-cells","tag-openstack","tag-organise","tag-structure","tag-zones"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How Do You Organise Your OpenStack Deployment? - Service Engineering (ICCLab &amp; SPLab)<\/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:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How Do You Organise Your OpenStack Deployment?\" \/>\n<meta property=\"og:description\" content=\"So you have a new shiny OpenStack installation! Within that installation you may have differing classes of hardware and so you wish to be able to organise those classes To organise your OpenStack deployment there are two concepts currently available: Availability Zones (AZs) and Cells. These allow you categorise your resources within an OpenStack deployment and organise those resources as you see fit. These is a very useful feature in order to offer different types of the same service. For example you might want to offer a compute service that runs on SSDs or plain spinning disks. In this article we&#039;ll describe OpenStack Availability Zones (AZs) and OpenStack Cells. We&#039;ll also show how each differ.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/\" \/>\n<meta property=\"og:site_name\" content=\"Service Engineering (ICCLab &amp; SPLab)\" \/>\n<meta property=\"article:published_time\" content=\"2013-02-05T16:14:47+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2013\/02\/AZs.png\" \/>\n<meta name=\"author\" content=\"Andy Edmonds\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andy Edmonds\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/\"},\"author\":{\"name\":\"Andy Edmonds\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/a62f7b702361e11d635f4e59446e8684\"},\"headline\":\"How Do You Organise Your OpenStack Deployment?\",\"datePublished\":\"2013-02-05T16:14:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/\"},\"wordCount\":563,\"commentCount\":1,\"image\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/blog.zhaw.ch\/icclab\/files\/2013\/02\/AZs.png\",\"keywords\":[\"availability\",\"cells\",\"openstack\",\"organise\",\"structure\",\"zones\"],\"articleSection\":[\"Articles\",\"OpenStack\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/\",\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/\",\"name\":\"How Do You Organise Your OpenStack Deployment? - Service Engineering (ICCLab &amp; SPLab)\",\"isPartOf\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/blog.zhaw.ch\/icclab\/files\/2013\/02\/AZs.png\",\"datePublished\":\"2013-02-05T16:14:47+00:00\",\"author\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/a62f7b702361e11d635f4e59446e8684\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/#primaryimage\",\"url\":\"http:\/\/blog.zhaw.ch\/icclab\/files\/2013\/02\/AZs.png\",\"contentUrl\":\"http:\/\/blog.zhaw.ch\/icclab\/files\/2013\/02\/AZs.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\/\/blog.zhaw.ch\/icclab\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How Do You Organise Your OpenStack Deployment?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#website\",\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/\",\"name\":\"Service Engineering (ICCLab &amp; SPLab)\",\"description\":\"A Blog of the ZHAW Zurich University of Applied Sciences\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.zhaw.ch\/icclab\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/a62f7b702361e11d635f4e59446e8684\",\"name\":\"Andy Edmonds\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/564b17a1126a2ed30e20d4c65842164e32a6cf798a8175e88bcf5b352ebd60c8?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/564b17a1126a2ed30e20d4c65842164e32a6cf798a8175e88bcf5b352ebd60c8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/564b17a1126a2ed30e20d4c65842164e32a6cf798a8175e88bcf5b352ebd60c8?s=96&d=mm&r=g\",\"caption\":\"Andy Edmonds\"},\"sameAs\":[\"http:\/\/andy.edmonds.be\"],\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/author\/edmo\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How Do You Organise Your OpenStack Deployment? - Service Engineering (ICCLab &amp; SPLab)","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:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/","og_locale":"en_US","og_type":"article","og_title":"How Do You Organise Your OpenStack Deployment?","og_description":"So you have a new shiny OpenStack installation! Within that installation you may have differing classes of hardware and so you wish to be able to organise those classes To organise your OpenStack deployment there are two concepts currently available: Availability Zones (AZs) and Cells. These allow you categorise your resources within an OpenStack deployment and organise those resources as you see fit. These is a very useful feature in order to offer different types of the same service. For example you might want to offer a compute service that runs on SSDs or plain spinning disks. In this article we'll describe OpenStack Availability Zones (AZs) and OpenStack Cells. We'll also show how each differ.","og_url":"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/","og_site_name":"Service Engineering (ICCLab &amp; SPLab)","article_published_time":"2013-02-05T16:14:47+00:00","og_image":[{"url":"http:\/\/blog.zhaw.ch\/icclab\/files\/2013\/02\/AZs.png","type":"","width":"","height":""}],"author":"Andy Edmonds","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Andy Edmonds","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/#article","isPartOf":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/"},"author":{"name":"Andy Edmonds","@id":"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/a62f7b702361e11d635f4e59446e8684"},"headline":"How Do You Organise Your OpenStack Deployment?","datePublished":"2013-02-05T16:14:47+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/"},"wordCount":563,"commentCount":1,"image":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/#primaryimage"},"thumbnailUrl":"http:\/\/blog.zhaw.ch\/icclab\/files\/2013\/02\/AZs.png","keywords":["availability","cells","openstack","organise","structure","zones"],"articleSection":["Articles","OpenStack"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/","url":"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/","name":"How Do You Organise Your OpenStack Deployment? - Service Engineering (ICCLab &amp; SPLab)","isPartOf":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/#primaryimage"},"image":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/#primaryimage"},"thumbnailUrl":"http:\/\/blog.zhaw.ch\/icclab\/files\/2013\/02\/AZs.png","datePublished":"2013-02-05T16:14:47+00:00","author":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/a62f7b702361e11d635f4e59446e8684"},"breadcrumb":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/#primaryimage","url":"http:\/\/blog.zhaw.ch\/icclab\/files\/2013\/02\/AZs.png","contentUrl":"http:\/\/blog.zhaw.ch\/icclab\/files\/2013\/02\/AZs.png"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.zhaw.ch\/icclab\/how-do-you-organise-your-openstack-deployment\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/blog.zhaw.ch\/icclab\/"},{"@type":"ListItem","position":2,"name":"How Do You Organise Your OpenStack Deployment?"}]},{"@type":"WebSite","@id":"https:\/\/blog.zhaw.ch\/icclab\/#website","url":"https:\/\/blog.zhaw.ch\/icclab\/","name":"Service Engineering (ICCLab &amp; SPLab)","description":"A Blog of the ZHAW Zurich University of Applied Sciences","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.zhaw.ch\/icclab\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/a62f7b702361e11d635f4e59446e8684","name":"Andy Edmonds","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/564b17a1126a2ed30e20d4c65842164e32a6cf798a8175e88bcf5b352ebd60c8?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/564b17a1126a2ed30e20d4c65842164e32a6cf798a8175e88bcf5b352ebd60c8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/564b17a1126a2ed30e20d4c65842164e32a6cf798a8175e88bcf5b352ebd60c8?s=96&d=mm&r=g","caption":"Andy Edmonds"},"sameAs":["http:\/\/andy.edmonds.be"],"url":"https:\/\/blog.zhaw.ch\/icclab\/author\/edmo\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts\/1651","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/users\/72"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/comments?post=1651"}],"version-history":[{"count":0,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts\/1651\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/media?parent=1651"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/categories?post=1651"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/tags?post=1651"},{"taxonomy":"features","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/features?post=1651"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}