DevOps is the cornerstone of all high-performance technology companies and allows them to have a proper frequency of deployment while maintaining system availability.
This talk describes the devops culture, devops practices an give some ideas about how to introduce this mindset.
6. “Devops is...
Cool name for sysadmins
6
A team that deploys other teams services
A team that operates other teams services
7. “Devops is...
learning to work in small batches
7
creating fast feedback loops
enabling cross-functional collaboration
though value streams
developing a culture of experimentation”
Jez Humble
8. DevOps includes and enhance the
ideas of the Agile Software
Development giving a more end to end
vision of the value stream for a
technology-based company. And, you
know, Every Company Is A Tech
Company.
8
@eferro
21. o Each team
o Deploy by themselves
o Operate their services
21
Self Service Platform
22. 22
Self Service Platform
Practices & patterns
Deploy pipelines
One command deploy
Blue Green Deployments
Rolling Deployments
Platform Control Panel
Alerts
Monitoring
Tools
Kubernetes
OpenShift
CloudFoundry
Heroku
Docker
OpenStack
Jenkins
23. o Embrace failure
o Design for failure
o Learn from it
23
Design for Failure
24. o Optimize recovery (MTTR)
o Observability
o Monitoring
o Automatic recover
24
Design for Failure
25. 25
Design for Failure
Practices & patterns
Circuit Breakers
Retries
Blameless IRs
Chaos Engineering
Game days
Testing in production
Smoke tests
Tools
Hystrix
HA Proxy
Chaos Monkey
Envoy
OpenTracing
26. Build, Test, Deploy your apps in a
fast and automated manner.
26
Continuous Delivery
27. o Continuous Integration
o Deployment Pipelines
o Deploy during working hours
o Automatic testing
o Release vs Deploy
27
Continuous Delivery
Value Streams
Customer / Ideas -> Working Software in Production
Customers:
-External customers
-Internal customers (Financial Depto, Delivery Teams,
Value Stream: are Business Outcome Driven
Value Streams samples
SaaS Product Value Stream: From external customer feedback to new feature in a SaaS product. (New feature)
Internal IT value Stream: From internal customer request to a new internal ERP feature. (New feature, integration)
Platform Value Stream: From internal customer (delivery team) to a new capability in our infrastructure or platform. (Optimized pipeline, New platform feature).
Walls
Specialization
Queues / Waiting time
Waiting
Misunderstanding
Batch Oriented
Huge lead time
Huge cost of coordination
Even Worst
Sec
Architecture
QA
Compliance
No walls
Agile Software Delivery
Optimize Only Software creation
A good improvement for late 90s early 2000
Packaged software
Internal software 1 deploy / month
Not Enough for:
Age of software
SaaS
No barriers / No walls
Functional Optimization vs Business Outcomes
Main characteristics of DevOps culture:
Collaboration between development and operations (avoiding SILOs and conflicting goals).Organize around the value streams optimizing for the flow efficiency (not resource efficiency). Learning to work in small batches.Remove waste (Non-Value Adding Activities). Of course, we talk about value from the customer point of view.Build quality in.Create fast feedback loops.Maximize organizational learning (making safe to fail and learn).
Iterative
Incremental
Continuous
Automated
Self-Service
Collaborative
Holistic
Requires
Code pipelines
No hands-off
The self service platform should be
Several teams one for each value stream
One of the value streams have the other teams as clients and are in charge of the platform…. But they are also a cross-functional team including all the roles. They don’t deploy other teams artifacts. The platform should be self service
Good option when our previous structure have a infrastructure/systems team
1- Blameless IRs
2- Feedback
3- Build self service tools
4- Each product team deploys
5- Each product team on-call for their services