If you’ve heard of DevOps but don’t know precisely what the acronym stands for, you’re in the right place.
This is where you can start learning a little more. This article overviews DevOps, from its definition to tangible applications. Our goal is that once you’ve finished reading, you’ll understand the stakes of DevOps and will have an idea of how to implement it in your own company.
Definition of the term “DevOps”
What is DevOps?
DevOps is a culture that aims to foster collaboration between two complementary professions that used to work separately: The software developer (Dev) and the administrator in charge of IT infrastructures (Ops).
Traditionally, the development team creates and improves applications with time and cost constraints. Then it delivers the code to the production team, responsible for deploying it in production, guaranteeing the application’s stability with a strong quality constraint.
This is where the two teams hit the “Wall of confusion”. The code that worked well in the developer’s environment causes problems in production. But whose fault is it? Communication between Dev and Ops teams can be complicated, impacting the delivery of the application. The experience isn’t favourable for Dev and Ops teams but isn’t for business teams and product owners either. Then, of course, at the end of the chain, the customer will decide whether the application is suitable.
This is where DevOps comes in, a new approach that breaks down the wall of confusion by getting teams to work with all the players around the project. The common objective is to satisfy the customer by delivering a quality product at a low cost and fast development.
As I explained in a recent interview presenting our Cloud & DevOps Solutions Department, software is becoming increasingly complex; teams have had to adapt and grow to meet user demands, building a wall between these two professions. The practices and tools included DevOps bring down the wall and respond faster to market and customer needs.
Thus, the DevOps culture introduces a new paradigm that consists of removing the walls around the different professions, their ways of working, and the tools they use to meet customer needs better. It also saves time and therefore improves the time-to-market.
Now that we’ve defined DevOps, let’s see what makes it what it is.
What is DevOps comprised of?
What are the key components of DevOps? DevOps is, above all, based on a set of principles that can be summarised through the acronym “CALMS”: Culture, Automation, Lean, Measurement, Sharing.
- Culture: DevOps is a culture; a state of mind above all. The idea is to allow teams to collaborate through constant communication to respond to current issues and customer needs that are becoming more complex with an ever shorter time-to-market. Ops and devs must share tools and mutual esteem and total trust in the exchanges they may have with their contacts. All teams must have the same global vision of the information system. Communication between all players is thus facilitated since everyone knows everything going on, from the developers to the administrators in charge of the IT structures. In the same way, “failed fast” is essential. It is necessary to know how to test and question an application’s features quickly;
- Automation: A maximum of tasks are standardised and automated as soon as possible to reduce time spent on repetitive tasks and thus gain in productivity and efficiency;
- Lean: Teams are asked to identify tasks that create value during the cycle and eliminate others by automating them. Their work is, therefore, better quality while requiring less time.
- Measurement: Measurements and tests are carried out throughout the process to adjust and ensure product quality continuously;
- Sharing: Teams share feedback, skills, and knowledge for total transparency and strong collaboration between different teams. The strengths of both sides are united, and complementarity is a key word. This value of sharing also applies to elements of daily life: Sharing problems, knowledge, and feedback fosters a feeling of mutual aid and empathy in the teams. They are more united and work better together. With this in mind, Qim info has launched DevOps First Friday, which provides employees with a space to share ideas in a friendly and informal setting.
Everything is clear! Now it’s time to ask how DevOps works.
How DevOps works in detail?
What are the origins of the DevOps culture?
Who invented DevOps? Dev and Ops teams were traditionally siloed, focused only on their own scope, worked overtime, and botched deliveries. This situation ultimately led to customer dissatisfaction.
There had to be a more efficient process. That’s when the two communities got together and started to share. One of these pioneers was the Belgian computer scientist Patrick Debois, who worked as a system administrator for the Belgian government and was strongly impacted by the lack of coherence and communication between developers and administrators.
He discovered agile methods in software engineering that encourage collaboration between multidisciplinary teams and clients. He then created discussion groups. The DevOps journey began with online forums and local meetings before becoming a fixture in development.
During a conference in Toronto in 2008 entitled “Agile Infrastructure & Operations”, Patrick Debois and Andrew Schafer used the term DevOps which had the success that we know.
Thus, DevOps is an agile approach that fosters collaborative teams and merged professions. As with any agile approach, the customer is heavily involved.
Subsequently, global conferences called DevOpsDays have multiplied. The DevOps culture implies significant changes in the way a company works. Mindset is paramount in agile approaches.
Despite this need for profound change, DevOps has its advantages, which we’ll see now.
Why are so many companies adopting the DevOps approach?
In its The 2021 State of Database DevOps report, Redgate Software found that DevOps adoption has nearly doubled in five years and increased during the pandemic. Why has DevOps become popular?
Historically, project management was theorised by the Waterfall development method. This method comes from the manufacturing and construction sectors and consists of managing a project linearly, step by step, without going back or making significant adjustments. It was naturally applied to software development. However, the Waterfall method has proven to be ill-suited to jobs with a significant creative component.
The rise in the popularity of agile methods is changing the game by no longer emphasising stage planning, but rather a division of the project into independent deliverables, which is more appropriate to this sector.
This is how DevOps was born and has become the most popular approach in software development. Large, globally recognised companies like Meta, Netflix, Amazon, and Etsy use it.
But what is the secret of DevOps?
What is the DevOps lifecycle?
The success of a DevOps approach depends, first of all, on the culture, organisation, and methodology. DevOps is certainly about more than just automation. Methods from the Agile culture, inspired by the Lean trend, are regularly used to implement a DevOps approach.
Let’s take a deep dive into how DevOps works. Iteration paths (or cycles) are also called sprints.
Iteration means testing and validating each step to ensure it works before moving on to the next. This phase is repeated as many times as necessary. As for sprint, this term is related to agile methods that designates a given time during which a task must be completed before being revised.
What is a sprint? A sprint is an iteration that lasts from a few days to a few weeks, during which the team performs a given task and delivers an increment. This short cyclework makes it possible to adapt and react to customer needs. The sprint breaks down the product into immediately usable pieces called increments. The main idea of sprints is that it is useless to plan production in detail in advance since unforeseen events and new ideas necessarily arise along the way. From an organisational point of view, the sprint is led by a coach who suggests tasks, tracks progress, and ensures that the team members are not blocked. Generally, it’s better if teams work in pairs, but this is not an absolute truth. Similarly, the most frequent configuration of the workspace is the open space layout to facilitate communication within the team.
Shorter release cycles facilitate planning and risk management because progression is incremental, reducing the impact on system stability. In addition, this shortened release cycle allows teams to adapt and react to changing customer needs.
What is incremental production? To explain this notion, let’s go back to the basics of computing. There are two main methods to update data: One is to delete and replace previous data (delete-replace), while the other is to update only from the new data (update).
Incremental production consists of identifying the differences between state N of the decision base and state N+1 of the production base. These can be deleted, modified, or added data. When they are identified, the entire code doesn’t need to be rewritten; instead, the database is updated.
We represent DevOps as a life cycle where we go from one phase to another, and when the last phase ends, a new cycle starts. The DevOps lifecycle comprises various iterative and automated development processes called flows.
The number of flows and their names may differ slightly depending on the wording used by the DevOps expert you are talking to, but all easily identify a common core consisting of this flow:
- Continuous planning: This corresponds to the production plan. The entire project is divided into multiple tasks. DevOps teams design the features for the applications and systems they create. They follow their progression at different levels of granularity, either lower or higher. It is necessary to create backlogs grouping all the features.
- Continuous development: Software versions are released frequently. All aspects of coding—writing, testing, reviewing, and integrating code—and generating that code, are part of continuous development.
- Continuous integration and continuous deployment: Each detected problem is resolved before other problems or a security breach occurs. Changes are deployed systematically and controlled to reduce the risk of system configuration changes.
- Continuous testing: Automated tests are run at different phases of the DevOps cycle to verify that the code is intact.
- Continuous feedback: Collecting and processing customer feedback is essential to improve it, even after deploying the product.
- Continuous operations: Software launch and future updates are automated.
Benefits of using the DevOps approach
The DevOps approach offers many advantages, but we will list the main ones here:
Speed of production, speed of problem resolution: Continuous testing and automating as many tasks as possible reduce monitoring time. In short, with DevOps, everything goes faster. The shorter the development time of an application, the faster the company can take advantage of its product’s business value. That’s why the second advantage is:
Indeed, TTM (Time to market) has become an essential marketing objective for many companies. In this case, TTM corresponds to the duration of product development, in other words, the time between the idea and the market launch. The shorter the time frame, the more agile a company is considered to be and the more it is ahead of the competition. This is how we arrive at the third advantage:
This is its ability to adapt quickly to changes and trends by being flexible. This skill is essential for a DSCC (Digital Services and Consulting Company), which must constantly remain at the cutting edge.
As we have seen above, one of the main characteristics of DevOps is the continuous improvement of the customer experience by involving them as much as possible through the “continuous feedback” flow. Thus, the delivery is ensured more quickly thanks to regular feedback, and the applications correspond best to the customer’s expectations. DevOps can best meet these customers’ expectations through iterative work and increased and regular customer feedback.
Increasing team skills
Since the DevOps lifecycle is based on the principle of iteration and sprints, the quality of the code is constantly improved, and every malfunction is corrected as quickly as possible. For example, according to the 2019 State of DevOps report, top-performing organisations achieve 208 times more frequent code deployments and 2,604 times faster service recovery from incidents.
Now it’s time to ask who uses DevOps.
Who could benefit from adopting the DevOps approach?
Who uses DevOps? Or should we say, who doesn’t use it?
Currently, it is accepted that all companies are becoming “technology companies”. Indeed, with the turn of the millennium, all economic players, regardless of their sector, must consider the need for digital transformation. A well-known example is Nike, which has taken the digital turn excellently.
Nike: “We are a Tech Company”
This shocking phrase was uttered by John Donahoe, who became CEO of Nike in 2019. For the first time in the brand’s history, he didn’t come from the world of fashion or design but from the world of IT, as he was previously CEO of eBay. It’s true that Nike also has a majority of the features of GAFAM… even as it cut off relations with Amazon:
Intimacy: Nike offers its customers personalised products and services through its applications, an ongoing relationship through the smartphone, and a retail approach.
Free services: The Nike Training Club and Nike Running Club applications are free.
Reverse value creation: Nike does not offer services that turn into pay-for-use. Instead, it starts from each customer’s needs and tries to meet them with an offer that is as personalised as possible.
Real-time: With the Splunk sales tracking tool, Nike is able to adjust its inventory and optimise its sales in near real-time.
Proximity to the IT world: Nike organises TEDtalks and hackathons, and has created tech incubators. Nike has thus gone from an industrial company to a tech company.
To exist, you must offer innovative digital tools that come more and more quickly. Business is accelerating; competition is getting tough. In some markets, start-ups can appear and disrupt a sector with an innovative service. When these services are well managed, in collaboration with technical and product teams, users will gravitate towards these solutions because their experience is made easier with frequent updates and new features. Since they are aware of the rapid evolution of these services, they will even be more willing to forgive minor temporary bugs.
Thus, DevOps delivers an application continuously and constantly provides new features. Mistakes are not a problem in the DevOps culture: If you make a mistake and the right functionality has not been targeted, the DevOps teams can react, possibly changing the original business plan. For this, four areas are essential to consider:
- Platform modernisation: Your company must be ready to provide the platform flexibility and scalability to handle customer demand.
- Application modernisation: Modernise your development and make the best choices for future deployment.
- Automation of the IT environment: Integrate automation into your organisation as much as possible.
- Transformation: Continuously innovate to preserve the longevity of your business.
Our guide to implementing DevOps internally
As with any paradigm shift in project management, implementing DevOps is tricky and will only work properly under certain conditions. Below is an implementation guide based on the three pillars of DevOps: Culture, process, and tools.
Adopt a new culture
This means leading organisational change; everything starts with people and how they embrace a project. The first challenge is not technological but human, and your ability to implement a culture of agility in the company will make the difference.
Also, take into account the engagement required for this change management. Whether it is in the company’s teams or managers, everyone’s support and dedication are essential in implementing a DevOps approach. The entire team must be united and motivated around the upcoming change.
This is why it is best to move forward gradually. Your initial objectives should be modest and accessible without significant difficulty, making it easier for teams to accept change: When smooth and satisfying, teams are more inclined to continue working in this direction.
Adopt a new process
It seems essential to become familiar with agile methods. While they have proven effective, they represent a significant change that can be difficult for your teams. Understanding and explaining these methods is a crucial prerequisite. For this, you can organise training sessions but also call upon an agility coach who guides projects by bringing their method during workshops, interviews, and company seminars around agility, for example.
Finally, we recommend you take the time to evaluate your current practices. The CALMS model mentioned earlier serves as a reference framework for analysing the DevOps approach. The goal is to understand what in your practices can be DevOps and what can’t. Once that’s done, you’ll know where to focus the change.
Adopt new tools
Finally, think about the tools you need to support your DevOps approach. DevOps is a culture before being a set of tools, which is why we have chosen to focus on something other than the technical component in this guide. However, it does exist and is, of course, indispensable.
Now we’ll review the tools you need to engage with DevOps successfully.
Here are the best DevOps tools
What are DevOps tools? You’ll need several that correspond to a stage in the DevOps lifecycle. Fortunately, some tools combine several functions. You can choose between different toolchains, which are sets of resources:
- All-in-one tool chains: These suites of integrated tools allow development and operations teams to work together efficiently and consistently throughout the software development lifecycle. These tools provide a single or interconnected platform from idea to production. For example, the Microsoft Azure DevOps suite, Atlassian (Jira, Confluence, Bitbucket, Bamboo…), Gitlab, etc.
- Customised tool chains: This option allows you to use and combine tools that teams already know and use. Integration is crucial to avoid wasting time connecting to multiple locations and encountering difficulties sharing information between tools. They must be chosen carefully to ensure that they meet the company’s and the teams’ needs.
Let’s look at some of these custom tools:
Source code management tools
For example, there’s Git, the version control system that has become indispensable. It can be used through software factories like GitLab, GitHub, Subversion, or Bitbucket. These tools can be connected to solutions. We suggest you choose tools that offer both code review, versioning, and change management or automated deployment.
Configuration management tools
IT configuration management involves automating essential and frequent tasks in an IT environment. This practice applies to many machines, sometimes several hundred or thousands, and encompasses various tasks required to configure and maintain these machines.
Today, Ansible is a must in configuration management and can be coupled with an infrastructure-as-code tool like Terraform. Chef and Puppet, a little older, can also help you accomplish this task.
Many CI/CD tools on the market can help automate the process of building, testing, and deploying software. Popular tools include Jenkins, GitLab CI/CD, Travis CI, CircleCI, Bamboo, Microsoft Azure DevOps, and AWS CodePipeline. These tools can enable development teams to work more efficiently and deliver high-quality applications faster.
There are also many testing tools available on the market to help development teams ensure the quality of their code, such as Selenium (frontend), JUnit (Java), TestNG (.NET), Appium (mobile app), etc. Using these testing tools can help save time and resources by automating testing and providing faster results while verifying code quality and performance.
Monitoring and alert tools
Monitoring tools are used to monitor application and IT infrastructure performance and availability. Popular tools include Prometheus, Grafana, Elastic Stack, Datadog, and New Relic. These tools can help teams detect problems quickly, improve reliability, and optimise application performance. It is also possible to instrument your code with OpenTelemetry to be more refined in execution analysis.
Project management tools
The most popular project management tools are Jira, Trello, Asana, GitLab, GitHub, and Microsoft Azure DevOps. They offer free and paid versions depending on your needs.
We mentioned them above; Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform are the most popular. Others, such as Scaleway or Exoscale, can be useful, particularly for sovereignty.
List of professions useful for DevOps
Which professions are involved in the DevOps process? We will not list them all here, but we will focus on the DevOps profession before looking at the significant professional families.
- The DevOps engineer (and its variant, the DevSecOps engineer): This is one of the most sought-after IT profiles. And yet doesn’t exist, just as there is no such thing as an Agile engineer!
However, the DevOps engineer is widely used in recruitment and brings together software development and system administration skills to implement and improve DevOps practices within an organisation.
DevOps is a philosophy, not a role, which aims to bridge the gap between developers and IT administrators, implying good interpersonal and management and leadership skills.
Here are some of the profiles that are likely to work around DevOps:
- The Systems Engineer is an expert in hardware and software. They analyse and optimise the company’s IT tools so all users have an adapted and efficient installation. They ensure permanent technological intelligence to anticipate evolutions in systems.
- The Security Engineer is essential in a context where cybercrime is constantly increasing. They design software by anticipating and repairing security flaws. They also ensure that the system is resilient and reliable.
- The Network Engineer controls and maintains the operation of a company’s networks.
- The Architect designs and oversees the overall architecture of a software system to ensure its consistency, stability, and scalability.
- The Integrator implements the IT solution in the production environment and ensures its deployment. They can set up pipelines with developers to automate deliveries.
- The Front-End/Back-End/Fullstack Developer designs the IT solution and ensures the ergonomics of the user interface.
- The Project Manager is responsible for successfully completing a project and ensuring all team members work together.
- The Agile Coach + Scrum Master participates in the company’s change management by supporting and training the teams. The company’s management supports them.
What does the DevOps job market look like?
In March 2023, we got more than 1,000 hits using the DevOps keyword for jobs in France on LinkedIn and more than 2,500 jobs on Welcome to the Jungle. If we refine with the two words “DevOps engineer”, we get more than 3,300 offers on LinkedIn.
This means there are many job offers around DevOps in general, specifically DevOps engineers. However, there are more offers than applicants, causing a shortage. Sacha Kalusevic, Director of Michael Page Tech, was interviewed by BDM and presented a “state of affairs” for the IT job market for 2023. According to him,
“Many tech sectors are experiencing such a shortage of labour and skills that we shouldn’t see a jobs crisis in 2023.”
Even though the IT job market is doing quite well, tensions are to come. Indeed, Dares, a French public body focusing on research and statistics, published a panorama of occupations in 2030, a report whose objective is to anticipate the recruitment needs of employers between 2019 and 2030 in various fields.
This report points to the IT engineering profession in particular, where recruitment difficulties could increase by 2030, even though there is already tension in this sector, where shortages exist, such as in cybersecurity and development.
Cybersecurity, development, and DevOps refer to professions essential to DevOps and strongly needed by companies. The sector is therefore booming and is looking to hire.
At Qim info, we have understood this by creating our Cloud & DevOps Solutions department, which allows us to offer our customers specific services that respond to this issue.
Undoubtedly, the cloud has profoundly transformed how teams will build, deploy, and operate applications.
The Cloud appears to be a tool that accelerates the DevOps transformation.
So what does the Cloud have to do with DevOps? It’s simple, the first enhances the second. DevOps can technically work without the cloud, but its benefits are numerous. Indeed, the Cloud is characterised by the following:
- Scalability: Cloud services are highly scalable, allowing DevOps teams to quickly provision resources to meet demand without waiting for budget approvals and new hardware installation.
- Flexibility: They offer great flexibility by allowing DevOps teams to deploy test and development infrastructures quickly and easily without significant investment in infrastructure and software licenses.
- Automation: They can be integrated with automation tools to enable continuous development and deployment pipelines, facilitating the adoption of DevOps practices.
- Collaboration: They can be shared between development and operations teams, facilitating cooperation and adopting a DevOps approach.
- Security: Cloud service providers offer high levels of security and regulatory compliance features, which can help DevOps teams ensure the security and compliance of their applications and data.
Big IT companies know its value, as they now offer specific DevOps-oriented services called “Cloud DevOps. For example, Amazon Web Service DevOps (AWS DevOps), Google Cloud DevOps, and Azure DevOps developed by Microsoft.
Let’s address another frequently confused notion between DevOps and CI/CD.
CI/CD stands for “continuous integration/continuous delivery” and refers to flows previously seen in the DevOps Lifecycle. Without going into detail, let’s say it is a matter of introducing a significant amount of continuous automation and continuous monitoring into the entire application deployment process. As such, code-related malfunctions are better resolved, and the application is deployed more quickly.
There are some constituent notions found in DevOps, like speed and automation. That’s why the CI/CD approach is one of the components of DevOps. While DevOps focuses on the issues of company culture and agile development processes (organisation of work), CI/CD concentrates solely on the deployment process (IT process).
Finally, CI/CD and the Cloud are technical components of the culture of DevOps.
Confusion between Scrum and DevOps is relatively common. Yet their fundamental difference lies in their very nature: Scrum is a framework whereas DevOps is a philosophy, an approach, a movement. In other words, the former provides a structure for team organisation and project management, while the latter aims to streamline delivery processes.
Scrum and DevOps are based on agile methods and efficiently manage IT projects.
The Scrum method is older than DevOps. It takes its name from the world of rugby (scrum) as it presents a dynamic and participative approach to project management. Like rugby, the scrum is a crucial phase; the meeting in the Scrum method is essential to progress on a project.
Scrum relies on dividing a project into sprints (just like DevOps) that end with a demonstration of what has been accomplished. Before starting a new sprint, the team analyses the progress of the completed sprint to improve its practices.
Let’s define DevSecOps, an acronym for Development, Security, and Operations. It is an IT automation and design concept derived from the original DevOps concept, which will pay particular attention to security issues, which is crucial in the context of increasing cybercrime.
Indeed, as explained in the definition of DevOps, speed is an essential characteristic of this movement. Therefore, software performance and speed of delivery are the objectives to be achieved by DevOps. But these objectives can leave out the security aspect and thus leave the code vulnerable.
This is where DevSecOps comes in, which finally completes DevOps with the security dimension it was missing. Risks are built into the software development and deployment process and are considered early in the process. They are an integral part of the cycle and are evaluated at each level. We can therefore complete our DevOps lifecycle diagram with this security dimension, as you will see below:
In fact, according to the State of DevOps 2020 report, 75% of companies with a high level of DevOps maturity manage to remediate security vulnerabilities in less than a day.
To conclude, let’s review the three must-haves of a DevOps transformation, as they are interdependent and, therefore, necessary:
- Cultural and organisational change: DevOps allows you to introduce new work methods and bring together all the players involved in the same project to collaborate as a team. As previously discussed, this mindset change is essential and at the heart of the DevOps culture. Without this, nothing is possible.
- New tools and technologies: Specific tools, linked to the DevOps culture, optimise teamwork by reducing time-to-market.
- Processes that improve the developer and operational experience: The DevOps lifecycle represents a stable, quality architecture proven to work.