Page 1
ERNI – Innovation in Process and Technology
DOCKER CONTAINERS
Page 2
ERNI – Innovation in Process and Technology
ABOUT PAUAlmost 15 years in software development
Main technologies:•Professional .NET developer•Opensource projects follower
Main interests:•Domain Driven Design, Distributed systems, Microservices, Event Sourcing, CQRS, Cloud.•And now Docker Containers!
Page 3
ERNI – Innovation in Process and Technology
ABOUT YOU?
Page 4
ERNI – Innovation in Process and Technology
AGENDA
1. ACHITECTURES EVOLUTION2. KEY TECHNOLOGY : CONTAINERS3. DISRUPTIVE PRODUCT : DOCKER
4. DEMO TIME!
Page 5
ERNI – Innovation in Process and Technology
ARCHITECTURE EVOLUTION – THE MONOLITH
Page 6
ERNI – Innovation in Process and Technology
ARCHITECTURE EVOLUTION – THE MONOLITH
SHOPPING CARTPRODUCT CATALOG
SHIPPING MODULE BILLING MODULE
Page 7
ERNI – Innovation in Process and Technology
ARCHITECTURE EVOLUTION – THE MONOLITH
Page 8
ERNI – Innovation in Process and Technology
ARCHITECTURE EVOLUTION – MICROSERVICES
Page 9
ERNI – Innovation in Process and Technology
ARCHITECTURE EVOLUTION – MICROSERVICESUNIX PHILOSOPHY• Do one thing and do it well.• Place well with the others• Use standard interfaces
Page 10
ERNI – Innovation in Process and Technology
ARCHITECTURE EVOLUTION – MICROSERVICES
Page 11
ERNI – Innovation in Process and Technology
ARCHITECTURE EVOLUTION1.1990’s2.Monolith3.Tight
Coupling
1.2000’s2.Neo Monolith3.SOA4.Looser
Coupling
1.2010’s2.Microservices3.Decoupled
Page 12
ERNI – Innovation in Process and Technology
SCALING LIMITATIONS PROBLEM
Page 13
ERNI – Innovation in Process and Technology
DATABASE COUPLING PROBLEM
Page 14
ERNI – Innovation in Process and Technology
WHAT‘S WRONG WITH MONOLITHS?
Page 15
ERNI – Innovation in Process and Technology
MONOLITH VS MICROSERVICES
1.COMPLEXITY2.DEPLOYMENT CYCLE3.TEAMS
ORGANIZATION4.SCALABILITY5.TECHNOLOGY STACK
Page 16
ERNI – Innovation in Process and Technology
NETFLIX ARCHITECTURE EVOLUTION1.On premises
servers2.One big application
1.Cloud (AWS)2.100s of microservices
Page 17
ERNI – Innovation in Process and Technology
MICROSERVICES VISUALIZATION EXAMPLES
Page 18
ERNI – Innovation in Process and Technology
MICROSERVICES VISUALIZATION EXAMPLES
Page 19
ERNI – Innovation in Process and Technology
NETFLIX FIGURES
Page 20
ERNI – Innovation in Process and Technology
NETFLIX FIGURES
Page 21
ERNI – Innovation in Process and Technology
GILT FIGURES
Page 22
ERNI – Innovation in Process and Technology
ENTERPRISE CLOUD ADOPTION
Page 23
ERNI – Innovation in Process and Technology
ABOUT YOU?
STILL AWAKE??? JUST SOME SLIDES TO GO!
Page 24
ERNI – Innovation in Process and Technology
AGENDA
1. ACHITECTURES EVOLUTION2. KEY TECHNOLOGY : CONTAINERS3. DISRUPTIVE TECHNOLOGY : DOCKER
4. DEMO TIME!
Page 25
ERNI – Innovation in Process and Technology
ENABLING MICROSERVICES ARCHITECTURES
Page 26
ERNI – Innovation in Process and Technology
1.Key technology: CONTAINERS
2.Google has been using container technology for over 10 years, starting over 2 billion containers per week
ENABLING MICROSERVICES ARCHITECTURES
Page 27
ERNI – Innovation in Process and Technology
VIRTUALIZATION TECHNOLOGIES
Page 28
ERNI – Innovation in Process and Technology
CONTAINERS PROMISESFaster Uptime Minutes to Seconds
Smaller Footprint Gigabytes to Megabytes
More Reliable Deployment Works everywhere.
Better Scalability Vertical to Horizontal
Page 29
ERNI – Innovation in Process and Technology
AGENDA
1. ACHITECTURES EVOLUTION2. KEY TECHNOLOGY : CONTAINERS3. DISRUPTIVE TECHNOLOGY : DOCKER
4. DEMO TIME!
Page 30
ERNI – Innovation in Process and Technology
DOCKER SOLUTION
Page 31
ERNI – Innovation in Process and Technology
DOCKER ECOSYSTEM
Page 32
ERNI – Innovation in Process and Technology
WINDOWS CONTAINERS COMING SOON…
Page 33
ERNI – Innovation in Process and Technology
CONTAINERS PROMISES
Page 34
ERNI – Innovation in Process and Technology
CONTAINERS PROMISES
Page 35
ERNI – Innovation in Process and Technology
QUESTIONS
Page 36
ERNI – Innovation in Process and Technology
AGENDA
1. ACHITECTURES EVOLUTION : NETFLIX EXAMPLE
2. KEY TECHNOLOGY : CONTAINERS3. DISRUPTIVE TECHNOLOGY : DOCKER
4. DEMO TIME!
Page 37
ERNI – Innovation in Process and Technology
DEMO – DOCKER BASICSBuild images, Run containers, DockerHub.• Installing Docker• Image vs Container.•DockerFile•Basic commands: ps, images, run, commit, build, version, info•Build a basic image: nodejs, aspnet•Windows containers (optional)
Page 38
ERNI – Innovation in Process and Technology
DEMO – DOCKER BASICS
Page 39
ERNI – Innovation in Process and Technology
DEMO – DOCKER BASICS
Page 40
ERNI – Innovation in Process and Technology
DEMO – IMAGE VS CONTAINER
Page 41
ERNI – Innovation in Process and Technology
DEMO – DOCKER TOOLSDOCKER-MACHINE•Docker toolbox for Windows and MacOSX (optional)•Provisioning on local VM with Windows client.•Provisioning on Azure.•Provisioning on AWS.
DOCKER-COMPOSE•Startup template download.•Docker-compose.yml
Page 42
ERNI – Innovation in Process and Technology
DEMO – DOCKER TOOLS
Page 43
ERNI – Innovation in Process and Technology
DEMO – CONTINUOS DELIVERYBASIC CONTINUOS DELIVERY PIPELINE: NODE AND MONGO•Enable DockerHub for automated Builds.•Configure CircleCI for automated testing.•Configure Tutum for containers as a service.
Page 44
ERNI – Innovation in Process and Technology
DEMO – CONTINUOS DELIVERY PIPELINE
PUSH
HTTP POST
HTTP POST
HTTP POST
Page 45
ERNI – Innovation in Process and Technology
DEMO REFERENCESDOCKER BASICS: Build images, Run containers, DockerHub.• https://docs.docker.com/installation/ubuntulinux/• http://blog.codefresh.io/docker-machine-basics/• http://www.fireplacecoders.com/?p=15• http://
blogs.msdn.com/b/webdev/archive/2015/01/14/running-asp-net-5-applications-in-linux-containers-with-docker.aspx
• https://docs.docker.com/introduction/understanding-docker/
DOCKER-MACHINE: Local and Cloud providers• https://docs.docker.com/installation/azure/• https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-docker-machine/• https://docs.docker.com/installation/google/• http://
docs.aws.amazon.com/AmazonECS/latest/developerguide/docker-basics.html#install_docker• http://networkstatic.net/docker-machine-provisioning-on-aws/• https://alexanderzeitler.com/articles/a-lap-around-aws-and-docker-machine/
Page 46
ERNI – Innovation in Process and Technology
DEMO REFERENCESCONTINUOS INTEGRATION, CONTINUOS DELIVERY PIPELINE• http://
blog.bananacoding.com/blog/development-workflow-using-docker-and-docker-compose• http://blog.tutum.co/2015/06/10/node-js-and-continuous-deployment-with-circleci-docker-hub
-and-tutum/
WINDOWS CONTAINERS ON LOCALMACHINE AND AZURE• https://visualstudiogallery.msdn.microsoft.com/0f5b2caa-ea00-41c8-b8a2-058c7da0b3e4• https://
channel9.msdn.com/Blogs/containers/Quick-Start-Provisioning-Containers-using-Visual-Studio?ocid=player
• https://msdn.microsoft.com/virtualization/windowscontainers/quick_start/manage_powershell
Page 47
ERNI – Innovation in Process and Technology
REFERENCES• https://docs.docker.com/• http://anandmanisankar.com/posts/container-docker-PaaS-microservices/• http://www.infoq.com/articles/docker-future• https://youtu.be/GVVtR_hrdKI• http://www.slideshare.net/joosthietbrink/microservices-containers-and-docker-for-dummies• http://www.slideshare.net/adriancockcroft/dockercon-state-of-the-art-in-microservices• http://
www.slideshare.net/InfoQ/scalable-microservices-at-netflix-challenges-and-tools-of-the-trade• http://www.slideshare.net/trenaman/scaling-micro-services-at-gilt
• https://channel9.msdn.com/Events/Build/2015/KEY01#time=18m33s• https://channel9.msdn.com/Events/Ignite/2015/BRK3702• https://msdn.microsoft.com/en-us/library/azure/mt125409.aspx• https://msdn.microsoft.com/virtualization/windowscontainers/quick_start/manage_docker• https://
msdn.microsoft.com/en-us/virtualization/windowscontainers/quick_start/container_setup
Page 48
ERNI – Innovation in Process and Technology
www.erni-consultants.com