![](/web/20230526182029im_/https://resources.github.com/assets/img/devops/hero.png)
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
![](/web/20230526182029im_/https://resources.github.com/assets/img/devops/journey.png)
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 DevOpsWhy 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.
Improved productivity
Reduce manual tasks and gain consistency, reliability, and efficiency.
Cloud-ready code
Easily provision environments in the cloud to help teams work faster at scale and meet demand.
Security
Protect customers and code while managing access across locations and environments.
Collaboration
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
![](/web/20230526182029im_/https://resources.github.com/assets/img/devops/lifecycle.png)
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.
Idea
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.
Ideation stack
GitHub issues and project boards, Jira
Learn more about planning and trackingBuild
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, Jenkins
Learn more about continuous integrationShip
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 Azure
Learn more about deploymentLearn
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.
Observability stack
Netdata, Lightstep, New Relic, App Dynamics, Sentry, Raygun, Honeycomb, Splunk
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
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.
Automation
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.
Transparency
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
![](/web/20230526182029im_/https://resources.github.com/assets/img/devops/devsecops.png)
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.