DevOps Training - Ho Chi Minh City
- 1. Christian Trabold
Vinh Duc Bach Sy
Content is licensed under a Creative Commons Attribution 3.0 Unported License
DevOps Training
May 13 Ho Chi Minh City
- 3. How often did you give a gift that made the other person happy?
How often did the gift not make happy?
What makes you feel better?
Before we begin…
- 8. Feature & Delivery Pressure
1/3 of ideas created a statistically significant
positive change
1/3 produced no statistically significant difference
1/3 created a statistically significant
negative change
- 11. Our highest priority is to satisfy the customer through
early and continuous delivery of valuable software.
1st principle behind the Agile Manifesto
- 21. If you mix Sugar, Flour, Cocoa, Salt, Baking Soda and a
few other things together, you don’t get
SugFloCocSalBak, you get a cake.
– Ken Mugrage
Classic Definition of DevOps - Part 3
http://www.kenmugrage.com/post/my-new-definition-of-devops/
- 22. DevOps helps to get user feedback faster
https://www.thoughtworks.com/insights/blog/agile-and-user-centered-design
- 24. Quiz: Estimate
How long does a
deployment usually
take?
minutes / hours / days?
How often do you
deploy?
Daily / weekly / monthly /
yearly?
- 27. Each delivery step in the project is a step on the value stream map
How to start drawing a Value Stream Map (VSM)
- 28. Highlight "non-value creation time" and "value creation time"
A Value Stream Map - Note down the duration of each step
Build Test
Deploy
DEV
Test
DEV
Deploy
SIT
Test
SIT
Wait for
Approval
Deploy
PROD
Test
PROD
5min 15min 2min 15min 2min 15min 2w 5min 15min
- 29. PRODSITDEV
Once you see the full path to production you can identify groups of
steps (= phases)
A Value Stream Map - Group the phases to get 'stages'
Build Test
Deploy
DEV
Test
DEV
Deploy
SIT
Test
SIT
Wait for
Approval
Deploy
PROD
Test
PROD
5min 15min 2min 15min 2min 15min 2w 5min 15min
- 30. Time wasted on waiting for ticket approval. Clicking the approval
takes very little time.
A Value Stream Map - Detect "waste"
Build Test
Deploy
DEV
Test
DEV
Deploy
SIT
Test
SIT
Wait for
Approval
Deploy
PROD
Test
PROD
5min 15min 2min 15min 2min 15min 2w 5min 15min
10min
- 31. How many times do you have to repeat the steps due to feedback?
= delivery time to SIT x 4
A Value Stream Map - Detect "Redo" and "unplanned" work
Build Test
Deploy
DEV
Test
DEV
Deploy
SIT
Test
SIT
Wait for
Approval
Deploy
PROD
Test
PROD
5min 15min 2min 15min 2min 15min 2w 5min 15min
10min
avg. 2 times "re-do"
avg. 2 times "re-do"
- 32. How many teams and regulations are involved in the process?
A Value Stream Map - Get to know the other people involved
Build Test
Deploy
DEV
Test
DEV
Deploy
SIT
Test
SIT
Wait for
Approval
Deploy
PROD
Test
PROD
5min 15min 2min 15min 2min 15min 2w 5min 15min
10min
- 33. How long does it take to change
one single line of code in production?
Famous question from the Continuous Delivery Book
- 37. Quiz / Show hands: How do you get fast feedback?
A. Check if it works manually
B. Write tests
C. Wait for QA to open a ticket
- 38. Continuous Integration = Fast feedback
Check all software changes continuously
Continuously = runs on every commit
Does the software still work?
- 39. Continuous Integration - Examples
Fail build when script has syntax errors
Fail build when code is invalid
Fail build when content is invalid
Fail build when expectations are not satisfied
- 42. Regardless of what we discover, we understand and truly believe that everyone
did the best job they could, given what they knew at the time, their skills and
abilities, the resources available, and the situation at hand.
– The Retrospective Prime Directive
- 43. better communication between developers & teams
real time information on process and project status
Feedback reduces risk
Continuous Integration = Fast feedback = Less Risk
- 44. Continuous Integration - Fast feedback
Build-Radiators:
- Show cctray (http://ccmenu.org/)
- Show build status monitor (https://nevergreen.io/)
- Chatbot (Slack, Hipchat, IRC…)
- Show notifications (email notifications are not recommended)
Good overview:
https://wiki.jenkins-ci.org/display/JENKINS/Monitoring+Jenkins
- 45. You can't get to continuous delivery if you can't do continuous
integration right:
1) commit more often
2) automate, automate, automate
3) trunk based development
Tips for efficient Continuous Integration
https://twitter.com/scottnasello/status/857307874812321792
- 46. multiple branches: Continuous Isolation
single branch: Continuous Integration
Continuous Integration & Branches
https://twitter.com/RealGeneKim/status/857306252770201601
- 51. Let's convert the VSM into a Delivery Pipeline!
You know now how a Value Stream Map looks like
Build Test
Deploy
DEV
Test
DEV
Deploy
SIT
Test
SIT
Wait for
Approval
Deploy
PROD
Test
PROD
- 52. Continuous Delivery: What is a pipeline?
How most people think software gets delivered
https://www.gocd.io/2017/03/01/importance-and-principles-of-cd-pipelines/
- 58. Why GoCD?
GoCD allows you to model your delivery pipeline(s)
Easy to convert the Value Stream Map into a working Delivery Pipeline
Core concepts of VSM & Pipelines built in by default
Easy chaining of tasks
Open Source and enterprise support
GoCD or Jenkins? https://www.gocd.io/2017/04/25/gocd-over-jenkins/
https://www.gocd.io/getting-started/part-1/
- 62. GoCD Demo Steps
- Download VM Box: http://192.168.123.34/devops-training.box
- git clone https://gitlab.com/ctrabold/devops-training/
- git checkout 2017-hcmc
- vagrant up devops-training
- vagrant ssh devops-training
- > ifconfig
- # get IP address of the machine
- open http://<IP-ADDRESS>:8153
- 68. Read
Survey of more than 25,000 technical
professionals worldwide over the last
five years
Understand how DevOps practices
impact IT and organizational
performance
https://puppet.com/resources/whitepaper/2016-state-of-devops-report
- 69. Read
Stay up to date & subscribe to the
ThoughtWorks Tech Radar
http://www.thoughtworks.com/radar
- 70. This site attempts to collect all the
related facts, rationale and techniques
for Trunk-Based Development
together in one place, complete with
twenty-five diagrams to help explain
things.
All without using TBD as an acronym
even once twice.
Read
https://trunkbaseddevelopment.com/
- 74. ❏ A strange person
❏ A tool to manage Virtual Machines
❏ A Rails application
What is Vagrant?
- 75. ❏ A Forrester IT report for executives
❏ A visual representation of the delivery process
❏ A design pattern for bi-directional value mapping
What is a Value Stream Map?
- 76. ❏ A npm plugin
❏ A visual representation of the delivery process
❏ A Jenkins Plugin
What is a Delivery Pipeline?
- 77. ❏ A deployment tool
❏ A configuration management tool
❏ A company name
❏ All of the above
What is Ansible?
- 80. Common shell commands:
UNIX
cp file file-copy
mv file file-renamed
cd <change directory>
ls . list directory content
rm file-to-remove
Windows
dir . list directory content
Cheat Sheet
- 83. Open Terminal / Command line
vagrant --version
Vagrant 1.9.2
VBoxManage --version
5.1.2r108956
Installation Checklist
- 84. Clone Git repository
git clone https://gitlab.com/ctrabold/devops-training
Get box file (ask for USB stick!)
vagrant box add --name centos/7
--box-version 1609.01
~/Downloads/centos-7.box
Installation Checklist