Commit d644dd05033d7e55ca1ea1e74657db255e974e08
1 parent
3f3ba051
Exists in
master
and in
3 other branches
[ieeeSW] Review Athos, part 2
Showing
1 changed file
with
29 additions
and
29 deletions
Show diff stats
ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md
... | ... | @@ -28,11 +28,12 @@ government, but also to society as a whole. The government could reduce both |
28 | 28 | the bureaucracy of using the same software in government agencies and the cost |
29 | 29 | of developing similar software projects. The society gained a mechanism of |
30 | 30 | transparency and collaboration, since anyone can check the government |
31 | -expenses on software and contribute to project communities. To achieve these | |
32 | -goals, rather than writing everything from scratch, we decided to integrate | |
33 | -several free software tools such as Noosfero (www.noosfero.org), Gitlab | |
34 | -(www.gitlab.com), Mailman (www.gnu.org/software/mailman), Mezuro | |
35 | -(www.mezuro.org), and Colab (www.github.com/colab). | |
31 | +expenses on software (from information available on the SPB Portal) and | |
32 | +contribute to project communities. To achieve these goals, rather than writing | |
33 | +everything from scratch, we decided to integrate several free software tools | |
34 | +such as Noosfero (www.noosfero.org), Gitlab (www.gitlab.com), Mailman | |
35 | +(www.gnu.org/software/mailman), Mezuro (www.mezuro.org), and Colab | |
36 | +(www.github.com/colab). | |
36 | 37 | |
37 | 38 | The project started in a presidential election year and everyone involved was |
38 | 39 | under pressure to show results. Even with the re-election of the Brazilian |
... | ... | @@ -62,10 +63,10 @@ with professors, master students, professional designers and senior developers |
62 | 63 | from the Brazilian free software community. Undergraduate students received a |
63 | 64 | scholarship and, for most of them, this R&D project was their first |
64 | 65 | professional experience. Senior developers and master students had two |
65 | -important contributions to the project: transfer knowledge to undergraduate | |
66 | -students and more complex tasks. Finally, professors were responsible for | |
67 | -interacting with the Brazilian government and controlling political pressures | |
68 | -applied to the project. | |
66 | +important contributions to the project: to transfer knowledge to undergraduate | |
67 | +students and to deal with more complex tasks. Finally, professors were | |
68 | +responsible for interacting with the Brazilian government and controlling | |
69 | +political pressures applied to the project. | |
69 | 70 | |
70 | 71 | Moreover, we needed to communicate with two independent groups of government |
71 | 72 | representatives. Requirement analysts were real representatives of the |
... | ... | @@ -83,12 +84,12 @@ the government expectations and to provide quick response to their requests, |
83 | 84 | which were influenced most of the time by the uncertainties of the project's |
84 | 85 | continuity. We believed we would keep the project alive, even in a politically |
85 | 86 | unstable and technically complex scenario. For this reason, we focused on |
86 | -automating the deploy process; for instance, one of our senior | |
87 | -developers created a Chef-Server (www.chef.io/chef) front-end tool called Chake | |
88 | -(www.gitlab.com/terceiro/chake) to help us manage the multiple hosts needed for | |
89 | -the project. We also formed a specific team dedicated to the deployment | |
90 | -process. This team was responsible for maturing our CD pipeline, giving us | |
91 | -confidence and agility to comply with government requirements. | |
87 | +automating the deploy process; for instance, one of our senior developers | |
88 | +created a tool called Chake (www.gitlab.com/terceiro/chake) to help us manage | |
89 | +multiple hosts without the need for a Chef-Server (www.chef.io/chef). We also | |
90 | +formed a specific team dedicated to the deployment process. This team was | |
91 | +responsible for maturing our CD pipeline, giving us confidence and agility to | |
92 | +comply with government requirements. | |
92 | 93 | |
93 | 94 | In this report, we describe our CD pipeline and how it improved our delivery |
94 | 95 | performance. Continuous Delivery made us adaptable for all requested changes |
... | ... | @@ -113,18 +114,17 @@ more new code. |
113 | 114 | |
114 | 115 | The SPB portal consists of more than 10 integrated software projects and each |
115 | 116 | of them, as well as the entire platform, had to be tested. These software |
116 | -components had their own test suite, maintained and expanded by the development | |
117 | -team. Communication between all components is orchestrated by Colab, a systems | |
118 | -integration platform for web applications based on a plugins architecture. | |
119 | -Therefore, specific plugins have been developed for each portal software | |
120 | -component, such as Gitlab and Mailman. Each plugin had its own test suite | |
121 | -and this set also worked as integration test. | |
122 | - | |
123 | -Both unit and integration tests provided us the performace and security needed | |
124 | -to guarantee the stability for components and the platform. If any test suite failed, | |
125 | -by either a test error or coverage reduction below a certain threshold, the | |
126 | -pipeline was stopped. Only when all tests pass, the pipeline proceeded to the step of | |
127 | -preparing the release. | |
117 | +components have their own test suite. Communication between all components is | |
118 | +orchestrated by Colab, a systems integration platform for web applications based | |
119 | +on a plugins architecture. Therefore, specific plugins were developed for | |
120 | +each portal software component, such as Gitlab and Mailman. Each plugin has its | |
121 | +own test suite and this set also worked as integration tests. | |
122 | + | |
123 | +Both unit and integration tests provided us the performance and security needed | |
124 | +to guarantee the stability for components and the platform. If any test suite | |
125 | +failed, by either a test error or coverage reduction below a certain threshold, | |
126 | +the pipeline stopped. Only when all tests passed, the pipeline proceeded to the | |
127 | +step of preparing the release. | |
128 | 128 | |
129 | 129 | ### Preparing a New Release |
130 | 130 | |
... | ... | @@ -177,7 +177,7 @@ as part of the next step in the pipeline. |
177 | 177 | |
178 | 178 | After we deployed a new SPB Portal version in the VE, the government |
179 | 179 | agents were responsible for checking features and bug fixes required by them. If |
180 | -the requirement analysts identified a problem, they would notified the developers via | |
180 | +the requirement analysts identified a problem, they would notify the developers via | |
181 | 181 | comments on the SPB Portal's issue tracker. The problems were fixed and the |
182 | 182 | pipeline restarted from scratch. If everything was validated, we moved forward. |
183 | 183 | |
... | ... | @@ -206,7 +206,7 @@ leader resulted in new requirements, most of them motivated by political |
206 | 206 | needs. These constant changes in requirements and priorities caused discomfort |
207 | 207 | between the government and the development team. For |
208 | 208 | example, the government leader required a complete layout change because he suddenly decided to make a marketing campaign about the new |
209 | -SPB portal. Thus the government would use undelivered requirements as a means to justify the | |
209 | +SPB portal. In future meetings, the government would use undelivered requirements as a means to justify the | |
210 | 210 | lack of financial support, which was already approved in the first place. We believed that if we took too |
211 | 211 | long to attend their demands, the project would end. CD helped us keep the |
212 | 212 | production environment up-to-date, even with partial versions of a feature. That | ... | ... |