devops - a gentle introduction

42
GANESH SAMARTHYAM CODEOPS TECHNOLOGIES A Gentle Introduction

Upload: codeops-technologies

Post on 15-Jan-2017

577 views

Category:

Software


1 download

TRANSCRIPT

GANESH SAMARTHYAM CODEOPS TECHNOLOGIES

A Gentle Introduction

What is DevOps?

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

Checkin to release => it takes ages!

how many weeks, months, or years?!!

DevOps: Lightning fast!

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

DEVS ARE FROM VENUS, OPS ARE FROM MARS

Steven Haines

Dev

Ops

YOU BUILD IT, YOU RUN IT

Werner Voegls

Cyclic vs. continuous delivery

Cyclic delivery of earlier times

continuous delivery of modern times

weeks/months/years

hours/days!

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

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

DEVELOP SYSTEMS, NOT SOFTWARE

Ben Butler Cole

The deployment pipeline

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

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

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

Blue-green deployments

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

Rolling upgrade

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

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

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

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

A/B testing

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

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)

THE MOST POWERFUL TOOL WE HAVE AS DEVELOPERS IS AUTOMATION

Scott Hanselman

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)

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:*

Automated deployment mechanism: Tools

Shell Scripts

Puppet

Redhat Kickstart

Solaris Jumpstart

Chef

Debian Preseed

Infrastructure configuration management

Apache ZooKeeper

Puppet

Noah

Chef

Environment virtualisation

Vagrant

Xen

VeeWee

KVM

Deployment automation Capistrano

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)

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

DevOps benefits

• Quicker delivery - shorter time from need to realisation

• Better quality

• Increased organisational effectiveness

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

Rebecca Parsons

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

Jez Humble

Recommended Reading

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

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

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

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

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

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