Top Banner
Real world con,nuous delivery Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Seb Rose
56

Real world continuous delivery

Jan 16, 2017

Download

Technology

Seb Rose
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Real world continuous delivery

Real  world  con,nuous  delivery

Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015

Seb  Rose

Page 2: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Page 3: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

con5nuous  :  -­‐  forming  an  unbroken  whole    -­‐  without  interrup5on  

discrete  :  -­‐  individually  separate  and  dis5nct

Page 4: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

delivery  :  -­‐  the  ac5on  of  delivering  goods    -­‐  the  process  of  giving  birth

Page 5: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

con5nuous  delivery  :  -­‐ a  set  of  prac5ces  and  principles  

aimed  at,  building,  tes5ng,  and  releasing  soBware,  faster  and  more  frequently  

-­‐ this  principle  helps  reduce  the  cost,  5me  and  risk  of  delivering  incremental  changes  to  users.

Page 6: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

con5nuous  integra5on  :  -­‐ a  development  prac5ce  that  

requires  developers  to  integrate  code  into  a  shared  repository  several  5mes  a  day  

-­‐ each  check-­‐in  is  verified  by  an  automated  build,  allowing  teams  to  detect  problems  early

Page 7: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

con5nuous  deployment  :  -­‐ the  next  step  of  con5nuous  

delivery  -­‐ every  change  that  passes  the  

automated  tests  is  deployed  to  produc5on  automa5cally

Page 8: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

audience  calisthenics

Page 9: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Con5nuous  integra5on

h+p://www.jamesshore.com/Blog/Con5nuous-­‐Integra5on-­‐on-­‐a-­‐Dollar-­‐a-­‐Day.html

Page 10: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Automated  deployment

h+p://www.moltecinterna5onal.com/images/robots.jpg

and  rollback!

Page 11: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Artefact  repository

h+p://3.bp.blogspot.com/-­‐BkxV4lCQzDw/U96FMUNIDAI/AAAAAAAAK_s/GMmneXG5FG4/s1600/RoleOfAR.png

Page 12: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Fidelity  vs.  feedback

h+p://3.bp.blogspot.com/-­‐BkxV4lCQzDw/U96FMUNIDAI/AAAAAAAAK_s/GMmneXG5FG4/s1600/RoleOfAR.png

More production-like

Slower feedback

Page 13: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

h+ps://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Devops.svg/2000px-­‐Devops.svg.png

Collabora5on

Page 14: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Conway  slaw  :  -­‐ a  popular  dish  of  shredded  

cause  and  effect  mixed  with  a  dash  of  sociology

Page 15: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Branching

-­‐ Feature  branching  -­‐ GitFlow  -­‐ CoDe:U  Git  Flow  -­‐ Trunk-­‐based  development  -­‐ Release  branching

Page 16: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Branching  strategies

h+p://nvie.com/img/git-­‐[email protected] h+p://www.praqma.com/sites/default/files/img/git_flow_web.pdf

Page 17: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Trunk-­‐based  development

h+p://paulhammant.com/images/mainline_vs_trunk.png

Page 18: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

h+ps://youtu.be/30yN4hefrt0

Branching  strategies

Page 19: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Tes5ng  pyramid

h+p://claysnow.co.uk/architectural-­‐alignment-­‐and-­‐test-­‐induced-­‐design-­‐damage-­‐fallacy/

Page 20: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Acceptance  tes5ng

Page 21: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Smoke  tests

h+p://www.seminolecountyfl.gov/core/fileparse.php/3283/urlt/smoke-­‐20test-­‐20image-­‐20.jpg

Page 22: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Non-­‐func5onal  tests

h+ps://www.cloudave.com/wp-­‐content/uploads/2014/12/Typhoon.jpg

Page 23: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Manual  /  exploratory

Page 24: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Test  data

h+p://discovermagazine.com/~/media/Images/Issues/2013/December/dragon-­‐science.jpg

Page 25: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Monitoring  produc5on

h+p://blogs-­‐images.forbes.com/kashmirhill/files/2014/04/foscam.jpg

Page 26: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

<digression>

Page 27: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Page 28: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Page 29: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Page 30: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.ioh+p://quoteinves5gator.com/2012/04/28/shorter-­‐le+er/

“I  would  have  wri/en  a  shorter  le/er,  but  I  didn’t  

have  the  6me”

Page 31: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

https://estimation.lunarlogic.io/assets/cards-range-8fc41b2e3fd282125f4602a712020204.png

Page 32: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

<digression>

Page 33: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Gradual  implementa5on

Page 34: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Feature  toggles

h+p://ff4j.org/images/console-­‐embedded.png

Page 35: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Branch  by  abstrac5on

h+p://con5nuousdelivery.com/wp-­‐content/uploads/2011/05/branch_by_abstrac5on.png

Page 36: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Databases

h+p://discovermagazine.com/~/media/Images/Issues/2013/December/dragon-­‐science.jpg

Page 37: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Risk  mi5ga5on

-­‐ Blue/green  -­‐ Canary  -­‐ Monitoring

Page 38: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Produc5on  like???

h+p://tommcfarlin.com/wp-­‐content/uploads/2014/04/what-­‐does-­‐it-­‐mean.png

Page 39: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Harmonisa5on

homogeneous  :  -­‐ uniform  in  structure  or  

composi5on  throughout

Page 40: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Virtualisa5on  and  Containers

h+p://www.informa5on-­‐age.com/sites/default/files/styles/ar5cle_landscape/public/field/image/shu+erstock_135831281.jpg?

itok=PArqfHMC

h+p://www.adm-­‐compu5ng.co.uk/wp-­‐content/uploads/2013/06/Virtualisa5on-­‐defined.jpg

Page 41: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Service  virtualisa5on

h+p://servicevirtualiza5on.com/blogs/1-­‐1000/910-­‐Screenshot20130520at10.38.46AM.png

Page 42: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Cost

h+p://i.dailymail.co.uk/i/pix/2009/05/13/ar5cle-­‐1181248-­‐03A99ECD000005DC-­‐78_634x393.jpg

Page 43: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Taming  complexity

h+p://boilingfrogs.info/files/2012/05/complexity.jpg

Page 44: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Loose  coupling

h+ps://infomgmt.files.wordpress.com/2010/02/coupling-­‐sketches-­‐cropped-­‐1.png

Page 45: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Components

h+p://zoszkoworks.com/wp-­‐content/uploads/2015/01/821-­‐electronic-­‐components-­‐1920x1080-­‐photography-­‐wallpaper.jpg

Page 46: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

h+p://www.slideshare.net/StefSmith/wading-­‐through-­‐treacle-­‐escape-­‐the-­‐integra5on-­‐syrup-­‐with-­‐contract-­‐tests

CDCs  in  the  pipeline

Page 47: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

h+p://mar5nfowler.com/ar5cles/ConsumerDrivenContracts.jpg

CDCs  (aka  contract  tests)

Page 48: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Contract/collabora5on

h+p://www.slideshare.net/nitroduna/behaviour-­‐driven-­‐refactoring-­‐or-­‐im-­‐a-­‐programmer-­‐what-­‐the-­‐hell-­‐do-­‐i-­‐have-­‐to-­‐test

Page 49: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

-­‐ teams  own  whole  stack  -­‐ in-­‐house  tools  -­‐ build,  deploy,  monitor

Page 50: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

-­‐ teams  own  whole  stack  -­‐ feature  &  data  toggles  -­‐ con5nuous  deployment  -­‐ pioneering  MDD

h+ps://youtu.be/bZNzu4UxzPU

h+p://agileonthebeach.com/wp-­‐content/uploads/2015/02/Benji-­‐Webber.pdf

Page 51: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

-­‐ using  CDCs  within  pipeline

h+p://www.slideshare.net/StefSmith/wading-­‐through-­‐treacle-­‐escape-­‐the-­‐integra5on-­‐syrup-­‐with-­‐contract-­‐tests

Page 52: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

h+p://agilecambridge.net/2015/sessions/index.php?session=69

A  meta-­‐pipeline  for  genera5ng  con5nuous  delivery  pipelines  for  

micro  services

Page 53: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Page 54: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

http://image.slidesharecdn.com/userstorymappinginpractice-130802183649-phpapp02/95/user-story-mapping-in-practice-15-638.jpg?cb=1382432108

Page 55: Real world continuous delivery

Seb  Rose  Twi+er:     @sebrose  Blog:       www.claysnow.co.uk  E-­‐mail:     [email protected]

Ques5ons?

Page 56: Real world continuous delivery

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

CoDe:U  h+p://www.praqma.com/sites/default/files/img/git_flow_web.pdf