Microsoft Ignite NZ 25-28 October 2016 SKYCITY, Auckland.

Slides:



Advertisements
Similar presentations
Won HuhProduct Marketing Manager Symon PerrimanSenior Technical Evangelist.
Advertisements

#msitconf. Damien Caro Technical Evangelist Manager, Что будет, если приложение поместить в контейнер? What happens if the application.
Brian Lauge Pedersen Senior DataCenter Technology Specialist Microsoft Danmark.
Redmond Protocols Plugfest 2016 Bhanu Prakash Introduction to Windows Containers Program Manager.
Intro To Virtualization Mohammed Morsi
Microsoft Build /9/2017 5:00 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
1/26/2018 Hosting Windows Desktops and Applications Using Remote Desktop Services and Azure Windows Server Azure Resource Manager © 2014 Microsoft.
Run Azure Services in your datacenter
Univa Grid Engine Makes Work Management Automatic and Efficient, Accelerates Deployment of Cloud Services with Power of Microsoft Azure MICROSOFT AZURE.
Building ARM IaaS Application Environment
Volume Licensing Readiness: Level 100
Fundamentals Sunny Sharma Microsoft
Build /26/2018 6:17 AM Building Resilient, Scalable Services with Microsoft Azure Service Fabric Érsek © 2015 Microsoft Corporation.
Windows Containers Taylor Brown Principal Lead Program Manager
5/21/2018 9:40 PM BRK3021 Learn about modern infrastructure roles in RDS: Next generation Windows desktop & app virtualization Clark Nicholson - Principal.
Volume Licensing Readiness: Level 200
Volume Licensing Readiness: Level 200
Develop, debug and deploy containerized applications with Docker
Volume Licensing Readiness: Level 100
Modern Application Platform Windows Server 2016
Docker and Azure Container Service
Windows Server 2016 Secure IaaS Microsoft Build /1/2018 4:00 AM
6/11/2018 8:14 AM THR2175 Building and deploying existing ASP.NET applications using VSTS and Docker on Windows Marcel de Vries CTO, Xpirit © Microsoft.
Windows Server 2016 Platform for Modern Apps Microsoft Build 2016
Learning about Containers in the Real World
In-Depth Introduction to Docker
Manage Nano Server with Windows Server 2016 Hyper-V
Volume Licensing Readiness: Level 100
Containers and Virtualisation
Building Applications with Windows Azure and SQL Azure
ASP.NET in Linux and Windows containers
Containers in HPC By Raja.
The Path to Containerization Transforming workloads into containers
Design and Implement Cloud Data Platform Solutions
Volume Licensing Readiness: Level 200
Microsoft Azure Service Fabric Overview
Windows Server & Hyper-V Containers Vaggelis Kappas
Microsoft Connect /18/ :32 PM
02 | Design and implement database
Microsoft Ignite NZ October 2016 SKYCITY, Auckland.
Business Continuity & Disaster Recovery
Introduction to Docker
Microsoft Ignite NZ October 2016 SKYCITY, Auckland.
Azure Container Instances
CloudSimplified.IO.
Microsoft Ignite NZ October 2016 SKYCITY, Auckland.
Windows Azure 講師: 李智樺, Ruddy Lee
Microsoft Connect /17/ :34 AM
Microsoft Ignite NZ October 2016 SKYCITY, Auckland.
Microsoft Ignite NZ October 2016 SKYCITY, Auckland.
Data Security for Microsoft Azure
Microsoft Ignite NZ October 2016 SKYCITY, Auckland
Developing for the cloud with Visual Studio
12/5/ :36 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Modern cloud PaaS for mobile apps, web sites, API's and business logic apps
Learn. Imagine. Build. .NET Conf
12/25/2018 5:25 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
1/2/2019 5:18 PM THR3016 Customer stories: Plan and orchestrate large resource deployments on Azure infrastructure Igal Figlin Principal PM Manager – Azure.
Saranya Sriram Developer Evangelist | Microsoft
Building continuously available systems with Hyper-V
Serverless Architecture in the Cloud
MDC-B203 Deploying Applications in Microsoft System Center Virtual Machine Manager Using Services John Messec Program Manager Microsoft.
Developing for Windows Azure
TechEd /11/ :25 AM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered.
Day 2, Session 2 Connecting System Center to the Public Cloud
Azure Container Service
Azure App Service Web App for Containers
Productive + Hybrid + Intelligent + Trusted
Containers on Azure Peter Lasne Sr. Software Development Engineer
9/16/2019 6:55 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Presentation transcript:

Microsoft Ignite NZ 25-28 October 2016 SKYCITY, Auckland

Windows Containers Internals M402 Benjamin Armstrong

Transforming Existing Applications into Cloud Applications Microsoft Build 2016 11/13/2018 8:44 PM Why containers? Transforming Existing Applications into Cloud Applications Is Hard! Building Hybrid Cloud Applications Is Hard! http://www.gettyimages.com/license/649171837 © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Containers Make It Much Easier… Microsoft Build 2016 11/13/2018 8:44 PM Why containers? Containers Make It Much Easier… http://www.gettyimages.com/license/606349595 © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

How do containers make it easier? Microsoft Build 2016 11/13/2018 8:44 PM How do containers make it easier? Consistency Efficiency Rapid Deployment Fast Iterations Service Separation High Availability Reproducibility On Any Cloud Scalability Test at Scale Immutability Reduced Costs © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Startup Performance NodeJS with Nano Server Microsoft 2016 Startup Performance 11/13/2018 8:44 PM NodeJS with Nano Server Windows Server Container Under 600 Milliseconds! Hyper-V Container ~1.75 seconds A virtual machine takes ~3 seconds NodeJS with Windows Server Core Windows Server Container ~1 second Hyper-V Container ~3.3 seconds A virtual machine takes ~5 seconds to over a min © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Density NodeJS with Nano Server NodeJS with Windows Server Core Microsoft 2016 Density 11/13/2018 8:44 PM NodeJS with Nano Server Windows Server Container First Container ~120MB Additional Containers ~75MB Hyper-V Container First Container ~340MB Additional Containers ~150MB NodeJS with Windows Server Core Windows Server Container First Container ~150MB Additional Containers ~75MB Hyper-V Container First Container ~555MB Additional Containers ~280MB © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Docker

Docker on Windows Not “Docker for Windows” Integration coming Port of Docker Engine (not a fork) Same remote API, same tools work on top (Compose, Swarm, etc.) Built on new native container technology in Windows Runs on Windows Server 2016 and on the latest Windows 10 Runs Windows Server containers on Windows hosts Doesn't run Linux containers

Architecture In Windows Docker Client Docker Registry Docker Compose Docker Swarm Docker Engine REST Interface libcontainerd libnetwork graph plugins Operating System Compute Service Other OS Functionality Control Groups Job objects Namespaces Object Namespace, Process Table, Networking Layer Capabilities Registry, Union like filesystem extensions

Compute Service Public interface to containers Manages running containers Abstracts low-level capabilities Language bindings available C#: https://github.com/Microsoft/dotnet-computevirtualization Go: https://github.com/Microsoft/hcsshim

Docker Demo

File System

File system Windows applications expect NTFS semantics Transactions, file IDs, USN journal Building a full union FS with NTFS semantics is hard Hybrid model Virtual block device + NTFS partition per container Symlinks to layers on host FS to keep block devices small

Windows Registry Basically a simple file system Built a true union FS Saves cloning a full set of registry hives per container

Base images Distributed by Microsoft Two options docker pull windowsservercore: large (huge?), highly compatible nanoserver: small, fast, smaller API surface docker pull microsoft/windowsservercore microsoft/nanoserver

Networking

ACLs, Metering, Security Virtual Networking vNIC vmNIC VM Switch VFP Container VM ACLs, Metering, Security VNET SLB (NAT)

Active Directory Identity for Containers Microsoft Build 2016 Active Directory Identity for Containers 11/13/2018 8:44 PM 1) Use default accounts for services & tasks (LocalSystem, Network Service) Image IIS & ASP.Net Running Container Service: IIS User: LocalSystem SQL Server Domain\MyWebApp1$ Credential Spec DefaultAccount: Domain\MyWebApp1$ 3) Container connects using service account 2) Provide default service account to use when starting container © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Memory

Memory management Shared memory management key to performance Builds on top of the file system cache

Core Architecture

Container contents Public Windows API delivered via DLLs, not syscalls Lots of interdependencies Highly dependent on system services running RPC calls hidden in Win32 APIs Automatically starts smss init equivalent Launches a variety of system services

Namespaces Silo: extension to Windows Job object Set of processes Resource controls New: set of namespaces New namespace virtualization Registry Process IDs, sessions Object namespace File system Network compartments

Object namespace System-level namespace, hidden from users C:\Windows maps to \DosDevices\C:\Windows Contains all device entry points \DosDevices\C: \Registry \Device\Tcp Silo can "chroot" to different object root \Silos\foo\DosDevices\C: \Silos\bar\DosDevices\C:

Silo Demo

Hyper-V Containers

Hyper-V Containers Some workloads need more isolation Hostile multi-tenancy Regulated workloads Solution: transparently run each container in a VM! (Mostly) invisible to both Docker and the user docker run --isolation=hyperv Hyper-V Containers are the default on Windows 10 Images are the same

Windows Server Containers Host User Mode System Processes Session Manager Container Management Local Security Authority Windows Server Container Windows Server Container System Processes Application Processes Job Object Net Interface Storage Registry Docker Engine Event Manager… System Processes Application Processes Compute Services Etc… Job Object Net Interface Storage Registry Windows Kernel

Hyper-V Containers Host User Mode Virtual Machine Specifically Optimized To Run a Container System Processes Session Manager Hyper-V Container Container Management Local Security Authority Windows Server Container Guest Compute Service Docker Engine Event Manager… System Processes Application Processes Compute Services Basic System Processes Etc… Job Object Net Interface Storage Registry Windows Kernel Windows Kernel Hyper-V Hypervisor

Making it work Small, stateless “utility VM” Storage attached via SMB Smallest Windows yet? Writes not persisted Storage attached via SMB VMBus transport File cache sharing Networking attached via virtual NIC

Cloning Launching the utility VM takes time and memory Do it once, freeze the result Fork the VM for each new instance Eliminates startup time Shares memory

Hyper-V Container Demo

11/13/2018 8:44 PM © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.