Commit 6bfa9e8cb1312774fe5d2af59ec2e5c06c8f0270

Authored by Paulo Meireles
1 parent a4e97ab6

[ieeeSW] Review pipeline

ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md
... ... @@ -121,54 +121,48 @@ we moved to preparing the release.
121 121  
122 122 ### Preparing a new release
123 123  
124   -Our release process was divided in two perspectives in terms of git tags: the
  124 +Our release process was divided in two perspectives in terms of Git tags: the
125 125 application and the SPB Portal. The application tag refers to the specific
126 126 feature or bug fix and is a monotonically increasing. A new tag on any system
127 127 yielded a new SPB Portal tag.
128 128  
129 129 When all tests passed for a given component, we manually created a new
130 130 application tag for it. As a consequence, that automatically created a new tag
131   -for the SPB Portal. Notice that we have forks of the original softwares and, as
132   -consequence, we had different tag values.
  131 +for the SPB Portal. Notice that we forked of the original software projects
  132 +and, as consequence, we had different tag values.
133 133  
134 134 ### Packaging
135 135  
136   -The platform is running on the CentOS 7 GNU/Linux distribution.
137   -Basically, packaging a software for that distribution has three steps: write
138   -the script for the specific environment (RPM); build the package; and upload
139   -it to a package repository.
  136 +The platform is running on the CentOS 7 GNU/Linux distribution. Basically,
  137 +packaging a software for that distribution has three steps: write the script
  138 +for the specific environment (RPM), build the package, and upload it to a
  139 +package repository.
140 140  
141 141 We chose to create our own packages for each software component for several
142 142 reasons:
143   -* Not all software was packaged by the community;
144   -* And those that existed were outdated;
  143 +
  144 +* Not all software was packaged by the community and those that existed were
  145 +outdated;
145 146 * Packaging makes it easy to manage the software on a given distribution;
146 147 * It simplifies the deployment;
147 148 * Packaging follows the distribution’s best practices and,
148 149 * Allows configurations and permissions control.
149 150  
150 151 After creating a new tag for one component, the DevOps team was notified and
151   -packaging process began. In the normal case, the three packaging steps
152   -aforementioned were fully automated by a set of scripts.
153   -
154   -However, if the developers reported to DevOps any eventual dependency change,
155   -the first packaging step had to be manual. For instance, suppose one system
156   -starts requiring another system to be initialized first. That required the
157   -DevOps to manually update the packaging script respective to these systems.
158   -
159   -After all these scripts have run successfully, the new packages would be ready
160   -to use by our subsequent deployment scripts.
  152 +the packaging process began. In the normal case, the three packaging steps
  153 +aforementioned were fully automated by a set of scripts. With all these scripts
  154 +running successfully, the new packages would be ready to use by our subsequent
  155 +deployment scripts.
161 156  
162   -### Validation Environment
163   -
164   -[//]: # (TODO - Mencionar que a ferramenta era baseada em Chef - Dá um peso importante.)
  157 +### Validation Environment Deployment
165 158  
166 159 The Validation Environment (VE) is a replica of the Production Environment
167 160 (PE), with two exceptions: only the government officers and us had access to it
168   -and all the data is anonymised. To configure the environment, we use a
169   -configuration management tool. That maintained environment consistency
170   -simplifying the deployment process. Additionally, the packages we built on
171   -the last step were readily available to use by the management tool.
  161 +as well as all the data is anonymised. To configure the environment, we used
  162 +our configuration management tool: Chake (serverless configuration with Chef).
  163 +That maintained environment consistency simplifying the deployment process.
  164 +Additionally, the packages we built on the last step were readily available to
  165 +use by the management tool.
172 166  
173 167 The VE was used by the government agents to validate new features and required
174 168 changes. Also, the VE was useful to verify the integrity of the entire portal
... ... @@ -176,20 +170,21 @@ as part of the next step in the pipeline.
176 170  
177 171 ### Acceptance Tests
178 172  
179   -After we completely deploy a new SPB Portal version in the VE, the government agents
180   -are responsible for checking features and/or bug fixes required by them. If the
181   -technicians identify a problem, they notify the developers. These problems are
182   -fixed and the pipeline restarts from scratch. If everything is validated, we
183   -move forward.
184   -
185   -### Production Deployment
186   -
187   -After the government finish the VE check, it is cleared for deployment and we
188   -can finally begin the deployment to Production Environment (PE). For this we
189   -use the same configuration management tool as in the VE as well with same
190   -scripts and package versions. After the deploy is completed, both VE and PE
191   -are running identical software. This is the point where new features and bug
192   -fixes are finally available to end users.
  173 +After we completely deploy, a new SPB Portal version in the VE, the government
  174 +agents are responsible for checking features and bug fixes required by them. If
  175 +the technicians identify a problem, they notified the developers via comments
  176 +on an git issue related to the user story (features) already registered in our
  177 +Gitlab at the SPB Portal. These problems were fixed and the pipeline restarted
  178 +from scratch. If everything is validated, we moved forward.
  179 +
  180 +### Production Environment Deployment
  181 +
  182 +After the government finished the VE check, it was cleared for deployment and
  183 +we could finally began the deployment to Production Environment (PE). For this
  184 +we also used our configuration management tool as in the VE as well with same
  185 +scripts and package versions. After the deploy was completed, both VE and PE
  186 +were running identical software. This was the point where new features and bug
  187 +fixes were finally available to the end users.
193 188  
194 189 ## Benefits
195 190  
... ...