What is DevOps?
A combination of the words “development” and “operations,” DevOps is a philosophy and set of practices that brings teams together to deliver better software, faster.
What do we mean when we say DevOps? A culture shift? A set of best practices? Specific tooling? In reality, it’s a combination of all three. DevOps is a way of working where development, IT operations, and security teams partner together to build, test, and provide regular feedback throughout the entire software development lifecycle (SDLC). From culture change to automation with CI/CD, let’s explore how DevOps teams develop shared context, expertise, tooling, and roles to ship better products.
The journey from silos to shared workflows
DevOps sets a new standard for how we build software. Before the mid-2000s, developers, IT operations, and security teams typically worked in silos. Developers wrote code, QA teams tested it, and IT operations teams deployed it to production. Security teams checked code for vulnerabilities only after deployment. If someone reported an issue, the entire process started over again. This linear approach to software was slow and frustrating for everyone involved. Then in 2008, system administrator Patrick Debois and software developer Andrew Shafer created a working group to help bridge the gap between operations and development teams. Their best practices became the DevOps processes we know today.Learn more about the history of DevOps
Why adopt DevOps?
Traditional deployments are difficult, manual, and often break down, leading to employee burnout and unsustainable release cycles. In comparison, recent research shows that using DevOps methodologies and principles like automation drives productivity and improves developer experience. DevOps makes building and shipping software faster, friendlier, and more collaborative—and automates almost all of the process. Developers on DevOps teams focus on their goals, prioritize work-life balance, and get more time for the projects they care about. This type of satisfaction builds on what we know from organizational psychology: Teams do their best work when they’re personally invested in the outcome.
Reduce manual tasks and gain consistency, reliability, and efficiency.
Easily provision environments in the cloud to help teams work faster at scale and meet demand.
Protect customers and code while managing access across locations and environments.
Build and foster a collaborative culture with b communication.
We’ve gone from over 30 siloed software engineering groups to a largely cohesive team. By using standards and automation, the DevOps journey is now three steps and takes less than a day.
Breaking down the DevOps lifecycle
DevOps encompasses every part of application development. Whether you call them “steps,” “stages,” or “phases,” it all adds up to the DevOps lifecycle, the process DevOps teams use to build and ship software. Like any good DevOps approach, teams stay in constant collaboration and share many of the same tools and responsibilities from beginning to end.
Teams gather requirements and feedback, and start sketching out the resources they’ll need. DevOps teams focus on continuous planning—plans that can be updated frequently, even daily. To build out roadmaps and track progress towards their goals, teams leverage project management tools everyone can access and use.
GitHub issues and project boards, JiraLearn more about planning and tracking
As project managers assign tasks, developers get to work. Here, DevOps comes to life: With version control and cloud-based development environments, developers can make ongoing changes and review code together in real time. DevOps continuous integration (CI) also kicks in, where automated tools turn code code changes into builds, run tests against required checks, then merge and prepare code for deployment.
Continuous integration stack
Git, GitHub Codespaces and Actions, GitLab CI pipelines, CircleCI, JenkinsLearn more about continuous integration
After passing initial checks, developers use continuous delivery (CD) tools to automatically push code changes to a non-production testing or staging environment. Operations teams can immediately deploy the changes to production, without any surprises.
Continuous deployment stack
CD pipelines with GitHub Actions, GitHub Packages, Microsoft AzureLearn more about deployment
Software may be out in the world, but the work isn’t over. Operations teams keep an eye on releases with monitoring tools that measure performance and monitor the impact of code changes. They ensure stability and uptime, gather customer feedback and stay in close contact with developers to push required fixes and address incidents faster.
Netdata, Lightstep, New Relic, App Dynamics, Sentry, Raygun, Honeycomb, Splunk
Automation at every step
Noticing a theme? As much as DevOps is about tools and collaboration, it’s also about automation. DevOps automation allows teams to ship to production faster by removing manual tasks and replacing them with automated processes like continuous integration and continuous delivery (CI/CD).Learn more about automation
What is CI/CD?
Continuous integration and continuous delivery (CI/CD) combines every step of the software release process into one integrated workflow. Developers continuously build, test, and deploy code to production using a series of automated tools that power the team’s overall DevOps pipeline.Learn more about CI/CD
The mindset we carry is that we always want to automate ourselves into a better job. We want to make sure that the task we’re doing manually today becomes mostly automated.
Building a DevOps culture
Successful DevOps depends on cultural change—adopting a collaboration-first approach to software originally developed by open source teams. In open source, developers encourage transparency, shared workloads, continuous feedback and reviews, and robust documentation. Industry reports like DORA’s State of DevOps from researchers Nicole Forsgren, Jez Humble and Gene Kim, and popular DevOps frameworks like CALMS often use these best practices as benchmarks for DevOps success.
Collaboration is at the heart of DevOps. Developers and operations teams regularly communicate about timelines and goals, and everyone is responsible for the project’s success.
As teams work together and share tools, automation supports consistency, reliability, and efficiency across the organization so it’s easier to discover and troubleshoot problems.
Ongoing feedback and open access to repositories encourages collaboration within and outside individual teams. It also promotes InnerSource, the process of using open source best practices to build internal code.
But don’t forget DevSecOps
What is DevSecOps?
Like development and operations, DevSecOps integrates automated security testing into every part of DevOps culture, tooling, and processes.
For many practitioners, security was always meant to be part of DevOps. Instead of happening at the end of the SDLC, DevOps security starts at the source: Code. This approach is commonly known as DevSecOps or “shifting left.” Using automated security tools, developers find and address security vulnerabilities as they code instead of waiting for security teams to address them after deployment. By empowering developers to take responsibility for security throughout the DevOps lifecycle, DevSecOps allows development, operations, and security teams to find and remediate security issues faster.
You fix it and you move forward, because guess what? It takes you a minute to solve that security issue in development when it could potentially take you hours or days to fix in production.
What can you do with DevOps?
See how high-performing teams put collaboration and automation to work.
Start building your DevOps workflow
Whether you’re ready to dive in or still have questions, we’ve got you covered.