introduction to devops

68
. . DevOps DevOps Julien Pivotto November 6th, 2014

Upload: julien-pivotto

Post on 14-Jun-2015

1.404 views

Category:

Technology


4 download

DESCRIPTION

An introduction do DevOps principles given at LeanKanban France conference in November 2014.

TRANSCRIPT

Page 1: Introduction to DevOps

...

DevOpsDevOpsJulien Pivotto

November 6th, 2014

Page 2: Introduction to DevOps

..

whoamiwhoamiJulien PivottoJulien Pivotto

• Open-Source consultant at inuits.eu• FOSS defender since 2004• DevOps believer and evangelist• @roidelapluie on twitter/github

Page 3: Introduction to DevOps

..

..

ınuits.eu

Page 4: Introduction to DevOps

..

DevOps

Page 5: Introduction to DevOps

..

A traditional dev shopA traditional dev shop

Friday, 5PM”Here is the tarball, put thiscode live, now! We are on air

in 20 minutes!”

Page 6: Introduction to DevOps

..

A traditional ops shopA traditional ops shop

• Dependencies?• Database?• Security? Scalability?• Performances?• Availability?

Page 7: Introduction to DevOps

..

..

10 days in productionPublic domain http://en.wikipedia.org/wiki/File:Explosions.jpg

Page 8: Introduction to DevOps

..

What is happening?What is happening?

Dev• New features• New releases• Response to change

Ops• Stability• Availability• Security

..

Page 9: Introduction to DevOps

..

If agility/lean is limited to one silo,you’ve a problem

Page 10: Introduction to DevOps

..

Let's take a closer lookLet's take a closer look

• Devs do sysadmin work▶ Testing▶ Database work▶ Small deployments

• Ops do development work▶ Bash, python scripting▶ Infrastructure as Code▶ Monitoring

Page 11: Introduction to DevOps

..

IT is evolvingIT is evolvingYou need to play the gameYou need to play the game

• More velocity• More changes• Volatile environments• Scalability• No space for slow moves• No space for old teams

Page 12: Introduction to DevOps

..

What is DevOps?What is DevOps?

DevOps is getting Developersand Ops working together!

Page 13: Introduction to DevOps

..

DevOps daysDevOps days

• 200X-2009: World. Patrick Debois, Gildas Le Nadan,

Andrew Clay Shafer, Kris Buytaert, Jezz Humble, Lindsay

Holmwood, John Willis, Chris Read, Julian Simpson, Luke

Kanies, John Allspaw and lots of others…

• 2009: Ghent• 2014: Ghent• Dozens of others (Paris in 2013 and 2015)

Page 14: Introduction to DevOps

..

DevOps daysDevOps days

• Talks in the morning• Open-Space in the afternoon• Some big companies have organizedinternal DevOps days

Page 15: Introduction to DevOps

..

DevOps is a cultural andprofessional movement

Adam Jacob, OpsCode

Page 16: Introduction to DevOps

..

DevOpsDevOps

CultureAutomationMeasurementSharing

John Willis and Damon Edwards

Page 17: Introduction to DevOps

..

What can DevOps bring you?What can DevOps bring you?

• Faster TTM• Reliability• Awareness• Trust

Page 18: Introduction to DevOps

..

> CultureAutomationMeasurementSharing

Page 19: Introduction to DevOps

..

..

Burn the silosCC-BY 2.0 https://www.flickr.com/photos/cbroders/15427579647

Page 20: Introduction to DevOps

..

Build one teamBuild one team

• People with different skills▶ Development▶ CI, CD▶ Testing▶ Infrastructure▶ Monitoring

Page 21: Introduction to DevOps

..

A team with one goal:Helping the business

Page 22: Introduction to DevOps

..

..

Enable communicationCC-BY 3.0 http://commons.wikimedia.org/wiki/File:Fiap-paulista-coworking.jpg

Page 23: Introduction to DevOps

..

CommunicationCommunication

• Sit together• Mix open space and offices• Standup (virtual, physical)• Mails, mailing lists, chat• Direct communication• One language to rule them all

Page 24: Introduction to DevOps

..

Build TrustBuild Trust

• Experiment• Measure success• Measure failure• Automate the things• Trust between people

Page 25: Introduction to DevOps

..

..

Play togetherCC-BY-SA 3.0 http://www.flickr.com/photos/kona99/3987853510/

Page 26: Introduction to DevOps

..

Play togetherPlay together

• More idea, creativity• Different approaches• More fun and comprehension• Build trust

Page 27: Introduction to DevOps

..

Share responsibilitiesShare responsibilities

• Everyone is responsible• Everyone is on call, even managers• No fingerpointing• Give access

Page 28: Introduction to DevOps

..

Do you let a blind person paintyour home?

Page 29: Introduction to DevOps

..

Definition of DoneDefinition of Done

A software project is NOT doneuntil your last user is dead

Kris Buytaert

Page 30: Introduction to DevOps

..

Culture> AutomationMeasurementSharing

Page 31: Introduction to DevOps

..

Automate all the thingsAutomate all the things

• Reproducable build• Robust build

▶ Build on a prod-like environment▶ No more "works on my machine"

• Test• Deploy

Page 32: Introduction to DevOps

..

You need to get more confident withyour code

Page 33: Introduction to DevOps

..

Test automationTest automation

• Unit tests• Regression tests• Compatibility tests• Selenium, cucumber, …• TTD, BDD

Page 34: Introduction to DevOps

..

DevOps (<)> Continuous Delivery

Page 35: Introduction to DevOps

..

How many deploys a day?How many deploys a day?

It is NOT a contest!

BUT

Page 36: Introduction to DevOps

..

Continuous IntegrationContinuous Integration

• Everyone works in one branch• Run tests on the code• Make a build each time• Deploy each build to a developmentenvironment

• Run tests on that environments

Page 37: Introduction to DevOps

..

Continuous Deliveryor

Continuous Deployment

Page 38: Introduction to DevOps

..

Continuous DeliveryContinuous Delivery

• A fresh build is always ready to be deployed• The code is always in a good state• Features flag• Human action is needed to deploy

Page 39: Introduction to DevOps

..

Continuous DeploymentContinuous Deployment

• Same as Continuous delivery… but• Code is automatically deployed• 0 downtime• Silent upgrades• No human intervention• Requires mature testing infrastructure

Page 40: Introduction to DevOps

..

..

Pipelines

Page 41: Introduction to DevOps

..

Learning pathLearning path

• Continuous Integration on a Developmentplatform

• Continous Deployment to UAT• Continuous Delivery to Prod

Page 42: Introduction to DevOps

..

PromotionsPromotions

• First click a button• Get more confident• Remove the button

Page 43: Introduction to DevOps

..

DeploymentsDeployments

If it hurts, do it more often!

Page 44: Introduction to DevOps

..

IACIAC

• Infrastructure as Code• Put infrastructure under version control• History, amend, modelize your infra• Deploy monitoring, backups, apps• This is NOT bash scripting• Deploy new platforms at will• Think puppet, chef, …

Page 45: Introduction to DevOps

..

Your infra code is…codeYour infra code is…code

• Puppet/Chef/…code must be deployed• Use CI/CD for them also• Run tests on them• Use the same path

Page 46: Introduction to DevOps

..

OrchestrationOrchestration

• Restart all httpd• Which servers have php 53 installed?• Configure db, trigger commands..• On multiple server at the same time• Think mcollective, ansible, …

Page 47: Introduction to DevOps

..

CultureAutomation

> MeasurementSharing

Page 48: Introduction to DevOps

..

Feedback

Page 49: Introduction to DevOps

..

MetricsMetrics

• Collect tons of metrics• Build dashboards• Learn from logs• Learn from *

Page 50: Introduction to DevOps

..

Monitor EVERY platformMonitor EVERY platform

• Dev, Uat, Prod• See the troubles early• Measure performance• Observe side effects

Page 51: Introduction to DevOps

..

Start with developmentStart with development

Page 52: Introduction to DevOps

..

Then runtimeThen runtime

• OS▶ disk, cpu, i/o, memory

• Middleware▶ queues▶ API calls▶ connections

• Application▶ response time▶ users▶ objects▶ usage

Page 53: Introduction to DevOps

..

Measure everythingMeasure everything

• Deployments• Commits• Tickets• Kanban queues• WIP

Page 54: Introduction to DevOps

..

Page 55: Introduction to DevOps

..

Read metricsRead metrics

• Get business keys, values• Share dashboards with dev ops mgmt• Find metrics that matter• Expose them• Learn from them

Page 56: Introduction to DevOps

..

Use metricsUse metrics

• Analyze them• Prevent expectable failure• Correlate failures• Root cause analysis

Page 57: Introduction to DevOps

..

CultureAutomationMeasurement

> Sharing

Page 58: Introduction to DevOps

..

ShareShare

• Talk about your experience• Use Open Source software• Publish your re-usable code• Avoid lock-ins

Page 59: Introduction to DevOps

..

I have just shared myexperience with you!

Page 60: Introduction to DevOps

..

Conclusion: What DevOps is not…

Page 61: Introduction to DevOps

..

DevOps is NOT about tools

Page 62: Introduction to DevOps

..

DevOps is NOT adding a new team

Page 63: Introduction to DevOps

..

DevOps is NOT a job title

Page 64: Introduction to DevOps

..

DevOps is NOT a methodology

Page 65: Introduction to DevOps

..

You need to make it work for you

Page 66: Introduction to DevOps

..

Backlog and participateBacklog and participate

• http://www.devopsdays.org/• http://devopscafe.org/• http://jedi.be/blog/• http://codeascraft.com/• http://krisbuytaert.be/• The Phoenix Project• @devopsdaysparis - April 2015 - Samevenue

Page 67: Introduction to DevOps

..

Thank youThank you

Any question?

Page 68: Introduction to DevOps

..

ContactContact

Julien [email protected]@roidelapluie

INUITS bvbaBelgium+32 473 441 636https://inuits.eu