continuous delivery med tutum och docker
TRANSCRIPT
![Page 1: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/1.jpg)
Kristoffer [email protected]
Continuous Delivery
med Tutum och Docker
Daniel [email protected]
Code Night #42016-02-11
![Page 3: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/3.jpg)
● Arkitektur och utveckling● .NET och Java● Continuous Delivery och DevOps● Molnbaserade tjänster och miljöer● Verktyg och metoder för att implementera
Continuous Delivery
Vår bakgrund och vad vi gör
![Page 4: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/4.jpg)
● Stegvis förändring mot Continuous Delivery● Helhetslösning, startar igång och följer upp● Hjälper till under hela resan, inte bara en
rapport● Pipelines● Tjänstemockar
Vad vi gör
![Page 5: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/5.jpg)
● Sparar flera tusen timmar per år● Antal fel minskar drastiskt● Tiden att åtgärda ett fel minskar drastiskt
Puppet Labs - State of DevOps 2015
Resultat
![Page 6: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/6.jpg)
● Systemutveckling i ett CD-sammanhang
● Build pipelines● Automatiserad test● Mikrotjänster● Automatisering, scriptning● Molnplattformar med AWS och Azure● REST- och SOAP-tjänster● A och B-testning● Blue-Green och Zero downtime deploy
Vi vill bli fler
![Page 7: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/7.jpg)
Problemet med IT
IT är ett hinder
inte en möjliggörare
![Page 8: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/8.jpg)
IT på 2000-talet?Manuell
- test
- deploy
- verifiering
![Page 9: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/9.jpg)
Utveckling SystemtestAcceptans-test
Prod
Vilken av alla 100 saker är det som går fel...
Krav
Stora releaser varje kvartal
![Page 10: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/10.jpg)
Utveckling SystemtestAcceptans-test
Prod
95% av tiden från krav till prod är väntetid
Krav
Överlämningar krav - utv - test - prod
![Page 11: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/11.jpg)
Utveckling SystemtestAcceptans-test
Prod
Hur var det nu det skulle fungera?
Krav
Feedback kommer för sent
![Page 12: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/12.jpg)
● Paketerar applikationer i containers
● Baserat på Linux LXC● En container körs som process i
hosten● Copy-on-write filsystem● Docker image
Vad är Docker?
https://www.docker.com/products/docker-toolbox$ docker run -it --rm ubuntu bash
![Page 13: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/13.jpg)
DockerfileFROM java:8-jreCOPY target/myapp.jar /EXPOSE 8080CMD java -jar /myapp.jar
https://www.docker.com/products/docker-toolbox$ docker run -it --rm ubuntu bash
![Page 14: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/14.jpg)
● Repeterbara deployments i produktion● Applikationer med konfliktande
beroenden● Isolation av applikationer● Distribuerad hantering av virtuella
miljöer (repo)● Låg overhead
Problem som Docker löser
https://www.docker.com/products/docker-toolbox$ docker run -it --rm ubuntu bash
![Page 15: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/15.jpg)
”Docker is the
Most Disruptive Technology
For Software Development in the Last Decade”
Compared with Cloud computing, Hadoop, and NoSQL … in terms of long-term effect on the software industry, these technologies are
miles behindhttps://www.docker.com/products/docker-toolbox$ docker run -it --rm ubuntu bash
![Page 16: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/16.jpg)
appapp
Utveckling Drift
Virtualiserad miljö
app app
Körmiljö för containers
Containers vs Virtualisering
![Page 17: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/17.jpg)
Hur det började
![Page 18: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/18.jpg)
Webbsajt:http://welcomeapp.se
Webapp:https://app.welcomeapp.se
Server API:https://api.welcomeapp.se
![Page 19: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/19.jpg)
![Page 20: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/20.jpg)
Antal användare100 000Antal operationer per användare 10Tid timmar 4Operationer per sekund snitt 69Belastningstopp faktor 10Operationer per sekund, peak 694
Lastberäkning
![Page 21: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/21.jpg)
● Installera testmiljö och produktionsmiljö● Installera Build Pipeline● DNS och certifikat● Wireframes● Infomodell● Utveckla frontend-applikation● Utveckla server-applikation● Chat med websockets/RabbitMQ● App Store och Google Play
Det blev mycket att göra
![Page 22: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/22.jpg)
Infomodell
![Page 23: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/23.jpg)
Pipeline
prod
GoogleAnalytics
Logging
Dashboardoperation status
uattest
DNS
coderepo
Alarms
DashboardKPIs
Backup S3
![Page 24: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/24.jpg)
Welcome! Frontend application
load balancer
cluster
web server 1
web server 2
Web browser
web app
![Page 25: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/25.jpg)
Welcome! Backend server
load balancer
cluster
server1
server3
server2
server4
MongoDBweb browser
web app
RabbitMQ
![Page 26: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/26.jpg)
Frontend:https://app.welcomeapp.se
Backend:https://api.welcomeapp.se
Loggar:https://papertrailapp.com/systems/WelcomeApiAutolarge/events
Welcome! Demo
![Page 27: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/27.jpg)
Test-, driftmiljöer och pipeline
Dockerhost
Jenkins
RabbitMQMongoDBdata
MongoDB
api server app web server
www web server
deploy
Alt. 1a
![Page 28: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/28.jpg)
Dockerhost
Test-, driftmiljöer och pipeline
Jenkins
RabbitMQMongoDBdata
MongoDB
api server app web server
www web server
deploy
Alt. 1a
![Page 29: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/29.jpg)
Dockerhost
Test-, driftmiljöer och pipeline
Jenkins
www stack
app stack
api stack
deploy
docker-compose
Alt. 1b
![Page 30: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/30.jpg)
mongo: image: mongo
rabbitmq: image: 'tutum.co/@tutumuser@/rabbitmq:latest'
server: build: api links: - mongo:mongo - rabbitmq:rabbitmq environment: - SE_CAGLABS_WELCOME_SERVER_ENVIRONMENT=test ports: - "8080:8080"
docker-compose.yml
![Page 31: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/31.jpg)
DockerhostDockerhost
Dockerhost
Test-, driftmiljöer och pipeline
Dockerhost
Jenkins docker container
deploy
Docker swarmAlt. 1c
![Page 32: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/32.jpg)
Heroku
Alt. 2
![Page 33: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/33.jpg)
Tutum Alt. 3
![Page 34: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/34.jpg)
TutumÄr en plattform där du kan
bygga,
deploya
och hantera containers
samt dess infrastruktur
![Page 35: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/35.jpg)
TutumSkapa noder och gruppera dem i
kluster
![Page 36: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/36.jpg)
TutumSkapa containers och gruppera dem i
stackar
![Page 37: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/37.jpg)
TutumMolnbaserad miljö, enkelt snabbt och
smidigt
![Page 38: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/38.jpg)
TutumWebbaserat, men har REST api
![Page 39: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/39.jpg)
Demo
![Page 40: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/40.jpg)
Pipeline med Jenkins
produattest
kod-repo
Utvecklar-dator
![Page 41: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/41.jpg)
Pipeline med Jenkins
![Page 42: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/42.jpg)
![Page 43: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/43.jpg)
Pipeline med Jenkins
produattest
kod-repo
Artifaktrepo
app build 42
![Page 44: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/44.jpg)
Pipeline med GoCD
produattest
kod-repo
Artifaktrepo
app build 42
![Page 45: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/45.jpg)
Pipeline med GoCD
Stort tack och mycket cred till Mikael Sennerholm (Avega) för pipelinesetup med GoCD till Tutum
![Page 46: Continuous Delivery med Tutum och Docker](https://reader036.vdocuments.net/reader036/viewer/2022062316/58a895a41a28ab68208b5d51/html5/thumbnails/46.jpg)
● Demo systemproduktionslina● Demo automatisk test● Demo lasttestning med loader.io● Skala upp service, ny nod● Skala upp service, lastbalansering