Companies such as Netflix, Facebook, and Amazon have led the way in transforming their software development to DevOps, and more software companies are following their path. A survey by InteropITX found that 80% of development organizations are considering the adoption of DevOps methodologies, tools, and practices in the near future. Aerospace and defense technology companies must also adopt this method to remain successful and competitive.
What is DevOps?
DevOps is the term used to describe the strategies that have emerged to take advantage of virtualization, software as a service (Saas), and big data. As the term suggests, development and operations collaborate throughout the entire software development lifecycle. DevOps offers significant benefits to a wide range of software domains and applications including considerable improvement in productivity, scalability, software quality, and total lifecycle costs.
In a DevOps software process, some of the traditional technology and process relationships are inverted:
- Development and operations are tightly coupled which helps remove bottlenecks in deploying new features.
- Features are typically coupled and treated as isolated APIs or services which allows for more-or-less continuous development.
- DevOps enables software teams to deliver features to users more quickly, reliably, and frequently.
- DevOps uses automation and virtualization heavily to improve consistency and reliability.
- Regardless of the DevOps update, it’s treated as a live patch to an existing system with 100% uptime.
The DevOps team will design, develop, deploy, and maintain their software components so it’s critical to have individuals with the right skill-set and attitudes on the team. Everyone on the team needs skills in virtualization and an increased focus on quality, especially understanding how subtle changes might affect the integrated system. Since DevOps engineers are responsible for maintaining their code over the long term, it’s important that DevOps teams have some degree of permanence.
DevOps in a Safety-Critical Market
The countless benefits of using DevOps include faster delivery of higher-quality software, however, challenges to implement DevOps in a safety-critical market such as aerospace and defense remain. In these industries, formal verification and certification processes are important to prevent defects from turning into dangerous situations in the real world. Consequently, these teams will spend a significant amount of time getting their software ready for official acceptance. Despite the challenges specific to safety-critical markets, aerospace and defense teams have embraced the principles of DevOps because when executed well, DevOps will lead to higher overall software quality at a lower cost, without compromising safety.
Here are a few ways DevOps helps safety-critical teams achieve higher quality:
- Automation: The heavy use of automation allows software teams to concentrate their efforts on creating new features and fixing bugs. For example, adding fault injection and testing at scale can help find intermittent and low-frequency failures that might not otherwise be detected until later.
- Virtualization: Virtual machines can scale up the frequency and volume of testing. Its high-fidelity nature means virtual machines can execute software code intended for the target platform without alterations or modifications. Moreover, individual developers and teams can maintain their own virtual environments, even while the target hardware is still under development.
- Small, durable teams: Teams commit to a specific feature or component throughout the lifecycle, running regressions and certification tests and solving problems—they own the feature or component.
3 Lessons DevOps Can Learn from IT
When an organization is considering adopting DevOps they can learn a few lessons from the IT world.
- Consistency is key: Organizations can dramatically reduce support costs and increase reliability by deploying a minimal set of configurations that enable the needs of most users, rather than infinite configurability.
- Lean on automation: The IT world leveraged automation for every repetitive and non-creative task including automated patching, antivirus management, deployment of new servers and more to increase productivity.
- It’s never done: DevOps adopters can benefit from shifting their sense of done to match the attitudes of enterprise IT where the IT environment is always “under construction.”
Journey: Not a Destination
Organizations should expect that migrating to DevOps is done by making gradual, but meaningful changes to their existing methods. Each of the major practices of DevOps can be adopted on its own, or as a milestone to becoming a DevOps organization. Keep the following in mind in your own DevOps journey:
- Think in terms of services. Treat systems as a collection of independent, well-defined, and loosely coupled services, which can be used not only in the current release but across the organization.
- Most organizations can easily adopt the DevOps continuous delivery paradigm.
- All teams should be taking advantage of the productivity and quality gains afforded by virtualization and automated testing.
If you’re interested in achieving a 25% speed increase in software deliveries, as well as significant cost and time savings as suggested in one study, it might be time to consider adopting DevOps methodology in your organization. Contact Performance Software to learn how we can support your DevOps journey.
Other DevOps articles: