Continuous	Deployment	with	Containers
David	Papp	@pappdav
Chief	Architect @ghostmonitor
Docker nem csak fejlesztesre
Who	are	we?
• Established	in	May	2015
• The	team	headcount	13
• Company	profile:	E-Commerce
What	technologies	do	we	use?
•Microservices architecture
•Scaling
•Full	automation
•Continuous	Deployment	&	Delivery
What	is	Continuous Delivery?
Continuous	Delivery	(CD)	is	a	software	
engineering	approach	in	which	
teams	keep	producing	valuable	
software	in	short	cycles	and	ensure	
that	the	software	can	be	reliably	
released	at	any	time.	
Chen,	Lianping (2015).	"Continuous	Delivery:	Huge	Benefits,	but	
Challenges	Too".	IEEE	Software	32	
“
“short	cycles”
“released	at	any	time”
Deployment	pipeline
Continuous	Delivery	vs	Continuous	Deployment
•Commit/Push
•Unit	test
•Integration	test
•End2end	test
•Docker image	build
•Push	registry
source:	http://blog.crisp.se/wp-content/uploads/2013/02/continuous-delivery-deployment-sm.jpg
codeship-services.yml
codeship-steps.yml
CoreOS
• Lightweight	OS	based	on	Gentoo	Linux
• Updated	with	regular	automatic	OS	updates
• Has	a	distributed	key-value	store	at	the	core
• Read-only	rootfs.	Writeable	/etc
oAll	services	are	in	containers
•Distributed	key/value	store
•Like	a	directory	tree
•JSON/REST	API
•Uses	a	Discovery	URL
Demo
Thanks
Question?