{"id":10334,"date":"2019-08-13T11:47:50","date_gmt":"2019-08-13T11:47:50","guid":{"rendered":"https:\/\/www.bacancytechnology.com\/blog\/?p=10334"},"modified":"2024-03-04T04:26:35","modified_gmt":"2024-03-04T04:26:35","slug":"continuous-integration-and-continuous-deployment-a-gentle-introduction-of-ci-cd","status":"publish","type":"post","link":"https:\/\/www.bacancytechnology.com\/blog\/continuous-integration-and-continuous-deployment","title":{"rendered":"Continuous Integration &#038; Continuous Deployment: A Gentle Introduction"},"content":{"rendered":"<p>Hola, being a software developer, you must be familiar with the term CI\/CD, but do you know what does it mean?  As defined in <a href=\"https:\/\/en.wikipedia.org\/wiki\/CI\/CD#targetText=In%20software%20engineering%2C%20CI%2FCD,delivery%20and%2For%20continuous%20deployment.\" rel=\"nofollow noopener\" target=\"_blank\">Wikipedia<\/a>, <strong>CI\/CD is referred to as the combined practices of continuous integration and continuous delivery and\/or continuous deployment<\/strong>.<\/p>\n<p>Today most of the organizations are adopting Agile and follow sprints. Sprint includes tickets and developer are required to write codes to resolve the issue of those tickets. Sometimes we need to HotFix some bugs on production which are not part of tickets for that we also need to write codes and deploy them as well. You will be surprised to know that <strong>Amazon\u2019s software engineers are deploying code every 11.7 seconds on average with almost zero downtime, on the other hand, Netflix developers are deploying code thousands of times a day<\/strong>.<\/p>\n<p>CI stands for Continuous Integration and CD stands for Continuous Deployment. Let\u2019s have a look in detail. <\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2019\/08\/image1-18.png\" alt=\"Ci and CD stands\" width=\"450\" height=\"225\" class=\"aligncenter size-full wp-image-10335\" srcset=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2019\/08\/image1-18.png 450w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2019\/08\/image1-18-300x150.png 300w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2019\/08\/image1-18-20x10.png 20w\" sizes=\"auto, (max-width: 450px) 100vw, 450px\" \/><\/p>\n<h2>1.Continuous Integration (CI):<\/h2>\n<p>As word describe CI integrate code into a shared repository several times a day. With each branch push on shared repository branches, i.e., <strong>\u201cgit push\u2026. \u201c<\/strong>this will check and verify by an automated Test and build, allowing development teams to identify problems early before code is going to deploy on the production server.<\/p>\n<p>Let assume what if we are performing code integration regularly, by doing this, we can detect errors\/bugs more quickly, and It\u2019s too easy to find the code which causes issue\/error. <\/p>\n<p><strong>CI work-flow consists of three different stages:<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2019\/08\/image3-8.png\" alt=\"Push\" width=\"297\" height=\"287\" class=\"aligncenter size-full wp-image-10336\" \/><\/p>\n<h2>2.Continuous Deployment (CD):<\/h2>\n<p>Deployment plays a major role in <strong>SDLC<\/strong>; word \u201cdeployment\u201d hurts because every time we perform deployment, <strong>the stability of the application is at risk<\/strong>, that\u2019s the reason we are keeping <strong>distance between deployments<\/strong>. <\/p>\n<p>Generally the issue we face on the above case is if we deploy 10 changes on production and out of 10, 9 is working fine and 1 is having some minor bug, so in this case, we need to rollback all the 10 changes, and <strong>after fixing it, we are required to deploy again<\/strong>. Even if the changes are made by a dev team of 50 members then troubleshooting for bug code is also a headache.  <\/p>\n<p>As a solution of the above approach is Continuous Delivery, the CD is having the ability to get all types of changes such as new features, configuration changes and fix bugs into production, <strong>without affecting application stability and live users<\/strong> operations. That&#8217;s cool, isn&#8217;t it! CD ensures that your code is always production-ready!<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2019\/08\/image2-10.png\" alt=\"Continuous deplyment\" width=\"297\" height=\"287\" class=\"aligncenter size-full wp-image-10338\" \/><\/p>\n<h2>CI\/CD Tools<\/h2>\n<ul class=\"bullets\">\n<li><a href=\"https:\/\/github.blog\/2019-08-08-github-actions-now-supports-ci-cd\/\" rel=\"nofollow noopener\" target=\"_blank\">GitHub CI\/CD<\/a><\/li>\n<li><a href=\"https:\/\/circleci.com\/\" rel=\"nofollow noopener\" target=\"_blank\">CircleCI<\/a><\/li>\n<li><a href=\"https:\/\/jenkins.io\/\" rel=\"nofollow noopener\" target=\"_blank\">Jenkins<\/a><\/li>\n<li><a href=\"https:\/\/about.gitlab.com\/product\/continuous-integration\/\" rel=\"nofollow noopener\" target=\"_blank\">GitLab CI<\/a><\/li>\n<li><a href=\"https:\/\/travis-ci.org\/\" rel=\"nofollow noopener\" target=\"_blank\">Travis CI<\/a><\/li>\n<li><a href=\"https:\/\/www.gocd.org\/\" rel=\"nofollow noopener\" target=\"_blank\">GO-CD<\/a><\/li>\n<\/ul>\n<p>There are lots of tools available to CI\/CD, so far hopefully now you have a better idea of these terms and their role as well. What you need to take care of is, ensure your existing development workflow is modernized and take this consideration in mind when it comes to working on upcoming projects. I would like to recommend you to pick up a CI\/CD tool and introduce it to one of your existing projects or create a sample project with CI\/CD. <strong>Many of the above tools are free for trial, and you can take advantage of those tools<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hola, being a software developer, you must be familiar with the term CI\/CD, but do you know what does it mean? As defined in Wikipedia, CI\/CD is referred to as the combined practices of continuous integration and continuous delivery and\/or continuous deployment. Today most of the organizations are adopting Agile and follow sprints. Sprint includes [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":10344,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"_lmt_disableupdate":"no","_lmt_disable":"","footnotes":""},"categories":[1264],"tags":[],"coauthors":[1565],"class_list":["post-10334","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology-news"],"acf":[],"modified_by":"Chandresh Patel","_links":{"self":[{"href":"https:\/\/www.bacancytechnology.com\/blog\/wp-json\/wp\/v2\/posts\/10334","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bacancytechnology.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bacancytechnology.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bacancytechnology.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bacancytechnology.com\/blog\/wp-json\/wp\/v2\/comments?post=10334"}],"version-history":[{"count":0,"href":"https:\/\/www.bacancytechnology.com\/blog\/wp-json\/wp\/v2\/posts\/10334\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bacancytechnology.com\/blog\/wp-json\/wp\/v2\/media\/10344"}],"wp:attachment":[{"href":"https:\/\/www.bacancytechnology.com\/blog\/wp-json\/wp\/v2\/media?parent=10334"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bacancytechnology.com\/blog\/wp-json\/wp\/v2\/categories?post=10334"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bacancytechnology.com\/blog\/wp-json\/wp\/v2\/tags?post=10334"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.bacancytechnology.com\/blog\/wp-json\/wp\/v2\/coauthors?post=10334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}