azure container service
TRANSCRIPT
1CONFIDENTIAL
Introduction to Azure Container Service
DECEMBER 2, 2016
Alex Feschenko,SENIOR SOFTWARE ENGINEER
2CONFIDENTIAL
AGENDA
Containers are not VMs1
Working with Docker (Build, Ship, Run)
2
Container architecture3
Azure Container Service4
Q&A5
CONTAINERS ARE NOT VMS
DECEMBER 2, 2016
• Easy connection to make• Fundamentally different architectures• Fundamentally different benefits
Docker containers are NOT VMs
4
VMs
Containers
They’re different, not mutually exclusive
WS 2016 Linux
Docker + Windows Server = Windows Containers • Native Windows containers
powered by Docker Engine • Windows kernel engineered
with new primitives to support containers
• Deep integration with 2+ years of engineering collaboration in Docker Engine and Windows Server
• Microsoft is top 5 Docker open source project contributor and a Docker maintainer
Infrastructure
Windows Server 2016
Bins/Libs
App
Docker Engine
Bins/Libs
App
Bins/Libs
App
Hyper V Containers = Docker + Windows Server • Leverages same
Docker and Windows Server technology
• Flexible container deployment options available for IT pros
• One workload per Hyper V container delivers added isolation for multi-tenant or hostile environments
Infrastructure
Windows Server 2016
Bins/Libs
App
Docker Engine
Bins/Libs
App Bins/Libs
App
WS Kernel
Windows containers
Hyper V container
BUILD, SHIP, AND RUN
DECEMBER 2, 2016
Some Docker vocabularyDocker ImageThe basis of a Docker container. Represents a full application
Docker ContainerThe standard unit in which the application service resides and executesDocker Engine Creates, ships and runs Docker containers deployable on a physical or virtual, host locally, in a datacenter or cloud service providerRegistry Service (Docker Hub or Docker Trusted Registry)Cloud or server based storage and distribution service for your images
Basic Docker Commands$ docker pull nginx
$ docker images
$ docker run –d –p 5000:5000 –-name samplewebapp feschenkoalex/samplewebapp:latest
$ docker ps
$ docker stop samplewebapp (or <container id>)
$ docker rm samplewebapp (or <container id>)
$ docker rmi feschenkoalex/samplewebapp:latest
$ docker build –t feschenkoalex/samplewebapp:latest .
$ docker push feschenkoalex/samplewebapp:latest
Dockerfile – Linux ExampleInstructions on how to build a Docker image
Looks very similar to “native” commands
Important to optimize your Dockerfile
Dockerfile – Windows Example
Put it all together: Build, Ship, Run WorkflowDevelopers IT Operations
BUILDDevelopment Environments
SHIPCreate & Store Images
RUNDeploy, Manage, Scale
DEMO
DECEMBER 2, 2016
Docker basics: run/build/compose
Container Layers
• Volumes allow you to specify a directory in the container that exists outside of the union file system
• Directory persists after the container is deleted Unless you explicitly delete it
• Can be created in a Dockerfile or via CLI
• Can map to an existing directory on the host
• Can be used to share (and persist) data between containers
What about data persistence?
Docker delivers speed, flexibility and savings
+ +Agility Portability Control
State of App development Survey: Q1 2016, Cornell University case study
13X More software releases
62%Report reduction in MTTR
10X Cost reduction in maintaining
existing applications
Eliminate“works on my machine”
issues
41%Move workloads across
private/public clouds
65% Reduction in developer
onboarding time
One platform delivers one journey for all applications
1 Containerize Legacy ApplicationsLift and shift for portability and efficiency
2
3
Transform Legacy to Microservices Look for shared services to transform
Accelerate New ApplicationsGreenfield innovation
Lift and shift to containerize legacy Windows applications
• Image2Docker tool accelerates and simplifies process of containerizing existing workloads
• Gain portability of workloads in containers and migrate across hybrid cloud
• Accelerate provisioning and deployment times for existing workloads
• Available in the Powershell Gallery
Bins/Libs
App
Windows Server
Bins/Libs
App
Windows Server
Docker Engine
Bins/Libs
App
Physical or Virtual
Virtualized workloads running
on premises
Containerized and moved to virtual or bare metal on cloud
Accelerate and simplify cloud migration
Microsoft Azure
Docker Universal Control Plane
Integrated Security
Docker Engine
Docker Trusted Registry
Config Mgt Monitoring LoggingCI/CD ..more..Images Networking Volumes
Virtual Public Cloud
Containers in production with Docker Datacenter• Enterprise container
orchestration, management and security for dev and ops
• Available today for Linux environments
• Q4 2016 beta for Windows environments
Physical
GETTING STARTED
DECEMBER 2, 2016
• Create a Linux VM (or use physical), and install Docker• Requires kernel 3.10
• Stable builds• curl –sSL https://get.docker.com/ | sh
• Test and experimental builds• curl –sSL https://test.docker.com/ | sh• curl –sSL https://experimental.docker.com/ | sh
• Can also manually install (see docs)
Docker on Linux
• Easy to install, get up and running on Docker in minutes
• Leverages Hyper-V or xhyv• Requires Windows Pro 10, Enterprise, or Education
• Full API / CLI compatibility
• OS integration for increased stability and speed
Docker for Windows / Mac
• Enable the container role on Windows Server 2016
Docker on Windows Server 2016
AZURE CONTAINER SERVICE
DECEMBER 2, 2016
Azure Container ServiceAzure Container Service (ACS) provides a way to simplify the creation, configuration, and management of a cluster of virtual machines that are preconfigured to run containerized applicationsUsing an optimized configuration of popular open-source scheduling and orchestration tools, ACS enables you to use your existing skills or draw upon a large and growing body of community expertise to deploy and manage container-based applications on Microsoft Azure.
Azure Container Service
Infrastructure
Orchestrator
Application
ARM Template
Azure Container Service
DEMO
DECEMBER 2, 2016
Deploy containerized app to ACS
33CONFIDENTIAL
Thank you!