Introduction
Read this article to understand what is DevOps, and if you’re an IT professional, why you must gain DevOps certification in 2019.
Existing IT operations
Work in any medium or large organisation, and you’ll be familiar with IT Operations or IT Support. They’re the people who come to fix your computer when it doesn’t work. Or, the people you call when you’re trying to install a program, only to find out you’re not allowed to.
IT operations departments grew hugely in the last few decades as almost all white-collar workers began to use computers in their jobs. As IT departments grew, so did the number of processes and procedures, which were written to govern the way IT did their work. Coupled with rapid advances in technologies, IT has increasingly faced pressures to do more, often with less, as corporate budgets were squeezed.
Too many staff often have a negative view of their IT operations department. Taking too long to fix an issue, software upgrades going wrong, slow or badly-performing networks. IT is often seen as a drain on productivity, even though IT itself was bought precisely to raise productivity.
Dysfunctional culture
Actually, IT is usually divided into 2 parts. The ‘operations’ part which aims to maintain stable, working IT infrastructure to support the business. The ‘development’ part which aims to develop new solutions quickly which respond to the needs of a changing business environment. Although these 2 parts are part of IT, at best they have often worked in isolation, and at worst have viewed one another with suspicion and hostility.
One part – ‘Ops’ – is inherently risk-averse. Procedures typically prohibit actions which would increase risk. The other part – ‘Dev’ – typically embraces risk. After all, ‘Dev’s’ job is to develop new services for a rapidly changing business. ‘Ops’ loves stability, whereas ‘Dev’ loves change. ‘Ops’ can slow down the pace of change to maintain stability, which infuriates ‘Dev’ and their business sponsors. This leads to a dysfunctional culture and missed business goals.
DevOps is a recognition that cultural improvements are required which entail a sharing of goals aligned with business goals.
Who does DevOps?
Web Pioneers | Financial | Entertainment | Insurance | Manufacturing | Retailing |
---|---|---|---|---|---|
|
|
|
|
|
|
DevOps culture
As the quote at the top of this article says, DevOps is a culture and practice that aims at unifying both development and operation environments, stressing communication, collaboration and integration between both developers and IT operations staff. Collaboration in this way results in businesses getting the IT systems and services they need quickly, in order to respond to a changing business environment, whilst at the same time maintaining the quality and reliability of those services.
Actually, you can think of DevOps as extending beyond the realm of software developers and IT operations. More broadly, you can think of ‘Dev’ as representing all the people involved on the project side including software developers, supplier stakeholders, business and user. You can think of ‘Ops’ to mean all the people involved in managing those products and services (including suppliers).
‘DevOps’ as an expression became popular through a series of DevOps days which started in Belgium in 2009. Since then, further DevOps events throughout the world regularly bring together practitioners to share knowledge and best practices.
Agile vs. DevOps
Any discussion of DevOps requires a reference to agile. Agile is an umbrella term which encompasses many different software development methods. Some of the most popular are Scrum and XP.
Agile software development methods arose in the 1990s as a response to an emerging trend which saw software projects being delivered late, over budget and often with low quality. In many cases, the delivered software did not do what was expected. These days, agile methods have become ubiquitous in the software development industry.
Based upon the 12 agile principles within the Agile Manifesto[2], agile methods are designed to enable software teams to better work together, to embrace changes to requirements in order to deliver customer satisfaction. The ways of achieving this include trusting and supporting ways of working, face to face communication, learning lessons, and delivering working software frequently through incremental releases.
So, agile and DevOps are not two competing methods. It is not a question of either one or the other. Agile refers to multiple specific methods which share common characteristics as defined in the Agile Manifesto. DevOps is a culture and practice which tries to unify both development and operation environments, irrespective of whether the development environment is an agile one or not.
DevOps has, however, drawn part of its inspiration from agile. Another key inspiration for DevOps has been lean[3].
Lean IT
Lean IT[4] is an extension of the core lean approach to IT products and services. The concept of lean manufacturing[5], subsequently known as lean, originated in the 1990’s with the Toyota car company as a way of minimizing waste in the manufacturing process. In keeping with the core lean approach, the approach of Lean IT is to eliminate waste, where waste is work which adds no value to a product or service.
Lean IT is in its infancy, but its central goal of eliminating waste is raising the prospect of some key benefits to organisations.
DevOps and business value
Businesses today are operating within extreme competitive pressures. Businesses which simply ‘stand still’ won’t in fact be in business any more in a few years’ time. The businesses which will flourish and grow in this situation will be those which can adapt quickly to those pressures and deliver products and services which their customers want. Technology plays a crucial role in all of this because it is the enabler for businesses to achieve constant and strategic innovation.
DevOps recognizes that alternative approaches to software development and IT operations are required, if the accelerated demand for IT services is to be met. Continuing with the way IT has always done things is no longer an option for businesses wanting to succeed.
Both businesses and customers now expect IT services to be delivered quickly and reliably. The experience of ‘internet time’ means consumers expect transactions to be performed now, not tomorrow, next week or next year.
Moreover, recent developments such as cloud computing and smartphones have prompted a paradigm shift in understanding how IT services are developed and delivered. The simpler, more iterative and incremental approaches of both agile and lean are now needed.
DevOps responds to these business and customer expectations for increased agility and stability by increasing the overall performance of both IT development and operations. According to the 2017 State of DevOps report[6], organisations with high IT performance were twice as likely to achieve or exceed their objectives for efficiency, customer satisfaction and service or product quality. The same study also reported growing evidence that DevOps practices help deliver software faster, more reliably, and with fewer errors.
Differing views of DevOps
Due to DevOps still being in its infancy, there are several different perspectives about what DevOps actually means. Look at the graphics below.
Because different stakeholders view DevOps from such differing perspectives, is there a common set of values which all DevOps stakeholders can agree upon?
Common DevOps values
At a DevOps Day in California in 2010, the phrase CAMS[7] was invented. CAMS stands for Culture, Automation, Measurement and Sharing. Later, Lean was added to it to become CALMS.
Culture
This is all about people and processes. Too much process becomes a burden on productivity. Too little process can hinder communication and collaboration. Getting ‘just the right amount’ is ideal to secure the right culture for automation.
Automation
Enhancing the workflow requires tools and technology to enable automation to take place. The typical things which DevOps aims to automate includes: release management, configuration management, monitoring tools and control tools.
Lean
Lean was added as a key DevOps value because of its focus on the elimination of waste and hence the focus on increasing the useful value which is delivered to the customer.
Measurement
Successful organisations use metrics to help them improve. Without the data from proper measurements it is impossible to know what needs improving. DevOps recommends measuring people, process and technology performance.
Sharing
DevOps aims to create a culture where people share ideas and issues. This helps to improve communication and collaboration, but helps organisations to improve.
To truly adopt DevOps, your organisation must consider all 5 of the CALMS values, not just some of them. It’s only by implementing all the values that organizations can bring DevOps principles and practices to life.
DevOps principles
DevOps aims to create a culture where people share ideas and issues. This helps to improve communication and collaboration, but helps organisations to improve.
Any discussion of DevOps requires an understanding of The Three Ways. These were introduced in ‘The Phoenix Project: A Novel About IT, DevOps, And Helping Your Business Win’ by Gene Kim, Kevin Behr and George Spafford. The Three Ways are the prescriptive steps for how an organisation can apply DevOps practices. They are often referred to as the DevOps principles.
The First Way (Flow)
Understand and increase the flow of work (from left to right).
The Second Way (Feedback)
Create short feedback loops that enable continuous improvement (from right to left).
The Third Way (Continuous experimentation and learning)
Create a culture that fosters experimentation, taking risks, learning from failure and understanding that repetition and practice is necessary for mastery.
DevOps is not a methodology
If you’re looking at DevOps to provide an all-encompassing framework or methodology, you’ll be mistaken. It isn’t either of these. It does however adopt and leverage multiple frameworks and methodologies such as agile, lean and IT Service Management e.g. ITIL®
As we said earlier, major inspirations for DevOps have come from both the agile and lean communities. Agile has shown how small self-organising teams, operating with high-trust, delivering small, frequent iterative software releases can dramatically increase the productivity of software development organizations. Lean has shown how increasing workflow and reducing waste adds value to the business.
DevOps is therefore picking, learning from, and integrating the best methods which come from other disciplines. By doing this, DevOps can help IT departments remove bottlenecks and achieve faster lead times and cycle times. This in turn leads to higher productivity and economic value for the business.
DevOps practices
There are numerous practices which support The Three Ways. Here’s a non-exhaustive list of the core practices.
Continuous integration – developers integrating code into a shared repository on a daily basis (at a minimum). Each check-in is validated by an automated build on servers which mirror the production environment.
Continuous delivery – making sure software is always in a releasable state throughout the lifecycle. This prioritises keeping the software deployable over adding new features.
Continuous testing – executing automated tests as part of the deployment pipeline to obtain immediate feedback on the business risks associated with a software release candidate.
Continuous deployment – enabling every change which passes automation tests to be automatically deployed to production. Can result in multiple deployments per day.
There are many other practices which support The Three Ways. Here’s some of them.
Rugged DevOps – including security practices as early in the continuous delivery pipeline as possible to increase cyber security, speed, and quality of releases.
DevSecOps[9] – building on the mindset that ‘everyone is responsible for security’ with the goal of distributing security decisions safely and quickly to those holding the highest level of context.
ChatOps[10] – a communication approach which allows teams to collaborate and manage many aspects of infrastructure, code and data from a chat room.
Kanban[11] – pulling the flow of work through a process at a manageable pace.
Value stream mapping – a lean tool depicting the flow of information, materials and work across functional silos to quantify waste, including time and quality.
Improvement Kata – this grew out of the Toyota Production System as a structured way to create a culture of continuous learning and improvement. It’s any structured way of thinking and acting that you practice until the pattern becomes a habit.
Theory of constraints – identifying the most important limiting factors which constrains the achievement of goals. Then, systematically improving that constraint until it is no longer a limiting factor.
DevOps tools
Most (if not all) of the DevOps practices just described require tools. A DevOps toolchain is composed of the tools required to support the core DevOps practices. Each element in a toolchain automates tasks in the deployment pipeline. The different tools within the toolchain are connected via APIs[12]. These tools do not need to be from a single vendor.
DevOps and ITIL
ITIL is a widely practiced approach to IT Service Management (ITSM). It provides a number of processes that focuses on aligning IT services with the needs of the business[13]. Many IT operations departments have often built their processes and procedures according to the ITIL framework.
So, if you adopt DevOps, does it mean that you can ditch ITIL? Definitely not. ITIL’s processes underpin much of what DevOps is trying to achieve including: change management, release management, service asset and configuration management, knowledge management, event management, incident management, problem management and capacity management.
Don’t forget that DevOps is a culture and practice which tries to merge IT development and operations. It tries to bring many of the beneficial aspects from development and manufacturing approaches such as agile and Lean to the stability of the IT operations world.
DevOps benefits
The 2017 State of DevOps Report discovered that high performing teams deployed 46x more frequently. They also had 440x faster lead times from commit to deploy. They achieved 96x faster mean times to recover from downtime and they had 5x lower change failure rate. They were also 2x more likely to achieve objectives such as operating efficiency, customer satisfaction and organisational goals[14].
With such startling evidence showing how DevOps can transform IT, the expectation is more organisations will start adopting DevOps.
In 2017, Forrester Research forecasted that 50% of organisations were planning to expand their DevOps implementation and a further 27% of organisations were planning to implement DevOps during the following 12 months[15].
DevOps careers
If the number of organisations adopting DevOps is increasing, it follows that the demand for professionals with DevOps qualifications will accelerate. There is evidence this is already happening with a large increase in DevOps jobs being advertised[16].
Engineers seeking that great new DevOps job should seek out DevOps training such as a DevOps Foundation course from the DevOps institute. It’s a great introduction to DevOps and gives students a broad depth of knowledge about DevOps practices.
What is a DevOps engineer?
Despite the huge recent surge in demand for DevOps Engineers, there is no industry recognised job description or formal career track for a DevOps Engineer.
DevOps Engineers jobs often requires people who want to contribute their technical skills to business and process improvement initiatives. DevOps engineers should feel comfortable collaborating with others and wants to be in a workplace that promotes a shared learning culture. They should be good at self-management. After saying that, the core requirements for any DevOps job are technical skills. A specialist with broad generalist knowledge, and experience in (or at least an interest in) writing code would fit well.
Other DevOps jobs and roles
Apart from DevOps Engineer jobs, some of the other jobs which are growing in demand include DevOps evangelists, software engineers and testers, release managers, build engineers, security engineers, quality assurance, operations engineers and IT support. All these jobs require DevOps knowledge, DevOps certification and training.
Summary
DevOps is about doing things differently from the ways in which IT operations have traditionally done their work. DevOps has taken some of its inspiration from the best of agile and Lean ideas to enable IT to provide a faster, more responsive, higher quality yet stable set of IT products and services. DevOps is a culture and set of practices rather than a methodology. Eliminating waste, streamlining workflows, collaboration, and automation are some of the ways in which DevOps is changing the ways IT does its work.
Those organisations which adopt DevOps are ultimately more successful than those which do not. That’s because they deliver more value from IT which ultimately benefits the business and their customers.
If you work in the operations side of IT, and want to upskill, there’s no better place to start than learning about DevOps. DevOps accreditation is one of the most in-demand IT qualifications in 2018. Learning about DevOps means you can assist with the revolution which is sweeping IT in organisations throughout the world.
Remember though, DevOps is a culture. Those with good communication and people skills will thrive in DevOps. Those who only want to sit and use the technology will struggle. Whatever else happens in the next few years, one thing is certain – the ongoing DevOps revolution will gather pace.
References
[1] Wikipedia. (2018). DevOps. Available: https://en.wikipedia.org/wiki/DevOps. Last accessed 1st February 2018.
[2] Kent Beck et al.. (2001). Manifesto for Agile Software Development. Available: http://agilemanifesto.org/. Last accessed 1st February 2018.
[3] Wikipedia. (2018). 2018. Available: https://en.wikipedia.org/wiki/Lean. Last accessed 1st February 2018.
[4] Wikipedia. (2018). 2018. Available: https://en.wikipedia.org/wiki/Lean_IT. Last accessed 1st February 2018.
[5] Wikipedia. (2018). 2018. Available: https://en.wikipedia.org/wiki/Lean_manufacturing. Last accessed 1st February 2018.
[6] Puppet + Dora. (2017). 2017 State of DevOps Report. Available: https://puppet.com/blog/2017-state-devops-report-here. Last accessed 1st February 2018.
[7] DevOps Dictionary. (2017). CAMS. Available: http://devopsdictionary.com/wiki/CAMS. Last accessed 2018.
[8] Gene Kim, Kevin Behr, George Spafford (2013). The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win. Portland: IT Revolution Press.
[9] Derek E. Weekes. (2016). Intuit’s DevSecOps: War Games and Culture Hacking. Available: https://devops.com/intuits-devsecops-war-games-culture-hacking/. Last accessed 1st February 2018.
[10] Podcast. ChatOps Extravaganza With Jason Hand, Sasha Rosenbaum, And Peter Burkholder (ADO42). Available: https://www.arresteddevops.com/chatops/. Last accessed 1st February 2018.
[11] Knowledge Train. (2017). The 4 principles of Kanban: A visual guide. Available: https://www.knowledgetrain.co.uk/resources/practice/kanban-principles. Last accessed 1st February 2018.
[12] Gene Kim, Jez Humble, Patrick Debois, John Willis (2016). The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations. Portland: IT Revolution Press.
[13] AXELOS. (2016). The key benefits of ITIL. Available: https://www.axelos.com/Corporate/media/Files/Key%20Benefits/ITIL_Value_Proposition.pdf. Last accessed 1st February 2018.
[14] Puppet, 2017 State of DevOps Report.
[15] Robert Stroud. (2017). 2018: The Year Of Enterprise DevOps. Available: https://go.forrester.com/blogs/2018-the-year-of-enterprise-devops/. Last accessed 1st February 2018.
[16] Kevin Casey. (2017). DevOps Jobs: 6 eye-opening statistics. Available: https://enterprisersproject.com/article/2017/9/devops-jobs-6-eye-opening-statistics. Last accessed 1st February 2018.