{"id":4324,"date":"2019-06-17T12:22:48","date_gmt":"2019-06-17T12:22:48","guid":{"rendered":"https:\/\/www.techuz.com\/blog\/?p=4324"},"modified":"2024-04-10T05:24:47","modified_gmt":"2024-04-10T05:24:47","slug":"what-is-ci-cd-an-introduction-to-continuous-integration-continuous-deployment-and-ci-cd-pipeline","status":"publish","type":"post","link":"https:\/\/www.techuz.com\/blog\/what-is-ci-cd-an-introduction-to-continuous-integration-continuous-deployment-and-ci-cd-pipeline\/","title":{"rendered":"What is CI\/CD? An Introduction to Continuous Integration, Continuous Deployment and CI\/CD Pipeline"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Software and application development industry has gone through tremendous changes in the past decade. <\/span><br \/>\n<span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">From the good old days when software were installed on the desktop to the web-based SaaS applications. And the transition is not just seen in the way applications are used but also in the <a href=\"https:\/\/www.techuz.com\/blog\/top-12-sdlc-methodologies-with-pros-and-cons\/\" target=\"_blank\" rel=\"noopener\">development methodologies<\/a><\/span><span style=\"font-weight: 400;\">\u00a0\u2014 from the traditional waterfall development to Agile and the new trend of <\/span><a href=\"https:\/\/www.atlassian.com\/devops\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">DevOps<\/span><\/a><span style=\"font-weight: 400;\">. <\/span><\/p>\n<p><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">But all these changes and the introduction of new methods are aimed at one thing \u2014 to enhance the <\/span><a href=\"https:\/\/www.techuz.com\/blog\/web-development-process-a-guide-to-complete-web-development-life-cycle\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">development process<\/span><\/a><span style=\"font-weight: 400;\"> and provide better products to the end user. <\/span><\/p>\n<p><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">CI (Continuous Integration) and CD (Continuous Delivery\/Deployment) are such methods that are gaining momentum among developers using DevOps. In this article, we\u2019ll discuss what exactly is CI\/CD and how it can help you to develop better products.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">What is CI\/CD?<\/span><\/h2>\n<h3><span style=\"font-weight: 400;\">Understanding the Terms <\/span><\/h3>\n<p><span style=\"font-weight: 400;\"><br \/>\n<\/span><b>Continuous Integration (CI)<\/b><span style=\"font-weight: 400;\"> refers to committing (integrating) the code of individual developers \u2014 several times a day into a repository and run an automated test. What this does is, it helps to detect the issues and resolve them at a very early stage. <\/span><\/p>\n<p><b>Continuous Delivery (CD) <\/b><span style=\"font-weight: 400;\">starts when the CI ends. Once the code is committed by the developers, they are uploaded on the staging server. Here, the application is checked to ensure that it&#8217;ll work well on the production server. <\/span><\/p><br><\/br><p><b><\/b><b>Continuous Deployment<\/b><span style=\"font-weight: 400;\">\u00a0is a different concept than Continuous Delivery. CD here refers to the deployment of the built directly to the server after the code is committed and passes the test. Adopting Continuous Integration and Continuous Deployment enables producing new working software at a faster rate.<\/span><\/p><br><\/br><h2><span style=\"font-weight: 400;\">Continuous Integration<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Traditionally, the developers used to work on isolated features of the application, submit the code and integrate it at the end of the cycle. This lead to spending several hours on tweaking the code and resolving issues to get it working. This task was quite daunting and cost the developers more time, efforts that resulted in deadline pressures. In the development world, this issue is known by the slang\u00a0<\/span><a href=\"https:\/\/www.solutionsiq.com\/agile-glossary\/integration-hell\/\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">integration hell.<\/span><\/a><\/p><br><\/br><p><span style=\"font-weight: 400;\">That\u2019s when Continuous Integration comes it. It is a practice where developers integrate their code into the main branch of the repository several times a day. The code is then validated by creating a built and running automated tests. This continuous integration of small chunks of the codes \u2014 typically several times a day results in a seamless and easy integration that saves time and effort. <\/span><\/p>\n<h3><span style=\"font-weight: 400;\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-4347\" src=\"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD_Continuous-Integration.jpg\" alt=\"What is CI\/CD? CI\/CD pipeline explained\" width=\"700\" height=\"310\" srcset=\"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD_Continuous-Integration.jpg 700w, https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD_Continuous-Integration-300x133.jpg 300w, https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD_Continuous-Integration-460x204.jpg 460w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/span><\/h3><br><\/br><h3><span style=\"font-weight: 400;\">Benefits of Continuous Integration<\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Automated tests detect bugs at an early stage so that you can ship a clean final product to the customers.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Continuous Integration makes the release way easier and helps to avoid the integration hell. <\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Automated tests can run a number of tests at a time that reduces the overall cost of testing. <\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Even the quality analysts can focus on improving the quality of application cohesively rather spending time on testing and finding bugs. <\/span><\/li>\n<\/ul>\n<h3><span style=\"font-weight: 400;\">What You Need to Practice<\/span><\/h3>\n<ul>\n<li><span style=\"font-weight: 400;\">Maintain a common code repository where the developers can commit code \u2014 such as GitHub and Gitlab.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Automate the build.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Configure the automated testing on the built package.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Developers must commit the new code as often as possible typically several times a day. <\/span><\/li>\n<\/ul>\n<h2>Continuous Delivery<\/h2>\n<p><span style=\"font-weight: 400;\">Continuous Delivery is an extension of Continuous Integration. It is a practice that enables the developer to release the software on the production server with confidence. <\/span><\/p>\n<p><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">Once the code is integrated, build and passes the automated tests, the built is pushed to the mock server. This enables the developer to check the application on the production-like environment and confidently upload it on the actual production environment \u2014 ensuring that the software will work well when it reaches to the customer.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To ensure that the software will work well when it reaches the customer, developers must employ the right automation testing tool to maintain a high quality of code throughout the continuous delivery pipeline. \u00a0<a href=\"https:\/\/www.functionize.com\/automated-testing\/automation-testing-tools-deep-dive\" rel=\"nofollow\" target=\"_blank\">Functionize&#8217;s picks of automation testing tools<\/a>\u00a0are designed to automate the testing process to achieve faster release cycles without compromising on software quality. The automation of the testing process enhances the reliability and stability of the software in real-world applications.<\/span> <span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">The main goal of continuous delivery is to make the application deployment seamless, reduce risk and ensure the application will work great in the production environment. With CD, the application is always ready to deploy and there is no last-minute anxiety or urgency. Even the team can be confident about their codebase and can concentrate on their daily development tasks. <\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-4345\" src=\"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD_Continuous-Delivery.jpg\" alt=\"What is CI\/CD? CI\/CD Pipeline explained\" width=\"700\" height=\"310\" srcset=\"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD_Continuous-Delivery.jpg 700w, https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD_Continuous-Delivery-300x133.jpg 300w, https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD_Continuous-Delivery-460x204.jpg 460w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/p>\n<h3><\/h3>\n<h3><span style=\"font-weight: 400;\">Benefits of Continuous Delivery<\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Continuous Delivery makes the application deployment painlessly easier and the team no longer have to spend time on the release. \u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">It also reduces the risk of deploying the application with bugs as they are detected early on the production-like mock environment. <\/span><\/li>\n<li style=\"font-weight: 400;\"><a href=\"https:\/\/continuousdelivery.com\/evidence-case-studies\/#research\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">Research<\/span><\/a><span style=\"font-weight: 400;\"> has shown that CD making the releases easy and efficient reduces the burnout and ultimately makes the team happier.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Releases can be made quicker and more often resulting in faster customer feedback and improving the product. <\/span><\/li>\n<\/ul>\n<h3><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">What You Need to Practice<\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Your continuous integration must work well and the automated tests must cover enough codebase.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Once the deployment is triggered, it must be fully automated without any need for human intervention. <\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Incorporation of <\/span><a href=\"https:\/\/martinfowler.com\/bliki\/BlueGreenDeployment.html\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">blue-green deployment<\/span><\/a><span style=\"font-weight: 400;\"> or feature flags so that the incomplete features do not create downtime and affect the users. <\/span><\/li>\n<\/ul><br><\/br><h2>Continuous Deployment<\/h2>\n<p><span style=\"font-weight: 400;\">While Continuous Delivery makes the codebase ready for the deployment, Continuous Deployment releases it directly to the production server.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">Continuous deployment is a practice for application deployment wherein any code commit passing the automated testing is automatically released to the production server and made available to the users. This process of deployment is fully automated without any manual intervention \u2014 and the build components that don\u2019t pass the production pipeline are prevented from deploying on the server. <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">This kind of automatic deployment works great to ship the new components and features of the application and bug fixes quickly to the customers. Users\u2019 feedback is quick as customers stay in the loop with every update and even the team experiences peace of mind as there is no pressure of release date. Thus, ultimately developers can focus more on developing the application and see their work go live.<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-4346\" src=\"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD_Continuous-Deployment.jpg\" alt=\"What is CI\/CD? CI\/CD pipeline explained\" width=\"700\" height=\"310\" srcset=\"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD_Continuous-Deployment.jpg 700w, https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD_Continuous-Deployment-300x133.jpg 300w, https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD_Continuous-Deployment-460x204.jpg 460w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/p><br><\/br><h3><span style=\"font-weight: 400;\">Benefits of Continous Deployment<\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Deliver the new changes to the customers as soon as they are developed. <\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">You get an early ROI for the new feature as it is available to the users quickly soon after its development. <\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Since small chunks of changes are released, it gets easier to fix the bugs. <\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">There is an incremental improvement in quality in a shorter period of time instead of quarterly or yearly improvements.\u00a0<\/span><\/li>\n<\/ul><br><\/br><h3>What You Need to Practice<\/h3>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Incorporation of feature flags is an integral part of the process. <\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">The changes are released as soon as the code is committed, built and tested. So the quality of the new releases will be highly dependent on the testing.<\/span><\/li>\n<\/ul><br><\/br><h2>What is CI\/CD Pipeline?<\/h2>\n<p><span style=\"font-weight: 400;\">Now you know that CI\/CD is the strategies to ship well-tested applications frequently to the customers \u2014 and making the development process fast and efficient. However, the success of this discipline relies on a reliable CI\/CD pipeline.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A CI\/CD pipeline is the structure that automates the steps of the application delivery process. \u00a0Since the process is automated, it removes the chances of committing any manual error and provides a quick product iteration. From a high-level view, the CI\/CD pipeline includes steps such as \u2014 code commit, build, automated testing and deployment on staging and production server. \u00a0<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-4348\" src=\"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD_Pipeline.jpg\" alt=\"CI\/CD Pipeline\" width=\"700\" height=\"310\" srcset=\"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD_Pipeline.jpg 700w, https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD_Pipeline-300x133.jpg 300w, https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD_Pipeline-460x204.jpg 460w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/p>\n<p style=\"text-align: center;\"><em><span style=\"color: #808080;\">(An example of CI\/CD Pipeline)<\/span><\/em><\/p>\n<h3><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"color: #666699;\"><span style=\"color: #333333;\">1. Commit<\/span> <\/span><\/h3>\n<p><span style=\"font-weight: 400;\">The pipeline starts with a common code repository where multiple developers working on the application commits their code several times a day. Some of the popular and widely used code repositories are\u00a0<b>\u00a0<\/b><a href=\"https:\/\/github.com\/\" target=\"_blank\" rel=\"nofollow noopener\">GitHub<\/a><b>, <\/b><a href=\"https:\/\/bitbucket.org\/\" target=\"_blank\" rel=\"nofollow noopener\">BitBucket<\/a>, <a href=\"https:\/\/about.gitlab.com\/\" target=\"_blank\" rel=\"nofollow noopener\">GitLab<\/a>, <a href=\"https:\/\/beanstalkapp.com\/\" target=\"_blank\" rel=\"nofollow noopener\">Beanstalk<\/a> and <a href=\"https:\/\/sourceforge.net\/\" target=\"_blank\" rel=\"nofollow noopener\">SourceForge<\/a>.<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-4349\" src=\"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD-Pipeline_Individual-01.jpg\" alt=\"CI\/CD Pipeline - Commit Stage\" width=\"700\" height=\"250\" srcset=\"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD-Pipeline_Individual-01.jpg 700w, https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD-Pipeline_Individual-01-300x107.jpg 300w, https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD-Pipeline_Individual-01-460x164.jpg 460w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><a href=\"https:\/\/sourceforge.net\/\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/a><\/p>\n<h3><span style=\"font-weight: 400;\"><br \/>\n<\/span><b><\/b><span style=\"color: #333333;\">2. Build<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Now, the changes are built using a built management system. The source code is combined to build a runnable component of the product.\u00a0<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-4350\" src=\"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD-Pipeline_Individual-02.jpg\" alt=\"CI\/CD Pipeline - Built Stage\" width=\"700\" height=\"250\" srcset=\"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD-Pipeline_Individual-02.jpg 700w, https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD-Pipeline_Individual-02-300x107.jpg 300w, https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD-Pipeline_Individual-02-460x164.jpg 460w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/p>\n<h3><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"color: #333333;\">3. Automate Testing<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">In this step, automated tests are run to check the codes. Automated testing plays an important role in the entire CI\/CD pipeline and the success of delivering bug-free application depends on it. The code goes through varied tests depending on the complexity and needs of the project. We\u2019ll discuss the type of tests in a few moments. Popular tools for automated testing are\u00a0<a href=\"https:\/\/www.telerik.com\/teststudio\" target=\"_blank\" rel=\"nofollow noopener\">Telerik Test Studio<\/a>, <a href=\"https:\/\/www.seleniumhq.org\/\" target=\"_blank\" rel=\"nofollow noopener\">Selenium<\/a>, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Robotium\" target=\"_blank\" rel=\"nofollow noopener\">Robotium<\/a>, <a href=\"https:\/\/www.soapui.org\/\" target=\"_blank\" rel=\"nofollow noopener\">SoapUI<\/a> and <a href=\"https:\/\/www.origsoft.com\/product-testdrive\/\" target=\"_blank\" rel=\"nofollow noopener\">TestDrive<\/a>.<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-4351\" src=\"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD-Pipeline_Individual-03.jpg\" alt=\"CI\/CD Pipeline - Test Stage\" width=\"700\" height=\"250\" srcset=\"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD-Pipeline_Individual-03.jpg 700w, https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD-Pipeline_Individual-03-300x107.jpg 300w, https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD-Pipeline_Individual-03-460x164.jpg 460w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/p>\n<h3><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"color: #333333;\">4. Deploy<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">\u00a0Once the built passes through the automated tests, they\u2019re ready to be deployed. The deployment can be either on the staging server, where the application is reviewed and additionally tested in the mock environment that is similar to the production environment. Or can be directly deployed onto the production server and made available to the users.\u00a0<a href=\"https:\/\/jenkins.io\/\" target=\"_blank\" rel=\"nofollow noopener\">Jenkins<\/a>, <a href=\"https:\/\/www.atlassian.com\/software\/bamboo\" target=\"_blank\" rel=\"nofollow noopener\">Atlassian Bamboo<\/a>, <a href=\"https:\/\/aws.amazon.com\/codedeploy\/\" target=\"_blank\" rel=\"nofollow noopener\">AWS CodeDeploy<\/a>\u00a0and <a href=\"https:\/\/circleci.com\/\" target=\"_blank\" rel=\"nofollow noopener\">CICircle<\/a>\u00a0are the majorly used tools.<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-4354\" src=\"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD-Pipeline_Individual-Delivery.jpg\" alt=\"CI\/CD pipeline - Deploying on staging server\" width=\"700\" height=\"250\" srcset=\"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD-Pipeline_Individual-Delivery.jpg 700w, https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD-Pipeline_Individual-Delivery-300x107.jpg 300w, https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD-Pipeline_Individual-Delivery-460x164.jpg 460w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/p>\n<p style=\"text-align: center;\"><span style=\"color: #808080;\"><em>(Deployment on the production-like staging server)<\/em><\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-4352\" src=\"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD-Pipeline_Individual-04.jpg\" alt=\"CI\/CD pipeline - Deploying on production server\" width=\"700\" height=\"250\" srcset=\"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD-Pipeline_Individual-04.jpg 700w, https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD-Pipeline_Individual-04-300x107.jpg 300w, https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD-Pipeline_Individual-04-460x164.jpg 460w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/p>\n<p style=\"text-align: center;\"><span style=\"color: #808080;\"><em>(Direct deployment on the\u00a0 production server)<\/em><\/span><\/p>\n<p><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">The entire CI\/CD pipeline is automated based on the needs of the project and organization. You can either adopt Continuous Delivery where the changes are uploaded on the mock server and then onto the production server or the highest level of automation \u2014 Continuous Deployment, where the changes are reflected in the production server automatically once the code is committed and passes the test.\u00a0<\/span><\/p><br><\/br><h2>Types of Automated Testings<\/h2>\n<p><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">Unequivocally, the key to successful continuous integration and continuous deployment\/delivery is automated testing. And without it, there can be no successful CI\/CD pipeline. These automated testing are divided into different types that serve their own purpose. The following are some of the tests included in automated testing, though it is not necessary to include every test at once.<\/span><\/p><br><\/br><ul>\n<li>Unit Testing <span style=\"font-weight: 400;\">&#8211; Unit testing is done to test individual classes or functions. <\/span><\/li>\n<li>Integration Testing <span style=\"font-weight: 400;\">&#8211; Integration tests make sure that the multiple modules of the applications work well with each other. <\/span><\/li>\n<li>System Testing <span style=\"font-weight: 400;\">&#8211; System testing tests the entire system in an environment that replicates the real production environment.<\/span><\/li>\n<li>UI Testing <span style=\"font-weight: 400;\">&#8211; UI testing is performed to make sure the application works great as per the user\u2019s perspective.<\/span><\/li>\n<\/ul><br><\/br><h2><span style=\"font-weight: 400;\">Wrapping Up<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">To wrap up, the ability to deliver the application, new features, components and bug fixes \u2014 quickly and efficiently is a necessity to stay ahead in the competition. And CI\/CD is one such method that you can employ to meet the demands of modern software, <a href=\"https:\/\/www.techuz.com\/\" target=\"_blank\" rel=\"noopener\">web and mobile development<\/a>. Once you put it in place and practice the right CI\/CD principles, it can reap benefits for both your team as well as the end users. <\/span><\/p><br><\/br>","protected":false},"excerpt":{"rendered":"<p>Software and application development industry has gone through tremendous changes in the past decade. From the good old days when software were installed on the desktop to the web-based SaaS applications. And the transition is not just seen in the way applications are used but also in the development methodologies\u00a0\u2014 from the traditional waterfall development &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.techuz.com\/blog\/what-is-ci-cd-an-introduction-to-continuous-integration-continuous-deployment-and-ci-cd-pipeline\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;What is CI\/CD? An Introduction to Continuous Integration, Continuous Deployment and CI\/CD Pipeline&#8221;<\/span><\/a><\/p>\n","protected":false},"author":8,"featured_media":4344,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[226,14,27,5],"tags":[227,228,194,229],"better_featured_image":{"id":4344,"alt_text":"What is CI\/CD? CI\/CD pipeline explained","caption":"","description":"","media_type":"image","media_details":{"width":970,"height":500,"file":"2019\/06\/CI-CD_Banner-1.jpg","sizes":{"thumbnail":{"file":"CI-CD_Banner-1-150x150.jpg","width":150,"height":150,"mime-type":"image\/jpeg","source_url":"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD_Banner-1-150x150.jpg"},"medium":{"file":"CI-CD_Banner-1-300x155.jpg","width":300,"height":155,"mime-type":"image\/jpeg","source_url":"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD_Banner-1-300x155.jpg"},"medium_large":{"file":"CI-CD_Banner-1-768x396.jpg","width":768,"height":396,"mime-type":"image\/jpeg","source_url":"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD_Banner-1-768x396.jpg"},"blog_list":{"file":"CI-CD_Banner-1-460x237.jpg","width":460,"height":237,"mime-type":"image\/jpeg","source_url":"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD_Banner-1-460x237.jpg"},"alm-thumbnail":{"file":"CI-CD_Banner-1-150x150.jpg","width":150,"height":150,"mime-type":"image\/jpeg","source_url":"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD_Banner-1-150x150.jpg"},"twentyseventeen-thumbnail-avatar":{"file":"CI-CD_Banner-1-100x100.jpg","width":100,"height":100,"mime-type":"image\/jpeg","source_url":"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD_Banner-1-100x100.jpg"}},"image_meta":{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0","keywords":[]}},"post":4324,"source_url":"https:\/\/www.techuz.com\/blog\/wp-content\/uploads\/2019\/06\/CI-CD_Banner-1.jpg"},"_links":{"self":[{"href":"https:\/\/www.techuz.com\/blog\/wp-json\/wp\/v2\/posts\/4324"}],"collection":[{"href":"https:\/\/www.techuz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.techuz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.techuz.com\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.techuz.com\/blog\/wp-json\/wp\/v2\/comments?post=4324"}],"version-history":[{"count":30,"href":"https:\/\/www.techuz.com\/blog\/wp-json\/wp\/v2\/posts\/4324\/revisions"}],"predecessor-version":[{"id":7515,"href":"https:\/\/www.techuz.com\/blog\/wp-json\/wp\/v2\/posts\/4324\/revisions\/7515"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.techuz.com\/blog\/wp-json\/wp\/v2\/media\/4344"}],"wp:attachment":[{"href":"https:\/\/www.techuz.com\/blog\/wp-json\/wp\/v2\/media?parent=4324"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.techuz.com\/blog\/wp-json\/wp\/v2\/categories?post=4324"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.techuz.com\/blog\/wp-json\/wp\/v2\/tags?post=4324"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}