71
Continuous Delivery - The Missing Parts Paul Stack http://twitter.com/stack72 mail: [email protected]

Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

Continuous Delivery - The Missing Parts

Paul Stackhttp://twitter.com/stack72mail: [email protected]

Page 2: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

About Me

Infrastructure Engineer for a cool startup :)

Reformed ASP.NET / C# Developer

DevOps Extremist

Conference Junkie

Page 3: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

Background to this talk

Page 4: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

Continuous Delivery

…. is a set of practices and principles aimed at, building, testing and releasing software faster and more frequently.

Page 5: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

8 principles of Continuous DeliveryThe process for releasing/deploying software MUST be repeatable and reliable.

Automate everything!

If somethings difficult or painful, do it more often.

Keep everything in source control

Done means “released”

Build quality in!

Everybody has responsibility for the release process

Improve continuously

Page 6: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

4 Practices of Continuous Delivery

Build binaries only once

Use precisely the same mechanism to deploy to every environment

Smoke test your deployment

If anything fails, stop the line!

Page 7: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

Has anyone read this book?

Page 8: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

So continuous delivery is now 5 years old?

Page 9: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

Agile Manifesto

“Our highest priority is to satisfy the customer through early and continuous delivery of valuable software"

Page 10: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

Common Misconceptions

Page 11: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

1. Continuous Delivery is something only startups can achieve

Page 12: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

2. Continuous Delivery only works for NodeJS / Ruby / Go developers

Page 13: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

3. We can hire a consultant to help us implement ‘Continuous Delivery’

Page 14: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

4. A good tool will help us implement continuous delivery

Page 15: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

5. Continuous delivery is as simple as hooking github to our Azure account…..

Page 16: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST
Page 17: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

“Until your pretty code is in production, making money, or doing whatever it does, you’ve just wasted your time”

Chris Read @cread #LondonCI

Page 18: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

But haven’t I just contradicted myself?

Page 19: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

The traditional technical side of a company

Developers

QA

SysAdmins

Network

Helpdesk

InfoSec

+ lots more

Page 20: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST
Page 21: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

Aren’t we supposed to be one team?

Page 22: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

“How long would it take your organisation to deploy a change that involved just one single line of code? Do you do this on a repeatable, reliable basis?”

Implementing Lean Software Development Mary Poppendieck

Page 23: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

Value Stream Map

Page 24: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

The Value Stream Map for Ops is worse….

Page 25: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST
Page 26: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

The rise of DevOps…..

Page 27: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST
Page 28: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

October 30 - 31, 2009 Ghent, Belgium

Developers + System Administrators

for 2 days

= DevOpsDays

Page 29: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST
Page 30: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST
Page 31: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST
Page 32: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST
Page 33: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST
Page 34: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

How does DevOps help with this type of thing?

Page 35: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

‘The 3 ways’

• Systems thinking

• Amplify Feedback loops

• Culture of Continual Experimentation and learning

Page 36: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

The first way…

Page 37: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

Understanding Work..

• Business Projects (search, UI improvements)

• Internal Projects (architecture changes)

• Changes (deployments, schema updates)

• Unplanned work (downtime, investigations)

Page 38: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

The second way…

Page 39: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

We found that when we woke developers up at 2am, defects got fixed faster!

-Patrick Lightbody CEO, Browsermob

Page 40: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

The third way…

Page 41: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST
Page 42: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

DevOps is about…

Culture

Automation

Measurement

Sharing

Page 43: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

We are *all* part of the same team!

Page 44: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

Metrics and Automation are key!

Page 45: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

The technical side of the business post-DevOps….

Page 46: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST
Page 47: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

The ops side of Continuous Delivery

Page 48: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

Configuration Management

Page 49: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

Demo of Ansible…

Page 50: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

Immutable Infrastructure

Page 51: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

How can I manage my existing infrastructure with that?

Page 52: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

Logging

Page 53: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST
Page 54: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST
Page 55: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

Metrics

Page 56: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST
Page 57: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

Monitoring

Page 58: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST
Page 59: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

https://github.com/stack72/nagios-elasticsearch

Page 60: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

Orchestration

Page 61: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

Demo…

Page 62: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

Data Center as Code?

Page 63: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST
Page 64: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

Disaster Recovery?

Page 65: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST
Page 66: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

The Continuous Delivery Maturity Model

Page 67: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

http://www.infoq.com/articles/Continuous-Delivery-Maturity-Model

Page 68: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

The Results of Continuous Delivery• High Performing IT Teams are more

Agile! • High Performing IT Teams can recover

faster! • High Performing IT Teams can

experiment more!

Page 69: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

Continuous Delivery means better products for your customers!*

* Customers can be internal or external

Page 70: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

Questions?

Page 71: Continuous Delivery - The Missing Partssddconf.com/brands/sdd/library/CD-MissingParts.pdf · 8 principles of Continuous Delivery The process for releasing/deploying software MUST

Paul Stack @stack72