devops engineering

Understanding DevOps

Fraunhofer IKS is conducting research into the transfer of DevOps concepts to robotics applications. Let’s start with a brief introduction to the topic:

In DevOps, a variety of tools are used and a specific cultural philosophy is applied with the goal of automating and integrating the processes between the software development teams, also known as developers, and the IT teams. In this context, the focus is on factors such as team empowerment, communication and collaboration across team boundaries as well as the automation of technology.

It is important to emphasize that DevOps isn’t just a set of tools or methods, but is something that demands a profound change in the corporate culture. Its goal is to achieve a greater degree of integration and collaboration between the people who develop the software, and the IT operators who are responsible for the operation and maintenance of this software. This aims to increase the speed and flexibility of software delivery and to improve the quality as well as the responsiveness to the customers’ needs.

DevOps and how it differs from traditional software development

Traditional project-based software development is associated with certain cumbersome mechanisms that can be fixed with the DevOps approach. For instance, it often includes a software life cycle that makes the deployment of new functions for complex software systems time-consuming and arduous. There is also the risk that functions will already be outdated when they are released, as development and testing are often lengthy processes.

Moreover, it is often the case that not all software bugs are identified during  testing, which leads to quality assurance issues. In addition, creating a continuous flow of new features and bug fixes is difficult to achieve, because traditional development methods are organized in discrete phases, with each step needing to be completed before the next.

fireflies path
© iStock.com/Diana Radicchi

The DevOps approach, on the other hand, offers developers more freedom, but also requires more responsibility. It emphasizes the integration and collaboration between development and operations, which can solve several of the problems mentioned. Through the use of automation, continuous integration and deployment, a steady stream of new features and bug fixes can be ensured, while maintaining the quality of the software and minimizing the deployment risk.

Mode of operation and mechanisms of DevOps

As a method, DevOps optimizes the product life cycle and improves the quality of the software through two core principles: Shift right and shift left.

  • Shift Right adapts the software life cycle to the development process and minimizes the risk of software bugs. The simplification of all development phases and continuous feedback during the operational stage are the key components of this principle
  • Shift Left is based on development in a close-to-operational environment from the very start, so as to write stable code. Quicker feedback loops allow for the development to recognize and rectify errors at an early stage.

Product life cycle management is another important aspect of DevOps, especially for cyber-physical systems. This is because these systems require comprehensive preliminary tests using realistic simulations to be able to identify and rectify potential problems before they happen. Continuous investment in the development and improvement of tools, test methods and simulation options is crucial.

© Fraunhofer IKS
Veranschaulichung des DevOps-Ansatzes: Entwicklung und IT-Betrieb arbeiten zusammen, um Prozesse zu optimieren.

The purpose of DevOps: Benefits and areas of application

DevOps is a central building block in the increasingly digitalized world, which is based more and more on high-performance computing units for algorithms and cyber-physical systems. This approach is of particular relevance to companies that develop high-tech products, but also to market-leading digital corporations. In this context, traditional corporate structures are frequently being reconsidered and software engineers are being given an increasing amount of responsibility. However, it is important to note that even supposedly simple adjustments to the software often require the expertise of several specialists to ensure a holistic overview is obtained.

DevOps makes use of an extensive assortment of tools to automate everyday tasks and thereby increase efficiency. The goal is to achieve what is known as a “green to green” mentality, which ensures that the software consistently remains in a production-ready state.

What DevOps promises

DevOps offers significant advantages that help optimize development processes and minimize the potential for errors. The three biggest opportunities and benefits of DevOps are described in detail below.

Improved coordination of the provision

DevOps helps to bridge the silos between the development and operations teams and close gaps in skills and communication. In this respect, strong release management and collaboration tools such as spreadsheets, conference calls, instant messaging and company portals (such as Wiki, SharePoint) play a decisive role. They ensure that everyone involved understands the changes and works together effectively.

Reduced scope for changes

The agile or iterative development approaches that are typically used for DevOps mean more frequent releases and fewer changes per release in comparison with traditional waterfall development models. Regular releases ensure that any changes have minimal impact on the production system and that the applications continue to evolve over time. 

Automation

Robust automation processes ensure the repeatability of tasks and reduce the likelihood of errors during the deployment.

The challenges of DevOps

It goes without saying that implementing the DevOps method isn’t without challenges that need to be overcome. The four biggest challenges in DevOps are detailed below.

Data protection

As DevOps requires a stable Internet connection, problems with data protection can arise. 

Cultural change in companies

DevOps requires a profound change in the corporate culture. In contrast to the traditional separation of development, testing, deployment and operation, software developers take full responsibility for their code. Engineers are required to write all the necessary new tests and ensure that their changes do not have any adverse side effects. They must also be open to progressive improvements, as taking full responsibility requires mastery of every phase of the software life cycle.

Overcoming a sluggish software life cycle

Traditional software development can take a long time, and in some cases, projects can take several years. Due to the length of such cycles, many functions may already be obsolete before they even come to the market. This also makes it very difficult to identify all the software bugs.

Risks of failing to follow the DevOps process

Failing to follow DevOps processes can lead to serious mishaps, from environmental pollution through to loss of human lives due to software errors.

Research into DevOps for cyber-physical systems: Fraunhofer IKS and Magazino

Despite the challenges, the transformation to DevOps offers huge potential to many companies, and following from this, considerable advantages to consumers, who can benefit from less machine downtime and customized products. Due to the complexity of the system and the necessity to adapt to individual product areas, DevOps is best introduced in increments.

The Fraunhofer Institute for Cognitive Systems IKS and Magazino GmbH have been conducting research into the transfer of DevOps concepts to robotics applications as part of their joint “RoboDevOps” project. The project has taken the entire life cycle of the software into account. The first step is the development of a software architecture (shift right), followed by simulations and tests. During the introductory phase, various options for further development are examined. An intuitive system for monitoring progress is then created in which all the processes are as automated as possible. The results of the research project have been summarized in a white paper. Currently, the publication of another “best practice” paper is planned, which will offer valuable insights and advice for other organizations looking to embark on their DevOps implementation journey.

References and more information

 

RoboDevOps - Continuous development and safeguarding autonomous, mobile robot systems

Together with Magazino, Fraunhofer IKS has been researching the transfer of DevOps concepts to robotics. They were able to identify challenges and develop specific solutions.

 

AutoDevSafeOps – Integrated development and operation of safe automotive systems

Highly automated and autonomous driving functions are becoming increasingly important, turning modern cars into driving computers.  The MANNHEIM project AutoDevSafeOps, which Fraunhofer IKS is also involved in, is developing an important approach to meet the high demands that automated and networked vehicles place on existing software architecture.