Software Technologies - Home
DevOps
Christof Ebert
JAN 22, 2016 12:17 PM
A+ A A-

DevOps

by Christof Ebert

DevOps is about fast and flexible development and delivery business processes. The blog provides a brief overview on most recent DevOps technologies and what it means for industry projects. Learn about some best practices for DevOps in this blog...

— Christof Ebert

DevOps efficiently integrates development, delivery and operations and thus facilitates a lean and fluid connection of these traditionally separated silos. It is a software practice that integrates the two worlds of development and operations with automated development, deployment and infrastructure monitoring. It’s an organizational shift where instead of distributed silo-like functions cross-functional teams work on continuous operational feature deliveries. This integrative approach helps teams deliver value in a faster and continuous way, reducing problems generated by miscommunication between team members and enhancing a faster resolution of problems.

DevOps means a culture shift towards collaboration between development, quality assurance and operations. The generic process is indicated in the figure below. Its promise and goal is to better integrate the development, production and operations business processes with adequate technology, thus not staying on highly artificial process concepts which will never fly, but rather set up a continuous delivery process with small upgrades. Companies such as Amazon and Google have lead this approach achieving cycle times of minutes. This obviously depends on the deployment model, whereas a single cloud service is easier to facilitate than actual software deliveries to real products.

DevOps applies to these very different delivery models, but must be tailored to the environment and product architecture. Not all products facilitate continuous deliveries, for instance in safety-critical systems. Nevertheless upgrades can be planned and delivered in a fast and reliable scheme, as recent evolution of automotive software over the air (OTA) upgrades show. Aside the highly secured cloud based delivery model, such delivery models also need dedicated architecture and hardware changes, for instance a hot swap controller concept, where one half is operational and the other half builds the next updates which are swapped to active mode after in-depth security and verification approaches. DevOps for embedded systems is more challenging than cloud and IT services due to the dependence on legacy code and architecture, and trying to fit it into a continuous delivery approach.

Modern tools are mandatory to implement a DevOps pipeline. Choosing the right tools for your environment or project it is an important step when moving to a DevOps practice. In the build phase the tools need to support fast workflows. From this perspective, build tools help to achieve fast iteration reducing manual time consuming tasks, and Continuous integration tools merge code from all developers and check for broken code, improving software quality. During the deployment phase the most important shift is to treat Infrastructure as code. With this approach infrastructure can be shared, tested and version controlled. A homogenous infrastructure is shared between development and production, reducing problems and bugs because of difference in infrastructure configuration.

At Vector we have supported a number of companies on improving efficiency with DevOps and continuous delivery. A key learning for all companies is that the culture shift should not be underestimated. There are four major challenges which we face in all DevOps projects, namely:

•               Break complex architectures and feature sets towards small chunks that can be produced and deployed independently.

•               Maintain a configuration and build environment which provides visibility at all times about what is currently deployed with which versions and dependencies.

•               Introduce a purpose-built development and production environment from legacy ALM/PLM environments.

•               Bridge the traditional silo-type cultures of development (perceived by operations in its thoroughness as cumbersome and expensive) and operations (perceived by developers as quick and dirty).

DevOps is a paradigm shift impacting the entire software and IT industry. Building upon lean and agile practices, DevOps means end-to-end automation in software development and delivery. Hardly anybody will be able to approach it with a cookbook style approach, but most will benefit from better connecting the previously isolated silos of development and operations. Mutual understanding from requirements onwards to maintenance, service and product evolution will yield typically a cycle time improvement of 10-30% and cost reduction of up to 20%. Major drivers are less requirements changes, focused testing and quality assurance, and much faster delivery cycle with feature-driven teams. As products and life-cycle processes vary, each company needs its own approach towards a DevOps environment, from architecture to tools and culture.

Contact me at christof.ebert@vector.com for more information or to discuss these trends.

 

More:

Read selected white papers on agile practices from our media-center

Directly proceed to the white papers…

Read our full article on DevOps tools and technologies in IEEE Software, May 2016

FIRST
PREV
NEXT
LAST
Page(s):
[%= name %]
[%= createDate %]
[%= comment %]
Share this:
Please login to enter a comment:
 
RESET