What is DevOps and why is it so important?
In today’s fast-moving environment, existing applications must constantly be updated at an ever increasing pace. In addition, complications often arise between developers and operational teams. Fortunately, the DevOps approach can fix this problem. But what exactly is DevOps? And how important is it for your company?
How did the DevOps approach come into being?
More than a methodology for software development, DevOps is a culture, which is necessary to meet the current needs of companies developing software, websites, applications, etc.
With the traditional waterfall model, the requirements for software were clear and well-defined in advance. The definition of the product itself was also stable. Developers programmed the software, after which the operational teams handled its implementation on the business systems or the web.
But the world of IT is changing fast. Requirements change very often, and software must be developed at an ever increasing pace. Not only must software and web applications be marketed faster, but it must also be possible to constantly update them, easily add new features and fix any bugs found. This leads to the Agile Development model.
However, the team of developers should not be the only one to react quickly and efficiently; the operational team, which has to deploy and monitor the new applications, should also react the same way. This leads to the DevOps approach. Many people associate this term with a closer collaboration between the developers, the creators of a product, and the ‘ops’, the operational team that handles the release, the deployment, the operation and the monitoring of the software.
But DevOps is much more than this – it is a ‘state of mind’, a common approach to a problem – an approach that goes beyond everything that is of a purely technical nature; an approach whereby all levels of the company are involved, including finance and marketing, and whereby communication is vital.
Everyone (developers and system administrators, as well as network managers and business analysts) is now part of the same team. And everyone works towards a common goal: the success of the entire project – not just of their part.
What are the principles of the DevOps approach?
The traditional silos between developers, testers, release managers and system administrators are broken down. They work more closely together during the entire development and deployment processes, which enables them to better understand each other’s challenges and questions.
Developers e.g. think more about operations, sources, uptime and reliability. The can e.g. build switches that allow ops teams to turn features on/off, disable certain options when traffic peaks, etc. The ops teams assist developers by making quick tests possible and monitoring them, etc.
The Devops approach thus requires people with multidisciplinary skills – people who are comfortable with both the infrastructure and configuration, but who are also capable of performing tests and debugging software. Devops are bridge builders, who are skilled in every field. They are, as Stephen Nelson-Smith puts it, “ambassadors, peace makers, facilitators and communicators”.
When the entire project team is agile, code for e.g. a new feature or a bug fix can be sent into production in no time – and be undone if necessary. The smaller the step between successive versions, the smaller the impact of a possible failure: this is the “fail fast, fail cheap” approach. Companies can thus innovate on a regular basis, which is especially important for online companies. Apparently, Amazon implements and changes new code every 2 seconds!
The DevOps approach has consequences for the entire delivery pipeline of a project, including:
- A faster time to market
- A lower failure rate of new releases
- Shortened lead time between fixes
- Faster recovery time (if a new release crashes)
What is DevOps about?
The logo of DevOps is the infinity symbol, or better: constant activity. DevOps is about:
- Constant development
- Constant testing
- Constant integration
- Constant implementation
- Constant monitoring
In the DevOps lifecycle, you go from the plan stage to the monitoring stage and then always begin a new cycle. The blue part refers to the development phase, while the yellow part refers to the operational phase, but it is actually a never-ending cycle, with various merging points.
The DevOps Agile Skills Association highlighted 6 principles for developing a DevOps strategy:
- Adopt a customer-centric mindset, with short feedback loops with real customers and end users
- Avoid the waterfall model where each unit works separately, without overseeing the complete picture, and prefer a company where everyone shares the engineering mindset that is required to make great working products.
- Organise your teams vertically so that they can be accountable 'from concept to grave'.
- Go for all-round profiles, working in autonomous teams, where they can develop personally.
- Focus on continuous improvement to optimise speed, costs and the product/service itself.
- Automate everything you can, including the infrastructure, by e.g. using next-gen container-based cloud platforms (infrastructure as code).
What technology do you need for DevOps?
The success of DevOps in recent years has gone hand in hand with the emergence of new technological tools that completely change the way people do their jobs. And this can be seen in both development and operations.
Thanks to improved and constant harmonisation between development and infrastructure, developers no longer need to write specific versions for specific hardware or infrastructure configurations. They can continuously deploy new versions thanks to CI/CD (continuous integration / continuous deployment), using tools such as GitLab, Jenkins, etc.
Professionals who constantly deploy new versions must have clear procedures and maximum automation on the infrastructure side. This can be achieved through the use of container technology such as that of Docker, or an automation platform such as Kubernetes. Those who want to focus exclusively on software development and who would rather not have to deal with infrastructure management at all can even opt for 'serverless' and 'Function-as-a-Service' (FAAS) solutions.
What are the benefits of the DevOps approach?
On a human level, the main benefit is obviously the change of attitude. The DevOps approach leads to enhanced empathy between team members, and it puts an end to the 'us and them' silos of people who are wary and sometimes even afraid of each other.
What the DevOps approach actually achieves is clearly stated in the 'Puppet's State of DevOps' report. This annual report compares companies that adopt DevOps practices (high-performance or HP organisations) to companies that do not do it to optimise product implementation, employee loyalty, security, etc. The 2016 report includes the following key findings:
- IT performance: HP organisations deploy 200 times more frequently, with a 2,555 times shorter lead time. They recover 24 times faster and have 3 times lower change failure rates.
- Employee loyalty: people working in HP organisations are 2.2 times more likely to recommend their organisation as a great place to work.
- Use of time: HP organisations spend 22% less time on unplanned work and rework. This way, they are able to spend 29% more time on new work, such as new features.
- Security: 50% less time is required to fix security issues since the information about security targets are better integrated in the daily work.
DevOps: how to get started?
Developing a DevOps culture requires planning. These tips can help you develop a DevOps mindset:
- Think about how you want your web team to operate over a period of 12-18 months.
- Examine your current work processes and ask yourself (and your team!) what can be improved, and what the risks are.
- Encourage your teams to have their say: how do they think the processes could be realistically improved? How do they feel about having ops handle dev projects?
- Find out who, among the existing employees, is willing to learn new skills.
- Feel free to share your conclusions and your plan with other units: cross-functional teams can be involved in your entire organisation to improve efficiency!
- When you hire new people, go for DevOps with cross-functional skills, and give them the opportunity to learn new skills.
Is a DevOps approach for everyone?
DevOps is a great approach for (online) companies that constantly innovate. For them, the 'time to market' is considerably shortened, which provides a huge financial benefit.
If, on the other hand, your company is not concerned, the DevOps approach will undeniably improve the relationships between your employees, but your business would most probably also survive without this culture. If the only application created in-house is merely intended to note your presence at meetings or schedule holidays, there is no need for it to be updated every day!
Did Combell adopt a DevOps approach too?
Sure! Combell has been adopting a DevOps strategy for many years now, whereby an all-round team of experts use a multidisciplinary approach of the application of the customer during its development, deployment and follow-up support. This is how you get more reliable applications and faster delivery times. Thanks to the takeover of Openminds in 2016, this approach has even been further refined.
Do you have a project in the pipeline? Or do you want to further develop an existing project? Let us know! Our teams will help you think and see what you actually need in terms of hosting and equipment to make your dream project come true!