bcn devcon jose luis soria - patterns & antipatterns for delivery

59
PATTERNS & ANTIPATTERNS FOR (CONTINUOUS) DELIVERY Jose Luis Soria Teruel [email protected] - @jlsoriat Barcelona, November 9 th 2013

Upload: jose-luis-soria

Post on 11-Jun-2015

472 views

Category:

Technology


0 download

DESCRIPTION

Slides for the session about release management practices at Barcelona Developers Conference 2013

TRANSCRIPT

Page 1: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

PATTERNS & ANTIPATTERNSFOR (CONTINUOUS) DELIVERY

Jose Luis Soria [email protected] - @jlsoriat

Barcelona, November 9th 2013

Page 2: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

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

Principles behind the Agile Manifesto

Page 3: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

How long would it take your organization to deploy a change that involves just one single line of code?

Do you do this on a repeatable, reliable basis?

Mary & Tom PoppendieckImplementing Lean Software Development

Page 4: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Done means "released". This implies ownership of a project right up until it’s in the hands of the user, and working properly. There’s none of this "I’ve checked in my code so it’s done as far as I’m concerned".

James Betteley

Page 5: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Just ship, baby.

Kent Beck, http://www.threeriversinstitute.org/JustShip.html

Page 6: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

SOFTWAREDELIVERYMODELS

Page 7: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

#1: No model, or random delivery.

Page 8: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

#2: Let the operations guys figure out.

Page 9: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

#3: Defined and collaborative approach.

Page 10: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

DELIVERY PATTERNS & PRACTICES

Page 11: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Do you exclude from versioningartifacts like databases, configuration files, binaries, documentation, tools orenvironments?

Page 12: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

That is, do you fail to effectively do thefollowing, for any needed version of theseartifacts?Backup.Get from history.Undo changes.Work with other people.Audit and track changes.Keep stable copies.Etc.

Page 13: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Versioneverything.

Page 14: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Do you manually perform any of these?

Building.Packaging.Deploying.Testing.Environment provisioning.

Page 15: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Or, do you make mistakes because of missingsteps, misunderstandings, boredom, etc.?

Do you waste time that could be employed in building and delivering value?

Do you depend on specific people to get theseactivities done?

Do accidents frequently happen in yourproject?

Page 16: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Automateeverything.

Page 17: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Do you manually copy or changeconfiguration files to match eachtarget environment?

Page 18: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

So, do you need to remember whichconfiguration files must be changed and whatthe changes are?

Do you make mistakes or omissions whendoing these changes?

Are you exposing sensitive information aboutthe environments?

Page 19: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Tokenizeconfigurations.

Page 20: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Do you follow a complexprocedure for deployments, withmultiple steps involved?

Page 21: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

In other words, do you spend a lot of time and effort in each deployment?

Do you avoid testing some versions in someenvironments because deployment is painful?

Page 22: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Use one-click deployments.

Page 23: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

http://bit.ly/HNQJWo

Page 24: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

ARIANNE 5 FLIGHT 501 EXPLOSION

In 1996, the Ariane 5 rocket was reusing software from the Ariane 4. Ariane 5’s faster engines exploited a bug that was not realized before: the software tried to cram a 64-bit number into a 16-bit space. 36.7 seconds into its maiden launch, the self destruct safety mechanism was activated.

http://en.wikipedia.org/wiki/Ariane_5#Notable_launches

Page 25: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

SIBERIAN PIPELINE SABOTAGE

In 1982, CIA introduced a bug into the Soviet gas pipeline system, that passed preliminary inspection but made the system fail when in operation. It led to the largest non-nuclear explosion ever.

http://en.wikipedia.org/wiki/Siberian_pipeline_sabotage

Page 26: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Do you validate your applicationonly in development or testingenvironments?

Page 27: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

That is, do you lack informationabout how your application willbehave in the productionenvironment?

Page 28: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Deploy to a copyof production.

Page 29: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Do you follow differentprocedures for deploying todifferent environments?

Page 30: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

… making your deploymentprocedure is more vulnerable toenvironment-specific issues?

Is that procedure poorly tested?

Page 31: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Deploy the same way to everyenvironment

Page 32: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Do you skip the preparation of rollback mechanisms before a deployment?

Page 33: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Or, if a deployment (or the deployedversion) fails, do you need to figure outhow to get the system running again?

Does that take a lot of time and effort?

Is the business losing lots of money

meanwhile?

Page 34: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Have always a rollbackmechanism in place.

Page 35: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Does anyone in your team makemanual changes to theenvironments?

Page 36: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

…resulting in frequently spoiled orwasted environments?

Do you have to recreate or reconfigure them so often?

Does it happen without even noticing, until it’s too late?

Page 37: Bcn devcon   jose luis soria - patterns & antipatterns for delivery
Page 38: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Lock down

the environments.

Page 39: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Do you build binaries from thesame code several times duringthe release process?

Page 40: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

So, do you ship binaries that have notbeen tested?

Do you waste time and resources

building the same thing again and again?

Do you introduce errors because of

different build sequences?

Page 41: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Buildonlyonce.

Page 42: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Do you fail to gather and analyzing data about yourdelivery process?

Page 43: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Or, do you lack a baseline thatyou can use to supportimprovement actions?

Page 44: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Measure the delivery process.

Page 45: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Do you consistently avoid painfulsteps in your delivery process?

Page 46: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

And are you leaving sensitive stepsfor the last moment?

Do you fail to practice and master critical aspects of the deliverysequence?

Page 47: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

http://bit.ly/70eM6U

Page 48: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Bring the pain forward

Page 49: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Do you lack the support of operations people for definingthe delivery process and artifacts?

Page 50: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

That is, are you not collaboratingwith the people that have someof the key knowledge and control?

Page 51: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

PracticeDevOps!

Page 52: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Do you lack a defined, repeatable, robust and fastdelivery process?

Page 53: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

So, are you failing to delivereffectively?

Page 54: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Build a release pipeline.

Page 55: Bcn devcon   jose luis soria - patterns & antipatterns for delivery
Page 56: Bcn devcon   jose luis soria - patterns & antipatterns for delivery
Page 57: Bcn devcon   jose luis soria - patterns & antipatterns for delivery
Page 58: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

What about your own patterns & practices?

1. Think about some deliverypractice not covered in thesession.

2. Tweet it.

#bdc13 @jlsoriat

3. Benefit!

http://aka.ms/ReleasePipeline

Page 59: Bcn devcon   jose luis soria - patterns & antipatterns for delivery

Thanks!

[email protected]

@jlsoriat

http://geeks.ms/blogs/jlsoria

Get my e-book (for free): http://aka.ms/ReleasePipelineGet the labs: http://aka.ms/ReleasePipeline-HOLGet these slides: http://slidesha.re/1hVyKvt

Any questions?