Levels of DevOps Practice



1. Values:
======

CAMS Culture Automation Measurement and Sharing 

1.1 culture
1.2 automation, 
1.3 measurement, 

* MTTR
* cycle Time
* Costs
* Revenue
* Employee Satisfaction 

1.4 sharing: Kizen

Later on, L for Lean is also added. 

CALMS Culture Automation Lean Measurement and Sharing 

2. Principles
========

2.1 System thinking : Concept to Cash 
2.2 Amplifying feedback loop
2.3 Continuous experiments and learning


3. Methods
=======

3.1 People (Who is responsible) , Process, Tools
3.2 Continuous Delivery
3.3 Lean Management 
3.4 Change Control
3.5 Infrastructure as code

4. Practices 
========

4.1 Chaos Monkey 
4.2 Blue / Green Deployment
4.3 Dependency Injection (Inversion of control)  using service discovery
4.4 Andon Cord
4.5 Cloud : API driven way
4.6 Embedded Teams 
4.7 Blameless Postmortem (industrial safety)  should happen within 24 or 48 hours
4.8 Public Status Page is also about Transparent uptime
4.9 Developers on call
4.10 Incident Command System (Like fire department) 

5. Tools
=====

Criteria for choosing tools

1. Tools should be programmable. Can invoke by API and CLI, not only GUI. 
2. verifiable : events and matrix
3. well behave: deploy automatically, acceptance test case. it can be in form for .deb OR chef cookbook 

5.1 Code – code development and review, source code management tools, code merging
5.2 Build – continuous integration tools, build status
5.3 Test – continuous testing tools that provide feedback on business risks
5.4 Package – artifact repository, application pre-deployment staging
5.5 Release – change management, release approvals, release automation
5.6 Configure – infrastructure configuration and management, infrastructure as code tools (e.g. Ansible, Puppet, Chef) 
5.7 Monitor – applications performance monitoring, end-user experience (e.g. NewRelic, Kibana, Datadog)

Six Phases of tool chain

5.1 Version Control : Git (Github OR Bigbucket) as SAS or enterprise version. Hands-on http://try.github.io/

5.2 CI systems : Jenkins, commercial Jenkins from CloudBees, GoCD, Bamboo, Shippable, TeamCity. CI as Service : Travis CI, Circle CI

5.3 Build : Make, Rake, Maven (Workflow approach), Gulp for front end, HashiCorp's Packer for infrastructure 

5.4 Test : Testing for developers before check in

5.4.1 Unit Test and code hygiene : JUnit, golint/gofmt, RuboCop, 
Integration Testing : Robot, Protractor, Cucumber, Selenium (for UI testing), Sauce Labs from SAS for front end acceptance testing

5.4.2 Infrastructure Testing : Kitchen Chef

5.4.3 Performance Testing : Apache Bench, Meter, Apache JMeter

5.4.4 Security Testing : Brakeman, VeraCode, gauntlet 
Vagrant, Otto, Docker Compose 

5.5 Artifact Repository

Artifactory
Nexus
DockerHub
AWS S3

5.6 Deployment

RunDeck
UrbenCode
ThoughtWorks
Deployinator
Elastic Beanstalk
Octopus
Vamp
Saltstack
rerun 

Most important tools are : Continuous Integration (e.g. Jenkins) and Infrastructure as a code (e.g. Puppet) 


Containerization — Docker, Rocket, Unik
Orchestration — Kubernetes, Swarm, Mesos

Organisational culture

1. Pathological (Power oriented)
2. Bureaucratic (rule oriented)
3. Generative (performance oriented) cooperation and inquiry 

Processes are like training wheels: So go for minimal viable process

How to build Trust, Respect and eliminate blame and hostility ?  

* Some people may introvert
* People think others job is easy to do
* bring transparency "chat ops" : Hip Chat, slack, ICR, Hubot, Lita, Cog, Err

Organisational boundary is also communication boundary. 

Progress Charts 

1. Epic burn down charts
2. Release burn down charts
3. Sprint burn down charts
4. Velocity charts (committed v/s completed) 

Kanban based matrix and charts

1. WIP : Cumulative Flow Diagram
2. throughput
3. lead time = work is requested till delivered 
4. cycle time = amount of time we spend working on it. 


"The Phoenix Project" Modeled on "The Goal" but DevOps specific 

Reference
  https://theagileadmin.com/

0 comments:

Post a Comment