The popularity of Docker has grown massively in recent years. So what are the benefits for development and operations? This talk provides you a proper introduction into the topic and answers the questions around the differences between Linux and Windows containers, the development workflow and enterprise grade hosting scenarios.
11. A lot of deployments
Cause pain if
▪ done manually
▪ a complex monolith
needs to be
deployed
▪ too many different
versions have to be
maintained
We fight the pain by
▪ automate the
complete process
▪ divide the monolith
into small services
▪ deploy small
releases frequently
14. Microservices
▪ A part of the
application which can
be deployed
independently
▪ «Do one thing and do
it good»
▪ Encapsulation
▪ Automation
▪ Business Domain Centric
▪ Decentralization
▪ Indepence
▪ Fail-Safe
▪ Observable
▪ Scalable
17. Containers
▪ Versioned artifact
▪ Isolated deployable unit
▪ Container image is bit by bit identical when deployed
▪ Abstraction of data center resources
▪ Pool of compute, network and storage
▪ Orchestration is “Cattle Business”
▪ “Forget about naming the servers and treating them like
pets.”
▪ “Run it for me please”
19. Server
Host OS
Hypervisor
Server
Host OS
Docker Engine
Guest
OS
Guest
OS
Guest
OS
Bins/Libs Bins/Libs
App A App A’ App B
Bins/Libs Bins/Libs
AppA
AppA’
AppB
AppB’
AppB
AppB’
AppB
AppB’
Containers are isolated, but
share OS and, where
appropriate, bins/librariesBins/Libs
Image Source: https://sec.ch9.ms/sessions/build/2016/B822.pptx
20. Docker Layers
My ASP.NET Core Application
microsoft/aspnet
microsoft/dotnet
buildpack-deps:jessie-scm
buildpack-deps:jessie-curl
debian:jessie
21. Definitions
▪ Container
A container defines a software application and
its dependencies wrapped in a complete
filesystem including code, runtime, system
tools, and libraries.
▪ Image
An image is a read-only snapshot of a Docker
container.
22. Where to store the images?
▪ Docker Hub
▪ Azure Container Registry
23. Container Registry
Pull Images
▪ Login to your registry docker login <registry> -u <user> -p <pwd>
▪ Pull the desired image docker pull <registry>/<repository>:<tag>
▪ Run the container docker run…
Push Images
▪ Login to your registry docker login <registry> -u <user> -p <pwd>
▪ Build the image docker build –t <reponame>:<tag> <dockerfile>
▪ Push the image docker push <reponame>:<tag>
24. Developer PC / Laptop
Environments - Development
Docker Engine
Container Container Container
27. Advantages of Containers
▪ Bit by bit images
▪ Fast deployment / fast startup
▪ Simple scaling and partitioning
▪ Isolated, versioned, reusable code
(artifact / configuration element)
Clear distinction beteween development and operations
▪ Dev takes care of the contents of the container
▪ Ops takes care of the operations of the container
35. Run a simple “Hello World” docker container
▪ Use docker CLI
▪ Pull an existing image
▪ Run the image locally
▪ Define port forwarding / environment variables
▪ Access the container
51. Recap
▪ Microservice Architecture
▪ Reduction of complexity
▪ Simple and fast deployments
▪ Automated Build and Release Pipelines
▪ Docker
▪ Isolation in Containers
▪ Ease of deployment
▪ Fast Startup
▪ Orchestration
▪ Enterprise Grade Hosting Environments
▪ Simple Scaling and Failover
▪ Abstration at Container Level
52. Thank you for your attention!
If you have any questions do not hesitate to contact us:
4tecture GmbH Marc Müller
Aathalstrasse 84 Principal Consultant
CH-8610 Uster
+41 44 508 37 00 marc.mueller@4tecture.ch
info@4tecture.ch @muellermarc
www.4tecture.ch
53. We are looking for
great talents to
join our team!
Apply to job@4tecture.ch
www.4tecture.ch/jobs