SlideShare a Scribd company logo
Understanding DevOps Core Concepts
Nitin Bhide
http://thinkingcraftsman.in
nitinbhide@thinkingcraftsman.in
Oct 2017
Some basic guidelines
 This is a ‘Learning Program’ and not a ‘training
program’.
◦ Hence your Active Participation is needed.
◦ Participate in discussions
◦ Ask questions/doubts.
◦ If you have not understood some point/concept, Raise your
hand and ASK
 Avoid side conversations
 Avoid phone calls/emails.
11/8/2017 Commercial in confidence. (C) Nitin Bhide 2
Some basic guidelines
 Understand that there are no 'absolute truths' in
software development. Hence We may disagree with
some points/ ideas. And THAT IS OK.
 In dealing with disagreements, focus on the technical
merits.
◦ And not on who said it. (Somebody’s guidelines, some
books etc etc)
11/8/2017 Commercial in confidence. (C) Nitin Bhide 3
WHAT IS DEVOPS ?
Some History
 DevOps movement really started with a Session in
Velocity Conference in 2009
 Session was
“10+ Deploys Per Day: Dev and Ops Cooperation
at Flickr”
by John Allspaw and Paul Hammand
 Video
Dev Vs Ops Conflict
Its Not my
Code, its your
machines
Its not my
machine, its
your code.
Traditional Thinking
Dev’s job is to
add new
features
Op’s job is to
keep site
stable and fast
But something’s wrong here.
Ops Job is to ‘Enable’ business
That’s Dev’s Job too.
But
Business Requires CHANGE
But Change is root cause of most outages
Discourage change in the interest of stability
OR
Allow change to happen as often as it needs to
Is there way to achieve stability and still
allow change ?
Choice !!!
Enter ‘DevOps’
DevOps
is a way to lower the risk of ‘Change’
with TOOLS and CULTURE
DEVOPS – KEY PRACTICES AND
CULTURE
Key DevOps Practices
1. Automated Infrastructure
2. Shared Version Control (between Dev and Ops)
3. One Step Build
4. One Step Build and Deploy
5. Change Tracking – Who, When, What ?
6. Small Frequent Changes and Deploy
7. Feature Flags
8. Shared Metrics
9. ChatBots – IRC/IM Robots
-- John Allspaw and Paul Hammand, Velocity Conf. 2009
Culture
 Respect for One Another (Dev, QA, Ops)
 Trust
 Shared Runbook and Escalation Plans
 Healthy Attitude About Failure
◦ Fail Fast
◦ Assume Operation Failures will occur and plan for fast
recovery
 Avoid Blame
DevOps is NOT EASY
Its easier to continue shouting at each other
However, DevOps is much more rewarding
Fast Changing World of DevOps
• 10+ Deploys per Day in Flickr
2009
• Amazon – 23,000 deploys/day
• Google – 5,500 deploys/day
• Netflix – 500 deploys/day
• Typical Enterprise – ONCE every Nine Months
2012
Business Value of DevOps
Why Companies are suddenly SO interested in DevOps
????
Data shows that Companies who use DevOps have
 30X more frequent code deploys
 8000x faster code deployment lead times
 2x change success rate
 12x faster MTTR (Mean Time to Repair)
 2x more likely to succeed in profitability, market
share and productivity goals
Let me ask you a Question
How long it takes for your team to
deploy a change
that involves one single line of code
??
(rephrasing the quote from Mary Poppendiek, Lean
Software Deveopment Guru)
DEVOPS - CONFUSIONS
Projects
We are doing ‘project’, our customer’s operations team
(or another vendor) does a deploy. Now
 Customer wants all vendors to do DevOps
 We claim that we are doing DevOps.
Are we ??
Desktop Applications
We develop a desktop app and release it to our
Customers/End Users.
 So we are the ‘Devs’ but then who is our ‘Ops’ ?
 How do we do DevOps then ?
Enterprise Applications
We develop a Enterprise Application. Our System
Integrators customize and deploy it for our customers.
Then customer’s IT team’s run it.
 So we are the ‘Devs’ but then who is our ‘Ops’ ?
 How do we do DevOps then ?
TWO KEY DEVOPS INSIGHTS
DevOps Insight -1
SDLC is slightly different
from DevOps perspective
Traditional SDLC
Design Code Build
Test
Deploy
(?)
DevOps Perspective of SDLC
Design Code Build Test
Deploy
Monitor/Track
in Operation
AnalyzeFeedback
Dev
Ops
What are you doing to ‘lower the risk of change’ ?
Are your tools practices ‘lowering the risk of change’
DevOps Insight - 2
DevOps
is a way to
LOWER the risk of ‘Change’
with
TOOLS and CULTURE
TIP - How to lower the ‘risk’ of change ?
KEY – Find out what kind of change you are
afraid of
THEN Just do the kind of ‘change’ more
often.
 For example, deploy everyday rather than holding up a list
of features for end of month deploy
 Develop tools to roll back a deploy if things go wrong
Key DevOps Practices
1. Automated Infrastructure
2. Shared Version Control (between Dev and Ops)
3. One Step Build
4. One Step Build and Deploy
5. Change Tracking – Who, When, What ?
6. Small Frequent Changes and Deploy
7. Feature Flags
8. Shared Metrics
9. ChatBots – IRC/IM Robots
-- John Allspaw and Paul Hammand, Velocity Conf. 2009
What are you doing to ‘Lower the Risk of Change’ ??
 If you are , then you are following ‘spirit’ of DevOps
 Lets list some of these practices/tools that you are
using ?
3 WAYS OF DEVOPS
VALUES AND PHILOSOPHY OF
DEVOPS
3 Ways – Values and Philosophies of DevOps
The First
Way
is about the left-to-right flow of work from
Development to IT Operations to the customer.
The
Second
Way
is about the constant flow of fast feedback from right-
to-left at all stages of the value stream,
The
Third
Way
is about creating a culture that fosters two things:
continual experimentation and understanding that
repetition and practice is the prerequisite to mastery
1st Way – Left to Right Flow
 Maximize the flow from Development to Operations
to Customer
◦ Small Batch sizes and intervals of work
◦ Never pass defects downstream
◦ Optimize for ‘global goals’ like total feature completion
rates,
◦ Continuous build, deployment , automatic environment
creation, building system that are safe to change
2nd Way – Feedback from Right to Left
 Constant flow of fast feedback from right-to-left at all
stages, amplifying it to ensure that we can prevent
problems from happening again or enable faster
detection and recovery.
◦ Fail Fast /Stop the Production Line
◦ Create Fast automated test suites
◦ Create ‘pervasive’ product ‘tele-metry’
3rd Way – Culture of Experimentation and Mastery
 Create Culture fostering Continuous
Experimentation.
◦ Requires taking risks and learning from success and Failures
◦ Requires High Trust
 Create Culture of Mastery
◦ Mastery requires repetition and practice
◦ Repetition and practice reduces ‘risk of change’, develop
‘good habits’.
◦
BEING AGILE BY FOLLOWING DEVOPS
- CONCEPTUAL PARALLELS AMONG VARIOUS
DISCIPLINES
Agile/DevOps/Kanban/LEAN
Agile/DevOps are applying Concepts of ‘FLOW’ from
Toyota Production System /TQM /LEAN to Software
 Left to Right Flow
 Reduce Batchsize to reduce WIP
 ‘Push’ vs ‘Pull’ production systems
Reduce the ‘batch size’ and do more
batches/releases/deployments with smaller
number of features/changes/bug fixes
Just do the same kind of ‘change’ more
often.
Reduce WIP by reducing batch sizes
Reduce WIP by reducing batch sizes
 Timeboxed short sprints
◦ Remember 1 month Sprint has 2x ‘WIP’ than 2 week sprint
and hence can double the ‘overall cost’.
 Ultimately leading to continuous delivery (or Single
Piece Flow)
 WIP – Work In Progress Inventory
Achieving Early ROI
Monthly/Quarterly
Releases - Worst
ROI
• Integrated build
prepared on
developer desktop
and tested.
• Manual work.
Daily Shippable
Build – Better ROI
• Automated binary
creation
• Automation of
static analysis,
unit tests, etc
Continuous
Integration – Even
Better ROI
• Prepare binaries
and run tests on
every commits
• Really low
regression bugs
Continuous
Delivery – BEST
ROI
• Best releases are in
end users hands
immediately
• No more Periodic
Major releases.
42
Visual Control
 Current status of Project is Visible to EVERYONE
 HOW ?
◦ Burndown charts
◦ Daily Build Status
◦ Status of Automated Tests (Success/Failures)
Continuous Improvements and Automation
 Always Ask
◦ What can I automate ?
◦ What can be improved (in quality, in speed/performance,
etc etc)
◦ What mistakes can be prevented by automation ?
Automation - Remember
If you Automate a ‘mess’, you get ‘automated mess’
– Rod Michael
Most powerful tool that we have as developers
is “Automation”
– Scott Hanselman
Mistakes will happen
Do not fall for the illusion that by preventing errors,
you won’t have errors to fix. The truth is, the cost of
preventing errors is often far greater than the cost
of fixing them.
- Ed Catmull, Creativity, Inc.
Mistakes WILL Happen – Hence Fail Fast
 Same as Toyota’s Principle of “Anyone Can Stop Assembly Line”.
 Mistakes WILL Happen
◦ How to reduce the impact of mistakes ?
◦ How to detect mistakes early ?
◦ How to make it easier to recover from mistake ??
 How ??
◦ Static Code Analysis
◦ Zero Warnings Code
◦ QA Picks up installable ONLY after all Automated Tests Pass
PRACTICES FOR LOWERING RISK
OF CHANGE IN PROJECTS
Few Key Practices in DevOps
There are few key practices you have to have.
 Excellent Configuration Management Practices
◦ This is more than just I know ‘commit/update’ and Hence I am an expert of ‘version control’
 A Build Server
◦ A Build Server is a ‘center of the universe’ for software development team.
◦ Daily Build, Continuous Integrations, Automated Tests, static analysis, build packaging etc
etc. ALL happens on Build Server
 Continuously Develop tools/features to Help Ops
◦ Add Monitoring and Tracking from Day 1 (e.g. centralized logging, crash monitoring etc)
 Automate the Deploy
Excellent Configuration Management
Practices
 Do you have separate branches for baseline, release, bug fixes in
past releases ?
 Do you have ‘documented/defined’ branching strategy ? Is every
member of the team know this document ‘by heart’ ?
 Do you merge code bases regularly across branches using ‘svn
merge’ or other version control merge tools and NOT WinMerge
or Araxis Merge ?
 Do you tag every release sent to customer ?
 Do you have ‘defined’ tagging convention ?
 Do you regularly review and delete ‘dead branches’ ?
 Do you take ‘update’ and ‘commit’ at least twice a day ?
Build Server
 Do you have a ‘build server’ ?
 Does your QA Engineer Pickup Build ONLY from Build Server ?
 Every release package sent to customer is ‘compiled/prepared’ on build server and
NOT on developer machine.
 Do you have a ‘one click’ build (and a scheduled daily build)
 Do you have automated tests running on the build ?
 Can you prepare a ‘complete’ release package in one click ?
◦ Checkout and compile
◦ Release tagging
◦ Installer creation
◦ Deploy/upload to FTP etc
◦ Notify to users that a new build is available
◦ Fully or partially auto generated ‘release notes’
 Does developers give HIGHEST priority to ‘build break’ ?
◦ Do team check every day for Build Success And Target 99.9% build success rate ?
Tools for monitoring
1. Do you have centralized ‘crash logging’ ?
2. Do you have centralized event logging ?
1. Do you use operating system logging facilities like syslog
or windows event log ?
3. Do you have a way of collecting operational metrics ?
4. Do you have a way of visualizing operational metrics
?
5. Do your Ops regularly use your monitoring and
analysis tools ?
Automatic Deploy
 Can you do a ‘one click’ deploy ?
 What is your deploy strategy ?
◦ You push the deploy to server/user OR
◦ User/Server pulls a new update when available?
 Can you deploy multiple times a day if required?
 Can you deploy without user being aware of it ?
WHAT ARE THE PRACTICES YOU
ARE FOLLOWING TODAY ?
Remember
The practices you are following, are they
helping in ‘Lowering the Risk of Change’ ??
If YES, then you are following ‘spirit’ of
DevOps
If No, then you are just ‘buzz word’ compliant
THANK YOU !!!
DevOps - Understanding Core Concepts
REFERENCES
References
 Slides of 10+ Deploys Per Day: Dev and Ops
Cooperation at Flickr
 Practical Science of Batch size
(https://yow.eventer.com/yow-2012-1012/the-practical-science-
of-batch-size-by-don-reinertsen-1269)
 http://www.innolution.com/blog/agile-
documentation-and-the-economics-of-batch-size
 The Phoenix Project: A Novel About IT, DevOps, and
Helping Your Business Win - Gene Kim,
Unix Philosophy
1. Make each program do one thing well. To do a new job, build afresh rather
than complicate old programs by adding new features.
2. Expect the output of every program to become the input to another, as yet
unknown, program. Don’t clutter output with extraneous information. Avoid
stringently columnar or binary input formats. Don’t insist on interactive
input.
3. Design and build software, even operating systems, to be tried early,
ideally within weeks. Don’t hesitate to throw away the clumsy parts
and rebuild them.
4. Use tools in preference to unskilled help to lighten a programming
task, even if you have to detour to build the tools and expect to throw
some of them out after you’ve finished using them.
Doug McIlroy, [McIlroy78] The Bell System Technical Journal. Bell Laboratories.
M. D. McIlroy, E. N. Pinson, and B. A. Tague. “Unix Time-Sharing System
Forward”. 1978. 57 (6, part 2). p. 1902.

More Related Content

What's hot (20)

PDF
Intro to DevOps 4 undergraduates
Liran Levy
 
PPTX
Introduction to DevOps
Hawkman Academy
 
PPTX
Devops
Sun Technlogies
 
PPTX
DevOps by examples - Continuous Lifecycle London 2017
Giulio Vian
 
PPTX
An introduction to DevOps
Alexander Meijers
 
PPTX
DevOps Overview
Omri Spector
 
ODP
Dev ops
Eslam El Husseiny
 
PPTX
DevOps without DevOps Tools
Jagatveer Singh
 
PDF
Devops, the future is here, it's just not evenly distributed yet.
Kris Buytaert
 
PDF
Continuous Delivery e-book
Zend by Rogue Wave Software
 
PPTX
DevOps 101 - an Introduction to DevOps
Red Gate Software
 
PDF
Understanding DevOps in simpler way with Continuous Delivery
Swapnil Jain
 
PDF
Introduction to devops - update 2017
gjdevos
 
PPTX
DevOps
Abhay Kumar
 
PDF
DevOps - A Gentle Introduction
Ganesh Samarthyam
 
PDF
Principles of Continuous Delivery and DevOps
Bert Jan Schrijver
 
PDF
DevOps
Hakan Yüksel
 
PDF
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
Edureka!
 
PDF
DevOps 101
satya sudheer
 
PDF
"DevOps > CI+CD "
Innovation Roots
 
Intro to DevOps 4 undergraduates
Liran Levy
 
Introduction to DevOps
Hawkman Academy
 
DevOps by examples - Continuous Lifecycle London 2017
Giulio Vian
 
An introduction to DevOps
Alexander Meijers
 
DevOps Overview
Omri Spector
 
DevOps without DevOps Tools
Jagatveer Singh
 
Devops, the future is here, it's just not evenly distributed yet.
Kris Buytaert
 
Continuous Delivery e-book
Zend by Rogue Wave Software
 
DevOps 101 - an Introduction to DevOps
Red Gate Software
 
Understanding DevOps in simpler way with Continuous Delivery
Swapnil Jain
 
Introduction to devops - update 2017
gjdevos
 
DevOps
Abhay Kumar
 
DevOps - A Gentle Introduction
Ganesh Samarthyam
 
Principles of Continuous Delivery and DevOps
Bert Jan Schrijver
 
DevOps
Hakan Yüksel
 
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
Edureka!
 
DevOps 101
satya sudheer
 
"DevOps > CI+CD "
Innovation Roots
 

Similar to DevOps - Understanding Core Concepts (20)

PDF
Devops1
Yassine NOURI
 
PPTX
DevOps 101
Ernest Mueller
 
PPTX
Road to DevOps ROI
Cloudmunch
 
PPTX
How to get started with DevOps
Red Gate Software
 
PPTX
DevOpsGuys - How to get started with DevOps - Redgate Webinar April 2017
DevOpsGroup
 
PDF
Introduction to DevOps
Ahmed Adel
 
PPTX
Enterprise DevOps fact or fiction - DevOps Summit 2014
Chris Riley ☁
 
PPTX
Introduction to DevOps
Cprime
 
PPTX
ОЛЕКСАНДР ВІЛЬЧИНСЬКИЙ «DevOps culture» Lviv DevOps Conference 2019
UA DevOps Conference
 
PDF
Webinar: Demonstrating Business Value for DevOps & Continuous Delivery
XebiaLabs
 
PDF
SE_UNIT-9.pdf aaaaasasssasassasaaaajdjdj
NavnitKaklotar
 
PPTX
DevOps Torino Meetup Group Kickoff Meeting - Why a meetup group on DevOps, wh...
Rauno De Pasquale
 
PPTX
What is DevOps?
Jonathan Noble
 
PPTX
DevOps Roadtrip - Denver
VictorOps
 
PDF
Devops Culture & Lifecycle
Murali Ojha
 
PPTX
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014
Jwooldridge
 
PDF
DevOps Is More than Dev and Ops: It’s about Tearing Down Walls
TechWell
 
PPTX
DevOps introduction
Christian F. Nissen
 
PDF
Introduction to DevOps
Ravindu Fernando
 
PDF
DevOps for absolute beginners
Ahmed Misbah
 
Devops1
Yassine NOURI
 
DevOps 101
Ernest Mueller
 
Road to DevOps ROI
Cloudmunch
 
How to get started with DevOps
Red Gate Software
 
DevOpsGuys - How to get started with DevOps - Redgate Webinar April 2017
DevOpsGroup
 
Introduction to DevOps
Ahmed Adel
 
Enterprise DevOps fact or fiction - DevOps Summit 2014
Chris Riley ☁
 
Introduction to DevOps
Cprime
 
ОЛЕКСАНДР ВІЛЬЧИНСЬКИЙ «DevOps culture» Lviv DevOps Conference 2019
UA DevOps Conference
 
Webinar: Demonstrating Business Value for DevOps & Continuous Delivery
XebiaLabs
 
SE_UNIT-9.pdf aaaaasasssasassasaaaajdjdj
NavnitKaklotar
 
DevOps Torino Meetup Group Kickoff Meeting - Why a meetup group on DevOps, wh...
Rauno De Pasquale
 
What is DevOps?
Jonathan Noble
 
DevOps Roadtrip - Denver
VictorOps
 
Devops Culture & Lifecycle
Murali Ojha
 
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014
Jwooldridge
 
DevOps Is More than Dev and Ops: It’s about Tearing Down Walls
TechWell
 
DevOps introduction
Christian F. Nissen
 
Introduction to DevOps
Ravindu Fernando
 
DevOps for absolute beginners
Ahmed Misbah
 
Ad

More from Nitin Bhide (12)

PDF
2nd Techathon in Geometric - 27/28 Feb 2015
Nitin Bhide
 
PPTX
Do/Doing/Done Is NOT Kanban
Nitin Bhide
 
PPTX
Object Oriented Containers - Applying SOLID Principles to Docker/Container De...
Nitin Bhide
 
PPTX
Daily Habits Of Highly Agile Developers
Nitin Bhide
 
PPTX
Collected Wisdom
Nitin Bhide
 
PPTX
Fundamental Principles of Software Development
Nitin Bhide
 
PPTX
Agile Mindset and Its Implications - My Understanding
Nitin Bhide
 
PPTX
GUI patterns : My understanding
Nitin Bhide
 
PPTX
Code Review Checklist
Nitin Bhide
 
PPTX
CSS Basics
Nitin Bhide
 
PPTX
Iterator - a powerful but underappreciated design pattern
Nitin Bhide
 
PPTX
Common Sense Software Development
Nitin Bhide
 
2nd Techathon in Geometric - 27/28 Feb 2015
Nitin Bhide
 
Do/Doing/Done Is NOT Kanban
Nitin Bhide
 
Object Oriented Containers - Applying SOLID Principles to Docker/Container De...
Nitin Bhide
 
Daily Habits Of Highly Agile Developers
Nitin Bhide
 
Collected Wisdom
Nitin Bhide
 
Fundamental Principles of Software Development
Nitin Bhide
 
Agile Mindset and Its Implications - My Understanding
Nitin Bhide
 
GUI patterns : My understanding
Nitin Bhide
 
Code Review Checklist
Nitin Bhide
 
CSS Basics
Nitin Bhide
 
Iterator - a powerful but underappreciated design pattern
Nitin Bhide
 
Common Sense Software Development
Nitin Bhide
 
Ad

Recently uploaded (20)

PDF
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
PPTX
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
PPTX
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
PPTX
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
PPTX
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
PPTX
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
PPTX
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
PPTX
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
PDF
How to Hire AI Developers_ Step-by-Step Guide in 2025.pdf
DianApps Technologies
 
PPTX
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
PDF
Empower Your Tech Vision- Why Businesses Prefer to Hire Remote Developers fro...
logixshapers59
 
PPTX
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
PDF
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
PPTX
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
PDF
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
PDF
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
How to Hire AI Developers_ Step-by-Step Guide in 2025.pdf
DianApps Technologies
 
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
Empower Your Tech Vision- Why Businesses Prefer to Hire Remote Developers fro...
logixshapers59
 
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 

DevOps - Understanding Core Concepts

  • 1. Understanding DevOps Core Concepts Nitin Bhide http://thinkingcraftsman.in [email protected] Oct 2017
  • 2. Some basic guidelines  This is a ‘Learning Program’ and not a ‘training program’. ◦ Hence your Active Participation is needed. ◦ Participate in discussions ◦ Ask questions/doubts. ◦ If you have not understood some point/concept, Raise your hand and ASK  Avoid side conversations  Avoid phone calls/emails. 11/8/2017 Commercial in confidence. (C) Nitin Bhide 2
  • 3. Some basic guidelines  Understand that there are no 'absolute truths' in software development. Hence We may disagree with some points/ ideas. And THAT IS OK.  In dealing with disagreements, focus on the technical merits. ◦ And not on who said it. (Somebody’s guidelines, some books etc etc) 11/8/2017 Commercial in confidence. (C) Nitin Bhide 3
  • 5. Some History  DevOps movement really started with a Session in Velocity Conference in 2009  Session was “10+ Deploys Per Day: Dev and Ops Cooperation at Flickr” by John Allspaw and Paul Hammand  Video
  • 6. Dev Vs Ops Conflict Its Not my Code, its your machines Its not my machine, its your code.
  • 7. Traditional Thinking Dev’s job is to add new features Op’s job is to keep site stable and fast
  • 8. But something’s wrong here. Ops Job is to ‘Enable’ business That’s Dev’s Job too.
  • 9. But Business Requires CHANGE But Change is root cause of most outages
  • 10. Discourage change in the interest of stability OR Allow change to happen as often as it needs to Is there way to achieve stability and still allow change ? Choice !!!
  • 11. Enter ‘DevOps’ DevOps is a way to lower the risk of ‘Change’ with TOOLS and CULTURE
  • 12. DEVOPS – KEY PRACTICES AND CULTURE
  • 13. Key DevOps Practices 1. Automated Infrastructure 2. Shared Version Control (between Dev and Ops) 3. One Step Build 4. One Step Build and Deploy 5. Change Tracking – Who, When, What ? 6. Small Frequent Changes and Deploy 7. Feature Flags 8. Shared Metrics 9. ChatBots – IRC/IM Robots -- John Allspaw and Paul Hammand, Velocity Conf. 2009
  • 14. Culture  Respect for One Another (Dev, QA, Ops)  Trust  Shared Runbook and Escalation Plans  Healthy Attitude About Failure ◦ Fail Fast ◦ Assume Operation Failures will occur and plan for fast recovery  Avoid Blame
  • 15. DevOps is NOT EASY Its easier to continue shouting at each other However, DevOps is much more rewarding
  • 16. Fast Changing World of DevOps • 10+ Deploys per Day in Flickr 2009 • Amazon – 23,000 deploys/day • Google – 5,500 deploys/day • Netflix – 500 deploys/day • Typical Enterprise – ONCE every Nine Months 2012
  • 17. Business Value of DevOps Why Companies are suddenly SO interested in DevOps ???? Data shows that Companies who use DevOps have  30X more frequent code deploys  8000x faster code deployment lead times  2x change success rate  12x faster MTTR (Mean Time to Repair)  2x more likely to succeed in profitability, market share and productivity goals
  • 18. Let me ask you a Question How long it takes for your team to deploy a change that involves one single line of code ?? (rephrasing the quote from Mary Poppendiek, Lean Software Deveopment Guru)
  • 20. Projects We are doing ‘project’, our customer’s operations team (or another vendor) does a deploy. Now  Customer wants all vendors to do DevOps  We claim that we are doing DevOps. Are we ??
  • 21. Desktop Applications We develop a desktop app and release it to our Customers/End Users.  So we are the ‘Devs’ but then who is our ‘Ops’ ?  How do we do DevOps then ?
  • 22. Enterprise Applications We develop a Enterprise Application. Our System Integrators customize and deploy it for our customers. Then customer’s IT team’s run it.  So we are the ‘Devs’ but then who is our ‘Ops’ ?  How do we do DevOps then ?
  • 23. TWO KEY DEVOPS INSIGHTS
  • 24. DevOps Insight -1 SDLC is slightly different from DevOps perspective
  • 25. Traditional SDLC Design Code Build Test Deploy (?)
  • 26. DevOps Perspective of SDLC Design Code Build Test Deploy Monitor/Track in Operation AnalyzeFeedback Dev Ops
  • 27. What are you doing to ‘lower the risk of change’ ? Are your tools practices ‘lowering the risk of change’ DevOps Insight - 2 DevOps is a way to LOWER the risk of ‘Change’ with TOOLS and CULTURE
  • 28. TIP - How to lower the ‘risk’ of change ? KEY – Find out what kind of change you are afraid of THEN Just do the kind of ‘change’ more often.  For example, deploy everyday rather than holding up a list of features for end of month deploy  Develop tools to roll back a deploy if things go wrong
  • 29. Key DevOps Practices 1. Automated Infrastructure 2. Shared Version Control (between Dev and Ops) 3. One Step Build 4. One Step Build and Deploy 5. Change Tracking – Who, When, What ? 6. Small Frequent Changes and Deploy 7. Feature Flags 8. Shared Metrics 9. ChatBots – IRC/IM Robots -- John Allspaw and Paul Hammand, Velocity Conf. 2009
  • 30. What are you doing to ‘Lower the Risk of Change’ ??  If you are , then you are following ‘spirit’ of DevOps  Lets list some of these practices/tools that you are using ?
  • 31. 3 WAYS OF DEVOPS VALUES AND PHILOSOPHY OF DEVOPS
  • 32. 3 Ways – Values and Philosophies of DevOps The First Way is about the left-to-right flow of work from Development to IT Operations to the customer. The Second Way is about the constant flow of fast feedback from right- to-left at all stages of the value stream, The Third Way is about creating a culture that fosters two things: continual experimentation and understanding that repetition and practice is the prerequisite to mastery
  • 33. 1st Way – Left to Right Flow  Maximize the flow from Development to Operations to Customer ◦ Small Batch sizes and intervals of work ◦ Never pass defects downstream ◦ Optimize for ‘global goals’ like total feature completion rates, ◦ Continuous build, deployment , automatic environment creation, building system that are safe to change
  • 34. 2nd Way – Feedback from Right to Left  Constant flow of fast feedback from right-to-left at all stages, amplifying it to ensure that we can prevent problems from happening again or enable faster detection and recovery. ◦ Fail Fast /Stop the Production Line ◦ Create Fast automated test suites ◦ Create ‘pervasive’ product ‘tele-metry’
  • 35. 3rd Way – Culture of Experimentation and Mastery  Create Culture fostering Continuous Experimentation. ◦ Requires taking risks and learning from success and Failures ◦ Requires High Trust  Create Culture of Mastery ◦ Mastery requires repetition and practice ◦ Repetition and practice reduces ‘risk of change’, develop ‘good habits’. ◦
  • 36. BEING AGILE BY FOLLOWING DEVOPS - CONCEPTUAL PARALLELS AMONG VARIOUS DISCIPLINES
  • 37. Agile/DevOps/Kanban/LEAN Agile/DevOps are applying Concepts of ‘FLOW’ from Toyota Production System /TQM /LEAN to Software  Left to Right Flow  Reduce Batchsize to reduce WIP  ‘Push’ vs ‘Pull’ production systems
  • 38. Reduce the ‘batch size’ and do more batches/releases/deployments with smaller number of features/changes/bug fixes Just do the same kind of ‘change’ more often.
  • 39. Reduce WIP by reducing batch sizes
  • 40. Reduce WIP by reducing batch sizes  Timeboxed short sprints ◦ Remember 1 month Sprint has 2x ‘WIP’ than 2 week sprint and hence can double the ‘overall cost’.  Ultimately leading to continuous delivery (or Single Piece Flow)  WIP – Work In Progress Inventory
  • 41. Achieving Early ROI Monthly/Quarterly Releases - Worst ROI • Integrated build prepared on developer desktop and tested. • Manual work. Daily Shippable Build – Better ROI • Automated binary creation • Automation of static analysis, unit tests, etc Continuous Integration – Even Better ROI • Prepare binaries and run tests on every commits • Really low regression bugs Continuous Delivery – BEST ROI • Best releases are in end users hands immediately • No more Periodic Major releases. 42
  • 42. Visual Control  Current status of Project is Visible to EVERYONE  HOW ? ◦ Burndown charts ◦ Daily Build Status ◦ Status of Automated Tests (Success/Failures)
  • 43. Continuous Improvements and Automation  Always Ask ◦ What can I automate ? ◦ What can be improved (in quality, in speed/performance, etc etc) ◦ What mistakes can be prevented by automation ?
  • 44. Automation - Remember If you Automate a ‘mess’, you get ‘automated mess’ – Rod Michael Most powerful tool that we have as developers is “Automation” – Scott Hanselman
  • 45. Mistakes will happen Do not fall for the illusion that by preventing errors, you won’t have errors to fix. The truth is, the cost of preventing errors is often far greater than the cost of fixing them. - Ed Catmull, Creativity, Inc.
  • 46. Mistakes WILL Happen – Hence Fail Fast  Same as Toyota’s Principle of “Anyone Can Stop Assembly Line”.  Mistakes WILL Happen ◦ How to reduce the impact of mistakes ? ◦ How to detect mistakes early ? ◦ How to make it easier to recover from mistake ??  How ?? ◦ Static Code Analysis ◦ Zero Warnings Code ◦ QA Picks up installable ONLY after all Automated Tests Pass
  • 47. PRACTICES FOR LOWERING RISK OF CHANGE IN PROJECTS
  • 48. Few Key Practices in DevOps There are few key practices you have to have.  Excellent Configuration Management Practices ◦ This is more than just I know ‘commit/update’ and Hence I am an expert of ‘version control’  A Build Server ◦ A Build Server is a ‘center of the universe’ for software development team. ◦ Daily Build, Continuous Integrations, Automated Tests, static analysis, build packaging etc etc. ALL happens on Build Server  Continuously Develop tools/features to Help Ops ◦ Add Monitoring and Tracking from Day 1 (e.g. centralized logging, crash monitoring etc)  Automate the Deploy
  • 49. Excellent Configuration Management Practices  Do you have separate branches for baseline, release, bug fixes in past releases ?  Do you have ‘documented/defined’ branching strategy ? Is every member of the team know this document ‘by heart’ ?  Do you merge code bases regularly across branches using ‘svn merge’ or other version control merge tools and NOT WinMerge or Araxis Merge ?  Do you tag every release sent to customer ?  Do you have ‘defined’ tagging convention ?  Do you regularly review and delete ‘dead branches’ ?  Do you take ‘update’ and ‘commit’ at least twice a day ?
  • 50. Build Server  Do you have a ‘build server’ ?  Does your QA Engineer Pickup Build ONLY from Build Server ?  Every release package sent to customer is ‘compiled/prepared’ on build server and NOT on developer machine.  Do you have a ‘one click’ build (and a scheduled daily build)  Do you have automated tests running on the build ?  Can you prepare a ‘complete’ release package in one click ? ◦ Checkout and compile ◦ Release tagging ◦ Installer creation ◦ Deploy/upload to FTP etc ◦ Notify to users that a new build is available ◦ Fully or partially auto generated ‘release notes’  Does developers give HIGHEST priority to ‘build break’ ? ◦ Do team check every day for Build Success And Target 99.9% build success rate ?
  • 51. Tools for monitoring 1. Do you have centralized ‘crash logging’ ? 2. Do you have centralized event logging ? 1. Do you use operating system logging facilities like syslog or windows event log ? 3. Do you have a way of collecting operational metrics ? 4. Do you have a way of visualizing operational metrics ? 5. Do your Ops regularly use your monitoring and analysis tools ?
  • 52. Automatic Deploy  Can you do a ‘one click’ deploy ?  What is your deploy strategy ? ◦ You push the deploy to server/user OR ◦ User/Server pulls a new update when available?  Can you deploy multiple times a day if required?  Can you deploy without user being aware of it ?
  • 53. WHAT ARE THE PRACTICES YOU ARE FOLLOWING TODAY ?
  • 54. Remember The practices you are following, are they helping in ‘Lowering the Risk of Change’ ?? If YES, then you are following ‘spirit’ of DevOps If No, then you are just ‘buzz word’ compliant
  • 58. References  Slides of 10+ Deploys Per Day: Dev and Ops Cooperation at Flickr  Practical Science of Batch size (https://yow.eventer.com/yow-2012-1012/the-practical-science- of-batch-size-by-don-reinertsen-1269)  http://www.innolution.com/blog/agile- documentation-and-the-economics-of-batch-size  The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win - Gene Kim,
  • 59. Unix Philosophy 1. Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new features. 2. Expect the output of every program to become the input to another, as yet unknown, program. Don’t clutter output with extraneous information. Avoid stringently columnar or binary input formats. Don’t insist on interactive input. 3. Design and build software, even operating systems, to be tried early, ideally within weeks. Don’t hesitate to throw away the clumsy parts and rebuild them. 4. Use tools in preference to unskilled help to lighten a programming task, even if you have to detour to build the tools and expect to throw some of them out after you’ve finished using them. Doug McIlroy, [McIlroy78] The Bell System Technical Journal. Bell Laboratories. M. D. McIlroy, E. N. Pinson, and B. A. Tague. “Unix Time-Sharing System Forward”. 1978. 57 (6, part 2). p. 1902.

Editor's Notes

  • #37: Not as easy as it sounds. Taking risks means organization has to ‘accept’ failure as part of life/part of learning