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,54 +121,48 @@ we moved to preparing the release.
121 121
122 ### Preparing a new release 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 application and the SPB Portal. The application tag refers to the specific 125 application and the SPB Portal. The application tag refers to the specific
126 feature or bug fix and is a monotonically increasing. A new tag on any system 126 feature or bug fix and is a monotonically increasing. A new tag on any system
127 yielded a new SPB Portal tag. 127 yielded a new SPB Portal tag.
128 128
129 When all tests passed for a given component, we manually created a new 129 When all tests passed for a given component, we manually created a new
130 application tag for it. As a consequence, that automatically created a new tag 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 ### Packaging 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 We chose to create our own packages for each software component for several 141 We chose to create our own packages for each software component for several
142 reasons: 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 * Packaging makes it easy to manage the software on a given distribution; 146 * Packaging makes it easy to manage the software on a given distribution;
146 * It simplifies the deployment; 147 * It simplifies the deployment;
147 * Packaging follows the distribution’s best practices and, 148 * Packaging follows the distribution’s best practices and,
148 * Allows configurations and permissions control. 149 * Allows configurations and permissions control.
149 150
150 After creating a new tag for one component, the DevOps team was notified and 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 The Validation Environment (VE) is a replica of the Production Environment 159 The Validation Environment (VE) is a replica of the Production Environment
167 (PE), with two exceptions: only the government officers and us had access to it 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 The VE was used by the government agents to validate new features and required 167 The VE was used by the government agents to validate new features and required
174 changes. Also, the VE was useful to verify the integrity of the entire portal 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,20 +170,21 @@ as part of the next step in the pipeline.
176 170
177 ### Acceptance Tests 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 ## Benefits 189 ## Benefits
195 190