SlideShare a Scribd company logo
Paul	Bonaud
@paulrb_r
Maxime	Visonneau
@mvisonneau
A	
A	
A	SMOOTH
SMOOTH
SMOOTH	MIGRATION	TO
	MIGRATION	TO
	MIGRATION	TO
DOCKER
DOCKER
DOCKER	FOCUSING	ON
	FOCUSING	ON
	FOCUSING	ON
BUILD	PIPELINES
BUILD	PIPELINES
BUILD	PIPELINES
↓
↓
Paul	Bonaud	
⌨	+	⚙	+	 	
▶	Infra	&	Ops	Engineer	
⏸	Software	Developer	
Maxime	Visonneau	
⌨	+	 	+	 	
Infrastructure	Engineer
Meet	Maurice
Meet	Maurice
Meet	Maurice
Meet	Maurice
Meet	Maurice
Meet	Maurice
aka	
aka	
aka	build2
build2
build2
Manually	administrated
Building	all	projects
Android,	JS	(Ember),	C++,	Ruby
Deploying	everything
Nginx,	apps,	infrastructure
Single	architecture	(Debian	7)
New	era
New	era
New	era
Docker
Docker
Docker
Open	Source	❤
Isolated
Immutable
Stateless
Version	controlled
	Dockerfile
Dockerfile
FROM	ruby:2.4-jessie
Dockerfile
RUN	apt-get	update
RUN	apt-get	-y	install	libpq-dev	ghostscript
Dockerfile
RUN	apt-get	update	&&	
				apt-get	-y	install	libpq-dev	ghostscript	&&	
				rm	-rf	/var/lib/apt/lists/*
Dockerfile
WORKDIR	/opt/app
COPY	Gemfile	Gemfile.lock	/opt/app
RUN		bundle	install
Dockerfile
VOLUME	/opt/app
CMD	[	"make",	"run"	]
Dockerfile
FROM	ruby:2.4-jessie
RUN	apt-get	update	&&	
				apt-get	-y	install	libpq-dev	ghostscript	&&	
				rm	-rf	/var/lib/apt/lists/*
WORKDIR	/opt/app
COPY	Gemfile	Gemfile.lock	/opt/app
RUN		bundle	install
VOLUME	/opt/app
CMD	[	"make",	"run"	]
GitLab
GitLab
GitLab
Open	Source	❤
Integrated	Docker	registry!
registry.gitlab.com
Gitlab-CI
Gitlab-CI
Gitlab-CI
Open	Source	❤
Declarative
Integrated
Version	controlled
	.gitlab-ci.yml
.gitlab-ci.yml
stages:
		-	build
		-	test
		-	package
		-	deploy
.gitlab-ci.yml
variables:
		IMAGE:	${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA}
		LATEST_IMAGE:	${CI_REGISTRY}/${CI_PROJECT_PATH}:latest
.gitlab-ci.yml
build:docker:
		stage:	build
.gitlab-ci.yml
		tags:	[	privileged	]
		image:	"docker:latest"
.gitlab-ci.yml
		before_script:
				-	docker	login	-u	gitlab-ci-token
																	 	-p	${CI_JOB_TOKEN}	${CI_REGISTRY}
		script:
				-	docker	pull	${LATEST_IMAGE}	||	true
				-	docker	build	--cache-from	${LATEST_IMAGE}
																	 	-t	${IMAGE}	-t	${LATEST_IMAGE}	.
				-	docker	push	${IMAGE}
				-	docker	push	${LATEST_IMAGE}
.gitlab-ci.yml
image:	${IMAGE}
.gitlab-ci.yml
test:
		stage:	test
		script:
				-	make	test
.gitlab-ci.yml
package:
		stage:	package
		script:
				-	make	package	>	release.tar.gz
		artifacts:
				paths:	[	release.tar.gz	]
.gitlab-ci.yml
deploy:integration:
		stage:	deploy
		image:	${CI_REGISTRY}/infra/ansible:latest
		variables:
				ENV:	integration
		script:
				-	make	deploy	file=release.tar.gz	env=${ENV}
.gitlab-ci.yml
deploy:integration:	&deploy
		stage:	deploy
		image:	${CI_REGISTRY}/infra/ansible:latest
		variables:
				ENV:	integration
		script:
				-	make	deploy	file=release.tar.gz	env=${ENV}
deploy:production:
		<<:	*deploy
		when:	manual
		variables:
				ENV:	production
WHAT	ABOUT	EASY	
WHAT	ABOUT	EASY	
WHAT	ABOUT	EASY	OS
OS
OS	TESTING	AND	UPGRADES?!
	TESTING	AND	UPGRADES?!
	TESTING	AND	UPGRADES?!
Dockerfile
FROM	ruby:2.4-jessie
Dockerfile
FROM	ruby:2.4-stretch
.gitlab-ci.yml
variables:
		IMAGE:	${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA}
#	(...)
.gitlab-ci.yml
variables:
		IMAGE:	${CI_REGISTRY_IMAGE}:${OS}_${CI_COMMIT_SHA}
#	(...)
.gitlab-ci.yml
variables:
		IMAGE:	${CI_REGISTRY_IMAGE}:${OS}_${CI_COMMIT_SHA}
#	(...)
test:jessie:
		stage:	test
		variables:
				OS:	jessie
		script:
				-	make	test
.gitlab-ci.yml
variables:
		IMAGE:	${CI_REGISTRY_IMAGE}:${OS}_${CI_COMMIT_SHA}
#	(...)
test:jessie:	&test
		stage:	test
		variables:
				OS:	jessie
		script:
				-	make	test
test:stretch:
		<<:	*test
		variables:
				OS:	stretch
.gitlab-ci.yml
package:jessie:	&package
		stage:	package
		variables:
				OS:	jessie
		script:
				-	make	package	>	release-${OS}.tar.gz
		artifacts:
				paths:	[	release-${OS}.tar.gz	]
package:stretch:
		<<:	*package
		variables:
				OS:	stretch
.gitlab-ci.yml
deploy:integration:	&deploy
		stage:	deploy
		image:	${CI_REGISTRY}/infra/ansible:latest
		variables:
				OS:	stretch
				ENV:	integration
		script:
				-	make	deploy	file=release-${OS}.tar.gz	env=${ENV}
deploy:production:
		<<:	*deploy
		when:	manual
		variables:
				OS:	jessie
				ENV:	production
Runners
Runners
Runners
Different	Executors	/	Multiple	OSes
Shell
Docker
VirtualBox
Parallels
SSH
Kubernetes
Linux
Windows
Mac	OS	X
FreeBSD
Different	Executors	/	Multiple	OSes
Shell
Docker
VirtualBox
Parallels
SSH
Kubernetes
Linux
Windows
Mac	OS	X
FreeBSD
Portable
Light	system	dependencies
Easily	configurable	and	maintainable
---
classes:
		-	docker
		-	gitlab::ci
gitlab::ci::runners:
		"%{::fqdn}_docker":
				executor:	docker
				docker-image:	docker:latest
---
classes:
		-	docker
		-	gitlab::ci
gitlab::ci::runners:
		"%{::fqdn}_docker":
				executor:	docker
				docker-image:	docker:latest
				docker-volumes:	"/var/run/docker.sock:/var/run/docker.sock"
				docker-privileged:	true
AWS
AWS
AWS
Terraform
Terraform
Terraform
Open	Source	❤
terraform.tf
resource	"aws_instance"	"gitlab_runner"	{
		count									=	10
		ami											=	"ami-6b2cd712"
		instance_type	=	"m4.large"
		[..]
}
MISSINGDEP
MISSINGDEP
MISSINGDEP
Who	had	any	clue	this	system	library	was	required?
MISSINGDEP
MISSINGDEP
MISSINGDEP
Update	Dockerfiles	with	missing	dependencies
ENOSPC
ENOSPC
ENOSPC
No	space	left	on	device
ENOSPC
ENOSPC
ENOSPC
Increase	space	/	Automate	cleanup	of	old	containers	and
images
UNAUTH_DEPLOY
UNAUTH_DEPLOY
UNAUTH_DEPLOY
Where	are	my	SSH	keys	for	Ansible?
UNAUTH_DEPLOY
UNAUTH_DEPLOY
UNAUTH_DEPLOY
Enhance	security	by	creating	individual	keys	per
project/env
SHM_OOM
SHM_OOM
SHM_OOM
Less	than	64MB	of	free	space	in	temporary	directory	for
shared	memory	files
SHM_OOM
SHM_OOM
SHM_OOM
Configure	max	SHM	size
IOWAIT
IOWAIT
IOWAIT
On	heavy	load	tests
IOWAIT
IOWAIT
IOWAIT
Bigger	disks
Provisioned	IOPS
Leverage	tmpfs
AWS
AWS
AWS
Docker
Docker
Docker
Terraform
Terraform
Terraform
terraform.tf
resource	"aws_autoscaling_group"	"gitlab_runner"	{
		desired_capacity					=	10
		min_size													=	4
		max_size													=	24
		launch_configuration	=	"${aws_launch_configuration.runner.name}"
		[..]
}
We	can	do	better	and	easier!
	We	can	do	better	and	easier!
	We	can	do	better	and	easier!
Ourselves
Ourselves
Ourselves
with	an	interesting	challenge
Software	engineers
Software	engineers
Software	engineers
with	a	reliable	CI	implementation
Finance
Finance
Finance
by	making	some	savings
docker-machine	integrated
out-of-the-box	with	gitlab-runner
scheduling	jobs	on	spot	instances
gitlab::ci::runners:
		'aws_spot_docker_machine':
gitlab::ci::runners:
		'aws_spot_docker_machine':
				executor:	docker+machine
gitlab::ci::runners:
		'aws_spot_docker_machine':
				executor:	docker+machine
				limit:	24
gitlab::ci::runners:
		'aws_spot_docker_machine':
				executor:	docker+machine
				limit:	24
				machine-IdleCount:	4
				machine-IdleTime:	600
gitlab::ci::runners:
		'aws_spot_docker_machine':
				executor:	docker+machine
				limit:	24
				machine-IdleCount:	4
				machine-IdleTime:	600
				machine-OffPeakPeriods:
						-	"*	*	0-8,18-23	*	*	mon-fri	*"
						-	"*	*	*	*	*	sat,sun	*"
				machine-OffPeakIdleCount:	0
				machine-OffPeakIdleTime:	600
gitlab::ci::runners:
		'aws_spot_docker_machine':
				executor:	docker+machine
				limit:	24
				machine-IdleCount:	4
				machine-IdleTime:	600
				machine-OffPeakPeriods:
						-	"*	*	0-8,18-23	*	*	mon-fri	*"
						-	"*	*	*	*	*	sat,sun	*"
				machine-OffPeakIdleCount:	0
				machine-OffPeakIdleTime:	600
				machine-MaxBuilds:	30
gitlab::ci::runners:
		'aws_spot_docker_machine':
				executor:	docker+machine
				limit:	24
				machine-IdleCount:	4
				machine-IdleTime:	600
				machine-OffPeakPeriods:
						-	"*	*	0-8,18-23	*	*	mon-fri	*"
						-	"*	*	*	*	*	sat,sun	*"
				machine-OffPeakIdleCount:	0
				machine-OffPeakIdleTime:	600
				machine-MaxBuilds:	30
				machine-MachineDriver:	amazonec2
				machine-MachineOptions:
						-	amazonec2-instance-type=m4.large
						-	amazonec2-request-spot-instance=true
						-	amazonec2-spot-price=0.10
						[..]
A	small	drawback..
A	small	drawback..
A	small	drawback..
Scheduling
Scheduling
Scheduling
Kubernetes
	Kubernetes
	Kubernetes
---
apiVersion:	v1
kind:	ConfigMap
metadata:
		name:	gitlab-runner
		namespace:	gitlab-ci
data:
		config.toml:	|
				[[runners]]
						name	=	"k8s_runner"
						url	=	"https://gitlab.example.com/"
						executor	=	"kubernetes"
						[runners.kubernetes]
								cpu_limit	=	"1"
								memory_limit	=	"256Mi"
								[..]
~$	kubectl	-n	gitlab-ci	get	po
NAME																				READY					STATUS				RESTARTS			AGE
runner-315e4d80-0qj79g		2/2							Running			0										3m
runner-315e4d80-9kdkee		2/2							Running			0										2m
runner-315e4d80-kdfdfe		2/2							Running			0										1m
runner-315e4d80-ldorpk		2/2							Running			0										1m
runner-315e4d80-pleofi		2/2							Running			0										20s
Definitely	promising
Definitely	promising
Definitely	promising
Still	a	work	in	progress	for	us
Still	a	work	in	progress	for	us
Still	a	work	in	progress	for	us
QUESTIONS?
QUESTIONS?
QUESTIONS?
REFERENCES
REFERENCES
REFERENCES
·		Dockerfile	documentation
·		.gitlab-ci.yml	documentation
·		Slides
https://docs.docker.com/engine/reference/builder/
https://gitlab.com/help/ci/yaml/README.md
https://paulrbr.gitlab.io/ci-migration-slides/

More Related Content

What's hot

手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇
Philip Zheng
 
Linux Security and How Web Browser Sandboxes Really Work (NDC Oslo 2017)
Linux Security  and How Web Browser Sandboxes Really Work (NDC Oslo 2017)Linux Security  and How Web Browser Sandboxes Really Work (NDC Oslo 2017)
Linux Security and How Web Browser Sandboxes Really Work (NDC Oslo 2017)
Patricia Aas
 
Linux Security and How Web Browser Sandboxes Really Work (Security Researcher...
Linux Security and How Web Browser Sandboxes Really Work (Security Researcher...Linux Security and How Web Browser Sandboxes Really Work (Security Researcher...
Linux Security and How Web Browser Sandboxes Really Work (Security Researcher...
Patricia Aas
 
Fileyogi
FileyogiFileyogi
Fileyogi
Dheeraj Verma
 
Reproducibility of computational workflows is automated using continuous anal...
Reproducibility of computational workflows is automated using continuous anal...Reproducibility of computational workflows is automated using continuous anal...
Reproducibility of computational workflows is automated using continuous anal...
Kento Aoyama
 
Docker研習營
Docker研習營Docker研習營
Docker研習營
Philip Zheng
 
Develop QNAP NAS App by Docker
Develop QNAP NAS App by DockerDevelop QNAP NAS App by Docker
Develop QNAP NAS App by Docker
Terry Chen
 
Gns3 0.5 Tutorial
Gns3 0.5 TutorialGns3 0.5 Tutorial
Gns3 0.5 Tutorial
rusevi
 
IzPack at LyonJUG'11
IzPack at LyonJUG'11IzPack at LyonJUG'11
IzPack at LyonJUG'11
julien.ponge
 
Building a Docker v1.12 Swarm cluster on ARM
Building a Docker v1.12 Swarm cluster on ARMBuilding a Docker v1.12 Swarm cluster on ARM
Building a Docker v1.12 Swarm cluster on ARM
Team Hypriot
 
Android beyond the smartphone
Android beyond the smartphoneAndroid beyond the smartphone
Android beyond the smartphone
Chris Simmonds
 
容器與IoT端點應用
容器與IoT端點應用容器與IoT端點應用
容器與IoT端點應用
Philip Zheng
 
COSCUP - Fleet
COSCUP - FleetCOSCUP - Fleet
COSCUP - Fleet
Philip Zheng
 
Running Docker on ARM
Running Docker on ARMRunning Docker on ARM
Running Docker on ARM
Dieter Reuter
 
Docker on Raspberry Pi and CoreOS
Docker on Raspberry Pi and CoreOSDocker on Raspberry Pi and CoreOS
Docker on Raspberry Pi and CoreOS
Philip Zheng
 
IzPack - PoitouJUG
IzPack - PoitouJUGIzPack - PoitouJUG
IzPack - PoitouJUG
julien.ponge
 
Upgrade Ubuntu 18.04 Security with Secureboot
Upgrade Ubuntu 18.04 Security with SecurebootUpgrade Ubuntu 18.04 Security with Secureboot
Upgrade Ubuntu 18.04 Security with Secureboot
Jonathan MICHEL-VILLAZ
 
Docker security - TASK Jan 2016
Docker security - TASK Jan 2016Docker security - TASK Jan 2016
Docker security - TASK Jan 2016
Fernando Montenegro
 
IzPack - fOSSa 2009
IzPack - fOSSa 2009IzPack - fOSSa 2009
IzPack - fOSSa 2009
julien.ponge
 

What's hot (19)

手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇
 
Linux Security and How Web Browser Sandboxes Really Work (NDC Oslo 2017)
Linux Security  and How Web Browser Sandboxes Really Work (NDC Oslo 2017)Linux Security  and How Web Browser Sandboxes Really Work (NDC Oslo 2017)
Linux Security and How Web Browser Sandboxes Really Work (NDC Oslo 2017)
 
Linux Security and How Web Browser Sandboxes Really Work (Security Researcher...
Linux Security and How Web Browser Sandboxes Really Work (Security Researcher...Linux Security and How Web Browser Sandboxes Really Work (Security Researcher...
Linux Security and How Web Browser Sandboxes Really Work (Security Researcher...
 
Fileyogi
FileyogiFileyogi
Fileyogi
 
Reproducibility of computational workflows is automated using continuous anal...
Reproducibility of computational workflows is automated using continuous anal...Reproducibility of computational workflows is automated using continuous anal...
Reproducibility of computational workflows is automated using continuous anal...
 
Docker研習營
Docker研習營Docker研習營
Docker研習營
 
Develop QNAP NAS App by Docker
Develop QNAP NAS App by DockerDevelop QNAP NAS App by Docker
Develop QNAP NAS App by Docker
 
Gns3 0.5 Tutorial
Gns3 0.5 TutorialGns3 0.5 Tutorial
Gns3 0.5 Tutorial
 
IzPack at LyonJUG'11
IzPack at LyonJUG'11IzPack at LyonJUG'11
IzPack at LyonJUG'11
 
Building a Docker v1.12 Swarm cluster on ARM
Building a Docker v1.12 Swarm cluster on ARMBuilding a Docker v1.12 Swarm cluster on ARM
Building a Docker v1.12 Swarm cluster on ARM
 
Android beyond the smartphone
Android beyond the smartphoneAndroid beyond the smartphone
Android beyond the smartphone
 
容器與IoT端點應用
容器與IoT端點應用容器與IoT端點應用
容器與IoT端點應用
 
COSCUP - Fleet
COSCUP - FleetCOSCUP - Fleet
COSCUP - Fleet
 
Running Docker on ARM
Running Docker on ARMRunning Docker on ARM
Running Docker on ARM
 
Docker on Raspberry Pi and CoreOS
Docker on Raspberry Pi and CoreOSDocker on Raspberry Pi and CoreOS
Docker on Raspberry Pi and CoreOS
 
IzPack - PoitouJUG
IzPack - PoitouJUGIzPack - PoitouJUG
IzPack - PoitouJUG
 
Upgrade Ubuntu 18.04 Security with Secureboot
Upgrade Ubuntu 18.04 Security with SecurebootUpgrade Ubuntu 18.04 Security with Secureboot
Upgrade Ubuntu 18.04 Security with Secureboot
 
Docker security - TASK Jan 2016
Docker security - TASK Jan 2016Docker security - TASK Jan 2016
Docker security - TASK Jan 2016
 
IzPack - fOSSa 2009
IzPack - fOSSa 2009IzPack - fOSSa 2009
IzPack - fOSSa 2009
 

Similar to A smooth migration to Docker focusing on build pipelines - TIAD Camp Docker

Gebruik dezelfde Docker container voor Java applicaties tijdens ontwikkelen e...
Gebruik dezelfde Docker container voor Java applicaties tijdens ontwikkelen e...Gebruik dezelfde Docker container voor Java applicaties tijdens ontwikkelen e...
Gebruik dezelfde Docker container voor Java applicaties tijdens ontwikkelen e...
NLJUG
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
Liang Bo
 
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Doc...
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Doc...JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Doc...
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Doc...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Continuous delivery with docker
Continuous delivery with dockerContinuous delivery with docker
Continuous delivery with docker
Johan Janssen
 
The Dockerfile Explosion and the Need for Higher Level Tools by Gareth Rushgrove
The Dockerfile Explosion and the Need for Higher Level Tools by Gareth RushgroveThe Dockerfile Explosion and the Need for Higher Level Tools by Gareth Rushgrove
The Dockerfile Explosion and the Need for Higher Level Tools by Gareth Rushgrove
Docker, Inc.
 
Introduction to Docker
Introduction  to DockerIntroduction  to Docker
Introduction to Docker
Jian Wu
 
Docker jako prostředí pro automatizaci testů
Docker jako prostředí pro automatizaci testůDocker jako prostředí pro automatizaci testů
Docker jako prostředí pro automatizaci testů
Radim Daniel Pánek
 
Docker & FieldAware
Docker & FieldAwareDocker & FieldAware
Docker & FieldAware
Jakub Jarosz
 
Docker in practice
Docker in practiceDocker in practice
Docker in practice
Jonathan Giannuzzi
 
20111011 bigbluebutton
20111011 bigbluebutton20111011 bigbluebutton
20111011 bigbluebutton
hs1250
 
Learned lessons in a real world project
Learned lessons in a real world projectLearned lessons in a real world project
Learned lessons in a real world project
Codium
 
Better Operations into the Cloud
Better Operations  into the CloudBetter Operations  into the Cloud
Better Operations into the Cloud
Fabio Ferrari
 
Docker for mere mortals
Docker for mere mortalsDocker for mere mortals
Docker for mere mortals
Henryk Konsek
 
Docker - introduction
Docker - introductionDocker - introduction
Docker - introduction
Michał Kurzeja
 
Docker: From Zero to Hero
Docker: From Zero to HeroDocker: From Zero to Hero
Docker: From Zero to Hero
Espeo Software
 
Ruby microservices with Docker - Sergii Koba
Ruby microservices with Docker -  Sergii KobaRuby microservices with Docker -  Sergii Koba
Ruby microservices with Docker - Sergii Koba
Ruby Meditation
 
Dockerizing Stashboard
Dockerizing StashboardDockerizing Stashboard
Dockerizing Stashboard
Docker, Inc.
 
Dockerizing stashboard - Docker meetup at Twilio
Dockerizing stashboard - Docker meetup at TwilioDockerizing stashboard - Docker meetup at Twilio
Dockerizing stashboard - Docker meetup at Twilio
dotCloud
 
Microservices, la risposta che (forse) cercavi!
Microservices, la risposta che (forse) cercavi!Microservices, la risposta che (forse) cercavi!
Microservices, la risposta che (forse) cercavi!
Commit University
 
Docker workshop
Docker workshopDocker workshop
Docker workshop
Michał Kurzeja
 

Similar to A smooth migration to Docker focusing on build pipelines - TIAD Camp Docker (20)

Gebruik dezelfde Docker container voor Java applicaties tijdens ontwikkelen e...
Gebruik dezelfde Docker container voor Java applicaties tijdens ontwikkelen e...Gebruik dezelfde Docker container voor Java applicaties tijdens ontwikkelen e...
Gebruik dezelfde Docker container voor Java applicaties tijdens ontwikkelen e...
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
 
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Doc...
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Doc...JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Doc...
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Doc...
 
Continuous delivery with docker
Continuous delivery with dockerContinuous delivery with docker
Continuous delivery with docker
 
The Dockerfile Explosion and the Need for Higher Level Tools by Gareth Rushgrove
The Dockerfile Explosion and the Need for Higher Level Tools by Gareth RushgroveThe Dockerfile Explosion and the Need for Higher Level Tools by Gareth Rushgrove
The Dockerfile Explosion and the Need for Higher Level Tools by Gareth Rushgrove
 
Introduction to Docker
Introduction  to DockerIntroduction  to Docker
Introduction to Docker
 
Docker jako prostředí pro automatizaci testů
Docker jako prostředí pro automatizaci testůDocker jako prostředí pro automatizaci testů
Docker jako prostředí pro automatizaci testů
 
Docker & FieldAware
Docker & FieldAwareDocker & FieldAware
Docker & FieldAware
 
Docker in practice
Docker in practiceDocker in practice
Docker in practice
 
20111011 bigbluebutton
20111011 bigbluebutton20111011 bigbluebutton
20111011 bigbluebutton
 
Learned lessons in a real world project
Learned lessons in a real world projectLearned lessons in a real world project
Learned lessons in a real world project
 
Better Operations into the Cloud
Better Operations  into the CloudBetter Operations  into the Cloud
Better Operations into the Cloud
 
Docker for mere mortals
Docker for mere mortalsDocker for mere mortals
Docker for mere mortals
 
Docker - introduction
Docker - introductionDocker - introduction
Docker - introduction
 
Docker: From Zero to Hero
Docker: From Zero to HeroDocker: From Zero to Hero
Docker: From Zero to Hero
 
Ruby microservices with Docker - Sergii Koba
Ruby microservices with Docker -  Sergii KobaRuby microservices with Docker -  Sergii Koba
Ruby microservices with Docker - Sergii Koba
 
Dockerizing Stashboard
Dockerizing StashboardDockerizing Stashboard
Dockerizing Stashboard
 
Dockerizing stashboard - Docker meetup at Twilio
Dockerizing stashboard - Docker meetup at TwilioDockerizing stashboard - Docker meetup at Twilio
Dockerizing stashboard - Docker meetup at Twilio
 
Microservices, la risposta che (forse) cercavi!
Microservices, la risposta che (forse) cercavi!Microservices, la risposta che (forse) cercavi!
Microservices, la risposta che (forse) cercavi!
 
Docker workshop
Docker workshopDocker workshop
Docker workshop
 

More from The Incredible Automation Day

Docker in real life and in the Cloud - TIAD Camp Docker
Docker in real life and in the Cloud - TIAD Camp DockerDocker in real life and in the Cloud - TIAD Camp Docker
Docker in real life and in the Cloud - TIAD Camp Docker
The Incredible Automation Day
 
Orchestrating Docker in production - TIAD Camp Docker
Orchestrating Docker in production - TIAD Camp DockerOrchestrating Docker in production - TIAD Camp Docker
Orchestrating Docker in production - TIAD Camp Docker
The Incredible Automation Day
 
Monitoring in 2017 - TIAD Camp Docker
Monitoring in 2017 - TIAD Camp DockerMonitoring in 2017 - TIAD Camp Docker
Monitoring in 2017 - TIAD Camp Docker
The Incredible Automation Day
 
Strategy, planning and governance for enterprise deployments of containers - ...
Strategy, planning and governance for enterprise deployments of containers - ...Strategy, planning and governance for enterprise deployments of containers - ...
Strategy, planning and governance for enterprise deployments of containers - ...
The Incredible Automation Day
 
Cluster SQL - TIAD Camp Microsoft Cloud Readiness
Cluster SQL - TIAD Camp Microsoft Cloud ReadinessCluster SQL - TIAD Camp Microsoft Cloud Readiness
Cluster SQL - TIAD Camp Microsoft Cloud Readiness
The Incredible Automation Day
 
Build the VPC - TIAD Camp Microsoft Cloud Readiness
Build the VPC - TIAD Camp Microsoft Cloud ReadinessBuild the VPC - TIAD Camp Microsoft Cloud Readiness
Build the VPC - TIAD Camp Microsoft Cloud Readiness
The Incredible Automation Day
 
Opening Keynote - TIAD Camp Microsoft Cloud Readiness
Opening Keynote - TIAD Camp Microsoft Cloud ReadinessOpening Keynote - TIAD Camp Microsoft Cloud Readiness
Opening Keynote - TIAD Camp Microsoft Cloud Readiness
The Incredible Automation Day
 
Replatforming - TIAD Camp Microsoft Cloud Readiness
Replatforming - TIAD Camp Microsoft Cloud ReadinessReplatforming - TIAD Camp Microsoft Cloud Readiness
Replatforming - TIAD Camp Microsoft Cloud Readiness
The Incredible Automation Day
 
GitLab CI Packer - TIAD Camp Microsoft Cloud Readiness
GitLab CI Packer - TIAD Camp Microsoft Cloud ReadinessGitLab CI Packer - TIAD Camp Microsoft Cloud Readiness
GitLab CI Packer - TIAD Camp Microsoft Cloud Readiness
The Incredible Automation Day
 
Active Directory - TIAD Camp Microsoft Cloud Readiness
Active Directory - TIAD Camp Microsoft Cloud ReadinessActive Directory - TIAD Camp Microsoft Cloud Readiness
Active Directory - TIAD Camp Microsoft Cloud Readiness
The Incredible Automation Day
 
Application Stack - TIAD Camp Microsoft Cloud Readiness
Application Stack - TIAD Camp Microsoft Cloud ReadinessApplication Stack - TIAD Camp Microsoft Cloud Readiness
Application Stack - TIAD Camp Microsoft Cloud Readiness
The Incredible Automation Day
 
Keynote TIAD Camp Serverless
Keynote TIAD Camp ServerlessKeynote TIAD Camp Serverless
Keynote TIAD Camp Serverless
The Incredible Automation Day
 
From AIX to Zero-ops by Pierre Baillet
From AIX to Zero-ops by Pierre BailletFrom AIX to Zero-ops by Pierre Baillet
From AIX to Zero-ops by Pierre Baillet
The Incredible Automation Day
 
Serverless low cost analytics by Adways y Audric Guigon
Serverless low cost analytics by Adways y Audric GuigonServerless low cost analytics by Adways y Audric Guigon
Serverless low cost analytics by Adways y Audric Guigon
The Incredible Automation Day
 
Operationnal challenges behind Serverless architectures by Laurent Bernaille
Operationnal challenges behind Serverless architectures by Laurent BernailleOperationnal challenges behind Serverless architectures by Laurent Bernaille
Operationnal challenges behind Serverless architectures by Laurent Bernaille
The Incredible Automation Day
 
Build chatbots with api.ai and Google cloud functions
Build chatbots with api.ai and Google cloud functionsBuild chatbots with api.ai and Google cloud functions
Build chatbots with api.ai and Google cloud functions
The Incredible Automation Day
 
Real time serverless data pipelines on AWS
Real time serverless data pipelines on AWSReal time serverless data pipelines on AWS
Real time serverless data pipelines on AWS
The Incredible Automation Day
 
Azure functions
Azure functionsAzure functions
TIAD 2016 - Beyond windowsautomation
TIAD 2016 - Beyond windowsautomation TIAD 2016 - Beyond windowsautomation
TIAD 2016 - Beyond windowsautomation
The Incredible Automation Day
 
TIAD 2016 : Application delivery in a container world
TIAD 2016 : Application delivery in a container worldTIAD 2016 : Application delivery in a container world
TIAD 2016 : Application delivery in a container world
The Incredible Automation Day
 

More from The Incredible Automation Day (20)

Docker in real life and in the Cloud - TIAD Camp Docker
Docker in real life and in the Cloud - TIAD Camp DockerDocker in real life and in the Cloud - TIAD Camp Docker
Docker in real life and in the Cloud - TIAD Camp Docker
 
Orchestrating Docker in production - TIAD Camp Docker
Orchestrating Docker in production - TIAD Camp DockerOrchestrating Docker in production - TIAD Camp Docker
Orchestrating Docker in production - TIAD Camp Docker
 
Monitoring in 2017 - TIAD Camp Docker
Monitoring in 2017 - TIAD Camp DockerMonitoring in 2017 - TIAD Camp Docker
Monitoring in 2017 - TIAD Camp Docker
 
Strategy, planning and governance for enterprise deployments of containers - ...
Strategy, planning and governance for enterprise deployments of containers - ...Strategy, planning and governance for enterprise deployments of containers - ...
Strategy, planning and governance for enterprise deployments of containers - ...
 
Cluster SQL - TIAD Camp Microsoft Cloud Readiness
Cluster SQL - TIAD Camp Microsoft Cloud ReadinessCluster SQL - TIAD Camp Microsoft Cloud Readiness
Cluster SQL - TIAD Camp Microsoft Cloud Readiness
 
Build the VPC - TIAD Camp Microsoft Cloud Readiness
Build the VPC - TIAD Camp Microsoft Cloud ReadinessBuild the VPC - TIAD Camp Microsoft Cloud Readiness
Build the VPC - TIAD Camp Microsoft Cloud Readiness
 
Opening Keynote - TIAD Camp Microsoft Cloud Readiness
Opening Keynote - TIAD Camp Microsoft Cloud ReadinessOpening Keynote - TIAD Camp Microsoft Cloud Readiness
Opening Keynote - TIAD Camp Microsoft Cloud Readiness
 
Replatforming - TIAD Camp Microsoft Cloud Readiness
Replatforming - TIAD Camp Microsoft Cloud ReadinessReplatforming - TIAD Camp Microsoft Cloud Readiness
Replatforming - TIAD Camp Microsoft Cloud Readiness
 
GitLab CI Packer - TIAD Camp Microsoft Cloud Readiness
GitLab CI Packer - TIAD Camp Microsoft Cloud ReadinessGitLab CI Packer - TIAD Camp Microsoft Cloud Readiness
GitLab CI Packer - TIAD Camp Microsoft Cloud Readiness
 
Active Directory - TIAD Camp Microsoft Cloud Readiness
Active Directory - TIAD Camp Microsoft Cloud ReadinessActive Directory - TIAD Camp Microsoft Cloud Readiness
Active Directory - TIAD Camp Microsoft Cloud Readiness
 
Application Stack - TIAD Camp Microsoft Cloud Readiness
Application Stack - TIAD Camp Microsoft Cloud ReadinessApplication Stack - TIAD Camp Microsoft Cloud Readiness
Application Stack - TIAD Camp Microsoft Cloud Readiness
 
Keynote TIAD Camp Serverless
Keynote TIAD Camp ServerlessKeynote TIAD Camp Serverless
Keynote TIAD Camp Serverless
 
From AIX to Zero-ops by Pierre Baillet
From AIX to Zero-ops by Pierre BailletFrom AIX to Zero-ops by Pierre Baillet
From AIX to Zero-ops by Pierre Baillet
 
Serverless low cost analytics by Adways y Audric Guigon
Serverless low cost analytics by Adways y Audric GuigonServerless low cost analytics by Adways y Audric Guigon
Serverless low cost analytics by Adways y Audric Guigon
 
Operationnal challenges behind Serverless architectures by Laurent Bernaille
Operationnal challenges behind Serverless architectures by Laurent BernailleOperationnal challenges behind Serverless architectures by Laurent Bernaille
Operationnal challenges behind Serverless architectures by Laurent Bernaille
 
Build chatbots with api.ai and Google cloud functions
Build chatbots with api.ai and Google cloud functionsBuild chatbots with api.ai and Google cloud functions
Build chatbots with api.ai and Google cloud functions
 
Real time serverless data pipelines on AWS
Real time serverless data pipelines on AWSReal time serverless data pipelines on AWS
Real time serverless data pipelines on AWS
 
Azure functions
Azure functionsAzure functions
Azure functions
 
TIAD 2016 - Beyond windowsautomation
TIAD 2016 - Beyond windowsautomation TIAD 2016 - Beyond windowsautomation
TIAD 2016 - Beyond windowsautomation
 
TIAD 2016 : Application delivery in a container world
TIAD 2016 : Application delivery in a container worldTIAD 2016 : Application delivery in a container world
TIAD 2016 : Application delivery in a container world
 

Recently uploaded

Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 

Recently uploaded (20)

Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 

A smooth migration to Docker focusing on build pipelines - TIAD Camp Docker