DevOps for advanced teams
Make observability a key part of your development cycle.
Use advanced tools and techniques to deal with increased complexity
An organization with a high degree of cross-team collaboration and extensive automated processes has a significant advantage over one that struggles in these areas.
Even highly successful DevOps teams can reach the next level by having a laser focus on observability, both at the organization and system level.
From the system perspective, observability means deriving an understanding of the internal functions of a complex system by observing its external behaviors.
At the organization level, observability is developing natural lines of communication and collaboration between the customer and teams that creates new solutions.
Observability reference architecture
Plan and track
Continuous delivery becomes continuous deployment
Stage deployments through mulitple, distributed environments
About this guide
As systems and organizations grow more complex, no one person can grasp a model of the entire thing.
Advanced tooling and techniques tame the cognitive load of increasing complexity, enabling the move from reactive to proactive product development.
This guide will help identify a few key areas of focus for the successful DevOps team to cross into unicorn territory.
Where you are today
- Lead time for changes:
Less than one week
- Deployment frequency:
Once per week or more
- Time to restore service:
Less than one hour
- Change failure rate:
- Technology tools stack:
- Technology platform:
Function as a Service (FaaS)
How to implement observability
Build a DevOps culture
Culture should be addressed at every level of an organization’s growth, since it helps companies align people, processes, and tools toward company goals.
An organization with a DevOps-oriented culture works to produce what sociologist Dr. Ron Westrum calls a “generative (performance-oriented)” structure, compared to “pathological (power-oriented), or “bureaucratic (rule-oriented)” structures.
A generative culture is based on trust. Trust fosters open communication and prioritizes learning from mistakes over identifying a person or team to blame.
Focus on outcome-driven development
Advanced DevOps teams will embrace outcome-driven development. This model is characterized by a strong relationship with the customer that informs processes from initial development through continuous evolution.
Another emergent feature from the outcome-driven development approach is improved synchronicity between internal divisions within an organization, such as engineering and product development. When everyone in the organization has a customer-centric focus, that alignment emerges naturally.
Atlassian’s playbook to build a DevOps culture
Understand outcome-driven development
Embrace chaos engineering
Chaos engineering can be defined as the facilitation of experiments to uncover systemic weaknesses. Modern software products are exponentially increasing in complexity, which makes it more difficult to anticipate and mitigate system failures.
Chaos engineering is a practice where a team uses exploration and experimentation to uncover emergent connections and dependencies in a complex system. It’s a way to solve for “unknown unknowns” that generate failures in a complex system.
Observe systems as a whole
Increased complexity in modern software applications creates a need for new diagnostic models to replace traditionally segregated logs, traces, and metrics.
Similar to chaos engineering practices, new tools enable aggregation and analysis of data sources to help programmatically identify the emergent properties of a complex system that cannot be predicted and monitored -- the “unknown unknowns”.
Not quite ready for observability?
Visit our previous guide around automation.
Need a refresher on the basics?
Visit our beginner’s guide around customer-centricity.