Containers are getting a lot of hype. This talk explains why developers and IT pros are excited about containers, how they make a difference to the business, the difference between the many container offerings in Azure, and a few pitfalls to avoid.
3. What we hear from developers
I need to create applications
at a competitive rate without
worrying about IT
New applications run smoothly
on my machine but malfunction
on traditional IT servers
My productivity and application
innovation become suspended
when I have to wait on IT
4. What we hear from IT
I need to manage servers
and maintain compliance
with little disruption
I’m unsure of how to integrate
unfamiliar applications, and I
require help from developers
I’m unable to focus on both
server protection and
application compliance
5. What is the Answer ?
DevOps
… but this requires cultural change
6. What is the Answer ?
Containers
… remove developer / IT friction
… reduce downtime
… grease the wheels for DevOps
7. 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
8. Virtualization Containerization
Type 1
Hardware
Hypervisor 1
VM VM VM
Hardware
Type 2
Host OS
Hypervisor 2
VM VM VM
Virtual machine
Guest OS
Dependencies
Application
Hardware
Host OS
Docker Engine
Dependency 1 Dependency 2
C C C C C
Container
App dependencies
Application XYZ
Virtualization versus containerization
9. Virtualization
Unit of Scale = VM
Containerization
Unit of Scale = Container
Hardware
Hypervisor 1
Virtual machine
Hardware
Container (300mb)
App dependencies
Application XYZ
Virtualization versus containerization
(To roughscale)
Guest OS
(Windows - 16 Gb)
Docker Engine
Guest OS
Virtual machine
Guest OS
(Windows - 16 Gb)
10. The container advantage
Hardware
Host OS
Hypervisor 2
VM VM
Application ApplicationCon. Con.
Traditional virtualized environment
Con. Con.
Low utilization of container resources
Containerization of applications and
their dependencies
11. The container advantage
Hardware
Host OS
Docker Engine
VMVM
Con.
Con.
Con.
Con.
Containerized environment
Migrate containers and their
dependencies to underutilized VMs
for improved density and isolation
Decommission unused resources for
efficiency gains and cost savings
12. Industry analysts agree
“By 2020, more than 50% of enterprises will run
mission-critical, containerized cloud-native applications
in production, up from less than 5% today.”
14. Container development workflow
Code your app Write Dockerfile Create Images
from Dockerfile
Virtual Machine
Test App or service
Base Image
Library
Base
Images
Your Image
Library
Your
Images
Run container
Your
Container
Push or continue
developing
Simple Dockerfile
FROM microsoft/aspnetcore-build:1.1
WORKDIR /app
# Copy the published web app
COPY /aspnet-core-dotnet-core/ /app
# Run command
ENTRYPOINT ["dotnet", "aspnet-core-dotnet-core.dll"]
17. If you have a preferred container platform
Pivotal Cloud Foundry Kubernetes Docker Enterprise Edition
Red Hat OpenShift Mesosphere DC/OS
Lets help you bring that platform to Azure
18. Azure Container Instances (ACI)
Containers
101
Azure
container
technology
Container
orchestration
Azure
Container
Service (AKS)
Azure Container
Instances
(ACI)
Azure
Container
Registry
Open Service
Broker for
Azure (OSBA)
Release
automation
tools
Open source
community
Customer
success
stories
Getting
started
19. Azure Container Instances (ACI) PREVIEW
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
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 Container
Service (AKS)
ACS
Engine
Batch
Azure Virtual
Machines
Virtual Machine
Scale Sets
(VMSS)
Service Fabric
Virtual kubelet
App Service
Azure Container
Instances (ACI)
20. Azure Container Instances (ACI)
Easily run containers on Azure with a single command
Cloud-scale
container capacity
Hyper-visor
isolation
Start using
containers right away
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
21. Azure Container Instances (ACI)
Event Driven Apps Data ProcessingElastic bursting for
AKS
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
The quickest and easiest way to get a container up and
running in the cloud.
22. Get started easily
$ az container create --name mycontainer --image microsoft/aci-helloworld --
resource-group myResourceGroup --ip-address public
$ curl 52.168.86.133
Azure Container Instances (ACI) Demo
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
23. Create an Azure Container Instance quickly
Azure Container Instances (ACI)Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
25. The elements of orchestration
Scheduling Affinity/anti-
affinity
Health
monitoring
Failover
Scaling Networking Service
discovery
Coordinated
app upgrades
27. Kubernetes: empowering you to do more
Deploy your
applications quickly
and predictably
Scale your
applications on
the fly
Roll out
new features
seamlessly
Limit hardware
usage to required
resources only
28. Azure Container Service (AKS)
Containers
101
Azure
container
technology
Container
orchestration
Azure
Container
Service (AKS)
Azure Container
Instances
(ACI)
Azure
Container
Registry
Open Service
Broker for
Azure (OSBA)
Release
automation
tools
Open source
community
Customer
success
stories
Getting
started
29. Azure Container Service (AKS)Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
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 Container
Service (AKS)
ACS
Engine
30. Azure Container Service (AKS)
Simplify the deployment, management, and
operations of Kubernetes
Work how you
want with open-
source APIs
Scale and run
applications with
confidence
Focus on your
containers not the
infrastructure
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
31. Azure Container Service (AKS)
A fully managed Kubernetes cluster
Managed
Azure infrastructure services
Docker
Kubernetes
• Managed control pane
• Automated upgrades, patches
• Easy cluster scaling
• Self-healing
• Cost savingsApplication
architect
Infrastructure
architect
Applications
Operations
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
32. Azure Container Service (AKS)
Get started easily
$ az aks create
$ az aks install-cli
$ az aks get-credentials
$ kubectl get nodes
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
33. Azure Container Service (AKS)
Manage an AKS cluster
$ az aks list
$ az aks upgrade
$ kubectl get nodes
$ az aks scale
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
34. Azure Container Service (AKS)
Create an AKS cluster via the Azure portal
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
35. Azure Container Service (AKS)
Azure Container Service Engine
Enables custom
deployments
Available
on GitHub
A proving ground
for new features
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
36. ACI provides infinite
container-based scale
The ACI Connector for
K8s brings them
together
Kubernetes provides rich
orchestration capabilities
Azure Container Instances (ACI)
ACI Connector for Kubernetes
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
37. Bursting with the ACI Connector
Kubernetes
control pane
Application
architect
Infrastructure
architect
Azure Container Instances (ACI)
ACI
Connector
Pod
Pod Pod
Pod
Pod Pod
Pod
Pod Pod
Pod
Pod Pod
VM VM
VM VM
Deployment/
tasks
Pod Pod Pod Pod Pod
Pod Pod Pod Pod Pod
Pod Pod Pod Pod Pod
Pod Pod Pod Pod Pod
Pod Pod Pod Pod Pod
Azure Container Instances (ACI)Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
WasteWaste
WasteWaste PodPod
PodPod
38. Kubernetes API
Node Node Node Node
virtual
kubelet
Kubelet Kubelet Kubelet Kubelet
Typical kubelets implement the
pod and container operations
for each node as usual.
Virtual kublet registers itself as
a “node” and allows developers to
program their own behaviors for
operations on pods and containers.
Azure Container Instances (ACI)
Virtual Kubelet
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
39. Azure Container Service (AKS)
Resources
Container Orchestration Simplified with AKS
Kubernetes Support in Azure Container Services
• Azure Container Service (AKS) webpage
• AKS videos
• AKS technical documentation
• AKS pricing details
• AKS roadmap
• Azure Container Service Engine: Github
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
44. • Azure Container Service (AKS)
• Azure Container Instances (ACI)
• Azure Container Registry
• OSBA announcement blog
• Draft webpage
• Helm webpage
• Brigade webpage
• Kashti announcement blog
Check out resources
Sign up for a free Azure account
Hone your skills with Azure training
Check out the Azure container videos page
Get the code from GitHub
45. Connect with us
Core team
PM: Gabe Monroy, @gabrtv
PM: Sean McKenna
OSS: David Dennis
PMM: Anand Chandramohan
DX: Jim Zimmerman
CDA: Bryan Liston
Community
Brendan Burns, @brendandburns
Michelle Noorali
Partner team
Morgan Pettis
Leon Jones
Dan Sandlin
48. Products and services Organization size Industry Country Business need
Energy company
electrifies pace of
innovation and
expansion
Ambit Energy provides electricity and natural-gas services in deregulated markets around the world. It uses
technology as a competitive differentiator, employing microservices, DevOps, and continuous deployment
to speed software development. To stand up infrastructure just as quickly, Ambit uses Microsoft Azure
services such as Azure Container Service, together with infrastructure as code and open source
technologies, to completely automate infrastructure provisioning. By implementing Azure, Ambit can move
dramatically faster to enhance its services and enter new markets. Infrastructure redundancy is flexible and
worry-free. And costs are 22 percent lower, which helps Ambit compete in the crowded electricity market.
Because Ambit’s cloud journey is gradual, it appreciates the fact that Azure is a great hybrid-cloud enabler,
connecting easily to Ambit datacenters.
Optimize operational
efficiency
United StatesPower and utilities1,000 employeesMicrosoft Azure Container
Service
49. Products and services Organization size Industry Country Business need
Siemens Health
leverages technology
to connect medical
devices to the cloud
through AKS
Digitization and networking between healthcare providers and software development companies are essential
to value-based care. Moving from the development of value-added services into becoming more of a platform
provider, it became important for Siemens to adopt a microservices approach to application delivery. To that
end, Siemens adopted Azure Container Service (AKS) to run their microservices-based apps. AKS puts Siemens
in a position not only to deploy business logic in Docker containers—including the orchestration—but also
enables them to use an applicant gateway and API management to manage exposure, control, and to meter
the access continuously. With their cloud-based development approach, Siemens has driven newfound
product development agility. This project is already having a positive impact within the healthcare industry.
Faster application
development
GermanyHealthcare100,000+ employeesMicrosoft Azure Container
Service
51. Azure Container RegistryAzure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
IaaSPaaS
Azure services
SQL Database
Redis Cache
CosmosDB
And more!
Partner services
OpenShift
Pivotal Cloud
Foundry
Docker Enterprise
Edition
Mesosphere
DC/OS
Azure
OSBA
Azure Container
Service (AKS)
ACS
Engine
Batch
Azure Container
Instances (ACI)
Azure Virtual
Machines
Virtual Machine
Scale Sets
(VMSS)
Service Fabric
Virtual kubelet
App Service Azure
Container
Registry
(ACR)
52. Azure Container Registry
Manage a Docker private registry as a first-class Azure resource
Use familiar, open-
source Docker CLI tools
Azure Container Registry
geo-replication
Manage images for all
types of containers
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
53. Demo: Azure Container Registry
Create a container in the Registry quickly
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
54. Open Service Broker for Azure
Containers
101
Azure
container
technology
Container
orchestration
Azure
Container
Service (AKS)
Azure Container
Instances
(ACI)
Azure
Container
Registry
Open Service
Broker for
Azure (OSBA)
Release
automation
tools
Open source
community
Customer
success
stories
Getting
started
55. Open Service Broker for Azure (OSBA)Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
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)
Azure Container
Service (AKS)
ACS
Engine
Batch
Azure Container
Instances (ACI)
Azure Virtual
Machines
Virtual Machine
Scale Sets
(VMSS)
Service Fabric
Virtual kubelet
App Service
OSBA
56. Open Service Broker for Azure (OSBA)
Connecting containers to Azure services and platforms
Simple and flexible
service integration
Compatible across
numerous platforms
A standardized way to
connect with Azure services
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
57. Open Service Broker for Azure (OSBA)
An implementation of the Open Service Broker API
OpenShift Cloud Foundry Service Fabric
(Coming soon)
Kubernetes
(AKS)
Azure SQL Database Redis Cache CosmosDB And more!
Open Service Broker
for Azure (OSBA)
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
58. Open Service Broker for Azure (OSBA)
OSBA in action
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
59. Open Service Broker for Azure (OSBA)
Getting started with ease
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
60. Open Service Broker for Azure (OSBA)
Resources
• OSBA announcement blog
• OSBA on GitHub
• Integrating with Azure-managed
services using OSBA
Open Service Broker for Azure
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
62. Release automation tools
Simplifying the Kubernetes experience
Streamlined
Kubernetes
development
The package
manager for
Kubernetes
Event-driven
scripting for
Kubernetes
Visualization
dashboard for
Brigade
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
63. Release automation workflow
New directory Add a code file Draft create
Deploy code
container
chart
Draft upDraft commit
Does it
work?
Git push
No
Yes
New code directory Create a code file Draft creates a dockerfile
and a Helm chart for
service composition
CI/CD
Draft helps devs get running
Draft helps devs and operations iterate on containers and services
Artifacts push to cloud, controlled by CI/CD processes
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
64. Release automation workflow
Once developers are up and running—or working on a service that is in a complex system—Draft ALSO helps
devs ignore artifacts and focus on code
Get clone Draft pack-reps Draft create
Debug
Draft up
Does it
work?
Git push
No
Yes
CI/CD
Draft helps devs get running
Draft helps devs and operations iterate on containers and services
Artifacts push to cloud, controlled by CI/CD processes
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
65. Release automation workflow
Create
Have
code?
Code
Container
Configuration
No
Yes
New Draft page
Change
• Code
• Container
• Configuration
Git push Pull code
Build
container
Push image
Deploy
image (AKS)
Staged?
Canary deploy
to production
Deploy to
staging
Testing
good?
Push to
production
as canary
Move to
dev cluster
No
Telemetry
successful?
Rollout
Yes
Rollback
No
Yes
No
Yes
DraftcreateorDraft
create-pack(ifspecific
artifactsexist)
Draft create
Actualdevelopment,
Draftup/connect
iteration
Code/artifacts ready
Thebuildingprocess:Brigade,Jenkins,VSTS
CD: No staging
Builds image/config.
to be deployed
2 factor
authentication
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
66. Draft
Simple app development and deployment – into
any Kubernetes cluster
Simplified development
Using two simple commands, developers
can now begin hacking on container-based
applications without requiring Docker or
even installing Kubernetes themselves
Language support
Draft detects which language your app is
written in, and then uses packs to
generate a Dockerfile and Helm Chart
with the best practices for that language
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
67. Draft
Draft in action
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
68. Helm
The best way to find, share, and use software
built for Kubernetes
Manage complexity
Charts can describe complex
apps; provide repeatable
app installs, and serve as a
single point of authority
Easy updates
Take the pain out
of updates with in-
place upgrades and
custom hooks
Simple sharing
Charts are easy to
version, share, and host
on public or private
servers
Rollbacks
Use helm rollout to
roll back to an older
version of a release
with ease
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
69. Helm
Helm Charts helps you define, install, and upgrade
even the most complex Kubernetes application
custom
services
Chart.yml
db
load balancer
ci
…
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
70. Brigade
Run scriptable, automated tasks in the cloud — as
part of your Kubernetes cluster
Simple, powerful pipes
Each project gets a brigade.js
config file, which is where you can
write dynamic, interwoven pipelines
and tasks for your Kubernetes cluster
Runs inside your cluster
By running Brigade as a service inside
your Kubernetes cluster, you can
harness the power of millions of
available Docker images
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
71. Brigade
Brigade in action
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
72. Kashti
A simple UI to display build results and logs
Simple visualizations
A web dashboard for Brigade, helping
to easily visualize and inspect your
Brigade builds
Driving deep insights
Make Brigade DevOps workflows—
projects, scripts, and jobs—and their
events visible instantly
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
73. Kashti
Dashboards for Brigade pipelines
Builds dashboard Events log
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
74. Release automation tools
Resources
• Draft webpage
• Helm webpage
• Brigade webpage
• Kashti announcement blog
Brigade Demo with Kashti dashboard
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools