70

Techdays SE 2016 - Micros.. err Microcosmos

Embed Size (px)

Citation preview

Page 1: Techdays SE 2016 - Micros.. err Microcosmos
Page 2: Techdays SE 2016 - Micros.. err Microcosmos

The take on Azure, Nano and Containers

Mike MartinCronos – Crosspoint SolutionsEnterprise Architect

Micros… Err

Page 3: Techdays SE 2016 - Micros.. err Microcosmos

Mike MartinWho Am I

View more tips on my bloghttp://techmike2kx.wordpress.com

Crosspoint Solutions (part of Cronos)

Where I Work

Architect, Windows Azure MVP, MEET, Insider

What I Do

@[email protected]

Where To Find Me

A little more about me

Page 4: Techdays SE 2016 - Micros.. err Microcosmos

Les Deux InfinisL’infini immense et l’infini petit

Blaise PascalMathematician, philosopher and developer avant la lettre

Page 5: Techdays SE 2016 - Micros.. err Microcosmos

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

Physical

Applications traditionally built and deployed onto physical systems with 1:1 relationship

New applications often required new physical systems for isolation of resources

Higher consolidation ratios and better utilization

Faster app deployment than in a traditional, physical environment

Apps deployed into VMs with high compatibility success

Apps 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 6: Techdays SE 2016 - Micros.. err Microcosmos

ContainersIsolated runtime environment for hosted applications

DependenciesEvery 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: Techdays SE 2016 - Micros.. err Microcosmos

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: Techdays SE 2016 - Micros.. err Microcosmos

Container use casesWorkload characteristicsScale out DistributedState separatedRapid (re)start

Databases

Web Tasks Scale out

Deployment characteristicsEfficient hostingMultitenancyRapid deploymentHighly automatable Rapid scaling

Distributed compute𝒇 (𝒙 )

Page 9: Techdays SE 2016 - Micros.. err Microcosmos

Container ecosystem

Container runtime

Linux

Container images Image repository

Application framework

Application

Page 10: Techdays SE 2016 - Micros.. err Microcosmos

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 11: Techdays SE 2016 - Micros.. err Microcosmos

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 12: Techdays SE 2016 - Micros.. err Microcosmos

• Nano Server: A new headless, 64-bit only, deployment option for Windows Server

• Deep refactoring with cloud emphasis• Cloud fabric & infrastructure (clustering, storage, networking)• Born-in-the-cloud applications (PaaS v2, ASP.NET v5)• VMs & Containers (Hyper-V & Docker)

• Extend the Server Core pattern• Roles & features live outside of Nano Server• No Binaries or metadata in OS image• Standalone packages install like apps• Full driver support• Antimalware

It’s one small step from/for Cloud…

Nano Server

ServerCore

Serverwith a

Desktop Experienc

e

Page 13: Techdays SE 2016 - Micros.. err Microcosmos

Nano Server Quick StartScripts included in Nano Server folder to make it easy to build a customized Nano Server image• NanoServerImageGenerator.psm1• Convert-WindowsImage.ps1

Use scripts to generate a Nano Server image forPHYSICAL MACHINE

VIRTUAL MACHINE

New-NanoServerImage -MediaPath F:\ -BasePath .\Base-TargetPath .\NanoVM\SRV-Nano.vhd -ComputerName SRV-Nano-GuestDrivers –Storage -Clustering

Page 14: Techdays SE 2016 - Micros.. err Microcosmos

The end result…

Page 15: Techdays SE 2016 - Micros.. err Microcosmos

Nano Server roles and featuresTable shows roles and features that are available in this release of Nano Server, along with the Windows PowerShell options that will install the packages for them

Role or feature OptionHyper-V role -Compute

Failover clustering -Clustering

File server role and other storage components -Storage

Windows Defender antimalware, including a default signature file -Defender

OEM drivers—select drivers that ship in-box with Server Core -OEMDrivers

Reverse forwarders for application compatibility, for examplecommon application frameworks such as Ruby, Node.js, etc. -ReverseForwarders

Hyper-V guest drivers for hosting Nano Server as a VM -GuestDrivers

Host Support for Windows Containers -Containers

Page 16: Techdays SE 2016 - Micros.. err Microcosmos

Nano Server roles and featuresTable shows roles and features that are available in this release of Nano Server, along with the Windows PowerShell options that will install the packages for them

Role or feature OptionDNS Server Role -Packages Microsoft-NanoServer-DNS-Package

Desired State Configuration (DSC) -Packages Microsoft-NanoServer-DSC-Package

IIS Web Server -Packages Microsoft-NanoServer-IIS-Package

System Center VMM Agent -Packages Microsoft-Windows-Server-SCVMM-Package-Packages Microsoft-Windows-Server-SCVMM-Compute-Package

Network Perf Diagnostics Service (NPDS) -Packages Microsoft-NanoServer-NPDS-Package

Data Center Bridging -Packages Microsoft-NanoServer-DCB-Package

Page 17: Techdays SE 2016 - Micros.. err Microcosmos

Remotely managing Nano ServerRemote graphical

& Web tools

• Server manager• Azure Portal tools• Task manager• Registry editor• File explorer• Server configuration• Event viewer• Disk manager• Device & driver

management• Performance• Users & groups

PowerShell remoting

• Core PowerShell engine, language, and cmdlets

• Windows Server cmdlets (network, storage, etc.)

• PowerShell DSC• Remote file transfer• Remote script

authoring & debugging

• PowerShell Web access

VM & container management

• Hyper-V manager• Hyper-V cmdlets• PowerShell Direct

over PSRP• CimSession support• Docker• SCVMM agent

& console• 3rd-party agents

& consoles

Deployment & monitoring

• DISM online & VHD support

• Unattended setup• Visual Studio

integration• DSC Local Config

Manager• Setup & boot

eventing• SCOM agent• VSO App Insights• Azure Op Insights

Partners & frameworks

• Chef integration• .NET Core and

CoreCLR• ASP.NET 5• Python, PHP, Ruby,

Node.js• PowerShell Classes• PS Script Analyzer• PowerShell Gallery• PowerShellGet

Page 18: Techdays SE 2016 - Micros.. err Microcosmos

Remote Server Management Tool

Includes replacements for local-only tools• Task manager, registry editor• Event viewer, device manager• Sconfig• Control panel, file explorer• Performance monitor, disk

management• Users/Groups managerSupports Server Core and server with desktop experience

Azure-based

Eliminating the need to ever sit in front of a server

Page 19: Techdays SE 2016 - Micros.. err Microcosmos

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 20: Techdays SE 2016 - Micros.. err Microcosmos

Container runtime

Operating System OS Image

Physical host

Page 21: Techdays SE 2016 - Micros.. err Microcosmos

Container runtime

Host Operating System

Hardware Virtualization

Operating System

Operating System OS Images

Virtual machine(s)

Page 22: Techdays SE 2016 - Micros.. err Microcosmos

Container runtime

Host Operating System

Containers

Page 23: Techdays SE 2016 - Micros.. err Microcosmos

Container runtime

Host Operating System

OS Image

Hardware Virtualization

Virtual machine(s)

Guest Operating System

Containers

Page 24: Techdays SE 2016 - Micros.. err Microcosmos

Local Repository

Image creation

Container ViewContainer OS

ImageC:\Windows\*

Page 25: Techdays SE 2016 - Micros.. err Microcosmos

Local Repository

Image creation

C:\Windows\*

Empty

Container ViewContainer OS

Image

SandboxC:\Windows\*

Page 26: Techdays SE 2016 - Micros.. err Microcosmos

Local Repository

Image creation

C:\Windows\*

Empty

Container ViewContainer OS

Image

SandboxC:\Windows\*

C:\nodeJS

Page 27: Techdays SE 2016 - Micros.. err Microcosmos

Local Repository

Image creation

C:\Windows\*

C:\nodeJs

Container ViewContainer OS

Image

SandboxC:\Windows\*C:\nodeJS

C:\nodeJS

Page 28: Techdays SE 2016 - Micros.. err Microcosmos

Local Repository

Image creation

C:\Windows\*

C:\nodeJs

Container ViewContainer OS

Image

Sandbox

Page 29: Techdays SE 2016 - Micros.. err Microcosmos

Local Repository

Image creation

C:\Windows\*

C:\nodeJs

Container View

Application Framework Application

Framework

Container OS Image

Page 30: Techdays SE 2016 - Micros.. err Microcosmos

Local Repository

Image creation

C:\Windows\*

C:\nodeJs

Empty

Container View

Application Framework Application

Framework

Container OS Image

Sandbox

C:\Windows\*C:\nodeJS

Page 31: Techdays SE 2016 - Micros.. err Microcosmos

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 32: Techdays SE 2016 - Micros.. err Microcosmos

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 33: Techdays SE 2016 - Micros.. err Microcosmos

Local Repository

Image creation

C:\Windows\*

C:\nodeJs

C:\myApp

Container View

Application Framework Application

Framework

Container OS Image

Sandbox

Page 34: Techdays SE 2016 - Micros.. err Microcosmos

Local Repository

Image creation

C:\Windows\*

C:\nodeJs

C:\myApp

Container View

Application Framework Application

Framework

Application Image

Container OS Image

Page 35: Techdays SE 2016 - Micros.. err Microcosmos

Docker integrationJoint strategic investments to drive containers forward

Docker: An open source engine that automates the deployment of any application as a portable, self-sufficient container that can run almost anywhere

Partnership: Enable the Docker toolset to manage multi-container applications using both Linux and Windows containers, regardless of the hosting environment or cloud provider

Investments in the next waveof Windows Server

Open source development of theDocker Engine for Windows Server

Azure support for theDocker Open Orchestration APIs

Federation of Docker Hub images into the Azure Gallery and Portal

Strategic investments

Docker

Dockerized app

Windows ServerContainer

LinuxContainer

CustomerDatacenter

ServiceProvider

MicrosoftAzure

Run anywhere

Page 36: Techdays SE 2016 - Micros.. err Microcosmos

Docker integrationJoint strategic investments to drive containers forward

Docker Hub in Azure: Huge collection of open and curated applications available for download

Docker Hub: Huge collection of open and curated applications available for download. https://hub.docker.com

Collaboration: Bring Windows Server containers to the Docker ecosystem to expand the reach of both developer communities

Docker Engine: Docker Engine for Windows Server containers will be developed under the aegis of the Docker open source project

Docker client: Windows customers will be able to use the same standard Docker client and interface on multiple development environments

Docker Client

Windows Server Linux

Docker Engine(Daemon)

Windows ServerContainer Support

Linux ContainerSupport (LXC)

Docker Engine(Daemon)

Docker.exeExamples:docker rundocker images

Docker Remote APIExamples:GET images/jsonPOST containers/create

Page 37: Techdays SE 2016 - Micros.. err Microcosmos

Local Repository

Development process using containers

Central Repository

Application Framework

Page 38: Techdays SE 2016 - Micros.. err Microcosmos

Local 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 39: Techdays SE 2016 - Micros.. err Microcosmos

Local 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 40: Techdays SE 2016 - Micros.. err Microcosmos

Local 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 41: Techdays SE 2016 - Micros.. err Microcosmos

Local 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 42: Techdays SE 2016 - Micros.. err Microcosmos

Local 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 43: Techdays SE 2016 - Micros.. err Microcosmos

Local 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 44: Techdays SE 2016 - Micros.. err Microcosmos

Development process using containers

Central Repository

Application Framework

Page 45: Techdays SE 2016 - Micros.. err Microcosmos

Development process using containers

Central Repository

Application Framework

Used for unit testingShare with other developers

Page 46: Techdays SE 2016 - Micros.. err Microcosmos

Development process using containers

Central Repository

Application Framework

Used for unit testingShare with other developers

Staged for integration or QA

Page 47: Techdays SE 2016 - Micros.. err Microcosmos

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 48: Techdays SE 2016 - Micros.. err Microcosmos

Container OS environments

Nano Server

“Born in the cloud” applications

Highly optimized

Server Core

Traditional applications

Highly compatible

Page 49: Techdays SE 2016 - Micros.. err Microcosmos

Host Operating System

Container runtime

Windows Servercontainer(s)

Page 50: Techdays SE 2016 - Micros.. err Microcosmos

Container runtime

Host Operating System

Hyper-V Hypervisor

Virtual machine(s)

Hyper-Vcontainer(s)

Windows Servercontainer(s)

Page 51: Techdays SE 2016 - Micros.. err Microcosmos

Container runtime

Host Operating System

Hyper-V Hypervisor

Virtual machine(s)

Windows Server container(s)

Hyper-V Hypervisor

Hyper-Vcontainer(s)

Page 52: Techdays SE 2016 - Micros.. err Microcosmos

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 53: Techdays SE 2016 - Micros.. err Microcosmos

• Scales by cloning the app on multiple servers/VMs/Containers

Monolithic application approach Microservices application approach• A microservice application

separates functionality into separate smaller services.

• Scales out by deploying each service independently creating instances of these services across servers/VMs/containers

• A monolith app contains domain specific functionality and is normally divided by functional layers such as web, business and data

App 1 App 2App 1

Page 54: Techdays SE 2016 - Micros.. err Microcosmos

Public Cloud Other CloudsOn PremisesPrivate cloud

LifecycleMgmt

Independent Scaling

Independent Updates

Always On

Availability

ResourceEfficient

Stateless/Stateful

Azure Service Fabric

Page 55: Techdays SE 2016 - Micros.. err Microcosmos

Datacenter (Azure, On Premises, Other Clouds )

Load Balanc

er

PC/VM #1Service FabricYour code, etc.

PC/VM #2Service FabricYour code, etc.

PC/VM #3Service FabricYour code, etc.

PC/VM #4Service FabricYour code, etc.PC/VM #5

Service FabricYour code, etc.

Service Fabric Cluster

Management to deploy your code,

etc. (Port: 19080)

App Web Request(Port: 80/443/?)

Page 56: Techdays SE 2016 - Micros.. err Microcosmos

Orchestration SolutionsOrchestration Management

CloudCloud

Swarm Compose

Marathon

Page 57: Techdays SE 2016 - Micros.. err Microcosmos

Docker Tooling Status

• Docker 1.0 -> Azure CLI- azure create vm docker …

- docker … (Linux Only)

• Windows port- docker … (on windows)

• Docker Machine- docker-machine create –d hyper-v …

- docker-machine create –d azure …

• Compose and Swarm

Page 58: Techdays SE 2016 - Micros.. err Microcosmos

Microsoft Specific Status• Windows Server Containers at //build in April

• Multi-Platform Containerized application at DockerCon

• Docker VM Extension for Linux on Azure

• Hyper-V Containers

• Visual Studio tooling

• Visual Studio Online for CI across multiple containers using Docker Compose

• Docker Trusted Registry support in Visual Studio Online

• Azure Marketplace integration of containerized applications

• Docker Marketplace VM for Docker Trusted Registries

Page 59: Techdays SE 2016 - Micros.. err Microcosmos

Are Containers Used?

• Customers are very interested• Many in testing and Proof of Concept

• Microsoft uses containers internally• E.g. Azure Linux Compute team for build

• Python Notebook Service• Machine Learning Service in test

• Push 1000 containers in about 6 seconds• Start notebook server, bring up a notebook & print in 42 seconds

Page 60: Techdays SE 2016 - Micros.. err Microcosmos

Microsoft’s Value Add for Containers

• Only Microsoft can deliver Windows Containers

• Docker VM Extension

• Hyper-V Containers

• Visual Studio tooling

• Continuous Integration with Visual Studio online

• Docker Trusted Registry support in VSO

• Marketplace integration of containerized applications

Page 61: Techdays SE 2016 - Micros.. err Microcosmos

Architecture

Operating System

Docker Engine

Docker Client

Docker Registry

Docker Compose Docker Swarm

Docker Universal Control Plane } Container

Development and Management Toolset

Container Runtime

Page 62: Techdays SE 2016 - Micros.. err Microcosmos

Architecture In Linux

Containerd + runC

Docker Engine

REST Interface

libcontainerd graphlibnetwork plugins

Operating System

Control Groupscgroups

NamespacesPid, net, ipc, mnt, uts

Layer CapabilitiesUnion Filesystems AUFS,

btrfs, vfs, zfs*, DeviceMapper

Other OS Functionality

Docker Client Docker RegistryDocker Compose Docker Swarm

Page 63: Techdays SE 2016 - Micros.. err Microcosmos

Architecture In Windows

Docker Engine

REST Interface

libcontainerd graphlibnetwork plugins

Operating System

Control GroupsJob objects

NamespacesObject Namespace,

Process Table, Networking

Layer CapabilitiesRegistry, Union like

filesystem extensions

Other OS Functionality

Compute Services

Docker Client DockerRegistryDocker Compose Docker Swarm

Page 64: Techdays SE 2016 - Micros.. err Microcosmos

Docker

PlatformSpecific

PlatformIndependent

Comparing OS Architectures

Linux Control Groupscgroups

NamespacesPid, net, ipc, mnt, uts

Layer CapabilitiesUnion Filesystems: AUFS,

btrfs, vfs, zfs*,DeviceMapper

Other OS Functionality

Containerd + runC

Docker EngineREST Interface

libcontainerd graphlibnetwork plugins

Windows Control GroupsJob objects

NamespacesObject Namespace, Process

Table, Networking

Layer CapabilitiesRegistry, Union like filesystem

extensions

Other OS Functionality

Compute Services

Docker Client Docker SwarmDocker Compose Docker Registry

Page 65: Techdays SE 2016 - Micros.. err Microcosmos

Host User Mode

Container Management

Windows Server Containers

Windows Kernel

Compute Services

Docker Engine

Windows Server Container

System Processes

Application Processes

System Processes

Session Manager

Local Security Authority

Event Manager…

Etc…

Job Object Net Interface

StorageRegistry

Windows Server Container

System Processes

Application Processes

Job Object Net Interface

StorageRegistry

Page 66: Techdays SE 2016 - Micros.. err Microcosmos

Hyper-V Containers

Hyper-V Container

Windows Kernel

Guest Compute Service

Windows Server Container

System Processes

Application Processes

Job Object Net Interface

StorageRegistry

Basic System

Processes

Host

Use

r Mod

e

Container Management

Windows Kernel

Compute Services

Docker Engine

System Processes

Session Manager

Local Security Authority

Event Manager…

Etc…

Hyper-V Hypervisor

Page 67: Techdays SE 2016 - Micros.. err Microcosmos

Host

Use

r Mod

eVirtual Machine

Specifically Optimized To Run a Container

Container Management

Hyper-V Containers

Windows Kernel

Compute Services

Docker Engine

System Processes

Session Manager

Local Security Authority

Event Manager…

Etc…

Hyper-V Hypervisor

Hyper-V Container

Windows Kernel

Guest Compute Service

Windows Server Container

System Processes

Application Processes

Job Object Net Interface

StorageRegistry

Basic System

Processes

Page 68: Techdays SE 2016 - Micros.. err Microcosmos

Same Container Images, Same API

Container Management

Docker

Windows Container Images

Application

Framework

Container Run-TimesHyper-V Container

Windows Server Container

Write once, deploy anywhere

Page 69: Techdays SE 2016 - Micros.. err Microcosmos

Docker Universal Control Plane- Web Based UI- Manages

>Container hosts>Container based applications>Container registries/images

- Role Based Access Control (AD and LDAP support)

Microsoft Operations Management Suite- Monitoring Solution for Docker- Monitors

>Syslog events>Performance metrics>Container data

Management and Monitoring Tools

Page 70: Techdays SE 2016 - Micros.. err Microcosmos

Useful InformationDocker Introduction

https://msopentech.com/opentech-projects/docker/

Docker on Microsoft Azure

https://msopentech.com/blog/2014/06/09/docker-on-microsoft-azure/

The Docker Virtual Machine Extension for Linux on Azure

https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-docker-vm-extension/

How to use the Docker VM Extension from Azure CLI

http://azure.microsoft.com/documentation/articles/virtual-machines-docker-with-xplat-cli/

How to use the Docker VM Extension with the Azure Portal

http://azure.microsoft.com/documentation/articles/virtual-machines-docker-with-portal/

Azure Virtual Machine Extension for Dockerhttps://github.com/Azure/azure-docker-extension/blob/master/README.md