Commit 546c15bb4158a4e8afc710695b0f782164ae3968
1 parent
86bc0133
Exists in
master
and in
3 other branches
[i3eSW] Grammarly Pipeline
Showing
1 changed file
with
37 additions
and
40 deletions
Show diff stats
ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md
| ... | ... | @@ -130,22 +130,21 @@ e está bem colocada. Se decidirmos tirar, teremos que repensar o parágrafo. |
| 130 | 130 | --> |
| 131 | 131 | The SPB portal is a system-of-systems with several integrated software projects. |
| 132 | 132 | Each of them, as well as the entire platform, had to be tested. These software |
| 133 | -components have their own test suite. Communication between all components is | |
| 134 | -orchestrated by Colab, a systems integration platform for web applications based | |
| 135 | -on a plugins architecture. Therefore, specific plugins were developed for | |
| 136 | -each portal software component, such as Gitlab (www.gitlab.com) and | |
| 137 | -Noosfero (www.noosfero.org). Each plugin has its own test suite and this set | |
| 138 | -also worked as integration tests. | |
| 133 | +components have own test suite. Colab, a systems integration platform for web | |
| 134 | +applications based on a plugins architecture, orchestrate communication between | |
| 135 | +all of them. Therefore, we developed specific plugins for each portal software | |
| 136 | +component, such as Gitlab (www.gitlab.com) and Noosfero (www.noosfero.org). Each | |
| 137 | +plugin also has own test suite, and this set also worked as integration tests. | |
| 139 | 138 | |
| 140 | 139 | Both unit and integration tests provided us the performance and security needed |
| 141 | -to guarantee the stability for components and the platform. If any test suite | |
| 140 | +to guarantee the stability of components and the platform. If any test suite | |
| 142 | 141 | failed, by either a test error or coverage reduction below a certain threshold, |
| 143 | -the pipeline stopped. Only when all tests passed, the pipeline proceeded to the | |
| 142 | +the process stopped. Only when all tests passed, the pipeline proceeded to the | |
| 144 | 143 | step of preparing the release. |
| 145 | 144 | |
| 146 | 145 | ### Preparing a New Release |
| 147 | 146 | |
| 148 | -A SPB Portal release was composed of all its software components releases. Each | |
| 147 | +An SPB Portal release was composed of all its software components releases. Each | |
| 149 | 148 | software component release was a git tag that referred to a specific feature or |
| 150 | 149 | bug fix. When all tests passed for a given component, we manually created a new |
| 151 | 150 | tag for it. Therefore, a new tag on any software component yielded a new SPB |
| ... | ... | @@ -155,57 +154,55 @@ we started packaging. |
| 155 | 154 | |
| 156 | 155 | ### Packaging |
| 157 | 156 | |
| 158 | -The platform is running on the CentOS 7 GNU/Linux distribution. Basically, | |
| 159 | -packaging a software for that distribution has three steps: write the script | |
| 160 | -for the specific environment (RPM), build the package, and upload it to a | |
| 161 | -package repository. | |
| 157 | +The platform is running on the CentOS 7 GNU/Linux distribution. Packaging a | |
| 158 | +software for that distribution has three steps: write the script for the | |
| 159 | +specific environment (RPM), build the package, and upload it to a package | |
| 160 | +repository. | |
| 162 | 161 | |
| 163 | -We decided to create our own packages for each software component for the following five | |
| 164 | -reasons: | |
| 162 | +We decided to create own packages for each software component for the following | |
| 163 | +five reasons: | |
| 165 | 164 | |
| 166 | -* Not all software was packaged by the community and those that existed were | |
| 167 | -outdated; | |
| 165 | +* Not all software was packaged by the community and those that existed were outdated; | |
| 168 | 166 | * Packaging makes it easy to manage the software on a given distribution; |
| 169 | 167 | * Packaging simplifies the deployment; |
| 170 | 168 | * Packaging follows the distribution's best practices and, |
| 171 | 169 | * Packaging allows configurations and permissions control. |
| 172 | 170 | |
| 173 | -After creating a new tag for one component, the developers informed the | |
| 174 | -DevOps [3] team and the packaging process began. The three packaging steps | |
| 175 | -aforementioned were fully automated by a set of scripts. With all these scripts | |
| 176 | -running successfully, the new packages would be ready to be used by our | |
| 177 | -subsequent deployment scripts. | |
| 171 | +After creating a new tag for one component, the developers informed the DevOps | |
| 172 | +[3] team, and the packaging process began. A set of scripts fully automated the | |
| 173 | +three packaging steps aforementioned. With all them running successfully, the | |
| 174 | +new packages would be ready to be used by our deployment scripts. | |
| 178 | 175 | |
| 179 | 176 | ### Validation Environment Deployment |
| 180 | 177 | |
| 181 | -The Validation Environment (VE) is a replica of the Production Environment | |
| 182 | -(PE), with two exceptions: only the government officers and project leaders had | |
| 183 | -access to it and all the data was anonymised. To configure the environment, we | |
| 184 | -used a configuration management tool named Chef with Chake support (serverless | |
| 185 | -configuration for Chef). That tool maintained environment consistency | |
| 186 | -simplifying the deployment process. Additionally, the packages we built on the | |
| 187 | -last step were readily available to be used by the management tool. | |
| 178 | +The Validation Environment (VE) is a replica of the Production Environment (PE), | |
| 179 | +with two exceptions: only the government officers and project leaders had access | |
| 180 | +to it and all the data became anonymous. To configure the environment, we used a | |
| 181 | +configuration management tool named Chef with Chake support (serverless | |
| 182 | +configuration for Chef). It maintained environment consistency simplifying the | |
| 183 | +deployment process. Additionally, the packages we built on the last step were | |
| 184 | +readily available to be used by the management tool. | |
| 188 | 185 | |
| 189 | -Government agents used the VE to validate new features and required | |
| 190 | -changes. Also, the VE was useful to verify the integrity of the entire portal | |
| 191 | -as part of the next step in the pipeline. | |
| 186 | +Government agents used the VE to validate new features and required changes. Also, | |
| 187 | +the VE was used to verify the integrity of the entire portal as part of the next | |
| 188 | +step in the pipeline. | |
| 192 | 189 | |
| 193 | 190 | ### Acceptance Tests |
| 194 | 191 | |
| 195 | 192 | After we deployed a new SPB Portal version in the VE, the government |
| 196 | 193 | agents were responsible for checking features and bug fixes required by them. If |
| 197 | 194 | the requirement analysts identified a problem, they would notify the developers via |
| 198 | -comments on the SPB Portal's issue tracker. The problems were fixed and the | |
| 199 | -pipeline restarted from scratch. If everything was validated, we moved forward. | |
| 195 | +comments on the SPB Portal's issue tracker. The development team fixed the problem | |
| 196 | +and the pipeline restarted from scratch. If everything was validated, we moved forward. | |
| 200 | 197 | |
| 201 | 198 | ### Production Environment Deployment |
| 202 | 199 | |
| 203 | -After the government finished the VE check and it was cleared for deployment, | |
| 204 | -we could finally begin the deployment to the Production Environment (PE). For this | |
| 205 | -we also used our configuration management tool, the same scripts and package | |
| 206 | -versions as in the VE. After the deploy was completed, both VE and PE | |
| 207 | -were running identical software. This was the point where new features and bug | |
| 208 | -fixes were finally available to the end users. | |
| 200 | +When the government finished the VE check, we could finally begin the deployment | |
| 201 | +in the Production Environment (PE). For this we also used our configuration | |
| 202 | +management tool, the same scripts and package versions as in the VE. After the | |
| 203 | +deploy was completed, both VE and PE were running identical software. Here was | |
| 204 | +the point where new features and bug fixes were finally available to the end | |
| 205 | +users. | |
| 209 | 206 | |
| 210 | 207 | ## Benefits |
| 211 | 208 | ... | ... |