real world continuous delivery

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

Upload: seb-rose

Post on 16-Jan-2017

1.310 views

Category:

Technology


0 download

TRANSCRIPT

Real  world  con,nuous  delivery

Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015

Seb  Rose

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

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

discrete  :  -­‐  individually  separate  and  dis5nct

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

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

@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.

@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

@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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

audience  calisthenics

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Con5nuous  integra5on

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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Automated  deployment

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

and  rollback!

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Artefact  repository

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

@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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

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

Collabora5on

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Conway  slaw  :  -­‐ a  popular  dish  of  shredded  

cause  and  effect  mixed  with  a  dash  of  sociology

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Branching

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

@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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Trunk-­‐based  development

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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

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

Branching  strategies

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Tes5ng  pyramid

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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Acceptance  tes5ng

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Smoke  tests

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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Non-­‐func5onal  tests

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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Manual  /  exploratory

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Test  data

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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Monitoring  produc5on

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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

<digression>

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

<digression>

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Gradual  implementa5on

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Feature  toggles

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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Branch  by  abstrac5on

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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Databases

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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Risk  mi5ga5on

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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Produc5on  like???

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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Harmonisa5on

homogeneous  :  -­‐ uniform  in  structure  or  

composi5on  throughout

@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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Service  virtualisa5on

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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Cost

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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Taming  complexity

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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Loose  coupling

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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

Components

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

@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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

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

CDCs  (aka  contract  tests)

@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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

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

@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

@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

@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

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

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

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

Ques5ons?

@sebrose                                                                                                                                                                                                              h+p://cucumber.io

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