DevOps is an approach to working that emphasizes the quick, incremental, and continuous delivery of products.
DevOps, a combination of the words “development” and “operations,” is an approach to work that aims to deliver products quickly and continuously. DevOps is often referred to as a process, a culture, or a set of practices or principles that enables these qualities.
To get a clearer picture of what DevOps is, it can be useful to look at what DevOps isn’t. DevOps was created in response to issues that came from longstanding workplace traditions of having siloed teams, and deploying products only after they had been fully completed. In a company with a traditional process, for example, an engineering team would finish the code, hand it off to a testing team, which would test the product, which would then hand it off to an operations team to maintain the software.
In a DevOps process, teams could be integrated, testing might occur automatically and frequently throughout the process, and all groups can be involved in maintenance. The silos between teams are broken down, and deploying products and updates happens continuously, and less in a rigid, linear process.
There are a few core principles at work in DevOps. Largely broken down, they include:
Systems thinking: Systems thinking means thinking about the performance of an entire system, instead of the performance of specific teams. This mindset ensures all teams and employees feel responsible for producing good quality, and discourages teams from passing defects downstream.
Culture: A successful DevOps integration is often tied to a culture of collaboration, experimentation, and continuous learning. This might mean teams make sure time is allocated to improve work, teams are rewarded for taking risks, and members are able to learn from others within and without their teams.
Automation: DevOps places a heavy emphasis on automating as much as possible. This can reduce time spent on repetitive and time-consuming tasks, and increase deployment speed. A DevOps team for example might automate testing processes so that developers can receive feedback early and frequently.
A couple of key practices make DevOps what it is. These include:
Continuous integration (CI): Continuous integration means feedback from stakeholders and fixes are integrated into a product continually. This can mean both automating processes in which fixes are integrated, and creating a culture in which continuous integration happens. Continuous delivery, together with continuous integration, is often referred to as CI/CD.
Continuous delivery (CD): Continuous delivery is when changes to a product (likely your code) are integrated automatically, so that the product is always in a deployable state. This means that code can be deployed in short time frames (daily, weekly, and so on).
While DevOps is considered a mindset first, there are several DevOps tools used to automate various stages in a DevOps process. Here are a few.
Git: Git is a version control system. In DevOps, it’s used to keep track of code, and is useful for team members to collaborate on projects and update existing ones.
Docker: Docker is used for containerizing applications—the process of turning an application into a single package of software.
Jenkins: Jenkins is a tool used to build CI/CD pipelines, where developers can build, test, and deploy software.
Kubernetes: A container organizer, Kubernetes is used frequently in DevOps.
Learning DevOps methods and skills can be useful to a variety of people across the professional realm. You might be a product manager looking for ways to improve your team’s process, or an IT professional looking for a new way to use your skills. Whatever your goals, bringing DevOps into your life can start with learning. Here are a few courses to get you started:
DevOps professionals can get their start in various IT roles. If you’re curious about that route, you can consider the Google IT Support Professional Certificate to learn the basics of IT. Plus, the first week is free.