Slide 1

Slide 1 text

Docker Meetup June 6, 2016 some lessons learned for faster app delivery

Slide 2

Slide 2 text

tom trahan vp, business development [email protected] @tom_trahan how continuous delivery is done

Slide 3

Slide 3 text

a devOps parable Nate gets it running in dev rgm1(1)

Slide 4

Slide 4 text

a devOps parable Nate gets it running in dev rgm1(1)

Slide 5

Slide 5 text

a devOps parable (part2) Angelica gets it running in test rgm2(2)

Slide 6

Slide 6 text

a devOps parable (part2) Angelica gets it running in test rgm2(2)

Slide 7

Slide 7 text

a devOps parable (part3) Bob deploys it to prod rgm3(3)

Slide 8

Slide 8 text

a devOps parable (part3) Bob deploys it to prod rgm3(3)

Slide 9

Slide 9 text

whoever innovates fastest wins

Slide 10

Slide 10 text

question for the room… what parts of DevOps change significantly in a Dockerized world?

Slide 11

Slide 11 text

how long does it take YOU to ship 1 line of code into production?

Slide 12

Slide 12 text

how do you overcome the obstacles? devOps? automation? architecture? culture change?

Slide 13

Slide 13 text

os, lang & infra coupled os & lang coupled n-tier 2000s service oriented 2010s completely decoupled micro services 2020s sw architecture is evolving

Slide 14

Slide 14 text

our problems • higher complexity • bugs harder to find and fix • forced homogeneity • scaling was all or nothing • every change required complete regression testing • continuous deployment nearly impossible

Slide 15

Slide 15 text

microservices to the rescue split your application into smaller services that each perform one business function

Slide 16

Slide 16 text

simplicity each microservice can be maintained independently by a small team

Slide 17

Slide 17 text

independence each microservice can be deployed independently

Slide 18

Slide 18 text

scale each microservice can be scaled up or down as needed

Slide 19

Slide 19 text

scale each microservice can be scaled up or down as needed

Slide 20

Slide 20 text

availability bugs only affect parts of the application and can be fixed quickly

Slide 21

Slide 21 text

heterogeneity team can choose language, technology, tools that are best for the service

Slide 22

Slide 22 text

faster testing only the microservice that changed needs to be tested

Slide 23

Slide 23 text

easier continuous delivery each microservice has its own delivery pipeline ui api db ui api db code continuous integration ui api db api ui api db api ui dev test prod deployment pipelines

Slide 24

Slide 24 text

microservices @ Shippable availability bug life 95% to 99.99% 3 wks to < 3d deployments 1/wk to > 50/wk costs 44K to 4K

Slide 25

Slide 25 text

6 tips to move to microservices • move to a distributed source control system • build new functionality as a microservice • convert existing components gradually • containerize your application • implement CI/CD • invest in monitoring

Slide 26

Slide 26 text

transformation to microservices users

Slide 27

Slide 27 text

transformation to microservices middleware (CRUD + workflows) Accounts Orders UI DB traditional Deliveries Billing Products Inventory users

Slide 28

Slide 28 text

transformation to microservices middleware (CRUD + workflows) Accounts Orders UI DB traditional modern reverse proxy Deliveries Billing Products Inventory users

Slide 29

Slide 29 text

transformation to microservices middleware (CRUD + workflows) Accounts Orders UI DB traditional modern REST API (CRUD) Audit New UI reverse proxy Deliveries Billing Products Inventory message Bus (workflows) Audit users

Slide 30

Slide 30 text

transformation to microservices middleware (CRUD + workflows) Accounts Orders UI DB traditional modern REST API (CRUD) Audit New UI reverse proxy Deliveries Billing Products Inventory message Bus (workflows) Audit Products users

Slide 31

Slide 31 text

transformation to microservices middleware (CRUD + workflows) Accounts Orders UI DB traditional modern REST API (CRUD) Audit New UI reverse proxy Deliveries Billing Products Inventory message Bus (workflows) Audit Products Inventory Inventory users

Slide 32

Slide 32 text

transformation to microservices middleware (CRUD + workflows) Accounts Orders UI DB traditional modern REST API (CRUD) Audit New UI reverse proxy Deliveries Billing Products Inventory message Bus (workflows) Audit Products Inventory Inventory Billing Billing users

Slide 33

Slide 33 text

but, increasing complexity

Slide 34

Slide 34 text

but, increasing complexity rgm1(1) rgm2(2) rgm3(3) rgm4(4) rgm5(5) rgm6(6) rgm7(7) rgm8(8) rgm9(9) rgm10(10)rgm11(11)rgm14(14) rgm13(13)rgm14(14)rgm15(15) rgm16(16)rgm17(17)rgm18(18)

Slide 35

Slide 35 text

dramatically helped with containers and CI/CD pipe 1 pipe 2 pipe 3 pipe 4 pipe 5 pipe 6

Slide 36

Slide 36 text

demo container-based pipelines into Docker Datacenter

Slide 37

Slide 37 text

simplified with mono-repo mono-repo prod dev test pipe 1 pipe 2 pipe 3 pipe 4 pipe 5 pipe 6

Slide 38

Slide 38 text

benefits we’ve seen with mono-repo Better developer testing Reduced code complexity Effective code reviews Sharing of common components Easy refactoring The results? Our productivity has increased at least 5x, while still reaping the benefits of microservices

Slide 39

Slide 39 text

demo mono-repo pipelines into Docker Datacenter

Slide 40

Slide 40 text

BUILD SHIP RUN Shippable enables 
 the real-time, iterative org … Infra & Tools flow + decision to ship? flow + decision to ship! Build Tools Linux/Docker-based Artifacts Hosted Artifacts On-Prem IaaS PaaS CaaS Public IaaS PaaS CaaS Private Build Environments Shippable/Hosted/On-Prem CI/CD SaaS Hybrid/On-Prem

Slide 41

Slide 41 text

join our customers who run more than 100K builds per month try it @ content.shippable.com/portland-meetup

Slide 42

Slide 42 text

thank you ship code faster @ www.shippable.com