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 |