{"id":52536,"date":"2017-12-04T16:09:12","date_gmt":"2017-12-04T10:39:12","guid":{"rendered":"http:\/\/www.tothenew.com\/blog\/?p=52536"},"modified":"2017-12-14T15:55:27","modified_gmt":"2017-12-14T10:25:27","slug":"continuous-delivery-how-to-make-your-pipeline-robust-and-efficient","status":"publish","type":"post","link":"https:\/\/www.tothenew.com\/blog\/continuous-delivery-how-to-make-your-pipeline-robust-and-efficient\/","title":{"rendered":"Continuous Delivery &#8211; How to Make Your Pipeline Robust and Efficient?"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Frequent and shorter releases, faster feedback, less risky deployments and resilient systems &#8211; do they sound familiar? Well, modern technology companies are focusing and emphasizing on Continuous Integration, Continuous Delivery and Continuous Deployment to improve time to market and get an edge over the competitors.<\/span><\/p>\n<p>Continuous delivery is an extension to <a title=\"Best peactices of CI\" href=\"http:\/\/www.tothenew.com\/blog\/8-best-practices-of-continuous-integration-to-supercharge-your-software-development-team\/\">continuous integration<\/a>. Companies have started ensuring that the development, operations and testing teams work collaboratively as one delivery team. Apart from focusing on shortening the release cycles, the ultimate goal of a continuous delivery pipeline is to keep the build in a releasable state always. Changes to code should be frequently deployed however in larger projects the risk of deployment is huge and hence, it is advisable to divide the process into smaller versions. The simplest way to ensure limiting errors is by having one-click rollback at a place. More and more companies are <a title=\"Lesson and Consideration from DevOps Unicorns\" href=\"http:\/\/www.tothenew.com\/blog\/how-to-succeed-at-devops-lessons-and-considerations-from-devops-unicorns\/\">leveraging DevOps automation<\/a> to release often and faster.<\/p>\n<p><span style=\"font-weight: 400;\">\u201cContinuous delivery is software development discipline where you build software in such a way that the software can be release to production at any time\u201d &#8211; Martin Fowler<\/span><\/p>\n<p><span style=\"font-weight: 400;\">According to one of <a href=\"https:\/\/www.perforce.com\/\">the reports by Perforce<\/a>, below are the benefits of continuous delivery:<\/span><\/p>\n<div id=\"attachment_52537\" style=\"width: 532px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-52537\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-52537 size-full\" title=\"Source: www.perforce.com\" src=\"\/blog\/wp-ttn-blog\/uploads\/2017\/12\/need-for-cd-report.png\" alt=\"Benefits-of-CD\" width=\"522\" height=\"411\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2017\/12\/need-for-cd-report.png 522w, \/blog\/wp-ttn-blog\/uploads\/2017\/12\/need-for-cd-report-300x236.png 300w\" sizes=\"(max-width: 522px) 100vw, 522px\" \/><p id=\"caption-attachment-52537\" class=\"wp-caption-text\">Source: www.perforce.com<\/p><\/div>\n<p><span style=\"font-weight: 400;\">Companies like Netflix, New York Stock Exchange, Samsung or Salesforce.com <\/span><span style=\"font-weight: 400;\">automate continuous delivery <\/span><span style=\"font-weight: 400;\">to provide break free experience to customers and improve the build quality. However, many other companies that aspire to leverage DevOps are still figuring a way to fix bugs quickly, roll out features faster and ensure continuous improvement in the build. Continuous delivery can not only help them to achieve this but also prevent risky deployments and in long run make their infrastructure more resilient.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">More frequently, some companies resolve their doubts through <a title=\"DevOps as a service\" href=\"http:\/\/www.tothenew.com\/devops-automation-consulting\">DevOps consulting<\/a>, but some others still have the confusion about how to make their delivery pipeline robust? In this blog, we will uncover the ways to make your pipeline efficient and robust.<\/span><\/p>\n<h2><b>(A.) Monitor the Build Quality in the pipeline<\/b><\/h2>\n<p><span style=\"font-weight: 400;\"><a title=\"Make build pipeline\" href=\"http:\/\/www.tothenew.com\/blog\/continuous-delivery-best-practices\/\">Quality of build <\/a>is extremely important in the entire continuous delivery pipeline and technology team should ensure that before a new feature is released to production, the build passes through a series of tests. The team ensures that most bugs get resolved before the code is pushed to mainline. Moreover, all the concerned build owners are informed about the location of the latest build by sharing a common repository with everyone.<\/span><\/p>\n<ul>\n<li>\n<h3><b><b>How is the series of tests conducted for early validation?<\/b><\/b><\/h3>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Regular code commits to mainline code might just be a regular task for the development team, but ensuring regular\/continuous testing of such code to eliminate bugs is more often neglected. There are series of tests that are a part of test deployment pipeline which the QA team needs to take into account.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Following are some tests that are conducted:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Low level of <a title=\"Unit test tips\" href=\"http:\/\/www.tothenew.com\/blog\/few-tips-for-writing-swift-and-effective-unit-test-cases\/\">unit test <\/a><\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">High level of integration test<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Performance test <\/span><\/li>\n<li style=\"font-weight: 400;\"><a title=\"Regression testing\" href=\"http:\/\/www.tothenew.com\/blog\/regression-testing-a-sign-off-before-product-release\/\"><span style=\"font-weight: 400;\">Regression testing<\/span><\/a><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">These tests are conducted until the time the release is bug-free and risk is completely eliminated. Most test deployment pipelines blend with parallelization to ensure that the time taken from check-in to release is reduced. <\/span><span style=\"font-weight: 400;\">In a good CD pipeline, the tasks are divided into smaller parts such as unit test, acceptance test, code lint and <\/span><span style=\"font-weight: 400;\">integration tests<\/span><span style=\"font-weight: 400;\"> and these tasks can very well run in parallel to each other. <\/span><span style=\"font-weight: 400;\">Running a task in parallel helps to minimize the feedback process. With more and more companies leveraging <\/span><span style=\"font-weight: 400;\"><a title=\"Agile principles \" href=\"http:\/\/www.tothenew.com\/agile-delivery-approach\">Agile methodologies<\/a><\/span><span style=\"font-weight: 400;\">, quick feedback and early validation are vital.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Continuous feedback after every build helps development team to identify the areas of concern and make the necessary changes faster. Moreover, resolving bugs early in the pipeline ensures preventing failures at the later stage when the build is ready to move and release.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Here is the below diagrammatic representation of the process:<\/span><\/p>\n<div id=\"attachment_52538\" style=\"width: 710px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-52538\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-52538\" title=\"Source: technology.amis.nl\" src=\"\/blog\/wp-ttn-blog\/uploads\/2017\/12\/Continuous_Delivery_process_diagram.png\" alt=\"Source: technology.amis.nl \" width=\"700\" height=\"502\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2017\/12\/Continuous_Delivery_process_diagram.png 780w, \/blog\/wp-ttn-blog\/uploads\/2017\/12\/Continuous_Delivery_process_diagram-300x215.png 300w, \/blog\/wp-ttn-blog\/uploads\/2017\/12\/Continuous_Delivery_process_diagram-624x447.png 624w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><p id=\"caption-attachment-52538\" class=\"wp-caption-text\">Source: technology.amis.nl<\/p><\/div>\n<h2><b>(B.) One artifact one environment: <\/b><\/h2>\n<p>Ensure that the fully tested and approved artifacts are deployed to production. It is important to place artifacts correctly so as to avoid the risk of moving a wrong artifact to production. A rule of thumb is to <a title=\"Manage Artifacts\" href=\"http:\/\/www.tothenew.com\/blog\/integrating-and-managing-old-artifacts-through-jenkins\/\">create artifacts<\/a> at the initial stage of the build and then continue testing these artifacts across environments until it reaches pre-production stage. While deploying to production, avoid building new artifacts and use the artifacts that are existing in the pre-production environment. \u00a0\u00a0Storing the artifact is one more thing that needs to be taken into account Artifacts that are yet to be tested should be stored at a different location viz. a viz. those that are tested and ready to be deployed. Ensure appropriate tagging for easy reference. There are multiple <a title=\"DevOps Tools\" href=\"http:\/\/www.tothenew.com\/devops-chef-puppet-docker\"><span style=\"font-weight: 400;\">DevOps tools<\/span><\/a><span style=\"font-weight: 400;\"> available for creating artifact repositories such as :<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Nexus<\/span><\/li>\n<li style=\"font-weight: 400;\"><a title=\"CD pipeline through Jenkins\" href=\"http:\/\/www.tothenew.com\/blog\/continuous-delivery-pipeline-jenkins-delivery-pipeline-view-plugin\/\"><span style=\"font-weight: 400;\">Jenkins<\/span><\/a><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">JFrog<\/span><\/li>\n<li style=\"font-weight: 400;\"><a title=\"What is Docker\" href=\"http:\/\/www.tothenew.com\/blog\/what-is-docker-and-why-use-it\/\"><span style=\"font-weight: 400;\">Docker<\/span><\/a><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Archiva<\/span><\/li>\n<\/ol>\n<h2><b>(C.) Ensure Build, Test and Deployment Automation<\/b><\/h2>\n<p><span style=\"text-decoration: underline;\"><a title=\"Pipeline Automation\" href=\"http:\/\/www.tothenew.com\/blog\/fully-automated-cicd-pipeline-your-business-needs-it-right-away\/\"><span style=\"font-weight: 400;\">Pipeline automation<\/span><\/a><\/span><span style=\"font-weight: 400;\"> is inevitable when most companies want to reach out to market faster. Companies have started leveraging leading DevOps tools such as <a title=\"Introduction to Spinnaker\" href=\"http:\/\/www.tothenew.com\/blog\/introduction-to-spinnaker-global-continuous-delivery\/\">Spinnaker<\/a>, Jenkins, TravisCI, <a title=\"Best peactices of CD\" href=\"http:\/\/www.tothenew.com\/blog\/continuous-delivery-best-practices\/\">BitBucket<\/a>, <a title=\"Introduction to CircleCI\" href=\"http:\/\/www.tothenew.com\/blog\/an-introduction-to-circleci\/\">CircleCI <\/a>and <a title=\"Introduction to Bamboo\" href=\"http:\/\/www.tothenew.com\/blog\/introduction-to-bamboo\/\">Bamboo<\/a> to automate build, testing and deployment across environments. This enables faster releases.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Organizations realize that Continuous Delivery is one of the mission-critical business drivers across industries. While many companies have successfully adopted CD, many others are assessing the technology, process and culture change required to adopt CD efficiently. If organizations are able to build competencies and get accurate DevOps consulting, it will make the transition swift. Faster time to market, better quality of the product, competitive advantage and higher customer satisfaction with reduced cost of development are just a few of the many benefits companies can easily avail by adopting CD.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Frequent and shorter releases, faster feedback, less risky deployments and resilient systems &#8211; do they sound familiar? Well, modern technology companies are focusing and emphasizing on Continuous Integration, Continuous Delivery and Continuous Deployment to improve time to market and get an edge over the competitors. Continuous delivery is an extension to continuous integration. Companies have [&hellip;]<\/p>\n","protected":false},"author":1116,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":15},"categories":[1993,2348,1994,1,1816],"tags":[2581,2642,4573,4019,1853,4017,4252,3270,1892,4168,1883,1621,4077],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/52536"}],"collection":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/users\/1116"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/comments?post=52536"}],"version-history":[{"count":4,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/52536\/revisions"}],"predecessor-version":[{"id":52561,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/52536\/revisions\/52561"}],"wp:attachment":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/media?parent=52536"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/categories?post=52536"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/tags?post=52536"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}