Introduction to DevOps

Post on 14-Jun-2015

1.404 views 4 download

description

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

Transcript of Introduction to DevOps

...

DevOpsDevOpsJulien Pivotto

November 6th, 2014

..

whoamiwhoamiJulien PivottoJulien Pivotto

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

..

..

ınuits.eu

..

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!”

..

A traditional ops shopA traditional ops shop

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

..

..

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

..

What is happening?What is happening?

Dev• New features• New releases• Response to change

Ops• Stability• Availability• Security

..

..

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

..

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

..

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

..

What is DevOps?What is DevOps?

DevOps is getting Developersand Ops working together!

..

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)

..

DevOps daysDevOps days

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

..

DevOps is a cultural andprofessional movement

Adam Jacob, OpsCode

..

DevOpsDevOps

CultureAutomationMeasurementSharing

John Willis and Damon Edwards

..

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

• Faster TTM• Reliability• Awareness• Trust

..

> CultureAutomationMeasurementSharing

..

..

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

..

Build one teamBuild one team

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

..

A team with one goal:Helping the business

..

..

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

..

CommunicationCommunication

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

..

Build TrustBuild Trust

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

..

..

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

..

Play togetherPlay together

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

..

Share responsibilitiesShare responsibilities

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

..

Do you let a blind person paintyour home?

..

Definition of DoneDefinition of Done

A software project is NOT doneuntil your last user is dead

Kris Buytaert

..

Culture> AutomationMeasurementSharing

..

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

..

You need to get more confident withyour code

..

Test automationTest automation

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

..

DevOps (<)> Continuous Delivery

..

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

It is NOT a contest!

BUT

..

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

..

Continuous Deliveryor

Continuous Deployment

..

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

..

Continuous DeploymentContinuous Deployment

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

..

..

Pipelines

..

Learning pathLearning path

• Continuous Integration on a Developmentplatform

• Continous Deployment to UAT• Continuous Delivery to Prod

..

PromotionsPromotions

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

..

DeploymentsDeployments

If it hurts, do it more often!

..

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, …

..

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

..

OrchestrationOrchestration

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

..

CultureAutomation

> MeasurementSharing

..

Feedback

..

MetricsMetrics

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

..

Monitor EVERY platformMonitor EVERY platform

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

..

Start with developmentStart with development

..

Then runtimeThen runtime

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

• Middleware▶ queues▶ API calls▶ connections

• Application▶ response time▶ users▶ objects▶ usage

..

Measure everythingMeasure everything

• Deployments• Commits• Tickets• Kanban queues• WIP

..

..

Read metricsRead metrics

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

..

Use metricsUse metrics

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

..

CultureAutomationMeasurement

> Sharing

..

ShareShare

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

..

I have just shared myexperience with you!

..

Conclusion: What DevOps is not…

..

DevOps is NOT about tools

..

DevOps is NOT adding a new team

..

DevOps is NOT a job title

..

DevOps is NOT a methodology

..

You need to make it work for you

..

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

..

Thank youThank you

Any question?

..

ContactContact

Julien Pivottojulien@inuits.eu@roidelapluie

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