7. IT Pros for the past 20 years
▪ Install Windows $VERSION
▪ Install IIS + furiously configure
settings
▪ Install SQL Server $VERSION
▪ Install service pack
▪ Install hotfix 1-9999
▪ Install cumulative updates 1-57
▪ Reboot server 27 times
8. What is a container, exactly?
Apps & services, along with configuration data are packaged
together as a container image.
Uses OS-level virtualisation, where the kernel allows multiple
user-space instances. These are called containers.
Programs running inside a container only see the container’s
contents – so container’s C:Temp is not host-machines
C:Temp
Containers, just like shipping containers can contain different
code and dependencies. Deploying across environments is easy.
9. What is this Docker thing, then?
Glad that you asked!
Docker is an open-source project, but also a company.
You use Docker to run and develop containers locally.
You can also host your container images using Docker.
You can also run your container images in Azure using
numerous different services – depending on your need.
10. Installing Docker on Windows
You’ll need Docker installed locally if you want to create
your own container images (such as for running your
custom code in a container)
Supported for Windows 10 and Windows Server (2016
and newer)
Windows 10 requires Docker Desktop
https://www.docker.com/products/docker-desktop
Windows Servers require Docker Enterprise
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
Install-Package -Name docker -ProviderName DockerMsftProvider -Force
12. Fun fact: Twistlock
Invented by Keith Walton Tantlinger
But he also co-invented the shipping
container:
About 90 % of what you own is
delivered via shipping containers.
He invented the twistlock locking
system that securely fastens
containers during shipping and transit.
15. But I don’t need these, I have:
Virtual Machines! They RULE!
Physical servers!
Local datacenters!
Cloud.. thingies! Running cloud stuff!
16. Do I have to be a developer to
use containers?
No. Not really.
Well, perhaps it would help.
Visual Studio allows you to create a
Docker container. You can also use
containers others have created and shared
– such as those on Docker Hub.
19. Understanding Azure Container Instances
Azure Container Instances (ACI) allow you to run
containers in Azure
You can spin up one or many containers, in a
container group
You don’t need to worry about VMs, but you can
specify RAM and vCPU values
Preferred container base is Linux; Windows Server is
in preview, and has some limitations (no VNET, GPU
resources etc)
20. How much does it cost to use ACI?
Billing model is based on seconds:
• Per GB-s – starting from 0.0000012 €
• Per vCPU-s – starting from 0.0000109 €
1 second to run your custom container, with 1 GB of
RAM and 1 vCPU will cost you 0.01 €
2629743 seconds (1 month) to run the same custom
container, will cost you 28.71 €
21. Understanding Azure Container Registry
Azure Container Registry (ACR) allows you to create
private Docker container repositories – or registries
Based on Docker 2.0 – it’s a collection of your Docker
images ready to be spun up in ACI. Storage, in a sense.
Can include Windows and Linux-based container
images.
Can also help you build containers with ACR Tasks
(build, test, patch)
22. Provisioning ACR and ACI using Azure CLI
Provision ACR
az acr create
--resource-group container-rg
--name myacr
--sku Basic
--location westeurope
Provision ACI
az container create
--resource-group container-rg
--name mycontainer
--image $ACR_LOGIN_SERVER/containerimage:tag
--ports 80
23. Understanding Azure Key Vault
Azure Key Vault (AKV) is a service used to safeguard secrets –
passwords, connection strings, certificate keys, and similar
Azure Key Vault is required for us to securely access ACR using a
service principal. This way ACI can access ACR securely.
To provision Azure Key Vault using Azure CLI:
az keyvault create
--resource-group container-rg
--name myakv
25. 2
3
4
5
6
Get familiar with Azure CLI
Where to run it, and how to effectively
provision services and deploy containers
Test your containers with HTTP
HTTPS is important, but first – make sure
everything else works over HTTP
Shut down idle container groups
Perhaps build automation for this
Always use scripts to provision
Too many times you run into issues that are hard
to track if you clickety-click through the Portal
Run containers locally first
If it works locally, there’s a great chance it will run
in the cloud, too
Contain yourself
Not everything is resolved with containers, so stick
to other approaches when you need to
1
Survival guide for Azure Container Instances
26. Where to go from here?
Azure Container Instances documentation
http://bit.ly/acidocs
Azure Container Registry documentation
http://bit.ly/acrdocs
Tobias Zimmergren’s + Jussi’s in-depth walkthrough
http://bit.ly/tobijussi
Advanced ACI scenarios
http://bit.ly/aciadvanced