{"id":1003,"date":"2020-07-13T13:12:00","date_gmt":"2020-07-13T11:12:00","guid":{"rendered":"http:\/\/cmagazine.test\/nomad-kubernetes-but-without-the-complexity\/"},"modified":"2020-07-22T11:06:54","modified_gmt":"2020-07-22T09:06:54","slug":"nomad-kubernetes-but-without-the-complexity","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/backend\/nomad-kubernetes-but-without-the-complexity\/","title":{"rendered":"Nomad vs Kubernetes without the complexity"},"content":{"rendered":"\t\t\t\t<div class=\"wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-ec2841ef      \"\n\t\t\t\t\tdata-scroll= \"1\"\n\t\t\t\t\tdata-offset= \"30\"\n\t\t\t\t\tstyle=\"\"\n\t\t\t\t>\n\t\t\t\t<div class=\"uagb-toc__wrap\">\n\t\t\t\t\t\t<div class=\"uagb-toc__title\">\n\t\t\t\t\t\t\tTable Of Contents\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"uagb-toc__list-wrap \">\n\t\t\t\t\t\t<ol class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#what-is-nomad-really\" class=\"uagb-toc-link__trigger\">What is Nomad really?<\/a><li class=\"uagb-toc__list\"><a href=\"#install-run-your-first-app\" class=\"uagb-toc-link__trigger\">Install &amp; Run your first app<\/a><li class=\"uagb-toc__list\"><a href=\"#nomad-cluster-management\" class=\"uagb-toc-link__trigger\">Nomad Cluster Management<\/a><li class=\"uagb-toc__list\"><a href=\"#nomad-vs-kubernetes\" class=\"uagb-toc-link__trigger\">Nomad vs. Kubernetes<\/a><li class=\"uagb-toc__list\"><a href=\"#a-new-way-to-manage-containers\" class=\"uagb-toc-link__trigger\">A new way to manage containers<\/a><\/ol>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\n\n\n<p>If one wanted to define Nomad (created by HashiCorp), it could be described as a scheduler, but in truth, Nomad is more than that.<\/p>\n\n\n\n<p>In this article, we introduce Nomad and try to show how it can be used to simplify the life-cycle management of any type of <span id=\"urn:enhancement-e69babef\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_software\">application<\/span>, including container-based, legacy and batch applications.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is Nomad really?<\/h2>\n\n\n\n<p>Nomad is an orchestration tool that allows us to deploy and manage different types of <span id=\"urn:enhancement-399223dd\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_software\">applications<\/span>, such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>container-based (with or without <a href=\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/cloud-manager\/run-docker-image-on-microsoft-azure\/\">Docker<\/a>);<\/li><li>legacy <span id=\"urn:enhancement-f445fa73\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_software\">applications<\/span>;<\/li><li><a href=\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/backend-dev\/troubleshooting-debugging-microservices\/\">microservice-oriented <span id=\"urn:enhancement-66cebca4\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_software\">applications<\/span><\/a>;<\/li><li>batch <span id=\"urn:enhancement-1fcacc9c\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_software\">applications<\/span>.<\/li><\/ul>\n\n\n\n<p>Viewed from above, Nomad looks like this:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/1.png\" alt=\"Nomad architecture\"\/><\/figure><\/div>\n\n\n\n<p>What makes Nomad really useful is a rich set of <a href=\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/backend-dev\/api-economy-code-api-money\/\">API<\/a>s that:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>help us to automate deployments, app scaling and upgrades;<\/li><li>empower <span id=\"urn:enhancement-4f3b477a\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">developers<\/span> to manage deployments directly;<\/li><li>automatically manage <span id=\"urn:batch-analysis-968eb074-8a89-4f2a-8aa7-e2a04d10e340\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/failure\">failures<\/span>;<\/li><li>hide complex details such as node management, letting users choose only what is needed to have the <span id=\"urn:enhancement-8b80dd96\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_software\">application<\/span> up and running.<\/li><\/ul>\n\n\n\n<p>As mentioned earlier, Docker is supported, but any type of <span id=\"urn:enhancement-407a22dc\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_software\">application<\/span> can be used, on whatever type of <span id=\"urn:batch-analysis-e1212f0a-1cf2-40aa-9d8c-7e8ff61a7292\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/operating_system\">operating system<\/span> is needed (<span id=\"urn:batch-analysis-5ddee0d3-3455-4b98-a407-f6de54acdc01\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/linux\">Linux<\/span>, Windows, BSD and OSX are all supported). Clusters can be created, adding nodes from different data centers and\/or different regions.<\/p>\n\n\n\n<p>Finally, Nomad is a highly scalable tool that allows users to exceed the limits of the standard concept of scaling; indeed, the developers used a <span id=\"urn:batch-analysis-fddea4f9-9158-421d-be61-2631c63d9ddd\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/case_study\">case study<\/span> named &#8220;the million container challenge&#8221;. Many companies, including CloudFare, PagerDuty, SAP, eBay, and Reaktor have chosen Nomad to provides services to their customers.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Install &amp; Run your first app<\/h2>\n\n\n\n<p>Nomad can be installed using a Vagrant file or the installer (more instructions can be found <a href=\"https:\/\/www.nomadproject.io\/intro\/getting-started\/install.html\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">here<\/a>)<\/p>\n\n\n\n<p>Once Nomad has been installed, we can start it using <span id=\"urn:enhancement-aece564a\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/command-line_interface\">CLI<\/span> <code>nomad<\/code>:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/2.png\" alt=\"Nomad CLI\"\/><\/figure><\/div>\n\n\n\n<p>Technically, Nomad has two execution modes: <i>client<\/i> and <i>server<\/i>. The first is used to run tasks, the other to manage nodes. Client agents usually register themselves to the server at startup and send all relevant information about the <span id=\"urn:batch-analysis-97b0e402-9935-4d03-8d01-de792985804a\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/feature_machine_learning\">features<\/span> available on the client machine. Either <code>-server<\/code> or <code>-client<\/code> parameters can be used to set the execution mode.<\/p>\n\n\n\n<p>If a dev machine is being used, and the user would like to have a minimal configuration to work with Nomad, the <code>-dev<\/code> option can be used, as in the following command:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">nomad agent -dev<\/code><\/span><\/pre>\n\n\n<p>Used in this manner, Nomad starts itself  in both client and server execution mode.<\/p>\n\n\n\n<p>Starting the creation of a task in Nomad uses the following command <code>nomad job init<\/code>, which creates a template for a task in a file named <em>example.nomad<\/em>. This file uses HashiCorp Configuration Language (HCL) to define a simple structure for a <span id=\"urn:batch-analysis-89e6bc4e-27be-4e29-8861-ae468e09ea2b\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/job\">job<\/span>. In this specific case, we are creating a Redis instance; to run this task we can execute <code>nomad <span id=\"urn:batch-analysis-e300f862-f131-42f4-8fb6-fb798dac1646\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/job\">job<\/span><\/code> run in the terminal:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">$ nomad job run example.nomad\n==&gt; Monitoring evaluation <span class=\"hljs-string\">\"13ebb66d\"<\/span>\nEvaluation triggered by job <span class=\"hljs-string\">\"example\"<\/span>\nAllocation <span class=\"hljs-string\">\"883269bf\"<\/span> created: node <span class=\"hljs-string\">\"e42d6f19\"<\/span>, group <span class=\"hljs-string\">\"cache\"<\/span>\nEvaluation within deployment: <span class=\"hljs-string\">\"b0a84e74\"<\/span>\nEvaluation status changed: <span class=\"hljs-string\">\"pending\"<\/span> -&gt; <span class=\"hljs-string\">\"complete\"<\/span>\n==&gt; Evaluation <span class=\"hljs-string\">\"13ebb66d\"<\/span> finished with status <span class=\"hljs-string\">\"complete\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The status of the <span id=\"urn:batch-analysis-d3b2cf79-ca3f-466b-9bbb-7dfa4e9af1d9\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/job\">job<\/span> can be checked at any time by using <code>nomad status example<\/code>. This provides information about a task <strong>allocation<\/strong>, which is the instance of the task itself. Using the allocation ID allows access to all information about the instance of the task in execution:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">$ nomad alloc status <span class=\"hljs-number\">8<\/span>ba85cef\nID                  = <span class=\"hljs-number\">8<\/span>ba85cef\n<span class=\"hljs-keyword\">Eval<\/span> ID             = <span class=\"hljs-number\">13<\/span>ebb66d\nName                = example.cache&#91;<span class=\"hljs-number\">0<\/span>]\nNode ID             = e42d6f19\nJob ID              = example\nJob Version         = <span class=\"hljs-number\">0<\/span>\nClient Status       = running\nClient Description  = \nDesired Status      = run\nDesired Description = \nCreated             = <span class=\"hljs-number\">5<\/span>m ago\nModified            = <span class=\"hljs-number\">5<\/span>m ago     \nDeployment ID       = fa882a5b\nDeployment Health   = healthy\n\nTask <span class=\"hljs-string\">\"redis\"<\/span> is <span class=\"hljs-string\">\"running\"<\/span>\nTask Resources\nCPU        Memory           Disk     Addresses\n<span class=\"hljs-number\">8<\/span>\/<span class=\"hljs-number\">500<\/span> MHz  <span class=\"hljs-number\">6.3<\/span> MiB\/<span class=\"hljs-number\">256<\/span> MiB  <span class=\"hljs-number\">300<\/span> MiB  db: <span class=\"hljs-number\">127.0<\/span><span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.1<\/span>:<span class=\"hljs-number\">22672<\/span>\n\nTask Events:\nStarted At     = <span class=\"hljs-number\">10<\/span>\/<span class=\"hljs-number\">31<\/span>\/<span class=\"hljs-number\">17<\/span> <span class=\"hljs-number\">22<\/span>:<span class=\"hljs-number\">58<\/span>:<span class=\"hljs-number\">49<\/span> UTC\nFinished At    = N\/A\nTotal Restarts = <span class=\"hljs-number\">0<\/span>\nLast Restart   = N\/A\n\nRecent Events:\nTime                   Type        Description\n<span class=\"hljs-number\">10<\/span>\/<span class=\"hljs-number\">31<\/span>\/<span class=\"hljs-number\">17<\/span> <span class=\"hljs-number\">22<\/span>:<span class=\"hljs-number\">58<\/span>:<span class=\"hljs-number\">49<\/span> UTC  Started     Task started by client\n<span class=\"hljs-number\">10<\/span>\/<span class=\"hljs-number\">31<\/span>\/<span class=\"hljs-number\">17<\/span> <span class=\"hljs-number\">22<\/span>:<span class=\"hljs-number\">58<\/span>:<span class=\"hljs-number\">40<\/span> UTC  Driver      Downloading image redis:<span class=\"hljs-number\">3.2<\/span>\n<span class=\"hljs-number\">10<\/span>\/<span class=\"hljs-number\">31<\/span>\/<span class=\"hljs-number\">17<\/span> <span class=\"hljs-number\">22<\/span>:<span class=\"hljs-number\">58<\/span>:<span class=\"hljs-number\">40<\/span> UTC  Task Setup  Building Task Directory\n<span class=\"hljs-number\">10<\/span>\/<span class=\"hljs-number\">31<\/span>\/<span class=\"hljs-number\">17<\/span> <span class=\"hljs-number\">22<\/span>:<span class=\"hljs-number\">58<\/span>:<span class=\"hljs-number\">40<\/span> UTC  Received    Task received by client<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>A task can also be modified while it is running. Once the run is complete, the following commands can be used:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><code>nomad job plan example.nomad<\/code>: to access differences in the modified file;<\/li><li><code>nomad <span id=\"urn:batch-analysis-37f55d94-16ae-466e-89ab-d8a975e7198a\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/job\">job<\/span> run --check-index &lt;ID&gt; example.nomad<\/code>: to check if the task&#8217;s status  has been updated after the <i>plan <\/i>command;<\/li><li><code>nomad <span id=\"urn:batch-analysis-8a9f7062-4e1e-49bc-b7c9-5cd46a7b4245\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/job\">job<\/span> run example.nomad<\/code>: to apply changes.<\/li><\/ul>\n\n\n\n<p>Finally, a task can be stopped by using the stop command.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Nomad Cluster Management<\/h2>\n\n\n\n<p>Where Nomad really shines is in cluster management. Through the <span id=\"urn:enhancement-6fd6c64b\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/command-line_interface\">CLI<\/span> it is very simple to create a cluster adding nodes, thanks to HCL files. These nodes can then be linked to clients using the same <span id=\"urn:enhancement-8af4f027\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/command-line_interface\">CLI<\/span>. Each server can be added within a specific data center (i.e.: <i>dc1<\/i>) and a region, if the user wants to organise a node in a specific geographic area.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/3.png\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p>At <strong>least three to five server nodes<\/strong> are suggested if a <i>high availability cluster<\/i> is desired. When a <span id=\"urn:batch-analysis-123b5cc3-2f9f-4f52-af97-cfe88dcb8c53\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/job\">job<\/span> is submitted, it can also be spanned across all available nodes or only to a specific number of nodes.<\/p>\n\n\n\n<p>A Nomad cluster can also automatically be bootstrapped using <b>Consul<\/b>.<\/p>\n\n\n\n<p>Consul is another HashiCorp product, which helps to create a distributed service mesh that facilitates services discovery, health checking and security. Whether Consul is installed on a server or on a client system, it will start to search for nodes and will automatically search for clusters in most cases. Another advanced <span id=\"urn:batch-analysis-71e186b6-6f12-42a3-8eb0-d7a7c5d8203a\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/feature_machine_learning\">feature<\/span> is <b>multi-region clustering<\/b>: Nomad allows multiple clusters from different regions to work together through built-in federation.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/4.png\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Nomad vs. Kubernetes<\/h2>\n\n\n\n<p>Since Nomad is an orchestrator, the simple question can arise: why should users choose Nomad if they already know or use <span id=\"urn:enhancement-3e88131a\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/kubernetes\">Kubernetes<\/span>?<\/p>\n\n\n\n<p>The first reason for this choice is Nomad&#8217;s ability to work with non-Docker technologies.  If it&#8217;s necessary to run something that cannot be integrated with Docker, Nomad can help with that.<\/p>\n\n\n\n<p>The second reason for making this choice is that Nomad is primarily a tool for scheduling tasks and carrying out cluster management. Nomad can leverage other tools, such as HashiCorp Consul or HashiCorp Vault, to add functionalities. <span id=\"urn:enhancement-d5df9a9e\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/kubernetes\">Kubernetes<\/span> is a much more complete cluster management software, and includes a lot of built-in tools. The choice really depends on what a user needs to do.<\/p>\n\n\n\n<p>Finally, Nomad can be installed easily, using an executable file, whereas Kubernetes requires much more technical <span id=\"urn:batch-analysis-f3c57073-e140-48d8-aa86-3cc742a3cc54\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/knowledge\">knowledge<\/span> to be installed in an on-premises environment.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A new way to manage containers<\/h2>\n\n\n\n<p>To summarise, Nomad is simply an executable file that helps users to schedule tasks and create clusters of nodes. Nomad makes it easy to manage nodes using <span id=\"urn:enhancement-6af606ad\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/command-line_interface\">CLI<\/span>, and to create tasks using HCL. The clustering feature is very advanced and also simple to manage. Nomad&#8217;s lightness allows for very good <span id=\"urn:batch-analysis-78bcc7ca-ba38-4f5d-8dd3-2bfdd72af29c\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/performance\">performance<\/span>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If one wanted to define Nomad (created by HashiCorp), it could be described as a scheduler, but in truth, Nomad is more than that. In this article, we introduce Nomad and try to show how it can be used to simplify the life-cycle management of any type of application, including container-based, legacy and batch applications.&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/backend\/nomad-kubernetes-but-without-the-complexity\/\">Read more<\/a><\/p>\n","protected":false},"author":9,"featured_media":6326,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":5,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[36],"tags":[56],"collections":[],"class_list":{"0":"post-1003","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-backend","8":"tag-kubernetes","9":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Nomad vs Kubernetes without the complexity - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"What is Nomad? Discover this useful tool with an introductory guide that explains how to use it, and the differences between Kubernetes and Docker.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/backend\/nomad-kubernetes-but-without-the-complexity\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Nomad vs Kubernetes without the complexity\" \/>\n<meta property=\"og:description\" content=\"What is Nomad? Discover this useful tool with an introductory guide that explains how to use it, and the differences between Kubernetes and Docker.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/backend\/nomad-kubernetes-but-without-the-complexity\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-13T11:12:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-07-22T09:06:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/science-in-hd-iPrjQEDnNEY-unsplash-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"810\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Antonio Turibbio Liccardi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@turibbio\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Antonio Turibbio Liccardi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/backend\\\/nomad-kubernetes-but-without-the-complexity\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/backend\\\/nomad-kubernetes-but-without-the-complexity\\\/\"},\"author\":{\"name\":\"Antonio Turibbio Liccardi\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/person\\\/7e8f9aade09a4e3ba0ba01c0eaa1a0a0\"},\"headline\":\"Nomad vs Kubernetes without the complexity\",\"datePublished\":\"2020-07-13T11:12:00+00:00\",\"dateModified\":\"2020-07-22T09:06:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/backend\\\/nomad-kubernetes-but-without-the-complexity\\\/\"},\"wordCount\":953,\"publisher\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/backend\\\/nomad-kubernetes-but-without-the-complexity\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/science-in-hd-iPrjQEDnNEY-unsplash-scaled.jpg\",\"keywords\":[\"Kubernetes\"],\"articleSection\":[\"Backend\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/backend\\\/nomad-kubernetes-but-without-the-complexity\\\/\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/backend\\\/nomad-kubernetes-but-without-the-complexity\\\/\",\"name\":\"Nomad vs Kubernetes without the complexity - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/backend\\\/nomad-kubernetes-but-without-the-complexity\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/backend\\\/nomad-kubernetes-but-without-the-complexity\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/science-in-hd-iPrjQEDnNEY-unsplash-scaled.jpg\",\"datePublished\":\"2020-07-13T11:12:00+00:00\",\"dateModified\":\"2020-07-22T09:06:54+00:00\",\"description\":\"What is Nomad? Discover this useful tool with an introductory guide that explains how to use it, and the differences between Kubernetes and Docker.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/backend\\\/nomad-kubernetes-but-without-the-complexity\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/backend\\\/nomad-kubernetes-but-without-the-complexity\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/backend\\\/nomad-kubernetes-but-without-the-complexity\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/science-in-hd-iPrjQEDnNEY-unsplash-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/science-in-hd-iPrjQEDnNEY-unsplash-scaled.jpg\",\"width\":810,\"height\":675},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/backend\\\/nomad-kubernetes-but-without-the-complexity\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Backend\",\"item\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/backend\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Nomad vs Kubernetes without the complexity\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#website\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/codemotionlogo.png\",\"contentUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/Codemotion.Italy\\\/\",\"https:\\\/\\\/x.com\\\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/person\\\/7e8f9aade09a4e3ba0ba01c0eaa1a0a0\",\"name\":\"Antonio Turibbio Liccardi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/71a132e506f96e21890c26c9f5a2c7c95e1650374779bf23a824e7adf5448868?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/71a132e506f96e21890c26c9f5a2c7c95e1650374779bf23a824e7adf5448868?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/71a132e506f96e21890c26c9f5a2c7c95e1650374779bf23a824e7adf5448868?s=96&d=mm&r=g\",\"caption\":\"Antonio Turibbio Liccardi\"},\"description\":\"I'm a book author and trainer working as Cloud Developer and DevOps Engineer at Blexin. I love sharing, so I co-founded \u201cDotNetCampania\u201d (an Italian .NET community), to help other developers to improve their knowledge about .NET Ecosystem and coding in general. I'm also a frequent speaker at conferences, and I've been awared by Microsoft as MVP for Visual Studio Developer Technologies since 2015.\",\"sameAs\":[\"https:\\\/\\\/x.com\\\/turibbio\"],\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/author\\\/antonio-turibbio-liccardi\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Nomad vs Kubernetes without the complexity - Codemotion Magazine","description":"What is Nomad? Discover this useful tool with an introductory guide that explains how to use it, and the differences between Kubernetes and Docker.","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:\/\/www.codemotion.com\/magazine\/backend\/nomad-kubernetes-but-without-the-complexity\/","og_locale":"en_US","og_type":"article","og_title":"Nomad vs Kubernetes without the complexity","og_description":"What is Nomad? Discover this useful tool with an introductory guide that explains how to use it, and the differences between Kubernetes and Docker.","og_url":"https:\/\/www.codemotion.com\/magazine\/backend\/nomad-kubernetes-but-without-the-complexity\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2020-07-13T11:12:00+00:00","article_modified_time":"2020-07-22T09:06:54+00:00","og_image":[{"width":810,"height":675,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/science-in-hd-iPrjQEDnNEY-unsplash-scaled.jpg","type":"image\/jpeg"}],"author":"Antonio Turibbio Liccardi","twitter_card":"summary_large_image","twitter_creator":"@turibbio","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Antonio Turibbio Liccardi","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/backend\/nomad-kubernetes-but-without-the-complexity\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/backend\/nomad-kubernetes-but-without-the-complexity\/"},"author":{"name":"Antonio Turibbio Liccardi","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/7e8f9aade09a4e3ba0ba01c0eaa1a0a0"},"headline":"Nomad vs Kubernetes without the complexity","datePublished":"2020-07-13T11:12:00+00:00","dateModified":"2020-07-22T09:06:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/backend\/nomad-kubernetes-but-without-the-complexity\/"},"wordCount":953,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/backend\/nomad-kubernetes-but-without-the-complexity\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/science-in-hd-iPrjQEDnNEY-unsplash-scaled.jpg","keywords":["Kubernetes"],"articleSection":["Backend"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/backend\/nomad-kubernetes-but-without-the-complexity\/","url":"https:\/\/www.codemotion.com\/magazine\/backend\/nomad-kubernetes-but-without-the-complexity\/","name":"Nomad vs Kubernetes without the complexity - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/backend\/nomad-kubernetes-but-without-the-complexity\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/backend\/nomad-kubernetes-but-without-the-complexity\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/science-in-hd-iPrjQEDnNEY-unsplash-scaled.jpg","datePublished":"2020-07-13T11:12:00+00:00","dateModified":"2020-07-22T09:06:54+00:00","description":"What is Nomad? Discover this useful tool with an introductory guide that explains how to use it, and the differences between Kubernetes and Docker.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/backend\/nomad-kubernetes-but-without-the-complexity\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/backend\/nomad-kubernetes-but-without-the-complexity\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/backend\/nomad-kubernetes-but-without-the-complexity\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/science-in-hd-iPrjQEDnNEY-unsplash-scaled.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/science-in-hd-iPrjQEDnNEY-unsplash-scaled.jpg","width":810,"height":675},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/backend\/nomad-kubernetes-but-without-the-complexity\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Backend","item":"https:\/\/www.codemotion.com\/magazine\/backend\/"},{"@type":"ListItem","position":3,"name":"Nomad vs Kubernetes without the complexity"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/7e8f9aade09a4e3ba0ba01c0eaa1a0a0","name":"Antonio Turibbio Liccardi","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/71a132e506f96e21890c26c9f5a2c7c95e1650374779bf23a824e7adf5448868?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/71a132e506f96e21890c26c9f5a2c7c95e1650374779bf23a824e7adf5448868?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/71a132e506f96e21890c26c9f5a2c7c95e1650374779bf23a824e7adf5448868?s=96&d=mm&r=g","caption":"Antonio Turibbio Liccardi"},"description":"I'm a book author and trainer working as Cloud Developer and DevOps Engineer at Blexin. I love sharing, so I co-founded \u201cDotNetCampania\u201d (an Italian .NET community), to help other developers to improve their knowledge about .NET Ecosystem and coding in general. I'm also a frequent speaker at conferences, and I've been awared by Microsoft as MVP for Visual Studio Developer Technologies since 2015.","sameAs":["https:\/\/x.com\/turibbio"],"url":"https:\/\/www.codemotion.com\/magazine\/author\/antonio-turibbio-liccardi\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/science-in-hd-iPrjQEDnNEY-unsplash-scaled-600x400.jpg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/science-in-hd-iPrjQEDnNEY-unsplash-scaled-600x600.jpg","author_info":{"display_name":"Antonio Turibbio Liccardi","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/antonio-turibbio-liccardi\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/science-in-hd-iPrjQEDnNEY-unsplash-scaled.jpg",810,675,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/science-in-hd-iPrjQEDnNEY-unsplash-scaled-150x150.jpg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/science-in-hd-iPrjQEDnNEY-unsplash-scaled-300x250.jpg",300,250,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/science-in-hd-iPrjQEDnNEY-unsplash-scaled-768x640.jpg",768,640,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/science-in-hd-iPrjQEDnNEY-unsplash-scaled.jpg",810,675,false],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/science-in-hd-iPrjQEDnNEY-unsplash-scaled.jpg",810,675,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/science-in-hd-iPrjQEDnNEY-unsplash-scaled.jpg",810,675,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/science-in-hd-iPrjQEDnNEY-unsplash-scaled.jpg",100,83,false],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/science-in-hd-iPrjQEDnNEY-unsplash-scaled-180x128.jpg",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/science-in-hd-iPrjQEDnNEY-unsplash-scaled-810x504.jpg",810,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/science-in-hd-iPrjQEDnNEY-unsplash-scaled-400x225.jpg",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/science-in-hd-iPrjQEDnNEY-unsplash-scaled-600x400.jpg",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/science-in-hd-iPrjQEDnNEY-unsplash-scaled-600x600.jpg",600,600,true]},"uagb_author_info":{"display_name":"Antonio Turibbio Liccardi","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/antonio-turibbio-liccardi\/"},"uagb_comment_info":0,"uagb_excerpt":"If one wanted to define Nomad (created by HashiCorp), it could be described as a scheduler, but in truth, Nomad is more than that. In this article, we introduce Nomad and try to show how it can be used to simplify the life-cycle management of any type of application, including container-based, legacy and batch applications.&#8230;&hellip;","lang":"en","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/1003","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=1003"}],"version-history":[{"count":10,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/1003\/revisions"}],"predecessor-version":[{"id":15150,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/1003\/revisions\/15150"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/6326"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=1003"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=1003"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=1003"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=1003"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}