Evolution of Integration, Build, Test, and Release Engineering Into DevOps and to DevSecOps

Evolution of Integration, Build, Test, and Release Engineering Into DevOps and to DevSecOps

Vishnu Pendyala (Cisco Systems Inc., USA)
DOI: 10.4018/978-1-7998-1863-2.ch001

Abstract

Software engineering operations in large organizations are primarily comprised of integrating code from multiple branches, building, testing the build, and releasing it. Agile and related methodologies accelerated the software development activities. Realizing the importance of the development and operations teams working closely with each other, the set of practices that automated the engineering processes of software development evolved into DevOps, signifying the close collaboration of both development and operations teams. With the advent of cloud computing and the opening up of firewalls, the security aspects of software started moving into the applications leading to DevSecOps. This chapter traces the journey of the software engineering operations over the last two to three decades, highlighting the tools and techniques used in the process.
Chapter Preview
Top

The DevOps area has predominantly been a domain of the industry than that of academia. Publishing articles is not as emphasized in the industry as it is in academia. This is one of the reasons for working on this book, so that insights into the tools, techniques, and processes employed in the industry, particularly, the large organizations are captured in the literature. Nevertheless, there is quite some literature already that captures the state-of-art in the DevOps and DevSecOps areas. The literature uncovered several interesting aspects of DevOps. This section captures a few of them. A framework for automated Round-Trip Engineering from development to operations and operations to development (Jiménez et al, 2018) is one of them. Round-Trip Engineering ensures that the Deployment and Configuration specifications are automatically ensured to be consistent with the system, thereby eliminating any technical debt on that count. This further confirms the need for tight integration of development and operations and automating the coupling as much as possible – one of the key points of this chapter.

Another channel of tight coupling between the development team and operations is through metrics. Metrics can provide an effective feedback mechanism in software organizations, which can be a substantial challenge in large organizations due to bureaucracy and cross-organizational environments (Cito et al., 2018). The authors identify feedback categories and phases and point to the tools that can help with the metrics generation. Culture plays an important role in DevOps (Sánchez-Gordón & Colomo-Palacios, 2018). Empathy is a critical component of the DevOps culture. Development teams and Operations teams must understand each other’s perspectives and strive towards the overall productivity of engineers and the quality of the product. The authors survey the literature and summarize the trends about the DevOps culture. DevOps can be thought of like a Project Management methodology that fills in the lacunae in Agile methodology (Banica, et al, 2017).

Key Terms in this Chapter

Everything as Code: A concept that everything that is needed to implement the software lifecycle can be treated as code, for example, pipeline as code.

Machine Learning: A branch of Artificial Intelligence which involves writing programs that can identify patterns, learn from data, and make predictions.

Workflow: A series of processes through which software code changes need to go through from conception to product completion.

Source Code Branch: An artifact in a version control system such as Git that allows parallel and independent development in the same files, unbeknownst to each other, until the branches merge.

Pipeline as Code: Use a programming language to specify what needs to happen in the pipeline and version the file containing this ‘pipeline program’ along with the source code, so that it is much more maintainable.

Artificial Intelligence: An area of Computer Science that involves writing programs that can do things that would otherwise require human intelligence.

Shift-Left: Assuming that the software lifecycle is drawn from left to right in chronological order, move certain aspects such as testing and security, which were previously done towards the end, to the earlier phases of the software development lifecycle.

Complete Chapter List

Search this Book:
Reset