I T.A.K.E Unconference 2016 (Bucharest, Romania)
Docker Changes the Way YouDevelop and Release YourScalable SolutionsTugberk UgurluRedgate Software@tourismgeekhttp://tugberkugurlu.com#itakeunconf
View Slide
@tourismgeektugberkugurlu.comgithub.com/tugberkugurlustackoverflow.com/users/463785/tugberk
@redgate
The Problem
Inconsistent Environments
Result• Hard Onboarding• Hard to Set up Different Environments• Different Deployment Needs for Each Tech• Hard to Reproduce Issues
What’s Docker?https://www.docker.com/what-docker
What’s Docker?• Containerization• Provides Good Isolation• Consistent Environments
Docker Family• Docker• Docker Compose• Docker Machine• Docker Swarm• Docker Registry
docker run ubuntu /bin/echo 'Hello world'https://docs.docker.com/engine/userguide/containers/dockerizing/
Packaging Your Applicationhttps://github.com/tugberkugurlu/AspNetCoreSamples/blob/master/rabbitmq-sample/rabbitsample.dockerfile
$ docker build -t example-app -f rabbitsample.dockerfile .
Packaging Dev Toolshttps://github.com/BenHall/docker-awscli/blob/master/Dockerfile
Docker Registryhttps://hub.docker.com
Docker Composehttps://docs.docker.com/compose
docker-compose.yml
Demodocker-compose uphttps://github.com/tugberkugurlu/AspNetCoreSamples/tree/itakeu16/rabbitmq-sample
Complete Example
zleek.com
Embrace Polyglot Persistencehttp://martinfowler.com/bliki/PolyglotPersistence.html
Traditional LookMySuperShoppingAppMy GIANT RDBMSShopping Cart
Polyglot Persistence LookMySuperShoppingAppMongoDBElasticsearchNeo4jSQL Server
LBzleek-0zleek-1zleek-nmongodbneo4jelasticsearchrabbitmqrecipe-generation-worker-0recipe-sync-worker-0food-sync-worker-0store-sync-worker-0recipe-generation-worker-1recipe-generation-worker-nrecipe-sync-worker-nrecipe-sync-worker-0
Demo
Deployments
http://www.infoworld.com/article/3040475/application-virtualization/4-no-bull-takeaways-about-docker-cloud.html