Navigating in the sea of Containers
in Azure: when to choose which
service and why?
Karl Ots, Azure MVP
Kompozure
Karl Ots
• Cloud & cybersecurity consultant
• Working on Azure since 2011
• Patented inventor
• Organizing Finland Azure User Group and
IglooConf
• Podcast host at Cloud Gossip
Agenda
• Container & Orchestration 101
• Containers in Azure
• Tooling
• Roadmap
First, a walk down the memory lane
History
• Brendan Burns joined Microsoft in 2016
• Gabe Monroy joined Microsoft in 2017 (Deis acquisition)
• Major focus on supporting open source in the cloud
What is a container?
Containers = operating system virtualization
OS
Kernel
Applications
Container Container Container
Hardware
Traditional virtual machines = hardware virtualization
Hardware
OS
Application
VM VM VM
App
OS
App
OS
App
OS
Container orchestration
• Creating a single container is easy (especially when using Docker
containers), even doing an application with 4 or 5 containers is easy
• As soon as you get to production workloads with 10’s or hundreds
of container images, scaling to thousands of running containers it
gets hard
• Orchestrator takes your containers and deploys them within a pool
of virtual machines, then monitor their health as they run, load
balancing them as required.
• Historically orchestrators have been a pretty big pain to set up since
each has a set of specific dependencies and expects a particular
topology
Azure container strategy
Embrace containers
as ubiquitous
Support containers
across the compute
portfolio
Democratize
container technology
Azure container ecosystem
IaaSPaaS
Azure services
SQL Database
Redis Cache
CosmosDB
And more!
Partner services
OpenShift
Pivotal Cloud
Foundry
Docker Enterprise
Edition
Mesosphere
DC/OS
Azure
Azure
Container
Registry
(ACR)
OSBA
Azure Kubernetes
Service (AKS)
ACS
Engine
Batch
Azure Container
Instances (ACI)
Azure Virtual
Machines
Virtual Machine
Scale Sets
(VMSS)
Service Fabric
Virtual kubelet
App Service
Containers in Azure
• Azure Container Instance
• Create a container from an Azure image without worrying about virtual machines
underneath
• az container create --resource-group myResourceGroup --name mycontainer --image
microsoft/aci-helloworld --cpu 1 --memory 1 --ip-address public --ports 80
• Azure Container Registry
• Store your Docker images in a private registry as a service
• Azure Container Service
• Create DC/OS, Swarm or Kubernetes cluster in Azure
Azure Container Instances (ACI)
$ az container create --name mycontainer --image
microsoft/aci-helloworld --resource-group myResourceGroup --
ip-address public
DEMO
Azure Container Instances
Azure Kubernetes Service (AKS)
IaaSPaaS
Azure services
SQL Database
Redis Cache
CosmosDB
And more!
Partner services
OpenShift
Pivotal Cloud
Foundry
Docker Enterprise
Edition
Mesosphere
DC/OS
Azure
Azure
Container
Registry
(ACR)
OSBA
Batch
Azure Container
Instances (ACI)
Azure Virtual
Machines
Virtual Machine
Scale Sets
(VMSS)
Service Fabric
Virtual kubelet
App Service
Azure Kubernetes
Service (AKS)
ACS
Engine
Azure Kubernetes Service (AKS)
• Kubernetes control plane as a service
• Master nodes managed by Microsoft
• Automatic upgrades
• Self-healing Masters
• Easy Cluster scaling
• Etcd SSD-backed with HA and backup/restore support
• Standard upstream Kuberenetes
Azure Kubernetes Service (AKS)
$ az aks create
• -c == count of nodes / agents
• Default 3, minimum 1
• -k == kubernets version you want
• -s == node vm size (default standard ds1_v2)
• --ssh-key-value my public key
$ az aks get-credentials
• Retrieves kubeconfig info from cluster and appends into current local kubeconfig
$ kubectl get nodes
DEMO
Azure Kubernetes Service
Azure Kubernetes Service (AKS)
$ az aks list
$ az aks upgrade
$ kubectl get nodes
$ az aks scale
Tools
• az cli
• shell.azure.com
• VSCode
• VSCode extensions:
• vs-kubernetes
• vs-helm
Tools, continued
• Draft for containment and
service composition
• Helm for application
deployment and package
management
• Brigade for automating critical
developer and operations tasks
• Kashti: Visualization dashboard
for Brigade
“Serverless” Kubernetes?
Resources
• Play with Docker
• https://training.play-with-docker.com/
• Azure Container Service documentation
• https://github.com/Azure/acs-engine/blob/master/docs/kubernetes.md
• Azure Kubernetes Service Commands
• https://docs.microsoft.com/en-us/cli/azure/aks?view=azure-cli-latest
• Using ACI with Kubernetes
• https://azure.microsoft.com/en-gb/resources/videos/using-kubernetes-with-azure-
container-instances/
• All things Microsoft and Open Source
• https://open.microsoft.com/
• Podcast: Brendan Burns and Gabe Monroy on Impact and Future of Kubernetes (KubeCon +
CloudNativeCon 2017)
• https://changelog.com/podcast/282
Thank you!
Thank you!

Navigating in the sea of containers in azure when to choose which service and why

  • 1.
    Navigating in thesea of Containers in Azure: when to choose which service and why? Karl Ots, Azure MVP Kompozure
  • 2.
    Karl Ots • Cloud& cybersecurity consultant • Working on Azure since 2011 • Patented inventor • Organizing Finland Azure User Group and IglooConf • Podcast host at Cloud Gossip
  • 3.
    Agenda • Container &Orchestration 101 • Containers in Azure • Tooling • Roadmap
  • 4.
    First, a walkdown the memory lane
  • 5.
    History • Brendan Burnsjoined Microsoft in 2016 • Gabe Monroy joined Microsoft in 2017 (Deis acquisition) • Major focus on supporting open source in the cloud
  • 6.
    What is acontainer? Containers = operating system virtualization OS Kernel Applications Container Container Container Hardware Traditional virtual machines = hardware virtualization Hardware OS Application VM VM VM App OS App OS App OS
  • 7.
    Container orchestration • Creatinga single container is easy (especially when using Docker containers), even doing an application with 4 or 5 containers is easy • As soon as you get to production workloads with 10’s or hundreds of container images, scaling to thousands of running containers it gets hard • Orchestrator takes your containers and deploys them within a pool of virtual machines, then monitor their health as they run, load balancing them as required. • Historically orchestrators have been a pretty big pain to set up since each has a set of specific dependencies and expects a particular topology
  • 8.
    Azure container strategy Embracecontainers as ubiquitous Support containers across the compute portfolio Democratize container technology
  • 9.
    Azure container ecosystem IaaSPaaS Azureservices SQL Database Redis Cache CosmosDB And more! Partner services OpenShift Pivotal Cloud Foundry Docker Enterprise Edition Mesosphere DC/OS Azure Azure Container Registry (ACR) OSBA Azure Kubernetes Service (AKS) ACS Engine Batch Azure Container Instances (ACI) Azure Virtual Machines Virtual Machine Scale Sets (VMSS) Service Fabric Virtual kubelet App Service
  • 10.
    Containers in Azure •Azure Container Instance • Create a container from an Azure image without worrying about virtual machines underneath • az container create --resource-group myResourceGroup --name mycontainer --image microsoft/aci-helloworld --cpu 1 --memory 1 --ip-address public --ports 80 • Azure Container Registry • Store your Docker images in a private registry as a service • Azure Container Service • Create DC/OS, Swarm or Kubernetes cluster in Azure
  • 11.
    Azure Container Instances(ACI) $ az container create --name mycontainer --image microsoft/aci-helloworld --resource-group myResourceGroup -- ip-address public
  • 12.
  • 13.
    Azure Kubernetes Service(AKS) IaaSPaaS Azure services SQL Database Redis Cache CosmosDB And more! Partner services OpenShift Pivotal Cloud Foundry Docker Enterprise Edition Mesosphere DC/OS Azure Azure Container Registry (ACR) OSBA Batch Azure Container Instances (ACI) Azure Virtual Machines Virtual Machine Scale Sets (VMSS) Service Fabric Virtual kubelet App Service Azure Kubernetes Service (AKS) ACS Engine
  • 14.
    Azure Kubernetes Service(AKS) • Kubernetes control plane as a service • Master nodes managed by Microsoft • Automatic upgrades • Self-healing Masters • Easy Cluster scaling • Etcd SSD-backed with HA and backup/restore support • Standard upstream Kuberenetes
  • 15.
    Azure Kubernetes Service(AKS) $ az aks create • -c == count of nodes / agents • Default 3, minimum 1 • -k == kubernets version you want • -s == node vm size (default standard ds1_v2) • --ssh-key-value my public key $ az aks get-credentials • Retrieves kubeconfig info from cluster and appends into current local kubeconfig $ kubectl get nodes
  • 16.
  • 17.
    Azure Kubernetes Service(AKS) $ az aks list $ az aks upgrade $ kubectl get nodes $ az aks scale
  • 18.
    Tools • az cli •shell.azure.com • VSCode • VSCode extensions: • vs-kubernetes • vs-helm
  • 19.
    Tools, continued • Draftfor containment and service composition • Helm for application deployment and package management • Brigade for automating critical developer and operations tasks • Kashti: Visualization dashboard for Brigade
  • 20.
  • 21.
    Resources • Play withDocker • https://training.play-with-docker.com/ • Azure Container Service documentation • https://github.com/Azure/acs-engine/blob/master/docs/kubernetes.md • Azure Kubernetes Service Commands • https://docs.microsoft.com/en-us/cli/azure/aks?view=azure-cli-latest • Using ACI with Kubernetes • https://azure.microsoft.com/en-gb/resources/videos/using-kubernetes-with-azure- container-instances/ • All things Microsoft and Open Source • https://open.microsoft.com/ • Podcast: Brendan Burns and Gabe Monroy on Impact and Future of Kubernetes (KubeCon + CloudNativeCon 2017) • https://changelog.com/podcast/282
  • 22.