2014-10 devops nfi - why it's a good idea to deploy 10 times per day v1.0

47
Why it’s a good idea to deploy 10 times per day 2014-10-08 Joakim Lindbom Principal | Enterprise Architect

Upload: joakim-lindbom

Post on 26-Jan-2015

111 views

Category:

Software


1 download

DESCRIPTION

Corporations are struggling with overly complex systems and system landscapes. DevOps is presented as one piece of the puzzle to go for much leaner and simpler landscapes - all in order to increase the readiness for change and innovation. The presentation also discusses the the basic thought error behind organising according to Design-Build-Run, which is the basis for most ICT IM outsourcing.

TRANSCRIPT

Page 1: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Why it’s a good idea to deploy 10 times per day

2014-10-08

Joakim Lindbom

Principal | Enterprise Architect

Page 2: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
Page 3: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Now, what’s this?

Page 4: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Speed Kills!

Page 5: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

20012002

20032004

20052006

20072008

20092010

20112012

20132014

20152016

0

10

20

30

40

50

60

70

80

90

100

Best & BeautifulA IncB IncC Inc

Lack of speed kills!

Page 6: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
Page 7: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Zero-Day foreverYour time to react on errors will approach ZERO

Will become reality with the growing mobile market and IoT.

Page 8: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Zero-Day foreverYour time to react on errors will approach ZERO

Will become reality with the growing mobile market and IoT.

Page 9: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

The amount of caos increases

by itself

Termodynamics

Second main law

Page 10: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Design-Build-Run

Page 11: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Reqs

Specify system

Build SWDesign system

Write code

Build system

Install system

TestReqs

TestSpecs

Integr. test

Test design

Unit test

System test

UAT

Design-Build-Run approachA bit too waterfallish

Ops get involved

Add re

qs

Page 12: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

http://www.capgemini.com/resources/world-quality-report-2013-14

Page 13: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

https://www.worldqualityreport.com

Page 14: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Cloud = access to abundance

Page 15: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

You can have as many development, test & staging environments as you like!

But you cannot handle this manually!

Cloud = access to abundance

Page 16: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Big IT Slow IT(not slow as in slow food….)

Page 17: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

CEO/ President/ Managing Director

C-Level executives and board members

Managers Staff

3% 2% 3% 3%

12%10% 8% 8%

39%

33%

25%22%

36%42% 43%

46%

12%15%

22% 23%

Very Fast Fast About right Slow Very Slow

How slow is slow?OFF THE PACEThe pace of digital transformation is too slow – unless you’re the CEO.

Who are these guys?!?

MIT Center for Digital Business and Capgemini Consulting

Page 18: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

IT Legacy is #1 obstacle for innovation

Major corporations depend on core systems that- Are 15-20 years old- 3-4 persons know- Some staff is retired, some will be it within 4-5 years- Technology support is slow- Are somewhat documented- Have few formal test cases, but the staff know how to

test

Application LandscapeReport 2014

Page 19: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

IT Legacy is #1 obstacle for innovation

Major corporations depend on core systems that- Are 25-45 years old- 1-2 persons know- All staff are retired, or will be it within 2-3 years- Technology support is gone- Are undocumented- Have no/few formal test cases

Application LandscapeReport 2014

Page 20: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

The ability to innovate

is strictly coupled with

the ability to fail fast

Page 21: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Nine observations on IT Complexity1. Most IT systems are too complex.2. "Best Practices" increase complexity.3. Complex systems cost more to build.4. Complex systems are harder to deliver.5. Complex systems are less secure.6. Complex systems are less reliable.7. Complex systems are less agile.8. Complex systems cost more to run.

And

9. Existing management approaches ignore complexity.

Page 22: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

But what is Simple-IT, then?1. Non complex2. Small building blocks3. Autonomous4. They “know nothing”5. Service based6. Dynamic7. Like lego bricks8. Exposes an OpenAPI10. Joint development and operations

Knowing nothing?Image: Daily Mail

Page 23: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

But what is Simple-IT, then?

SimplifiedModularisedOptimisedHardened

Page 24: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

DevOps is about increasing your responsiveness to customers

Page 25: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Devs New features, fast!

Ops Uptime, uptime & uptime

Page 26: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Devs Uptime

Ops New features, fast!

But whatif…

Page 27: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

…should it be one joint team per system/service?

Or….

Page 28: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Autonomous system?

Totally separate partsSeparate lifecycle!

Loose coupling paw rihk-titt

Page 29: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

System

Stuff Data

Autonomous system?

We used to look at it from a technical boundaries perspective

Page 30: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

System

Stuff Data

DevArchitect Test

Autonomous system?

But in order to ensure agility, we need to include the people in the system definition

Ops

Page 31: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

System

Stuff Data

OpenAPI

Autonomous system?

OpenAPI mindset = not a solution design for a specific purpose/project. Open for Innovation

DevArchitect TestOps

Open Data Lake

Page 32: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

~Autonomous system?

Release = just a mountain to climb…

Page 33: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Basics, get things in orderAd-hoc deployment

Structured & planned releases

Major event

Major RISKMajor hurdle

Page 34: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Climbing a Release-mountain, how many people experience it…

Page 35: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Industrialisation of ITIT development more and more viewed as "manufacturing"

Square boxes, repeat over and over

IT is innovationMistake!

Page 36: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

How good is good?

Compileable?No warnings?Runnable?Passing tests?Not breaking anything else?

When your developers check in code, how good does it need to be?

Page 37: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Deploy 10 time per dayHow will that help you?

Page 38: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Deploy oftenShorten feedback-loopBring back passion – show visible result earlyAllow (small) failuresAllow experimentationFollow Moore’s lawLearn by doing

But you don’t need to deploy to production 10 times per day…

Page 39: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Deploy oftenBasis for Continuous Improvement

Slow break-down into µServices

Gradual transition towards smaller building blocks

Page 40: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Continous improvement

Continuous rebuilding

Always. Even if “not needed”

Page 41: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Example

Page 42: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Build chain

Does it compile

?

Unit tests OK?

SW quality metrics

Build Deploy

trunc

Check-in

Auto

Test

Page 43: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Build chain

Does it compile

?

Unit tests OK?

SW quality metrics

Build Deploy

trunc

Check-in

Manual

Production

Dev-test

Page 44: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

ToolsHudson/Jenkins/Ant – base automation

Phing – PHP specific manipulation tool

SonarQube – Software quality, general

PHPUnit + LoC, Copy/Paste Detector, Mess Detector, et all

https://github.com/sebastianbergmannhttp://www.sonarqube.org/

Page 45: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Summing upLack of speed kills

DevOps – increase responsiveness

Simplify, make smaller & rebuild – to fight complexity

Automate to avoid simple misstakes!

Page 46: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Contact

JoakimLindbomPrincipal | Enterprise Architect

[email protected]

08-5368 39340708-166404

twitter: JoakimLindbom

http://www.slideshare.net/JoakimLindbomhttp://www.linkedin.com/in/joakimlindbom

Page 47: 2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0

Image sources, marked as OK to use commercially

https://upload.wikimedia.org/wikipedia/commons/8/8b/Buck_Mountain_Grand_Teton_NP1.jpghttps://upload.wikimedia.org/wikipedia/commons/d/de/Eisklettern_kl_engstligenfall.jpghttps://c1.staticflickr.com/1/1/1118807_a751d65ba5_z.jpg?zz=1https://upload.wikimedia.org/wikipedia/commons/4/4f/Eternal_clock.jpghttps://c1.staticflickr.com/9/8062/8189938256_2a683d2334_z.jpghttps://upload.wikimedia.org/wikipedia/commons/8/85/Git_branches_example.pnghttps://upload.wikimedia.org/wikipedia/commons/9/99/Highway_at_night_slow_shutter_speed_photography_02.jpghttps://c2.staticflickr.com/6/5058/5490790304_dc3d7c2b91_z.jpghttp://www.dailymail.co.uk/tvshowbiz/article-1176568/Andrew-Sachs-thanks-Jonathan-Ross-Russell-Brand-boosting-career.html https://upload.wikimedia.org/wikipedia/commons/8/8b/CERN_Server.jpg