{"id":9982,"count":916,"description":"With continuous delivery, every change made to the system can be released, and any version can be released at any time. Continuous integration is the natural extension of continuous delivery. Continual delivery provides quick feedback on what users care about and aims to make releases boring.\r\n\r\nThe continuous integration and continuous delivery (CI\/CD) method are transforming DevOps. Even if each step of the software development lifecycle can be carried out manually, CI\/CD automates the stages in software development and deployment.<\/span>\r\n

Continuous Integration (CI)<\/b><\/h2>\r\nContinuous integration is the process of merging code (updates or existing features) with an existing codebase (software tool or product, for example). CI is a development practice where developers merge code in a central repository several times daily.<\/span>\r\n\r\nIn CI, each line of code added to the codebase triggers a sequence in a CI\/CD pipeline, generating feedback for developers. This process allows improvements to be made quickly and easily.<\/span>\r\n

Continuous Delivery (CD)<\/b><\/h2>\r\nCD is an attempt to speed up and automate deployments. An operator can push out multiple deployments in a week across numerous services and know the exact condition of the applications and infrastructure in the course of the deployments.<\/span>\r\n\r\n\u201cContinuous delivery is the natural extension of continuous integration, an approach in which teams ensure that every change to the system is releasable, and release any version with the push of a button. Continuous delivery aims to make releases boring so that we can deliver frequently and get quick feedback on what users care about.\u201d -- Thought Works<\/span>\r\n\r\nHow Platform Engineering Helps Manage Innovation Responsibly<\/b><\/a>\r\n

The Focus of a CI\/CD Pipeline<\/b><\/h2>\r\nTo run a CI\/CD pipeline successfully, organizations should outline goals that guide developers\u2019 approaches and processes. While each pipeline is unique, it should reflect some overarching goals.<\/span>\r\n\r\nHere are some results that should be the focus of the pipeline:<\/span>\r\n

Quick Fixes and Improvements in Subsequent Updates<\/b><\/h3>\r\nCI\/CD automation<\/span><\/a>\u00a0automatically allows code changes to reflect in end users\u2019 software. CI\/CD pipelines should prioritize quick fixes and improvements to existing code to improve software quality and user experience.<\/span>\r\n

Push Button Deployments<\/b><\/h3>\r\nContinuous delivery requires a \u201cstate\u201d machine, which is not provided by CI tools. CD tools, such as <\/span>Spinnaker<\/span><\/a>, can take an environment from one state to the next until it makes it to production. The machine will move the environment, such as Docker containers, through to production in an automated fashion. It will even be able to do rollbacks, canary deployments, and scaling instances.<\/span>\r\n\r\nThis process allows for the agile, push-button, automated deployments that an ideal CD mindset drives towards. Such pipelines are at the core of CD capabilities because they orchestrate a repeatable deployment over stages.<\/span>\r\n

Fast and Frequent Software Releases<\/b><\/h3>\r\nOne of the higher-level achievements in a DevOps transformation is continuous delivery. Focusing on software releases in a CI\/CD pipeline is a cultural shift for companies because it involves organizational change, too. <\/span>DevOps<\/span><\/a> transformation means building cross-functional teams with common goals, aligning the organization around the architecture, and creating a culture of continuous improvement.<\/span>\r\n\r\nThree Ways CI\/CD Adoption Can Benefit Your DevOps Team<\/b><\/a>\r\n

The Structure of an Effective CI\/CD Workflow<\/b><\/h3>\r\nThe process for achieving CI\/CD goals has been broken down into six stages. The goal is to ensure that new and runnable code is fit for use before it\u2019s sent out to end users.<\/span>\r\n\r\nMost unique and effective pipelines mirror the following structure:<\/span>\r\n\r\nEach new pipeline run is triggered by a change in the source code repository. An update or variation to the existing code \u2014 such as automated workflows or results from a previous pipeline run \u2014 begins the CI\/CD process.<\/span>\r\n\r\nIn this stage, runnable instances of code that could potentially be deployed to end-users are created. This is done through a combination of source code and its dependencies. Code not passing this stage indicates a problem with the project\u2019s configuration and should receive immediate attention.<\/span>\r\n\r\nAutomated tests are run on the code to determine its accuracy. These tests, created by software developers, are required to meet certain standards. Multiple tests at this stage would detect bugs or other problems developers do not foresee. The test could take minutes or several hours, depending on its complexity. Code that does not successfully pass this test stage instantly notifies the development team that adjustments must be made. After the code is tested and considered runnable, it's delivered to the repository.<\/span>\r\n\r\nDeploy<\/b>. Once the code passes all predefined tests, the runnable code in the repository is deployed into different environments, such as a staging environment for the internal team and a production environment for end-users.<\/span>\r\n\r\nValidation and Compliance. <\/b>Organizational needs determine what takes place in validation and compliance. For example, image security scanning tools ensure image quality and match them against known vulnerabilities.<\/span>\r\n

The Approach to Cloud Native CI\/CD Tools Is Changing<\/b><\/h2>\r\nAn increasing focus on continuous delivery (CD) has brought new tools and practices that allow teams to produce frequent, fast, and boring automated releases. <\/span>Cloud-native CI\/CD <\/span><\/a>requires a deeper understanding of DevOps practices and how they affect the way organizations deploy and manage workloads using <\/span>containers<\/span><\/a>, <\/span>microservices<\/span><\/a>, and <\/span>serverless<\/span><\/a>\u00a0functions.<\/span>\r\n\r\nA new approach to continuous integration and <\/span>continuous delivery<\/span><\/a> (CI\/CD) is emerging for cloud-native architectures. With cloud-native architectures, complexity is shifting away from the building and assembly of the code to orchestrating releases. Build tools such as Travis CI and Jenkins are starting to commoditize and become much simpler.<\/span>\r\n\r\nAs more organizations get comfortable with building custom code using containers and other immutable constructs, they spend fewer cycles on building that code and shift into solving the problems of orchestrated releases.<\/span>\r\n

Impact of Kubernetes CI\/CD<\/b><\/h2>\r\nKubernetes,<\/span><\/a> the open source container orchestrator, makes CD easier to execute with tools, modularity, and immutable infrastructure. Kubernetes simplifies the deployment and monitoring of microservices. It helps define a container deployment and manage instances but leaves it up to the user to automate those deployments into environments.<\/span>\r\n\r\nHere are some proven practices for improving Kubernetes CI\/CD:<\/span>\r\n\r\nImplementing Blue-Green Deployment Strategy.<\/b> Similar to preparing for emergencies, this strategy involves a pattern that creates an additional set of production instances to existing instances for quick switching in case of failure or downtime. The blue represents the staging environment, while the green represents the production environment.<\/span>\r\n\r\nLeveraging Git-Based Workflows.<\/b> CI\/CD pipelines should be activated through GitOps. This ensures that changes and source code in the pipeline are stored in a unified source repository for easy correction and deployment.<\/span>\r\n\r\nTesting and Scanning New Container Images. <\/b>Testing and scanning container images every time a new image is created can handle vulnerabilities such as configuration issues introduced with new builds. It also ensures that commands are working properly.<\/span>\r\n

Challenges with the CI\/CD Framework<\/b><\/h2>\r\nAs much as the CI\/CD process is evolving, it is not without challenges. Some difficulties faced include:<\/span>\r\n\r\nVersion Control.<\/b> The CI\/CD model requires the creation of versions from the source code repository to ensure continuity. Managing these variations can be difficult because of the number of changes made.<\/span>\r\n\r\nFaulty Tests.<\/b> As new code is written, developers are expected to write multiple tests to determine the accuracy and behavior of products. If the right tests aren\u2019t administered, developers may receive faulty feedback loops, which could affect the end product entirely.<\/span>\r\n\r\nSecurity Breaches.<\/b> Concerns have been raised about the security of the CI\/CD process in the development, integration, and deployment phases. Software developers are urged to develop security measures alongside the code writing process and not at the end of the cycle.<\/span>\r\n\r\nCI\/CD practices are constantly getting refined. Learn more about CI\/CD trends, new approaches, and the opinions of industry experts through The New Stack articles in this category.<\/span>","link":"https:\/\/thenewstack.io\/ci-cd\/","name":"CI\/CD","slug":"ci-cd","taxonomy":"category","parent":0,"meta":[],"acf":[],"yoast_head":"\nCI\/CD Environment Overview, News and Analysis | The New Stack<\/title>\n<meta name=\"description\" content=\"CI\/CD (continuous integration\/continuous delivery) workflows are becoming more streamlined to allow seamless integration and deployment. Learn more here.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thenewstack.io\/ci-cd\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CI\/CD Archives\" \/>\n<meta property=\"og:description\" content=\"CI\/CD (continuous integration\/continuous delivery) workflows are becoming more streamlined to allow seamless integration and deployment. Learn more here.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thenewstack.io\/ci-cd\/\" \/>\n<meta property=\"og:site_name\" content=\"The New Stack\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@thenewstack\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"CollectionPage\",\"@id\":\"https:\/\/thenewstack.io\/ci-cd\/\",\"url\":\"https:\/\/thenewstack.io\/ci-cd\/\",\"name\":\"CI\/CD Environment Overview, News and Analysis | The New Stack\",\"isPartOf\":{\"@id\":\"https:\/\/thenewstack.io\/#website\"},\"description\":\"CI\/CD (continuous integration\/continuous delivery) workflows are becoming more streamlined to allow seamless integration and deployment. Learn more here.\",\"breadcrumb\":{\"@id\":\"https:\/\/thenewstack.io\/ci-cd\/#breadcrumb\"},\"inLanguage\":\"en-US\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/thenewstack.io\/ci-cd\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/thenewstack.io\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CI\/CD\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/thenewstack.io\/#website\",\"url\":\"https:\/\/thenewstack.io\/\",\"name\":\"The New Stack\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/thenewstack.io\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/thenewstack.io\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/thenewstack.io\/#organization\",\"name\":\"The New Stack\",\"url\":\"https:\/\/thenewstack.io\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/thenewstack.io\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cdn.thenewstack.io\/media\/2021\/11\/a9fbec84-the-new-stack-logo-rgb-screen.png\",\"contentUrl\":\"https:\/\/cdn.thenewstack.io\/media\/2021\/11\/a9fbec84-the-new-stack-logo-rgb-screen.png\",\"width\":1032,\"height\":128,\"caption\":\"The New Stack\"},\"image\":{\"@id\":\"https:\/\/thenewstack.io\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/thenewstack\",\"https:\/\/twitter.com\/thenewstack\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"CI\/CD Environment Overview, News and Analysis | The New Stack","description":"CI\/CD (continuous integration\/continuous delivery) workflows are becoming more streamlined to allow seamless integration and deployment. Learn more here.","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:\/\/thenewstack.io\/ci-cd\/","og_locale":"en_US","og_type":"article","og_title":"CI\/CD Archives","og_description":"CI\/CD (continuous integration\/continuous delivery) workflows are becoming more streamlined to allow seamless integration and deployment. Learn more here.","og_url":"https:\/\/thenewstack.io\/ci-cd\/","og_site_name":"The New Stack","twitter_card":"summary_large_image","twitter_site":"@thenewstack","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"CollectionPage","@id":"https:\/\/thenewstack.io\/ci-cd\/","url":"https:\/\/thenewstack.io\/ci-cd\/","name":"CI\/CD Environment Overview, News and Analysis | The New Stack","isPartOf":{"@id":"https:\/\/thenewstack.io\/#website"},"description":"CI\/CD (continuous integration\/continuous delivery) workflows are becoming more streamlined to allow seamless integration and deployment. Learn more here.","breadcrumb":{"@id":"https:\/\/thenewstack.io\/ci-cd\/#breadcrumb"},"inLanguage":"en-US"},{"@type":"BreadcrumbList","@id":"https:\/\/thenewstack.io\/ci-cd\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thenewstack.io\/"},{"@type":"ListItem","position":2,"name":"CI\/CD"}]},{"@type":"WebSite","@id":"https:\/\/thenewstack.io\/#website","url":"https:\/\/thenewstack.io\/","name":"The New Stack","description":"","publisher":{"@id":"https:\/\/thenewstack.io\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thenewstack.io\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/thenewstack.io\/#organization","name":"The New Stack","url":"https:\/\/thenewstack.io\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/thenewstack.io\/#\/schema\/logo\/image\/","url":"https:\/\/cdn.thenewstack.io\/media\/2021\/11\/a9fbec84-the-new-stack-logo-rgb-screen.png","contentUrl":"https:\/\/cdn.thenewstack.io\/media\/2021\/11\/a9fbec84-the-new-stack-logo-rgb-screen.png","width":1032,"height":128,"caption":"The New Stack"},"image":{"@id":"https:\/\/thenewstack.io\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/thenewstack","https:\/\/twitter.com\/thenewstack"]}]}},"_links":{"self":[{"href":"https:\/\/thenewstack.io\/wp-json\/wp\/v2\/categories\/9982"}],"collection":[{"href":"https:\/\/thenewstack.io\/wp-json\/wp\/v2\/categories"}],"about":[{"href":"https:\/\/thenewstack.io\/wp-json\/wp\/v2\/taxonomies\/category"}],"wp:post_type":[{"href":"https:\/\/thenewstack.io\/wp-json\/wp\/v2\/posts?categories=9982"},{"href":"https:\/\/thenewstack.io\/wp-json\/wp\/v2\/event?categories=9982"},{"href":"https:\/\/thenewstack.io\/wp-json\/wp\/v2\/sponsor?categories=9982"},{"href":"https:\/\/thenewstack.io\/wp-json\/wp\/v2\/podcasts?categories=9982"},{"href":"https:\/\/thenewstack.io\/wp-json\/wp\/v2\/solutions-guides?categories=9982"},{"href":"https:\/\/thenewstack.io\/wp-json\/wp\/v2\/products?categories=9982"},{"href":"https:\/\/thenewstack.io\/wp-json\/wp\/v2\/pages?categories=9982"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}