TODO: DEVOPS OVERVIEW GRAPHIC
What is DevOps
The DevOps cycle is an agile, iterative approach to creating and maintaining software.
DevOps is not about creating a team. DevOps is about bringing different teams of people together, but it is best thought of as a set of practices, and, perhaps more importantly, a culture built around collaboration between development, quality assurance, and operations teams.
This brings us back to our definition of what DevOps is. When you define something using values, principles, and practices, the definition of what that thing is and the perception of what something means will have variability.
In other words to define what DevOps is, an organization needs to look at the values and principles and make a determination which of those values and principles is most important to them. That definition might change over time as the organization evolves and matures.
DevOps evolved as a set of principles. Since then, it has lost some of it’s original meaning; it no longer means just the principles; it now includes practices, technologies, and tools. A purist (like myself perhaps!) would argue that this is somewhat problematic, or even detrimental. However, groups and cultures often appropriate something to the extent that you no longer have much real choice but to accept the revised definition.
Why is it important to define DevOps?
DevOps
DevOps Principles
DevOps has a number of principles at its core:
- Foster a Collaborative Environment
- Impose End-to-End Responsibility
- Encourage Continuous Improvement
- Automate (Almost) Everything
- Focus on the Customer’s Needs
- Embrace Failure and Learn from it
- Unite Teams and Expertise
DevOps Practices
- DevOps culture is about cross-functional collaboration between Dev, Ops, and QA roles.
- The DevOps technical environment is created, reviewed, and agreed upon by stakeholders including Dev, Ops, and QA.
- Change to DevOps technical environment follow a phased approach; the same approach that other apps and systems follow, going through Proof-of-Concept (PoC), testing, and production phases. This is done to ensure changes do not impact DevOps operations.
- Continuous Integration (CI). Code check-ins trigger automated software build and test.
- Errors and failures are logged and dev staff is notified.
- Elastic infrastructure.
- Continuous monitoring and automated alerting.
- Automated Dev and Ops KPIs (Key Performance Indicators).
- Dev and Ops responsible for security. Cybersecurity accountable.