{"id":6341,"date":"2017-11-11T22:36:56","date_gmt":"2017-11-11T22:36:56","guid":{"rendered":"http:\/\/www.jitendrazaa.com\/blog\/?p=6341"},"modified":"2017-11-11T22:39:10","modified_gmt":"2017-11-11T22:39:10","slug":"continuous-integration-vs-continuous-delivery-vs-continuous-deployment","status":"publish","type":"post","link":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/continuous-integration-vs-continuous-delivery-vs-continuous-deployment\/","title":{"rendered":"Continuous Integration vs. Continuous Delivery vs. Continuous Deployment"},"content":{"rendered":"<p style=\"text-align: justify;\">I have written <a href=\"https:\/\/www.jitendrazaa.com\/blog\/tag\/continuous-integration\/\">many posts<\/a> about Continuous Integrations and implemented many projects with capability of Continuous Delivery. However multiple times got into discussion on what exactly is <strong>difference between Continuous Integration,\u00a0Continuous Delivery and\u00a0Continuous Deployment<\/strong>. As <a href=\"https:\/\/www.jitendrazaa.com\/blog\/tag\/sfdx\/\">SFDX<\/a> is new way to develop and deploy changes in Salesforce, just thought to post a small post on basic difference between these terms.<\/p>\n<h5>Continuous Integration<\/h5>\n<p style=\"text-align: justify;\">Continuous Integration is automated build scripts to detect changes in Source Code Management (SCM) like Git. Once the change is detected, source code would be deployed to common dedicated build server (Sandbox) to make sure build is not failing and all test classes and integration tests are running fine.<!--more--><\/p>\n<p style=\"text-align: justify;\">In most of projects, multiple developers works in different sandboxes. They will move their changes multiple times in a day to Git branch. On code change detection, SCM code would be built against dedicated build server. Once changes deployed, test classes and integration tests would automatically initiated to make sure latest code change in Git didn&#8217;t broke anything.<\/p>\n<figure id=\"attachment_6344\" aria-describedby=\"caption-attachment-6344\" style=\"width: 816px\" class=\"wp-caption aligncenter\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-6344\" src=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/11\/Continuous-Integration.png?resize=816%2C248&#038;ssl=1\" alt=\"Continuous Integration\" width=\"816\" height=\"248\" srcset=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/11\/Continuous-Integration.png?w=816&amp;ssl=1 816w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/11\/Continuous-Integration.png?resize=300%2C91&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/11\/Continuous-Integration.png?resize=768%2C233&amp;ssl=1 768w\" sizes=\"auto, (max-width: 816px) 100vw, 816px\" \/><figcaption id=\"caption-attachment-6344\" class=\"wp-caption-text\">Continuous Integration<\/figcaption><\/figure>\n<h5>Continuous Delivery<\/h5>\n<p style=\"text-align: justify;\">Continuous Delivery is <strong>Continuous Integration + Automated Acceptance Testing + Manual way\/step to deploy to production<\/strong>.<\/p>\n<figure id=\"attachment_6345\" aria-describedby=\"caption-attachment-6345\" style=\"width: 998px\" class=\"wp-caption aligncenter\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-6345\" src=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/11\/Continuous-Delivery.png?resize=998%2C259&#038;ssl=1\" alt=\"Continuous Delivery\" width=\"998\" height=\"259\" srcset=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/11\/Continuous-Delivery.png?w=998&amp;ssl=1 998w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/11\/Continuous-Delivery.png?resize=300%2C78&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/11\/Continuous-Delivery.png?resize=768%2C199&amp;ssl=1 768w\" sizes=\"auto, (max-width: 998px) 100vw, 998px\" \/><figcaption id=\"caption-attachment-6345\" class=\"wp-caption-text\">Continuous Delivery<\/figcaption><\/figure>\n<h5>Continuous Deployment<\/h5>\n<p style=\"text-align: justify;\">Continuous Deployment is <strong>Continuous Integration + Automated Acceptance Testing + Automated deploy to production<\/strong>.<\/p>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_6347\" aria-describedby=\"caption-attachment-6347\" style=\"width: 998px\" class=\"wp-caption aligncenter\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-6347\" src=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/11\/Continuous-Deployment.png?resize=998%2C259&#038;ssl=1\" alt=\"Continuous Deployment\" width=\"998\" height=\"259\" srcset=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/11\/Continuous-Deployment.png?w=998&amp;ssl=1 998w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/11\/Continuous-Deployment.png?resize=300%2C78&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/11\/Continuous-Deployment.png?resize=768%2C199&amp;ssl=1 768w\" sizes=\"auto, (max-width: 998px) 100vw, 998px\" \/><figcaption id=\"caption-attachment-6347\" class=\"wp-caption-text\">Continuous Deployment<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Difference between Continuous Integration vs. Continuous Delivery vs. Continuous Deployment<\/p>\n","protected":false},"author":1,"featured_media":6343,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"jz_research_post":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[9],"tags":[429,430,294],"class_list":["post-6341","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-salesforce","tag-continuous-delivery","tag-continuous-deployment","tag-continuous-integration"],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/11\/Continuous-Integration-vs.-Continuous-Delivery-vs.-Continuous-Deployment.png?fit=1002%2C766&ssl=1","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":4584,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/continuous-integration-in-salesforce-using-flosum-appexchange\/","url_meta":{"origin":6341,"position":0},"title":"Continuous Integration in Salesforce using Flosum AppExchange","author":"Jitendra","date":"June 22, 2015","format":false,"excerpt":"Native Force.com solution for Continuous Integration using AppExchange product Flosum","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"Flosum AppExchange","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/06\/Flosum-AppExchange.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/06\/Flosum-AppExchange.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/06\/Flosum-AppExchange.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/06\/Flosum-AppExchange.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":5935,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/continuous-integration-ci-in-salesforce-using-team-foundation-server-tfs-video\/","url_meta":{"origin":6341,"position":1},"title":"Continuous Integration (CI) in Salesforce using Team Foundation Server (TFS) &#8211; Video","author":"Jitendra","date":"March 20, 2017","format":false,"excerpt":"Step by step guide to set up Continuous Integration (CI) for Salesforce using Team Foundation Server (TFS) with video tutorial","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"Team Foundation Server (TFS) - New Build definition - Select repository","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Team-Foundation-Server-TFS-New-Build-definition-Select-repository.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Team-Foundation-Server-TFS-New-Build-definition-Select-repository.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Team-Foundation-Server-TFS-New-Build-definition-Select-repository.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Team-Foundation-Server-TFS-New-Build-definition-Select-repository.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":4331,"url":"https:\/\/www.jitendrazaa.com\/blog\/uncategorized\/using-cctray-to-monitor-continuous-integration-setup-using-jenkins-for-salesforce-video-tutorial\/","url_meta":{"origin":6341,"position":2},"title":"Using CCTray to monitor continuous integration setup using Jenkins for Salesforce | Video Tutorial","author":"Jitendra","date":"March 23, 2015","format":false,"excerpt":"In previous article, I\u00a0have explained that\u00a0how to use Jenkins to setup Continuous integration for Salesforce. Now, once Jenkins is up and its doing its job to build Salesforce changes. Next task is to monitor build result. We already setup post deployment task by creating chatter message to notify everyone about\u2026","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"CCTray Build Server custom HTTP URL","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/03\/CCTray-Build-Server-custom-HTTP-URL.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/03\/CCTray-Build-Server-custom-HTTP-URL.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/03\/CCTray-Build-Server-custom-HTTP-URL.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/03\/CCTray-Build-Server-custom-HTTP-URL.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":5595,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/dynamically-remove-xml-content-from-metadata-before-salesforce-deployment-using-xmltask-video\/","url_meta":{"origin":6341,"position":3},"title":"Dynamically remove XML content from metadata before Salesforce deployment using xmlTask &#8211; Video","author":"Jitendra","date":"August 18, 2016","format":false,"excerpt":"Example - automatically remove listview before deployment","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"Using XMLTask in ANT for Salesforce Deployment","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2016\/08\/2016-07-15.png?fit=922%2C519&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2016\/08\/2016-07-15.png?fit=922%2C519&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2016\/08\/2016-07-15.png?fit=922%2C519&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2016\/08\/2016-07-15.png?fit=922%2C519&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":4276,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/continuous-integration-in-salesforce-using-jenkins-and-git-video-tutorial\/","url_meta":{"origin":6341,"position":4},"title":"Continuous integration in Salesforce Using Jenkins and Git | Video Tutorial","author":"Jitendra","date":"March 23, 2015","format":false,"excerpt":"As your Salesforce Organization undergoes heavy customization and frequent builds, moving changes from one Sandbox to other sandboxes starts taking longer time and effort. Also, in normal Salesforce project, there are chances that you will have minimum three sandboxes likely Developer Sandbox, QA Sandbox and UAT Sandbox. After some time\u2026","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"Salesforce - Jenkins Git Polling Log","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/03\/Salesforce-Jenkins-Git-Polling-Log.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/03\/Salesforce-Jenkins-Git-Polling-Log.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/03\/Salesforce-Jenkins-Git-Polling-Log.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/03\/Salesforce-Jenkins-Git-Polling-Log.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":7817,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/automate-and-conquer-how-task-json-can-supercharge-your-salesforce-development\/","url_meta":{"origin":6341,"position":5},"title":"Automate and Conquer: How Task.json Can Supercharge Your Salesforce Development","author":"Jitendra","date":"June 1, 2023","format":false,"excerpt":"Discover the game-changing power of Task.json in Salesforce development with Visual Studio Code (VSCode) and Salesforce DX (SFDX). Streamline your workflow, automate tasks, and boost productivity as you dive into the world of Salesforce development. Explore how Task.json simplifies development with VSCode, accelerates SFDX deployments, and ensures consistency across your\u2026","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"SFDX + Task.json","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2023\/06\/SFDX-Task.json_.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2023\/06\/SFDX-Task.json_.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2023\/06\/SFDX-Task.json_.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2023\/06\/SFDX-Task.json_.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2023\/06\/SFDX-Task.json_.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/posts\/6341","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/comments?post=6341"}],"version-history":[{"count":4,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/posts\/6341\/revisions"}],"predecessor-version":[{"id":6350,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/posts\/6341\/revisions\/6350"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/media\/6343"}],"wp:attachment":[{"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/media?parent=6341"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/categories?post=6341"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/tags?post=6341"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}