SlideShare a Scribd company logo
Kristoffer Vidmo
kristoffer.vidmo@cag.se
Continuous Delivery
med
Tutum och Docker
Daniel Marell
daniel.marell@cag.se
Code Night #4
2016-02-11
Joina Slacken
https://cagdemo.slack.com
Ta del av användbara länkar
● 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
● 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
● 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
● Systemutveckling i ett CD-sammanhang
● Build pipelines
● Automatiserad test
● Mikrotjänster
● Automatisering, scriptning
● Molnplattformar med AWS och Azure
Vi vill bli fler
Problemet med IT
IT är ett hinder
inte en
möjliggörare
IT på 2000-talet?
Manuell
- test
- deploy
- verifiering
Utveckling Systemtest
Acceptans-
test
Prod
Vilken av alla 100 saker är det som går fel...
Krav
Stora releaser varje kvartal
Utveckling Systemtest
Acceptans-
test
Prod
95% av tiden från krav till prod är väntetid
Krav
Överlämningar krav - utv - test - prod
Utveckling Systemtest
Acceptans-
test
Prod
Hur var det nu det skulle fungera?
Krav
Feedback kommer för sent
● 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
Dockerfile
FROM java:8-jre
COPY target/myapp.jar /
EXPOSE 8080
CMD java -jar /myapp.jar
https://www.docker.com/products/docker-toolbox
$ docker run -it --rm ubuntu bash
● 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
”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 behind
https://www.docker.com/products/docker-toolbox
$ docker run -it --rm ubuntu bash
appapp
Utveckling Drift
Virtualiserad miljö
app app
Körmiljö för containers
Containers vs Virtualisering
Hur det började
Webbsajt:
http://welcomeapp.se
Webapp:
https://app.welcomeapp.se
Server API:
https://api.welcomeapp.se
Antal användare
100 000
Antal operationer per användare 10
Tid timmar 4
Operationer per sekund snitt 69
Belastningstopp faktor 10
Operationer per sekund, peak 694
Lastberäkning
● 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
Infomodell
Pipeline
prod
Google
Analytics
Logging
Dashboard
operation
status
uattest
DNS
code
repo
Alarms
Dashboard
KPIs
Backup S3
Welcome! Frontend application
load
balancer
cluster
web
server 1
web
server 2
Web browser
web app
Welcome! Backend server
load
balancer
cluster
server1
server3
server2
server4
MongoDB
web browser
web app
RabbitMQ
Frontend:
https://app.welcomeapp.se
Backend:
https://api.welcomeapp.se
Loggar:
https://papertrailapp.com/systems/WelcomeApiAutolarge/events
Welcome! Demo
Test-, driftmiljöer och pipeline
Dockerhost
Jenkins
RabbitMQMongoDB
data
MongoDB
api server app web
server
www web
server
deploy
Alt. 1a
Dockerhost
Test-, driftmiljöer och pipeline
Jenkins
RabbitMQMongoDB
data
MongoDB
api server app web
server
www web
server
deploy
Alt. 1a
Dockerhost
Test-, driftmiljöer och pipeline
Jenkins
www stack
app stack
api stack
deploy
docker-compose
Alt. 1b
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
Dockerhost
Dockerhost
Dockerhost
Test-, driftmiljöer och pipeline
Dockerhost
Jenkins docker
container
deploy
Docker swarmAlt. 1c
Heroku
Alt. 2
Tutum Alt. 3
Tutum
Är en plattform där du kan
bygga,
deploya
och hantera containers
samt dess infrastruktur
Tutum
Skapa noder och gruppera dem i kluster
Tutum
Skapa containers och gruppera dem i stackar
Tutum
Molnbaserad miljö, enkelt snabbt och smidigt
Tutum
Webbaserat, men har REST api
Demo
Pipeline med Jenkins
produattest
kod-
repo
Utvecklar-
dator
Pipeline med Jenkins
Pipeline med Jenkins
produattest
kod-
repo
Artifaktrepo
app build 42
Pipeline med GoCD
produattest
kod-
repo
Artifaktrepo
app build 42
Pipeline med GoCD
Stort tack och mycket cred till Mikael Sennerholm
(Avega) för pipelinesetup med GoCD till Tutum
● Demo systemproduktionslina
● Demo automatisk test
● Demo lasttestning med loader.io
● Skala upp service, ny nod
● Skala upp service, lastbalansering

More Related Content

Similar to Continuous Delivery med Tutum och Docker

Web Production Automation WordCamp 2014
Web Production Automation WordCamp 2014Web Production Automation WordCamp 2014
Web Production Automation WordCamp 2014
flowcom
 
Cloud Computing - Mycket mer än IT
Cloud Computing - Mycket mer än ITCloud Computing - Mycket mer än IT
Cloud Computing - Mycket mer än IT
Björn Lilja
 
Solidify continuous delivery 2014
Solidify   continuous delivery 2014Solidify   continuous delivery 2014
Solidify continuous delivery 2014
Solidify
 
TFS 2013 Deep-Dive på LabCenter 2014-02-06
TFS 2013 Deep-Dive på LabCenter 2014-02-06TFS 2013 Deep-Dive på LabCenter 2014-02-06
TFS 2013 Deep-Dive på LabCenter 2014-02-06
Solidify
 
Välj rätt i teknikdjungeln
Välj rätt i teknikdjungeln Välj rätt i teknikdjungeln
Välj rätt i teknikdjungeln
Creuna Sverige
 
Välj rätt i teknikdjungeln - Del 1: CMS och webbramverk
Välj rätt i teknikdjungeln - Del 1: CMS och webbramverkVälj rätt i teknikdjungeln - Del 1: CMS och webbramverk
Välj rätt i teknikdjungeln - Del 1: CMS och webbramverk
Creuna Sverige
 
Vad är webb för oss?
Vad är webb för oss?Vad är webb för oss?
Vad är webb för oss?
Andreas Ek
 
Win10 summer dev camp
Win10 summer dev campWin10 summer dev camp
Win10 summer dev camp
Jimmy Engström
 
Molntjänster som it superhjältar
Molntjänster som it superhjältarMolntjänster som it superhjältar
Molntjänster som it superhjältar
Per Åström
 
Queens Lab Företagspresentation 2019-03-20
Queens Lab Företagspresentation 2019-03-20Queens Lab Företagspresentation 2019-03-20
Queens Lab Företagspresentation 2019-03-20
Jens östgaard
 
Vad är webb
Vad är webbVad är webb
Vad är webb
Andreas Ek
 
Seminarie citizenintegrator
Seminarie citizenintegratorSeminarie citizenintegrator
Seminarie citizenintegrator
Jeanette Öhlund
 
Varje resa börjar med ett litet steg (internetdagarna 2011)
Varje resa börjar med ett litet steg (internetdagarna 2011)Varje resa börjar med ett litet steg (internetdagarna 2011)
Varje resa börjar med ett litet steg (internetdagarna 2011)
Per Åström
 
Metodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testningMetodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testning
Johan Holmberg
 
CV Johan Kempe Details
CV Johan Kempe DetailsCV Johan Kempe Details
CV Johan Kempe DetailsJohan Kempe
 
Molnet och-big data-ake-edlund
Molnet och-big data-ake-edlundMolnet och-big data-ake-edlund
Molnet och-big data-ake-edlund
Ake Edlund
 
Docker i produktion på NyA
Docker i produktion på NyADocker i produktion på NyA
Docker i produktion på NyA
Jonananas
 
Molntjänster för effektiva processer samt feldetektion av processensorer för ...
Molntjänster för effektiva processer samt feldetektion av processensorer för ...Molntjänster för effektiva processer samt feldetektion av processensorer för ...
Molntjänster för effektiva processer samt feldetektion av processensorer för ...
Anders Björk
 
Molnet och BigData för AzlanNet
Molnet och BigData för AzlanNet Molnet och BigData för AzlanNet
Molnet och BigData för AzlanNet
Ake Edlund
 
Mobil web
Mobil webMobil web
Mobil web
Ola Berg
 

Similar to Continuous Delivery med Tutum och Docker (20)

Web Production Automation WordCamp 2014
Web Production Automation WordCamp 2014Web Production Automation WordCamp 2014
Web Production Automation WordCamp 2014
 
Cloud Computing - Mycket mer än IT
Cloud Computing - Mycket mer än ITCloud Computing - Mycket mer än IT
Cloud Computing - Mycket mer än IT
 
Solidify continuous delivery 2014
Solidify   continuous delivery 2014Solidify   continuous delivery 2014
Solidify continuous delivery 2014
 
TFS 2013 Deep-Dive på LabCenter 2014-02-06
TFS 2013 Deep-Dive på LabCenter 2014-02-06TFS 2013 Deep-Dive på LabCenter 2014-02-06
TFS 2013 Deep-Dive på LabCenter 2014-02-06
 
Välj rätt i teknikdjungeln
Välj rätt i teknikdjungeln Välj rätt i teknikdjungeln
Välj rätt i teknikdjungeln
 
Välj rätt i teknikdjungeln - Del 1: CMS och webbramverk
Välj rätt i teknikdjungeln - Del 1: CMS och webbramverkVälj rätt i teknikdjungeln - Del 1: CMS och webbramverk
Välj rätt i teknikdjungeln - Del 1: CMS och webbramverk
 
Vad är webb för oss?
Vad är webb för oss?Vad är webb för oss?
Vad är webb för oss?
 
Win10 summer dev camp
Win10 summer dev campWin10 summer dev camp
Win10 summer dev camp
 
Molntjänster som it superhjältar
Molntjänster som it superhjältarMolntjänster som it superhjältar
Molntjänster som it superhjältar
 
Queens Lab Företagspresentation 2019-03-20
Queens Lab Företagspresentation 2019-03-20Queens Lab Företagspresentation 2019-03-20
Queens Lab Företagspresentation 2019-03-20
 
Vad är webb
Vad är webbVad är webb
Vad är webb
 
Seminarie citizenintegrator
Seminarie citizenintegratorSeminarie citizenintegrator
Seminarie citizenintegrator
 
Varje resa börjar med ett litet steg (internetdagarna 2011)
Varje resa börjar med ett litet steg (internetdagarna 2011)Varje resa börjar med ett litet steg (internetdagarna 2011)
Varje resa börjar med ett litet steg (internetdagarna 2011)
 
Metodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testningMetodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testning
 
CV Johan Kempe Details
CV Johan Kempe DetailsCV Johan Kempe Details
CV Johan Kempe Details
 
Molnet och-big data-ake-edlund
Molnet och-big data-ake-edlundMolnet och-big data-ake-edlund
Molnet och-big data-ake-edlund
 
Docker i produktion på NyA
Docker i produktion på NyADocker i produktion på NyA
Docker i produktion på NyA
 
Molntjänster för effektiva processer samt feldetektion av processensorer för ...
Molntjänster för effektiva processer samt feldetektion av processensorer för ...Molntjänster för effektiva processer samt feldetektion av processensorer för ...
Molntjänster för effektiva processer samt feldetektion av processensorer för ...
 
Molnet och BigData för AzlanNet
Molnet och BigData för AzlanNet Molnet och BigData för AzlanNet
Molnet och BigData för AzlanNet
 
Mobil web
Mobil webMobil web
Mobil web
 

Continuous Delivery med Tutum och Docker