DevOps - Deployment Pipeline | DevOps Training - World Of Agile

Page 1

DevOps - Deployment Pipeline | DevOps Training - World Of Agile A Deployment pipeline is an important concept in ​Continuous Delivery​. In Deployment pipeline we break the build process into distinct stages. In each stage we get feedback to move into the next stage. It is a collaborative effort between various groups involved in delivering software development. Often the first state in Deployment pipeline is compiling the code and converting into binaries. After that, we run the automated tests. Depending on the scenario, there are stages like performance testing, security check, usability testing etc in a Deployment pipeline. In ​DevOps​ our aim is to automate all the stages of Deployment pipeline with a smooth running Deployment Pipeline, we can achieve the goal of Continuous Delivery. At an abstract level, a deployment pipeline is an automated manifestation of your process for getting software from version control into the hands of your users. Every change to your software goes through a complex process on its way to being released. That process involves building the software, followed by its process of these builds through multiple stages of testing and deployment. Steps in the Deployment Pipeline include: ● The deployment pipeline begins when a developer commits code to a joint versioning system. ● Prior to doing this commit, the developer will have performed a series of pre-commit tests on their local environment. The failure of the pre-commit tests of course means that the commit does not take place. ● A commit then triggers an integration build of the service being developed. This build is tested by the integration tests.


● If these tests are successful, the build is promoted to a quasi-production environment – the staging environment. ● Then it is promoted to production under close supervision. ● After another period of close supervision, it is promoted to normal production. ● The specific tasks may vary a bit for different organisation, For example, a small company may not have a staging environment or special ● Supervision for recently deployed version. A larger company may have several different production environments for different purposes. ● One way to define continuous integration is to have automatic triggers between one phase and the next, up to integration tests. That is, if the build is successful then integration tests are triggered. If not, the developer responsible for the failure is notified. ● Continuous delivery is defined as having automated triggers as far as the staging system. ● Once a service is deployed into production it is closely monitored for a period and then it is promoted into normal production. ● At this final stage, monitoring and testing still exist but the service is no different from other services in this regard. ● The committed code moves through the different steps described above but the code does not move on its own. Rather, it is moved by tools. The tools are controlled by their programs (scripts) or by developer/operator commands. ● Traceability is of utmost importance in this movement. Traceability means that, for any system in production, it is possible to determine exactly how it came to be in the production. This means keeping track not only of source code but also of all commands to all the tools that acted on the elements of the system. Individual commands are difficult to trace, therefore, it is better to use scripts instead of commands ● Treating infrastructure-as-code means that the infrastructure-scripts and movement-scripts should be subject to the same quality control as application source code. It should be regulated in same fashion.


The above figure shows a typical deployment pipeline and captures the essence of the approach. ● The Process starts with the developers committing changes into their version control system. At this point, the continuous integration management systems respond to the commit by triggering a new instance of our pipeline. The first (commit) stage of the pipeline ● compiles the code, ● runs unit tests, ● performs code analysis and ● creates installers ● The Second stage is typically composed of longer-running automated acceptance tests. Again your CI server should let you split these tests into suites which can be executed in parallel to increase their speed and give you feedback faster – typically within


an hour or two. This stage will be triggered automatically by the successful completion of the first stage in your pipeline. ● At this point, the pipeline branches to enable independent deployment of your build to various environments – in this case, UAT, Capacity testing and Production. Implementing a Deployment Pipeline Whether you are starting a new project from scratch or trying to create an automated pipeline for an existing system, you should generally take an incremental approach to implementing a deployment pipeline. In general, the steps look like this: ● Model your value stream and create a walking skeleton ● Automate the build and deployment process ● Automate unit tests and code analysis ● Automate acceptance tests ● Automate releases For More Information, Follow the Links below- Website - ​https://worldofagile.com/ Facebook - ​https://www.facebook.com/Fascinating.World.Of.Agile/ Twitter -​ https://twitter.com/WorldOfAgile LinkedIn - ​https://www.linkedin.com/company/world-of-agile/ YouTube - ​https://www.youtube.com/c/WorldOfAgile Tags - ​Scrum Master Certification​, S ​ crum Master Certification Mumbai​, ​Scrum Master Certification Pune​, ​Certified Scrum Master Training in Delhi​, ​Scrum Master Certification Kolkata​, ​CSPO Certification​, ​Agile Scrum Master Certification Online​, ​Advanced Certified Scrum Master Training​, ​DevOps Training​, ​Prince2 Certification​, ​PMP Certification​,​ ITIL Certification


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.