{"id":11231,"date":"2017-05-09T13:21:11","date_gmt":"2017-05-09T07:51:11","guid":{"rendered":"https:\/\/coforge.site\/cigniti\/blog\/?p=11231"},"modified":"2024-07-15T14:03:28","modified_gmt":"2024-07-15T08:33:28","slug":"need-use-dockers-ci-cd","status":"publish","type":"post","link":"https:\/\/coforge.site\/cigniti\/blog\/need-use-dockers-ci-cd\/","title":{"rendered":"How and Why You Need to Use Dockers In CI &#038; CD"},"content":{"rendered":"<p><span data-contrast=\"auto\">Docker has become an early adopter of continuous integration and continuous deployment. By leveraging the proper integration with source code control mechanisms such as GIT, Jenkins can initiate a build process each time a developer commits his code. This process results in a new Docker Image, instantly available across the environment. Considering this, the question emerges: \u2018Why use Docker?\u2019 It helps accelerate teams to quickly build, share, and deploy their application using Docker images.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:278}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Purpose: Automated provisioning of environments\/infrastructure with self-serviced <\/span><a href=\"https:\/\/coforge.site\/cigniti\/blog\/retail-automated-testing\/\"><span data-contrast=\"none\">automated tools depending on the development\/IT needs<\/span><\/a><span data-contrast=\"auto\">.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:278}\">\u00a0<\/span><\/p>\n<h2 aria-level=\"2\"><span data-contrast=\"none\">Challenges faced by Organizations:<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335559738&quot;:160,&quot;335559739&quot;:80,&quot;335559740&quot;:278}\">\u00a0<\/span><\/h2>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">Unavailability of environments<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:278}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">Lack of environment configuration skill sets<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:278}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span data-contrast=\"auto\">High lead time in environment provisioning<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:278}\">\u00a0<\/span><\/li>\n<\/ul>\n<h2 aria-level=\"2\"><span data-contrast=\"none\">What is Continuous Integration?<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335559738&quot;:160,&quot;335559739&quot;:80,&quot;335559740&quot;:278}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">It is a development practice where developers integrate code into a shared repository several times daily, which supports integrating new functionality with the existing code. This integrated code also ensures no errors in the runtime environment, allowing us to check how it reacts to other changes.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:278}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">The most popular tool for <\/span><a href=\"https:\/\/coforge.site\/cigniti\/blog\/implementing-continuous-integration-testing-for-software-products-2\/\"><span data-contrast=\"none\">continuous integration<\/span><\/a><span data-contrast=\"auto\"> is \u201cJenkins\u201d while GIT is used for the Source Control Repository. Jenkins can pull the latest code revision from the GIT repository and produce a build that can be deployed to a server.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:278}\">\u00a0<\/span><\/p>\n<h2 aria-level=\"2\"><span data-contrast=\"none\">What is Continuous Delivery?<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335559738&quot;:160,&quot;335559739&quot;:80,&quot;335559740&quot;:278}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">Continuous Delivery is the capability to deploy the software to any environment at any given time, including binaries, configuration, and environment changes, if any.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:278}\">\u00a0<\/span><\/p>\n<h2 aria-level=\"2\"><span data-contrast=\"none\">What is Continuous Deployment?<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335559738&quot;:160,&quot;335559739&quot;:80,&quot;335559740&quot;:278}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">Continuous Deployment is an approach in which the development teams release software in short cycles. Any change a developer makes is deployed to production.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:278}\">\u00a0<\/span><\/p>\n<p aria-level=\"2\"><span data-contrast=\"none\">Why use Docker?<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335559738&quot;:160,&quot;335559739&quot;:80,&quot;335559740&quot;:278}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Docker is a Containerization platform that packages the application and all its dependencies together in a Container to <\/span><a href=\"https:\/\/coforge.site\/cigniti\/blog\/ensure-seamless-salesforce-implementation-enterprises\/\"><span data-contrast=\"none\">ensure that the application works seamlessly<\/span><\/a><span data-contrast=\"auto\"> in any environment.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:278}\">\u00a0<\/span><\/p>\n<h2 aria-level=\"2\"><span data-contrast=\"none\">How does a Docker help in CI\/CD?<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335559738&quot;:160,&quot;335559739&quot;:80,&quot;335559740&quot;:278}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">Dockers help developers build and test their code in any environment to catch bugs early in the application development life cycle. CI\/CD with Dockers helps streamline the process, saves time on builds, and allows developers to run tests in parallel.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:278}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Dockers can integrate with source control management tools like GitHub and Integration tools like Jenkins. Developers submit the code to GitHub and test the code that automatically triggers a build using Jenkins, creating an image. This image can be added to the Docker registry for inconsistencies between different environment types.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:278}\">\u00a0<\/span><\/p>\n<p aria-level=\"3\"><span data-contrast=\"none\">Technical Solution<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335559738&quot;:160,&quot;335559739&quot;:80,&quot;335559740&quot;:278}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Typical <\/span><a href=\"https:\/\/coforge.site\/cigniti\/blog\/continuous-integration-5-best-practices-best-tools-benefits\/\"><span data-contrast=\"none\">Continuous Integration<\/span><\/a><span data-contrast=\"auto\"> without Docker involved:<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:278}\">\u00a0<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-11232\" src=\"https:\/\/coforge.site\/cigniti\/blog\/wp-content\/uploads\/Technical-Solution.png\" alt=\"\" width=\"751\" height=\"183\" srcset=\"https:\/\/coforge.site\/cigniti\/blog\/wp-content\/uploads\/Technical-Solution.png 835w, https:\/\/coforge.site\/cigniti\/blog\/wp-content\/uploads\/Technical-Solution-500x122.png 500w, https:\/\/coforge.site\/cigniti\/blog\/wp-content\/uploads\/Technical-Solution-768x187.png 768w, https:\/\/coforge.site\/cigniti\/blog\/wp-content\/uploads\/Technical-Solution-600x146.png 600w\" sizes=\"(max-width: 751px) 100vw, 751px\" \/><\/p>\n<p><span class=\"TextRun SCXW102035688 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW102035688 BCX0\">Developers commit the code to their repository, which usually triggers a build on a Continuous Integration Server. The build process might differ depending on your application, but normally, you <\/span><span class=\"NormalTextRun SCXW102035688 BCX0\">Compile, run Test Cases, Build the application, and then Deploy the app to<\/span><span class=\"NormalTextRun SCXW102035688 BCX0\"> an Application Server.<\/span><\/span><\/p>\n<p><strong>Continuous Integration with Docker<\/strong><strong><br \/>\n<img decoding=\"async\" class=\"aligncenter size-full wp-image-11233\" src=\"https:\/\/coforge.site\/cigniti\/blog\/wp-content\/uploads\/Continuous-Integration-with-Docker.png\" alt=\"\" width=\"849\" height=\"221\" srcset=\"https:\/\/coforge.site\/cigniti\/blog\/wp-content\/uploads\/Continuous-Integration-with-Docker.png 849w, https:\/\/coforge.site\/cigniti\/blog\/wp-content\/uploads\/Continuous-Integration-with-Docker-500x130.png 500w, https:\/\/coforge.site\/cigniti\/blog\/wp-content\/uploads\/Continuous-Integration-with-Docker-768x200.png 768w, https:\/\/coforge.site\/cigniti\/blog\/wp-content\/uploads\/Continuous-Integration-with-Docker-600x156.png 600w\" sizes=\"(max-width: 849px) 100vw, 849px\" \/><\/strong><\/p>\n<p><span data-contrast=\"auto\">One method to integrate Docker into the CI process is to have the CI server build the Docker Image after it has built the application. The application goes inside the image, which is then pushed to the Docker hub. On another host, either in a QA\/Dev\/Production environment, pull the nearly completed build from the Docker Hub and run the Container to run your application. You could even complete your compilation and testing on the CI server as part of the image build.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:278}\">\u00a0<\/span><\/p>\n<h2 aria-level=\"2\"><span data-contrast=\"none\">Benefits<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335559738&quot;:160,&quot;335559739&quot;:80,&quot;335559740&quot;:278}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">Following are a few benefits that you will experience:<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:278}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">Nullify the issue of inconsistent environment setups<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:278}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">Any machine that is running a Docker can use a Docker Image<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:278}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span data-contrast=\"auto\">Save time on build and set-up processes<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:278}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"4\" data-aria-level=\"1\"><span data-contrast=\"auto\">Allow developers to run tests in parallel<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:278}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"5\" data-aria-level=\"1\"><span data-contrast=\"auto\">Separation of concerns in DevOps: developers can focus on developing apps, and system administrators can focus on deployment<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:278}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"6\" data-aria-level=\"1\"><span data-contrast=\"auto\">Improved Version Control by committing changes to your Docker images for standardizing environments<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:278}\">\u00a0<\/span><\/li>\n<\/ul>\n<h2 aria-level=\"2\"><span data-contrast=\"none\">Conclusion<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335559738&quot;:160,&quot;335559739&quot;:80,&quot;335559740&quot;:278}\">\u00a0<\/span><\/h2>\n<p><a href=\"https:\/\/www.cigniti.com\/services\/continuous-testing-devops\/\" class=\"broken_link\" target=\"_blank\" rel=\"noopener\"><span data-contrast=\"none\">Continuous Testing<\/span><\/a><span data-contrast=\"none\">\u202fis a development practice where developers must continuously integrate the code into a shared repository during a day\u2019s test plan. Automated builds are created to allow development\u202f<\/span><a href=\"https:\/\/coforge.site\/cigniti\/blog\/colocated-testing-teams-what-are-they-and-how-do-i-benefit\/\"><span data-contrast=\"none\">teams to detect problems that verify each test<\/span><\/a><span data-contrast=\"none\">. If a continuous approach is not followed, integrations and fixing errors will take longer and be painful.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:2,&quot;335557856&quot;:16777215,&quot;335559738&quot;:0,&quot;335559739&quot;:300,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">Continuous integration and deployment are simplified and stabilized using CI\/CD with Dockers in organizations to improve the agility of software development processes. The lightweight nature of Docker containers with faster spun-up helps rapid test cycles. The best CI for Docker helps users with consistent, repeatable processes for quickly creating production-like environments.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:2,&quot;335557856&quot;:16777215,&quot;335559738&quot;:0,&quot;335559739&quot;:300,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">Cigniti\u2019s Test Automation Accelerator Kit has been enabling end-to-end automation of applications across the SDLC to bring speed to market and enhance the quality of testing. Connect with our\u202f<\/span><a href=\"https:\/\/www.cigniti.com\/services\/test-automation\/\" target=\"_blank\" rel=\"noopener\"><span data-contrast=\"none\">Test Automation leads<\/span><\/a><span data-contrast=\"none\">\u202fto build QA best practices and gain quality with speed.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:2,&quot;335557856&quot;:16777215,&quot;335559738&quot;:0,&quot;335559739&quot;:300,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Docker has become an early adopter of continuous integration and continuous deployment. By leveraging the proper integration with source code control mechanisms such as GIT, Jenkins can initiate a build process each time a developer commits his code. This process results in a new Docker Image, instantly available across the environment. Considering this, the question [&hellip;]<\/p>\n","protected":false},"author":32,"featured_media":11237,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[735,38],"tags":[1840,974,246,1842,1841,1839],"ppma_author":[3756],"class_list":["post-11231","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops-testing","category-software-testing","tag-cicd-with-docker-cloud","tag-continuous-deployment","tag-continuous-integration","tag-docker-continuous-deployment","tag-docker-continuous-integration","tag-stages-of-ci-and-cd"],"authors":[{"term_id":3756,"user_id":32,"is_guest":0,"slug":"vittalkovuru","display_name":"Vittal Kovuru","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/0784e9c4840770640bf6ded8f644a0457e85c9ae5376cfb7770fb02f920ac799?s=96&d=mm&r=g","author_category":"","user_url":"http:\/\/www.cigniti.com\/","last_name":"Kovuru","first_name":"Vittal","job_title":"","description":"Vittal currently works as a Sr. Consultant for Test Advisory and Transformation Services at Gallop Solutions., A dynamic professional with 13+ years of experience in Software Testing Delivery &amp; Consulting. He has extensive experience in delivering Agile and Waterfall projects and setting up Test Centers of Excellence (TCoE), Test Management, Process Improvement, &amp; Testing Delivery."}],"_links":{"self":[{"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/posts\/11231","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/users\/32"}],"replies":[{"embeddable":true,"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/comments?post=11231"}],"version-history":[{"count":0,"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/posts\/11231\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/media\/11237"}],"wp:attachment":[{"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/media?parent=11231"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/categories?post=11231"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/tags?post=11231"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/ppma_author?post=11231"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}