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,22 +130,21 @@ e está bem colocada. Se decidirmos tirar, teremos que repensar o parágrafo. | ||
| 130 | --> | 130 | --> |
| 131 | The SPB portal is a system-of-systems with several integrated software projects. | 131 | The SPB portal is a system-of-systems with several integrated software projects. |
| 132 | Each of them, as well as the entire platform, had to be tested. These software | 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 | Both unit and integration tests provided us the performance and security needed | 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 | failed, by either a test error or coverage reduction below a certain threshold, | 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 | step of preparing the release. | 143 | step of preparing the release. |
| 145 | 144 | ||
| 146 | ### Preparing a New Release | 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 | software component release was a git tag that referred to a specific feature or | 148 | software component release was a git tag that referred to a specific feature or |
| 150 | bug fix. When all tests passed for a given component, we manually created a new | 149 | bug fix. When all tests passed for a given component, we manually created a new |
| 151 | tag for it. Therefore, a new tag on any software component yielded a new SPB | 150 | tag for it. Therefore, a new tag on any software component yielded a new SPB |
| @@ -155,57 +154,55 @@ we started packaging. | @@ -155,57 +154,55 @@ we started packaging. | ||
| 155 | 154 | ||
| 156 | ### Packaging | 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 | * Packaging makes it easy to manage the software on a given distribution; | 166 | * Packaging makes it easy to manage the software on a given distribution; |
| 169 | * Packaging simplifies the deployment; | 167 | * Packaging simplifies the deployment; |
| 170 | * Packaging follows the distribution's best practices and, | 168 | * Packaging follows the distribution's best practices and, |
| 171 | * Packaging allows configurations and permissions control. | 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 | ### Validation Environment Deployment | 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 | ### Acceptance Tests | 190 | ### Acceptance Tests |
| 194 | 191 | ||
| 195 | After we deployed a new SPB Portal version in the VE, the government | 192 | After we deployed a new SPB Portal version in the VE, the government |
| 196 | agents were responsible for checking features and bug fixes required by them. If | 193 | agents were responsible for checking features and bug fixes required by them. If |
| 197 | the requirement analysts identified a problem, they would notify the developers via | 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 | ### Production Environment Deployment | 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 | ## Benefits | 207 | ## Benefits |
| 211 | 208 |