{"id":42190,"date":"2016-11-29T11:00:42","date_gmt":"2016-11-29T09:00:42","guid":{"rendered":"http:\/\/examples.javacodegeeks.com\/?p=42190"},"modified":"2019-03-29T14:13:29","modified_gmt":"2019-03-29T12:13:29","slug":"docker-as-a-service","status":"publish","type":"post","link":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/","title":{"rendered":"Docker as a Service"},"content":{"rendered":"<p>In the previous posts we learned about <a href=\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-hello-world-example\/\">Docker<\/a>, <a href=\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-container-use-docker\/\">containers<\/a>, and <a href=\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/connect-docker-container-example\/\">working with containers<\/a>, In this post we will learn about Containers as a Service (CaaS) in general and how Docker realizes CaaS.<\/p>\n<h2>1. Why Docker as a Service?<\/h2>\n<p>Take a typical developer work-flow involving Docker. It will be typically as below. This is based on the reference workflow provided in the <a href=\"https:\/\/docs.docker.com\/\">Docker docs<\/a>.<br \/>\n&nbsp;<br \/>\n&nbsp;<\/p>\n<p><figure id=\"attachment_42199\" aria-describedby=\"caption-attachment-42199\" style=\"width: 860px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/11\/docker-workflow-1.png\"><img decoding=\"async\" class=\"size-full wp-image-42199\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/11\/docker-workflow-1.png\" alt=\"A typical Docker workflow\" width=\"860\" height=\"660\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/11\/docker-workflow-1.png 860w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/11\/docker-workflow-1-300x230.png 300w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/11\/docker-workflow-1-768x589.png 768w\" sizes=\"(max-width: 860px) 100vw, 860px\" \/><\/a><figcaption id=\"caption-attachment-42199\" class=\"wp-caption-text\">A typical Docker workflow<\/figcaption><\/figure><\/p>\n<p>As you can see from the above workflow, there is quite some IT activity to be performed if Docker is used for app development at scale in an organization.<\/p>\n<ul>\n<li>Infrastructure to host Docker containers and all the other related tools provided by Docker.<\/li>\n<li>Provide compute, storage and networking for the containers as needed.<\/li>\n<li>Application lifecycle support and tooling.<\/li>\n<li>Monitor utilization of compute, storage and networking and stop\/start containers as needed.<\/li>\n<li>Address scaling needs of the containers. Handle orchestration of containers at enterprise scale.<\/li>\n<\/ul>\n<p>These issues are significant at enterprise scale. The existing solution has been for administrators to use infrastructure-as-a-service (IaaS) like Amazon&#8217;s AWS EC2 and handle the above issues manually or through home-built tools. However, Docker now provides the <a href=\"https:\/\/blog.docker.com\/2016\/02\/containers-as-a-service-caas\/\">Docker container-as-a-service<\/a> to address the above issues.<br \/>\n<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<h2>2. Container as a Service (CaaS)<\/h2>\n<p>So, what is CaaS?&nbsp; It is a cloud service model that enables users to order and use containerization infrastructure from a cloud provider using a pay-as-you-go model.&nbsp; Docker CaaS is an example.&nbsp; <a href=\"https:\/\/aws.amazon.com\/ecs\/\">Amazon EC2 Container Service (ECS)<\/a> by AWS is another example.<\/p>\n<p>As a cloud service model, CaaS probably sits as a subset of IaaS in that it enables a container-based infrastructure for it&#8217;s users.&nbsp; A CaaS offering usually seeks to provide the following features to it&#8217;s users.<\/p>\n<ul>\n<li>Manage containers through an API or web interface.<\/li>\n<li>Monitor compute, storage and network resources used by the containers.<\/li>\n<li>Provide cluster management and orchestration capabilities for containers.<\/li>\n<li>Provide security and governance controls.<\/li>\n<li>Optionally, be cloud agnostic so that the CaaS can be shifted across cloud providers or from in-premises to cloud.<\/li>\n<\/ul>\n<h2>3. Docker CaaS<\/h2>\n<p>Docker&#8217;s CaaS offering called <a href=\"https:\/\/www.docker.com\/products\/docker-datacenter\">Docker Datacenter<\/a> packages Docker&#8217;s tools to provide developers and IT with a consistent container infrastructure.&nbsp; This is a commercial offering aimed at enterprises and provides the following features.[ulp id=&#8217;6PVIvOz3kDbYmNRn&#8217;]<\/p>\n<ul>\n<li>Brings well known open source Docker tools under a CaaS umbrella &#8211; <a href=\"https:\/\/www.docker.com\/products\/docker-engine\">Docker Engine<\/a>, <a href=\"https:\/\/docs.docker.com\/compose\">Docker Compose<\/a>, <a href=\"https:\/\/docs.docker.com\/registry\/\">Docker registry<\/a>, <a href=\"https:\/\/docs.docker.com\/swarm\">Docker Swarm<\/a>.<\/li>\n<li>Adds commercial offerings &#8211; Universal Control Pane and Trusted Registry.<\/li>\n<li>Ability to deploy the CaaS in-premises or cloud.<\/li>\n<li>A private trusted docker registry for managing images.<\/li>\n<li>Cluster management and orchestration capabilities through Swarm and Universal Control Pane.<\/li>\n<li>Tools for the application development lifecycle, continuous integration and deployment.<\/li>\n<li>Provides security in the application lifecycle all the way from from dev to production stages.<\/li>\n<\/ul>\n<p>Refer to the <a href=\"https:\/\/www.docker.com\/products\/docker-datacenter\">Docker Datacenter<\/a> pages by Docker for more information about providing Docker as a service.<\/p>\n<h2>4. Summary<\/h2>\n<p>In this short post, we understood the need for a &#8220;Docker-as-a-service&#8221; solution to handle containerized application development needs at scale for an organizations.&nbsp; We briefly understood the features provided by a CaaS service in general.&nbsp; Then we briefly discussed Docker&#8217;s CaaS offering called the Docker Datacenter that offers Dockers tools as a service to developers and IT administrators.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the previous posts we learned about Docker, containers, and working with containers, In this post we will learn about Containers as a Service (CaaS) in general and how Docker realizes CaaS. 1. Why Docker as a Service? Take a typical developer work-flow involving Docker. It will be typically as below. This is based on &hellip;<\/p>\n","protected":false},"author":103,"featured_media":31013,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1354],"tags":[1618,1619],"class_list":["post-42190","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-docker","tag-caas","tag-containers-as-a-service"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Docker as a Service - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"If you are new to Dociker, this post introduces the term &quot;Containers as a Service&quot; in general and see a brief introduction about how Docker realizes this.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Docker as a Service - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"If you are new to Dociker, this post introduces the term &quot;Containers as a Service&quot; in general and see a brief introduction about how Docker realizes this.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/\" \/>\n<meta property=\"og:site_name\" content=\"Examples Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2016-11-29T09:00:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-03-29T12:13:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Hariharan Narayanan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Hariharan Narayanan\" \/>\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:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/\"},\"author\":{\"name\":\"Hariharan Narayanan\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/780d96edfe3bce18c5440613fa88bce3\"},\"headline\":\"Docker as a Service\",\"datePublished\":\"2016-11-29T09:00:42+00:00\",\"dateModified\":\"2019-03-29T12:13:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/\"},\"wordCount\":549,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg\",\"keywords\":[\"caas\",\"containers as a service\"],\"articleSection\":[\"Docker\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/\",\"name\":\"Docker as a Service - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg\",\"datePublished\":\"2016-11-29T09:00:42+00:00\",\"dateModified\":\"2019-03-29T12:13:29+00:00\",\"description\":\"If you are new to Dociker, this post introduces the term \\\"Containers as a Service\\\" in general and see a brief introduction about how Docker realizes this.\",\"breadcrumb\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/#primaryimage\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/examples.javacodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DevOps\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/devops\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Docker\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/devops\/docker\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Docker as a Service\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#website\",\"url\":\"https:\/\/examples.javacodegeeks.com\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Examples and Code Snippets\",\"publisher\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/examples.javacodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/examples.javacodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/javacodegeeks\",\"https:\/\/x.com\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/780d96edfe3bce18c5440613fa88bce3\",\"name\":\"Hariharan Narayanan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/10\/Hariharan-Narayanan-96x96.jpg\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/10\/Hariharan-Narayanan-96x96.jpg\",\"caption\":\"Hariharan Narayanan\"},\"description\":\"Hari graduated from the School of Computer and Information Sciences in the University of Hyderabad. Over his career he has been involved in many complex projects in mobile applications, enterprise applications, distributed applications, micro-services, and other platforms and frameworks. He works as a consultant and is mainly involved with projects based on Java, C++ and Big Data technologies.\",\"sameAs\":[\"https:\/\/www.javacodegeeks.com\"],\"url\":\"https:\/\/examples.javacodegeeks.com\/author\/hariharan-narayanan\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Docker as a Service - Java Code Geeks","description":"If you are new to Dociker, this post introduces the term \"Containers as a Service\" in general and see a brief introduction about how Docker realizes this.","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:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/","og_locale":"en_US","og_type":"article","og_title":"Docker as a Service - Java Code Geeks","og_description":"If you are new to Dociker, this post introduces the term \"Containers as a Service\" in general and see a brief introduction about how Docker realizes this.","og_url":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/","og_site_name":"Examples Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2016-11-29T09:00:42+00:00","article_modified_time":"2019-03-29T12:13:29+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg","type":"image\/jpeg"}],"author":"Hariharan Narayanan","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Hariharan Narayanan","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/#article","isPartOf":{"@id":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/"},"author":{"name":"Hariharan Narayanan","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/780d96edfe3bce18c5440613fa88bce3"},"headline":"Docker as a Service","datePublished":"2016-11-29T09:00:42+00:00","dateModified":"2019-03-29T12:13:29+00:00","mainEntityOfPage":{"@id":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/"},"wordCount":549,"commentCount":0,"publisher":{"@id":"https:\/\/examples.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/#primaryimage"},"thumbnailUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg","keywords":["caas","containers as a service"],"articleSection":["Docker"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/","url":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/","name":"Docker as a Service - Java Code Geeks","isPartOf":{"@id":"https:\/\/examples.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/#primaryimage"},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/#primaryimage"},"thumbnailUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg","datePublished":"2016-11-29T09:00:42+00:00","dateModified":"2019-03-29T12:13:29+00:00","description":"If you are new to Dociker, this post introduces the term \"Containers as a Service\" in general and see a brief introduction about how Docker realizes this.","breadcrumb":{"@id":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/#primaryimage","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-as-a-service\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/examples.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"DevOps","item":"https:\/\/examples.javacodegeeks.com\/category\/devops\/"},{"@type":"ListItem","position":3,"name":"Docker","item":"https:\/\/examples.javacodegeeks.com\/category\/devops\/docker\/"},{"@type":"ListItem","position":4,"name":"Docker as a Service"}]},{"@type":"WebSite","@id":"https:\/\/examples.javacodegeeks.com\/#website","url":"https:\/\/examples.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Examples and Code Snippets","publisher":{"@id":"https:\/\/examples.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/examples.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/examples.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/examples.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/780d96edfe3bce18c5440613fa88bce3","name":"Hariharan Narayanan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/10\/Hariharan-Narayanan-96x96.jpg","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/10\/Hariharan-Narayanan-96x96.jpg","caption":"Hariharan Narayanan"},"description":"Hari graduated from the School of Computer and Information Sciences in the University of Hyderabad. Over his career he has been involved in many complex projects in mobile applications, enterprise applications, distributed applications, micro-services, and other platforms and frameworks. He works as a consultant and is mainly involved with projects based on Java, C++ and Big Data technologies.","sameAs":["https:\/\/www.javacodegeeks.com"],"url":"https:\/\/examples.javacodegeeks.com\/author\/hariharan-narayanan\/"}]}},"_links":{"self":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/42190","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/users\/103"}],"replies":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=42190"}],"version-history":[{"count":0,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/42190\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/media\/31013"}],"wp:attachment":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=42190"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=42190"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=42190"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}