CAN UNCLASSIFIED Combat Resource Allocation Support (CORALS) Continuous Integration Strategy Toward Faster Delivery Through Automation of Software Development Build, Test, Integration and Deployment Processes S. Turgeon DRDC – Valcartier Research Centre The body of this CAN UNCLASSIFIED document does not contain the required security banners according to DND security standards. However, it must be treated as CAN UNCLASSIFIED and protected appropriately based on the terms and conditions specified on the covering page. Defence Research and Development Canada Reference Document DRDC-RDDC-2021-D025 February 2021 CAN UNCLASSIFIED CAN UNCLASSIFIED IMPORTANT INFORMATIVE STATEMENTS This document was reviewed for Controlled Goods by Defence Research and Development Canada (DRDC) using the Schedule to the Defence Production Act. Disclaimer: This publication was prepared by Defence Research and Development Canada an agency of the Department of National Defence. The information contained in this publication has been derived and determined through best practice and adherence to the highest standards of responsible conduct of scientific research. This information is intended for the use of the Department of National Defence, the Canadian Armed Forces (“Canada”) and Public Safety partners and, as permitted, may be shared with academia, industry, Canada’s allies, and the public (“Third Parties”). Any use by, or any reliance on or decisions made based on this publication by Third Parties, are done at their own risk and responsibility. Canada does not assume any liability for any damages or losses which may arise from any use of, or reliance on, the publication. Endorsement statement: This publication has been published by the Editorial Office of Defence Research and Development Canada, an agency of the Department of National Defence of Canada. Inquiries can be sent to: [email protected]. Template in use: EO Publishing App for SR-RD-EC Eng 2018-12-19_v1 (new disclaimer).dotm © Her Majesty the Queen in Right of Canada (Department of National Defence), 2021 © Sa Majesté la Reine en droit du Canada (Ministère de la Défense nationale), 2021 CAN UNCLASSIFIED Abstract This Reference Document describes the continuous integration (CI) processes currently utilized for the development of software prototype Combat Resource Allocation Support (CORALS). The CI strategy is specifically tailored to support both the research project requirements and to meet the needs of its stakeholders and practitioners. Several principles, techniques and best practices for automation of software development activities were selected, implemented and tested using tools and technologies, which are detailed in this document. The positive impacts of this CI strategy are manifold: productivity of the development team has increased, stakeholders have greater access to the latest daily build of the prototype, the application is more stable, and software development process are now well documented, to name a few. Significance to Defence and Security There is a holistic, post-agile growing movement in software development that gets more and more attention from organizations worldwide, including the department of national defence; here comes DevOps. The term DevOps is formed from the combination of words development and operations. It is an umbrella term for several iterative and incremental automated development methodologies for transitioning solutions, designed by coders, to the operational community quicker. One of its core principles praises that all organizations working on software should have a well-designed continuous integration strategy in effect. There are many benefits of automating the software development tasks that comes after code is written. Intrinsically, an automated task is more predictable, repeatable, reliable, and faster. Plus, computerized automated tasks can have side-effects benefits, such as the automatic production of reports for analysis by humans. These reports can help further optimize the automated software engineering scripts, by highlighting problems as well as providing metrics about the code being built, integrated, tested, packaged and deployed automatically. A continuous integration strategy is especially important for teams of developers. A single and unique contributor to an application codebase may not want to invest time and resources in acquiring, deploying, configuring and maintaining the infrastructure required to run automated software development tasks, especially if he can run all these tasks right from his developer workstation. But, when several persons contribute to the codebase of a software, automation of tasks such as compilation and testing are of the essence not only to save time but also to provide quick feedback to the whole team, confirming whether or not the software was broken by someone’s changes, either by notifying of compilation results, or of automated tests execution reports. Plus, the building process won’t solely reside inside a developer’s head and habits, but will be formerly and fully specified inside reliable, repeatable automated scripts, which, when written following clean code principles, can be considered a form of documentation [1]. DRDC-RDDC-2021-D025 i Résumé Ce document de référence décrit la stratégie d’intégration continue présentement utilisée pour le développement du prototype « Combat Resource Allocation Support (CORAL) ». Cette stratégie a été spécialement conçue pour supporter les besoins du projet de recherche ainsi que ceux de ses principaux intervenants. Pour concevoir cette stratégie, des principes et techniques reconnus pour l’automatisation de plusieurs activités du développement logiciel et de la gestion du cycle de vie des applications ont été sélectionnées, implémentées et testées à l’aide d’une série d’outils et technologies aussi présentés en détail. Les impacts positifs de la stratégie d’intégration continue sont nombreux: la productivité de l’équipe de développement a augmenté, les utilisateurs ont plus facilement accès à la dernière version journalière du prototype, l’application est plus stable, et les processus de développement logiciel sont mieux documentés, pour n’en nommer que quelques-uns. Importance pour la défense et la sécurité Le mouvement DevOps est une évolution holistique du mouvement Agile, qui gagne de plus en plus en popularité dans les organisations à travers le monde, incluant le ministère de la Défense nationale. Le terme DevOps est un amalgame des mots développement et opérations. Il s’agit d’un terme qui couvre plusieurs méthodes itératives et incrémentales pour l’automatisation de d’activités liées au développement de logiciel, permettant aux solutions de passer de la conception vers les opérations plus rapidement. Un de ces principes fondamentaux est l’application d’une stratégie d’intégration continue sur mesure pour chaque organisation qui conçoit du logiciel. Il y a plusieurs avantages à automatiser les étapes de développement qui viennent à la suite de l’écriture du code. Intrinsèquement, une tâche automatisée devient répétable, plus prévisible, plus fiable et plus rapide. Des tâches automatisées par ordinateur découlent aussi des bénéfices indirects, tels que la production automatique de rapports, qui peuvent être ensuite analysés par les humains. Ces rapports peuvent aider à optimiser davantage les scripts d’automatisation aux différentes étapes du développement logiciel, du fait qu’ils fournissent des métriques détaillant les résultats des étapes intermédiaires de construction, d’intégration, de test, d’archivage et de déploiement. Le fait d’avoir une stratégie d’intégration continue est d’autant plus important pour une équipe de développeurs. Un unique développeur, seul contributeur au code, pourrait ne pas vouloir investir temps et argent dans l’acquisition, le déploiement, la configuration et la maintenance de l’infrastructure requise pour exécuter des tâches automatisées de développement logiciel. La principale raison reste qu’il peut exécuter toutes ces tâches à partir de son poste personnel de développement. Mais lorsqu’une équipe est constituée de plusieurs membres, qui contribuent tous à l’écriture du code, l’automatisation de tâches devient essentielle. Non seulement l’équipe sauvera du temps, mais aussi parce que l’infrastructure fournira aux membres une rétroaction confirmant qu’une application n’est pas brisée suite à l’intégration de changements au code produit par un membre. Ces confirmations se font par l’envoi de notifications des résultats de compilation ou de tests. L’implémentation d’une stratégie d’intégration continue fait en sorte ii DRDC-RDDC-2021-D025 que le processus de construction ne réside plus seulement dans la tête d’un développeur, mais se présente sous la forme de spécifications formelles à l’intérieur de scripts fiables, répétables et qui peuvent être automatisés. Lorsque ces scripts sont écrits en appliquant les meilleures pratiques de code propre, il s’agit ici aussi d’une certaine forme de documentation des processus. DRDC-RDDC-2021-D025 iii Table of Contents Abstract ................................ ... i Significance to Defence and Security ......................... i Résumé ................................ ... ii Importance pour la défense et la sécurité ....................... ii Table of Contents ............................... iv List of Figures ................................ vi List of Tables ................................ vii Acknowledgements .............................. viii
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages54 Page
-
File Size-