Session
A.k.a. The Container Alphabet Soup
Peter De Tender
CEO & Lead Technical Trainer – 007FFFLearning
[email protected] @007FFFLearning
@pdtit
DCK, ACR, ACI, ACS, AKS,...
Session
Lig
ht B
lue
R0 G
188 B
242
Gre
en
R16 G
124 B
16
Red
R232 G
17 B
35
Mag
en
taR
180 G
0 B
158
Pu
rple
R92 G
45 B
145
Blu
eR
0 G
120 B
215
Teal
R0 G
130 B
114
Yello
wR
255 G
185 B
0
Ora
ng
eR
216 G
59 B
1
Lig
ht Y
ello
wR
255 G
241 B
0Lig
ht O
ran
ge
R255 G
140 B
0Lig
ht M
ag
en
taR
227 G
0 B
140
Lig
ht P
urp
leR
180 G
160 B
255
Lig
ht T
eal
R0 G
178 B
148
Lig
ht G
reen
R186 G
216 B
10
Dark
Red
R168 G
0 B
0D
ark
Mag
en
ta
R92 G
0 B
92
Dark
Pu
rple
R50 G
20 B
90
Mid
Blu
eR
0 G
24 B
143
Dark
Teal
R0 G
75 B
80
Dark
Gre
en
R0 G
75 B
28
Dark
Blu
eR
0 G
32 B
80
Mid
Gra
yR
115 G
115 B
115
Dark
Gra
yR
80 G
80 B
80
Ric
h B
lack
R0 G
0 B
0
Wh
iteR
255 G
255 B
255
Gra
yR
210 G
210 B
210
Lig
ht G
ray
R230 G
230 B
230
© 007FFFLearning.com
Peter De TenderCEO and Lead Technical Trainer @PDTIT and 007FFFLearning
Peter has +20 years of professional expertise in the Microsoft Infrastructure
segment, with a main focus on Microsoft Azure nowadays, relying on a
background in Exchange and System Center. Based out of Belgium but
traveling globally 87.4% of his time for his passion, he is known as a
subject matter expert, always able to provide readiness workshops in a fun
and enthusiastic way.
Peter is a MCT for +10 years, and an Azure MVP for 5 years.
Peter is a technical writer for Apress and Packt Publishing, courseware
author for Microsoft and several training partners.
@pdtit [email protected]
@007FFFLearning http://www.007FFFLearning.com
Event partners
Expopartners
Expo lightpartners
Session Objectives
❑ The journey to the cloud using containers
❑ Unwrapping the Container Alphabet Soup
❑ Demos
❑ Q&A
❑ Docker (DCK)
❑ Azure Container Registry (ACR)
❑ Azure Container Instance (ACI)
❑ Azure Container Services (ACS)
❑ Azure Kubernetes Services (AKS)
Journey to the cloud using Containers
The journey to the cloud
Digital Transformation – started years ago already
Fro
m o
n-p
rem
ises
syst
em
s to
clo
ud
ap
plica
tio
ns
Existing on-premises
infrastructure and applications
VMs
Rehost
Containers
Refactor
Microservices
Rearchitect
Serverless
Rebuild
or New
SaaS apps
Replace
App Modernization
What are containers?
• Virtualize the hardware
• VMs as units of scaling
• Hypervisor dependent
• Not easily movable
Virtual machines
App
Containers
• Virtualize the operating system
• Applications as units of scaling
• Platform independent
• Easily movable across environments
(on-premises, multi-cloud)
Container
App
Physical Server
Host Operating System
Hypervisor
App App
Binaries & Libraries
Binaries & Libraries
Binaries & Libraries
Guest VM Operating
System
Guest VM Operating
System
Guest VM Operating
System
Physical Server
Host Operating System
Docker Engine
Binaries & LibrariesBinaries & Libraries
Container
App
Container
App
Container
App
Container
App
Container
App
Container
App
Container
App
How do containers help in app modernization?
Containers are stand-alone, smaller silos of app instances, running at scale
Container
App
Existing/New
Applications
(=rehome)
Lift and shift to
containers
(= rehost, refactor)
App
Binaries & Libraries
Guest VM Operating
System
Container
App
Container
App
Container
App
Unwrapping The ContainerAlphabet Soup
Choice of developer tools and clients
Azure Container Registry Docker Hub
App Service
Deploy web apps
or APIs using
containers in a
PaaS environment
Service Fabric
Modernize .NET
applications to
microservices using
Windows Server
containers
Kubernetes Service Container Instance
Scale and orchestrate
Linux containers
using Kubernetes
Partner Ecosystem
Bring your
Partner
solutions that
run great on
Azure
Elastically burst
from your Azure
Kubernetes Service
(AKS) cluster
Running Containers on Azure: a full set of choices
Choice of developer tools and clients
Azure Container Registry Docker Hub
App Service
Deploy web apps
or APIs using
containers in a
PaaS environment
Service Fabric
Modernize .NET
applications to
microservices using
Windows Server
containers
Kubernetes Service Container Instance
Scale and orchestrate
Linux containers
using Kubernetes
Partner Ecosystem
Bring your
Partner
solutions that
run great on
Azure
Elastically burst
from your Azure
Kubernetes Service
(AKS) cluster
Running Containers on Azure: a full set of choices
Supporting
Windows 2019
Containers as of
March 30th
Docker Containers Overview (DCK)
What is Docker?
• Leading Open-Source Containerization Platform
• Natively Supported in Azure
• Cross-Platform (Win, Linux,…)
• Cross-Platform (Azure, AzureStack, AWS, GCP,…)
Docker Containers - Overview
Docker containers wrap up a piece of
software in a complete filesystem that
contains everything it needs to run: code,
runtime, system tools, system libraries –
anything you can install on a server. This
guarantees that it will always run the same,
regardless of the environment it is running
in
Source: www.docker.com
Host
Docker High-Level ArchitectureDocker Concepts
Docker build
Docker pull
Docker Run
Docker …
Client
Docker Daemon / Docker Service
Containers Images
Docker Hub
Azure Container
Registry
(Any Cloud)
Container
Registry
Registry1 2 3
Docker Host
On top of a « Docker » cloud platform:
• Azure Container Instance
• Azure Container Services
• Azure Virtual Machines
• AWS, GCP,…
Where do you run your Docker Container Images?
On top of a « host » Operating System, like:
• Windows 10
• Windows Server 2016/2019
• Linux
• Mac OS
Where do Docker Images come from?
Docker Host• Create your own custom images
• « Layered Cake » of OS and App bits
• Mainly used for storing PRIVATE images
Docker Hub• Hub.docker.com
• Free resource of PUBLIC images
• Option to create PRIVATE images
Docker Hub Docker Host
Running a Docker Container
docker run -i -t ubuntu /bin/bash
Docker CLI command
Run container with interactive terminal Pull "ubuntu"
image from Docker Hub or local registry
Command to execute inside the container
Common Docker CLI operations
docker run - Use an image to run a container
docker pull - Pull an image from a registry
docker build - Build a Docker image
docker exec - Execute a command in a container
docker stop - Stop a running container
docker images - List available Docker images
docker ps - List running Docker containers
DemoCommon Docker CLI Operations
Building a Docker Image - CLI
docker build - Build a Docker image
docker images - List available Docker images
1
2
2
1
Building a Docker Image - DockerFile
FROM microsoft/aspnet:4.7.2-
windowsservercore-ltsc2016
ADD WebVMSampleSite_Docker
/inetpub/wwwroot/
EXPOSE 80
A Dockerfile is a text document that
contains all the commands a user could
call on the command line to assemble an
image. Using <docker build>, users can
create an automated build that executes
several command-line instructions in
succession.
Building a Docker Image – VS2017
When using Visual Studio 2017 together with
Docker for Windows on the same client, you
get Docker integration features in VS2017…
https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/docker/visual-studio-tools-for-docker? view=aspnetcore-2.1
DemoBuilding a Docker Image using Visual Studio 2017
Running Containers in Azure
Where do Azure Docker Images come from?Cloud Container Registry
• Library of Docker Images
• Azure Container Registry
• Mainly used for storing PRIVATE images
Docker Hub
• Hub.docker.com
• Free resource of PUBLIC images
• Option to create PRIVATE images
Azure Container Registry Docker Hub
Container Lifecycle in Azure
Container Image
Windows or Linux
1. Azure Container
Registry (ACR)
2a. Azure Container
Instance (ACI)
2b. Azure Container
Services
(ACS)
2c. Azure Kubernetes
Service
(AKS)
Run
in Azure
• Pull images from ACR and use it in
different deployment targets:
• Kubernetes | DC/OS | Swarm
• Azure compute solutions
• 3 different SKU’s:
• Basic
• Standard
• Premium
Azure Container Registry (ACR)
Azure Container Registry is a
managed Docker registry
service based on the open-
source Docker Registry 2.0.
Create and maintain Azure
container registries to store
and manage your private
Docker container images.
Azure Container Registry (ACR)
Similar to the public Docker
Hub, but running within an
Azure Subscription,
offering Private images
Azure Container Registry (ACR)
Automating OS and Framework Patching
Registry
Registryname.azurecr.io
namespace
Repository
Groups of Container
Images
Image
Read-only snapshot of a
Docker Container
Container
Software application in a
bundled file system
DemoDeploying to Azure Container Registry
Azure Container Instance (ACI)
Run Containers directly from Azure Container
Registry:
• Detailed Event Logging
• No additional Orchestration needed
• Integrates with Azure monitoring and
diagnostics capabilities
Azure Container Instances offers the fastest and
simplest way to run a container in Azure, without
having to provision any virtual machines and
without having to adopt a higher-level service.
DemoRunning an Azure Container Instance
But what if you need…
• Auto-Scaling
• Rolling Upgrades
• Service Discovery
• Integrated Load-Balancing
• Affinity / anti-affinity
• Scaling Options
• Custom Resource Sizing
• …
Orchestrator
What Container Orchestration?What tools are available?
Kubernetes DC/OS Mesosphere Docker Swarm Service Fabric
Azure Container Services (ACS)
(deprecated as of Jan 31, 2020)
What Container Orchestration in Azure?
Kubernetes DC/OS Mesosphere Docker Swarm Service Fabric
Docker
Enterprise VM
Template
DC/OS
Enterprise VM
Template
Azure
Kubernetes
Services (AKS)
What Container Orchestration in Azure?
Kubernetes DC/OS Mesosphere Docker Swarm Service Fabric
Deploying Azure Kubernetes ServicesUsing Azure CLI
az aks create --resource-group AKSnativeRG --name AKSCluster --node-
count 1 --enable-addons monitoring --generate-ssh-keys
az aks get-credentials –resource-group AKSnativeRG –name AKSCluster
Deploying Azure Kubernetes ServicesUsing Azure Portal
1. AKS Cluster
2. MC_xxxRG_
AKSCluster
Managing Azure Container ServicesKubeCTL Command Line
az aks install-cli
Kubectl get nodes
DemoRunning a Docker Container in Azure Kubernetes Services
Azure Kubernetes Service Architecture
Azure Infrastructure Services (VMs,
Networking, Storage,…)
Docker
Managed
App Developer
IT Pro - Sysadmin
• Managed Control
Plane
• Automated
upgrades and
patching
• Easy cluster scaling
• Cost Savings
Running Windows Containers on AKSRecently announced (March 30th!!)
- AKS-Engine (Open Source)
- 1. Build an Azure ARM Template
- 2. Deploy 1 Linux VM (Kubernetes Mgmt host)
- 3. Deploy 2 (or more) Windows 2019 VMs
- 4. Push containers to AKS-Engine
- 5. Run Windows Containers
- See: https://github.com/Azure/aks-engine
Q & A
More Container sessions at the conferenceIf you can’t get enough of Containers, Docker, Kubernetes,…
TUE 16.50
WED 15.00
Session Objectives
❑ The journey to the cloud using containers
❑ Unwrapping the Container Alphabet Soup
❑ Demos
❑ Q&A
❑ Docker (DCK)
❑ Azure Container Registry (ACR)
❑ Azure Container Instance (ACI)
❑ Azure Container Services (ACS)
❑ Azure Kubernetes Services (AKS)
Session
Peter De Tender @pdtit @007FFFLearning
http://www.007FFFLearning.com
Thank you! Enjoy the rest of ICC