+ All Categories
Home > Software > DevOps - A Gentle Introduction

DevOps - A Gentle Introduction

Date post: 15-Jan-2017
Category:
Upload: ganesh-samarthyam
View: 754 times
Download: 1 times
Share this document with a friend
42
GANESH SAMARTHYAM CODEOPS TECHNOLOGIES A Gentle Introduction
Transcript
Page 1: DevOps - A Gentle Introduction

GANESH SAMARTHYAM CODEOPS TECHNOLOGIES

A Gentle Introduction

Page 2: DevOps - A Gentle Introduction

What is DevOps?

Page 3: DevOps - A Gentle Introduction

DevOps is a set of practices intended to reduce the time between committing a

change to a system and the change being placed into normal production, while

ensuring high quality.

Source: DevOps: A Software Architect's Perspective, Len Bass, Ingo Weber, Liming Zhu, Addison-Wesley Professional, 2015

Page 4: DevOps - A Gentle Introduction

Checkin to release => it takes ages!

how many weeks, months, or years?!!

Page 5: DevOps - A Gentle Introduction

DevOps: Lightning fast!

Page 6: DevOps - A Gentle Introduction

DevOps - Drivers

Evolution of agile and lean methods

Need for quicker releases to realise business needs

Wider availability of virtualization & cloud-based

platforms

Increased availability of data

centre automation & configuration

management tools

Page 7: DevOps - A Gentle Introduction

DEVS ARE FROM VENUS, OPS ARE FROM MARS

Steven Haines

Page 8: DevOps - A Gentle Introduction

Dev

Ops

Page 9: DevOps - A Gentle Introduction

YOU BUILD IT, YOU RUN IT

Werner Voegls

Page 10: DevOps - A Gentle Introduction

Cyclic vs. continuous delivery

Cyclic delivery of earlier times

continuous delivery of modern times

weeks/months/years

hours/days!

Page 11: DevOps - A Gentle Introduction

Agile and DevOps• Agile focuses on bridging the gap between user

requirements and realising them and testing it. So it bridges the gap between user requirements and development + testing.

• DevOps focuses on bridging the gap between the developers and the operations people. So, in addition to users functional and non-functional requirements, devops focuses on operational and business readiness

Page 12: DevOps - A Gentle Introduction

DevOps principles

• Systems thinking - looking at how the entire system works instead of silos (like development teams, IT operations team, etc)

• Amplify feedback loops

• A culture of continual experimentation and learning

Page 13: DevOps - A Gentle Introduction

DEVELOP SYSTEMS, NOT SOFTWARE

Ben Butler Cole

Page 14: DevOps - A Gentle Introduction

The deployment pipeline

Source: “Continuous Delivery: Reliable Software Releases Through Build, Test, and and Deployment Automation”, Jez Humble, David Farley, Addison Wesley, 2010

Page 15: DevOps - A Gentle Introduction

DevOps processes• Treat operators as first class citizens

• Make Dev more responsible for incident handling

• Enforce deployment practices uniformly across both dev and ops

• Use continuous deployment

• Develop infrastructure code using same processes as application code

Source: DevOps: A Software Architect's Perspective, Len Bass, Ingo Weber, Liming Zhu, Addison-Wesley Professional, 2015

Page 16: DevOps - A Gentle Introduction

Deployment strategies• Two basic all of nothing strategies

• Blue/Green (Red/Black) – leave N instances with version A as they are, allocate and provision N instances with version B and then switch to version B and release instances with version A.

• Rolling Upgrade – allocate one instance, provision it with version B, release one version A instance. Repeat N times.

• Partial strategies are canary testing and A/B testing.Source: DevOps: A Software Architect's Perspective, Len Bass, Ingo Weber, Liming Zhu, Addison-Wesley Professional, 2015

Page 17: DevOps - A Gentle Introduction

Blue-green deployments

source: http://martinfowler.com/bliki/BlueGreenDeployment.html

Page 18: DevOps - A Gentle Introduction

Rolling upgrade

Source: DevOps: A Software Architect's Perspective, Len Bass, Ingo Weber, Liming Zhu, Addison-Wesley Professional, 2015

Page 19: DevOps - A Gentle Introduction

Feature toggles

• Develop version B with new code under control of feature toggle

• Install each instance of version B with the new code toggled off.

• When all of the instances of version A have been replaced with instances of version B, activate new code through toggling the feature.

Source: DevOps: A Software Architect's Perspective, Len Bass, Ingo Weber, Liming Zhu, Addison-Wesley Professional, 2015

Key idea: differentiate between installing a new version and

activating a new version

Page 20: DevOps - A Gentle Introduction

Canary testing

• Canaries are a small number of instances of a new version placed in production in order to perform live testing in a production environment.

• Canaries are observed closely to determine whether the new version introduces any logical or performance problems. If not, roll out new version globally. If so, roll back canaries.

Source: DevOps: A Software Architect's Perspective, Len Bass, Ingo Weber, Liming Zhu, Addison-Wesley Professional, 2015

Page 21: DevOps - A Gentle Introduction

Canary testing

source: http://media.cagle.com/96/2014/05/14/148486_600.jpg

Using birds in coal mines to detect

leakage of dangerous gases

Page 22: DevOps - A Gentle Introduction

A/B testing

Source: http://blog.christianposta.com/images/abtesting.png

Page 23: DevOps - A Gentle Introduction

Rollback or roll forward?

• When newly deployed feature has bugs or other problems (e.g., performance), what to do? • Roll back (undo the deployment) • Roll forward (replace the feature with new feature /

fixed version)

Page 24: DevOps - A Gentle Introduction

THE MOST POWERFUL TOOL WE HAVE AS DEVELOPERS IS AUTOMATION

Scott Hanselman

Page 25: DevOps - A Gentle Introduction

Deployment tools• “Bake” machine images • “Recipes” for standard configurations • DevOps engineers manage the recipes • “Infrastructure as code” approach

• Scripts are managed with similar processes as source code (e.g., versioned in configuration management systems)

Page 26: DevOps - A Gentle Introduction

Server snowflakes

• Server configurations can be different. This makes reproducing the problem in the production environment difficult in the production environment.

source: http://www.livescience.com/images/i/000/009/284/original/ig35_snowflakes_13_02.jpg?interpolation=lanczos-none&downsize=660:*

Page 27: DevOps - A Gentle Introduction

Automated deployment mechanism: Tools

Shell Scripts

Puppet

Redhat Kickstart

Solaris Jumpstart

Chef

Debian Preseed

Page 28: DevOps - A Gentle Introduction

Infrastructure configuration management

Apache ZooKeeper

Puppet

Noah

Chef

Environment virtualisation

Vagrant

Xen

VeeWee

KVM

Deployment automation Capistrano

Page 29: DevOps - A Gentle Introduction

DevOps: Challenges

• How to integrate security audits on continually changing codebases?

• How to run static analysers - they take quite a bit of time to run and can delay builds?

• How to deal with culture change in the org (developers and operators - both will resist)

Page 30: DevOps - A Gentle Introduction

DevOps and related topics• Continuous integration focuses on integrating code

changes by developers so that the main branch is up-to-date

• Continuous delivery focuses on taking the results of continuous integration builds and put them into production

• DevOps and Cloud technologies are intricately connected though DevOps practices can be used independently of the cloud

Page 31: DevOps - A Gentle Introduction

DevOps benefits

• Quicker delivery - shorter time from need to realisation

• Better quality

• Increased organisational effectiveness

Page 32: DevOps - A Gentle Introduction

DEPLOYMENT CELEBRATIONS SHOULD BE ABOUT THE VALUE OF THE NEW FEATURES, NOT JOYFUL RELIEF THAT NOTHING WENT HORRIBLY WRONG

Rebecca Parsons

Page 33: DevOps - A Gentle Introduction

DEVOPS IS NOT A GOAL, BUT A NEVER-ENDING PROCESS OF CONTINUAL IMPROVEMENT

Jez Humble

Page 34: DevOps - A Gentle Introduction

Recommended Reading

Page 35: DevOps - A Gentle Introduction

FROM CONCEPT TO CASH

➤ Lean Software Development book provides the foundation for DevOps; its principles are:

➤ Eliminate waste

➤ Amplify learning

➤ Decide as late as possible

➤ Deliver as fast as possible

➤ Empower the team

➤ Build quality in

➤ See the whole

➤ Read it to perform value stream mapping for DevOps

“Implementing Lean Software Development: From Concept to Cash”, Mary Poppendieck, Tom Poppendieck, Addison-Wesley Professional, 2006

https://amzn.com/0321437381

Page 36: DevOps - A Gentle Introduction

A BROAD PERSPECTIVE

➤ DevOps is more than bringing in DevOps engineers or using tools

➤ This book provides an overall perspective of DevOps by covering its history and covers foundational concepts

➤ Covers four pillars of effective DevOps: Collaboration, Affinity, Tools, and Scaling

➤ Has interesting case studies, clears misconceptions, and helps troubleshoot

Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale, Jennifer Davis, Katherine Daniels, O'Reilly Media, 2016

https://amzn.com/1491926309

Page 37: DevOps - A Gentle Introduction

CD DISTILLED

➤ An early book on Continuous Delivery

➤ Released before DevOps became a buzzword - but it covers dev ops concepts in its essence

➤ Book divided into three parts: Foundation, The Deployment Pipeline, and The Delivery Ecosystem

➤ Written based on the practical experience of authors and covers important aspects such as feature toggles; hence must read “Continuous Delivery: Reliable Software Releases Through Build, Test, and and

Deployment Automation”, Jez Humble, David Farley, Addison Wesley, 2010 http://www.amazon.in/dp/0321601912

Page 38: DevOps - A Gentle Introduction

WHY DEVOPS?

➤ From the authors of the popular “The Visible Ops Handbook”

➤ This book shows why DevOps and how it helps business win

➤ It tells the story of an IT manager who has to rescue an IT project in crisis

➤ Written in a fiction style, so easy to read

➤ An important read for managers for effective adoption of DevOps practices

“The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win”, Gene Kim, Kevin Behr, George Spafford, IT Revolution Press, 2013

https://amzn.com/0988262592

Page 39: DevOps - A Gentle Introduction

ARCHITECT’S PERSPECTIVE

➤ Most books on DevOps talk about tools, process and technology perspective

➤ This book is a take on an architect’s perspective on DevOps

➤ Covers deployment pipeline, cross-cutting concerns (monitoring, security, …), and case studies

➤ A bit-dry (written in more of an academic style)

DevOps: A Software Architect's Perspective, Len Bass, Ingo Weber, Liming Zhu, Addison-Wesley Professional, 2015

https://amzn.com/0134049845

Page 40: DevOps - A Gentle Introduction
Page 42: DevOps - A Gentle Introduction

IMAGE CREDITS

▸ https://assets.ashleypoole.co.uk/img/2016/02/dev-ops-principles.jpg

▸ http://siliconangle.com/files/2013/01/devops.jpg

▸ https://s-media-cache-ak0.pinimg.com/736x/db/94/70/db9470b9a02d379ca9f8d43a60d70bbd.jpg

▸ http://mediacom.com/media/1081/system-thinking-1.jpg?mode=crop&width=1920&height=1080&upscale=false&rnd=130830729460000000

▸ https://media.licdn.com/mpr/mpr/shrinknp_400_400/AAEAAQAAAAAAAAleAAAAJGJhYmZkZjk3LWZiNzktNDMxNC04OGI2LWVlNzRiY2RjOGI1OA.jpg

▸ http://1u88jj3r4db2x4txp44yqfj1.wpengine.netdna-cdn.com/wp-content/uploads/2015/10/gears-930x620.jpg

▸ http://www.edutopia.org/sites/default/files/styles/share_image/public/slates/johnson-celebration-of-learning-Thinkstock.gif?itok=m_aDCkEr

▸ http://pmtips.net/wp-content/uploads/2012/02/build-collaborate-engage.jpg

▸ http://vignette4.wikia.nocookie.net/lps2012/images/5/5d/Minka_made_a_big_mess.png/revision/latest?cb=20150206001314

▸ http://cdn29.elitedaily.com/content/uploads/2015/11/06084613/Stocksy_txpb051b385uAX000_Small_1805183.jpg

▸ http://photos1.meetupstatic.com/photos/event/d/3/5/6/600_330714102.jpeg

▸ http://cdn02.mindtheproduct.com/wp-content/uploads/2016/01/457-image-for-devops-part-of-blog_old-way_1200x400.png

▸ http://cdn02.mindtheproduct.com/wp-content/uploads/2016/01/457-image-for-devops-part-of-blog_new-way_560x560.png


Recommended