diff --git a/ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md b/ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md index 2795b48..fa78d50 100644 --- a/ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md +++ b/ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md @@ -2,14 +2,14 @@ ## Abstract -Many software development teams think of the operational aspects of Continuous -Delivery (CD) and the competitive benefits that come along with it. For us, it -was much more: it was a survival technique. This article presents the -experience applying CD in a Brazilian Government project for the development of -a Collaborative Development Environment (CDE), sharing its unconventional -challenges and our strategies used to overcome them. This report from the -trenches of the Brazilian Federal Government can help practitioners to -understand how important the CD adoption is to their projects. +For many software development teams, the first things that come to mind +regarding Continuous Delivery (CD) are its operational aspects and competitive +benefits. For us, it was much more: it was a survival technique. This article +presents our experience applying CD in a Brazilian Government project for the +development of a Collaborative Development Environment (CDE), sharing its +unconventional challenges and the strategies used to overcome them. This report +from the trenches of the Brazilian Federal Government can help practitioners to +understand how important CD adoption can be to their projects. ## Introduction and Context @@ -102,7 +102,7 @@ the worst political crisis after the re-democratization in Brazil. ![Deployment Pipeline](figures/pipeline.png) The figure represents our CD pipeline: it starts with new code arriving -which is tested and improved during as necessary as it goes through each one +which is tested and improved during as necessary as it goes through each one of the steps until finally reaches the production environment. At this point we get back to the first stage to release more new code. @@ -134,12 +134,12 @@ consequence, we had different tag values. ### Packaging The platform is running on the CentOS 7 GNU/Linux distribution. -Basically, packaging a software for that distribution has three steps: write +Basically, packaging a software for that distribution has three steps: write the script for the specific environment (RPM); build the package; and upload it to a package repository. We chose to create our own packages for each software component for several -reasons: +reasons: * Not all software was packaged by the community; * And those that existed were outdated; * Packaging makes it easy to manage the software on a given distribution; @@ -151,9 +151,9 @@ After creating a new tag for one component, the DevOps team was notified and packaging process began. In the normal case, the three packaging steps aforementioned were fully automated by a set of scripts. -However, if the developers reported to DevOps any eventual dependency change, -the first packaging step had to be manual. For instance, suppose one system -starts requiring another system to be initialized first. That required the +However, if the developers reported to DevOps any eventual dependency change, +the first packaging step had to be manual. For instance, suppose one system +starts requiring another system to be initialized first. That required the DevOps to manually update the packaging script respective to these systems. After all these scripts have run successfully, the new packages would be ready @@ -166,7 +166,7 @@ to use by our subsequent deployment scripts. The Validation Environment (VE) is a replica of the Production Environment (PE), with two exceptions: only the government officers and us had access to it and all the data is anonymised. To configure the environment, we use a -configuration management tool. That maintained environment consistency +configuration management tool. That maintained environment consistency simplifying the deployment process. Additionally, the packages we built on the last step were readily available to use by the management tool. @@ -186,16 +186,16 @@ move forward. After the government finish the VE check, it is cleared for deployment and we can finally begin the deployment to Production Environment (PE). For this we -use the same configuration management tool as in the VE as well with same +use the same configuration management tool as in the VE as well with same scripts and package versions. After the deploy is completed, both VE and PE -are running identical software. This is the point where new features and bug +are running identical software. This is the point where new features and bug fixes are finally available to end users. ## Benefits We had to handle many tensions between development and political issues. Our CD pipeline gave us strong mechanisms to tackle most of the problems. As a result -we came with some benefits from our decision to adopt CD. +we came with some benefits from our decision to adopt CD. ### Response to mistrust -- libgit2 0.21.2