Top Banner
Windows Server 2016: Introducing Containers David Giard Senior Technical Evangelist Microsoft
52

Containers

Jan 13, 2017

Download

Data & Analytics

David Giard
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Containers

Windows Server 2016:Introducing ContainersDavid GiardSenior Technical EvangelistMicrosoft

Page 2: Containers

Module AgendaWhat are Containers?Integrating with DockerDevelopment with ContainersContainer use casesMicrosoft Container runtimesSummary and resources

Page 3: Containers

@DavidGiard

What are containers?

Page 4: Containers

@DavidGiard

ContainersA new approach to build, ship, deploy, and instantiate applications

Physical

Applications traditionally built and deployed onto physical systems with 1:1 relationshipNew applications often required new physical systems for isolation of resources

Higher consolidation ratios and better utilizationFaster app deployment than in a traditional, physical environmentApps deployed into VMs with high compatibility successApps benefited from key VM features i.e., live migration, HA

Physical/VirtualKey benefitsFurther accelerate of app deploymentReduce effort to deploy appsStreamline development and testingLower costs associated with app deploymentIncrease server consolidation

Package and run apps withincontainers

Virtual

Page 5: Containers

@DavidGiard

Why containers?Applications are fueling innovation in today’s cloud-mobile world

Developers• Containers unlock ultimate productivity and freedom• Enable ‘write-once, run-anywhere’ apps• Can be deployed as multi-tier distributed apps in

IaaS/PaaS models • Containers offers powerful abstraction for

microservices

Operations• Enhances familiar IT deployment models• Provide standardized environments for

development, QA, and production teams

• Abstract differences in OS distributions and underlying infrastructure

• Higher utilization and compute density• Rapid scale-up and scale-down in response to

changing business needs

DevOps• Integrate people, process, and tools

for an optimized app development process

• Operations focus on standardized infrastructure

• Developers focus on building, deploying, and testing apps

Page 6: Containers

@DavidGiard

ContainersIsolated runtime environment for hosted applicationsDependenciesEvery application has its own dependencies which includes both software (services, libraries) and hardware (CPU, memory, storage)

VirtualizationContainer engine is a light weight virtualization mechanism which isolates these dependencies per each application by packaging them into virtual containers

Shared host OSContainer runs as an isolated process in user space on the host OS, sharing the kernel with other containers

FlexibleDifferences in underlying OS and infrastructure are abstracted away, streamlining ‘deploy anywhere’ approach

FastContainers can be created almost instantly, enabling rapid scale-up and scale-down in response to changes in demand

Container

App ABins/Libraries

App BBins/Libraries

Container Management Stack

Host OS with Container Support

Server

Page 7: Containers

@DavidGiard

FlexibleVMs can be migrated to other hosts to balance resource usage and for host maintenance, without downtime

SecureHigh levels of resource and security isolation for key virtualized workloads

ContainersHow do they differ from virtual machines?

DependenciesEach virtualized app includes the app itself, required binaries and libraries and a guest OS, which may consist of multiple GB of data

Independent OSEach VM can have a different OS from other VMs, along with a different OS to the host itself

Virtual machine

App ABins/Libraries

App BBins/Libraries

Hypervisor

Server

Guest OSGuest OS

Page 8: Containers

@DavidGiard

Container ecosystem

Container Runtime

Linux

Container Images Image Repository

Application Framework

Application

Page 9: Containers

@DavidGiard

Container runtime

Operating System OS Image

Physical host

Page 10: Containers

@DavidGiard

Container runtimeHost Operating System

Hardware Virtualization

Operating System

Operating System OS Images

Virtual machine(s)

Page 11: Containers

@DavidGiard

Container runtime

Host Operating System

Containers

Page 12: Containers

@DavidGiard

Container runtime

Host Operating System

OS Image

Hardware Virtualization

Virtual machine(s)

Guest Operating System

Containers

Page 13: Containers

@DavidGiard

Local Repository

Image creation

Container ViewContainer OS

ImageC:\Windows\*

Page 14: Containers

@DavidGiard

Local Repository

Image creation

C:\Windows\*

Empty

Container ViewContainer OS

Image

SandboxC:\Windows\*

Page 15: Containers

@DavidGiard

Local Repository

Image creation

C:\Windows\*

Empty

Container ViewContainer OS

Image

SandboxC:\Windows\*

C:\nodeJS

Page 16: Containers

@DavidGiard

Local Repository

Image creation

C:\Windows\*

C:\nodeJs

Container ViewContainer OS

Image

SandboxC:\Windows\*C:\nodeJS

C:\nodeJS

Page 17: Containers

@DavidGiard

Local Repository

Image creation

C:\Windows\*

C:\nodeJs

Container ViewContainer OS

Image

Sandbox

Page 18: Containers

@DavidGiard

Local Repository

Image creation

C:\Windows\*

C:\nodeJs

Container View

Application Framework Application

Framework

Container OS Image

Page 19: Containers

@DavidGiard

Local Repository

Image creation

C:\Windows\*

C:\nodeJs

Empty

Container View

Application Framework Application

Framework

Container OS Image

Sandbox

C:\Windows\*C:\nodeJS

Page 20: Containers

@DavidGiard

Local Repository

Image creation

C:\Windows\*

C:\nodeJs

Empty

Container View

Application Framework Application

Framework

Container OS Image

Sandbox

C:\Windows\*C:\nodeJS

C:\myApp

Page 21: Containers

@DavidGiard

Local Repository

Image creation

C:\Windows\*

C:\nodeJs

C:\myApp

Container View

Application Framework Application

Framework

Container OS Image

Sandbox

C:\Windows\*C:\nodeJSC:\myApp

C:\myApp

Page 22: Containers

@DavidGiard

Local Repository

Image creation

C:\Windows\*

C:\nodeJs

C:\myApp

Container View

Application Framework Application

Framework

Container OS Image

Sandbox

Page 23: Containers

@DavidGiard

Local Repository

Image creation

C:\Windows\*

C:\nodeJs

C:\myApp

Container View

Application Framework Application

Framework

Application Image

Container OS Image

Page 24: Containers

@DavidGiard

Automate with PowerShell

Page 25: Containers

@DavidGiard

Integrating with Docker

Page 26: Containers

@DavidGiard

Run anywhere

Docker integrationJoint strategic investments to drive containers forwardDockerAn open source engine that automates the deployment of any application as a portable, self-sufficient container that can run almost anywhere

PartnershipEnable the Docker client to manage multi-container applications using both Linux and Windows containers, regardless of the hosting environment or cloud provider

CustomerDatacenter

ServiceProvider

MicrosoftAzureDocker

Dockerized app

Container

Windows ServerContainer

LinuxContainer

Investments in Windows Server 2016Open source development of theDocker Engine for Windows Server

Azure support for the Docker open orchestration APIsFederation of Docker Hub images into the Azure Gallery and Portal

Strategicinvestments

Page 27: Containers

@DavidGiard

Development with Containers

Page 28: Containers

@DavidGiardLocal Repository

Development process using containers

Central Repository

Application Framework

Page 29: Containers

@DavidGiardLocal Repository

Application Framework

Development process using containers

Central Repository

Application Framework

Developers can choose desired application frameworks and pull them locally from central repositories

Page 30: Containers

@DavidGiardLocal Repository

Application Framework

Development process using containers

Central Repository

Application Framework

Developers can choose desired application frameworks and pull them locally from central repositories

Required dependencies are automatically identified and pulled locally

Page 31: Containers

@DavidGiardLocal Repository

Application Framework

Development process using containers

Developers use the same programming languages and environments they are accustomed to

Central Repository

Application Framework

using System;class Program{ static void Main() {

}}

Page 32: Containers

@DavidGiardLocal Repository

Application Framework

Development process using containers

Applications are compiled and assembled in the same way developers are accustomed to

Central Repository

Application Framework

using System;class Program{ static void Main() {

}}

Page 33: Containers

@DavidGiardLocal Repository

Application Framework

Development process using containers

A new container image is built containing the application, written by the developer

Central Repository

Application Framework

using System;class Program{ static void Main() {

}}

Page 34: Containers

@DavidGiardLocal Repository

Application Framework

Development process using containers

Central Repository

Application Framework

using System;class Program{ static void Main() {

}}

The new application container image can now be pushed to a central repository

Page 35: Containers

@DavidGiard

Development process using containers

Page 36: Containers

@DavidGiard

Development process using containers

Central Repository

Application Framework

Page 37: Containers

@DavidGiard

Development process using containers

Central Repository

Application Framework

Used for unit testingShare with other developers

Page 38: Containers

@DavidGiard

Development process using containers

Central Repository

Application Framework

Used for unit testingShare with other developers

Staged for integration or QA

Page 39: Containers

@DavidGiard

DevOps process with containers

Developers build and test apps in containers, using development environment; i.e., Visual Studio

Operations automates deployment and monitors deployed apps from central repository

1 2

2

3Operations collaborates with developers to provide app metrics and insights

Developers update, iterate, and deploy updated containers

Containers pushed

to central repository

Central Repository

Page 40: Containers

@DavidGiard

Container use cases

Page 41: Containers

Container use casesWorkload characteristicsScale out DistributedState separatedRapid (re)start

Databases

Web Tasks Scale out

Deployment characteristicsEfficient hostingMultitenancyRapid deploymentHighly automatable Rapid scaling

Distributed compute𝒇 (𝒙 )

Page 42: Containers

@DavidGiard

Container OS environments

Nano Server

“Born in the cloud” applications

Highly optimized

Server Core

Traditional applications

Highly compatible

Page 43: Containers

@DavidGiard

Microsoft Container runtimes

Page 44: Containers

@DavidGiard

Microsoft’s Container runtimesWindows Server container

Hosting Highly automated

Secure Scalable and elastic

Efficient Trustedmulti-tenancy

Hyper-V containerShared hosting

Regulated workloads

Highly automated

Secure Scalable and elastic

Efficient Publicmulti-tenancy

Page 45: Containers

@DavidGiard

Container Runtimes

Windows Server container

Hyper-V container

Modern app dev, flexible isolation

Windows Container Images

Application Framework

Write once, deploy anywhere

Container Management

Docker

PowerShell

Others

Page 46: Containers

@DavidGiard

Host Operating System

Container runtime

Windows Servercontainer(s)

Page 47: Containers

@DavidGiard

Container runtime

Host Operating System

Hyper-V Hypervisor

Virtual machine(s)

Hyper-Vcontainer(s)

Windows Servercontainer(s)

Page 48: Containers

@DavidGiard

Container runtime

Host Operating System

Hyper-V Hypervisor

Virtual machine(s)

Windows Server container(s)

Hyper-V Hypervisor

Hyper-Vcontainer(s)

Page 49: Containers

@DavidGiard

The right tools for youContainer management

PowerShell Docker Others

Container technologiesLinux

Microsoft CloudAzure On-

premisesService provider

Development environments

Eclipse

Others…

Development frameworks and languagesPHPPythonWin32RubyGo.NET

NodeJavaJavascriptC++Perl

Service Fabric

Page 50: Containers

@DavidGiard

SummaryRecommended resources

Page 51: Containers

ResourcesDownload Windows Server 2016 Technical Preview

aka.ms/WindowsTechPreviewCustomer Experience Guides for Windows Server 2016 Technical Preview 4

aka.ms/WS2016GuideStay up to date on the latest with Windows Server

aka.ms/MattMcSpirit Windows Server videos and online training

aka.ms/MoreWindowsCourses

Page 52: Containers

© 2015 Microsoft Corporation. All rights reserved.