Application Platform
Introducing Containers
Containers
A new approach to build, ship, deploy, and instantiate applications
Applications traditionally built and
deployed onto physical systems with
Package and
1:1 relationship run apps within
New applications often required new containers
Physical physical systems for isolation of resources
Higher consolidation ratios and
Physical/virtual
better utilization
Faster app deployment than in a Key benefits
traditional, physical environment Further accelerate of app deployment
Apps deployed into VMs with Reduce effort to deploy apps
high compatibility success
Streamline development and testing
Apps benefited from key VM Lower costs associated with app deployment
Virtual features i.e., live migration, HA
Increase server consolidation
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
DevOps
• Integrate people, process, and tools for
an optimized app development process
• Operations focus on standardized
infrastructure
Operations • Developers focus on building, deploying,
• Enhances familiar IT deployment models and testing apps
• 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
Containers
Isolated runtime environment for hosted applications
Container
Dependencies Flexible
Every application has its own Differences in underlying OS App A App B
dependencies which includes both and infrastructure are abstracted
software (services, libraries) and away, streamlining “deploy
Bins/libraries Bins/libraries
hardware (CPU, memory, storage) anywhere” approach
Virtualization Fast
Container engine is a light weight Containers can be created almost
virtualization mechanism which instantly, enabling rapid scale-up
isolates these dependencies per and scale-down in response to
each application by packaging changes in demand Container management stack
them into virtual containers
Shared host OS Host OS with container support
Container runs as an isolated
process in user space on the
host OS, sharing the kernel
with other containers Server
Containers
How do they differ from virtual machines?
Virtual machine
Dependencies Flexible
Each virtualized app VMs can be migrated App A App B
includes the app itself, to other hosts to balance Bins/Libraries Bins/Libraries
required binaries and resource usage and
libraries and a guest OS, for host maintenance,
which may consist of without downtime
multiple GB of data Guest OS Guest OS
Secure
Independent OS High levels of resource
Each VM can have and security isolation
a different OS from for key virtualized Hypervisor
other VMs, along with workloads
a different OS to the
host itself
Server
Container use cases
Workload characteristics Deployment characteristics
Scale out Efficient hosting
Distributed Multitenancy
State separated Rapid deployment
Rapid (re)start Highly automatable
Rapid scaling
Distributed Databases Web Tasks Scale out
compute
𝒇 ( 𝒙)
Container ecosystem
Container runtime Container images Image repository
Application
Application
Linux framework
Microsoft’s Container runtimes
Windows Server container
Hosting Highly Secure Scalable Efficient Trusted
automated and elastic multi-tenancy
Hyper-V container
Shared Regulated Highly Secure Scalable Efficient Public
hosting workloads automated and elastic multi-tenancy
Modern app dev, flexible isolation
Container Runtimes
Docker
Hyper-V
container
Application PowerShell
Framework
Others
Windows
Server
container
Windows Container
Container Images Management
Write once, deploy anywhere
Docker integration
Joint strategic investments to drive containers forward
Docker Customer
An open source engine that automates Datacenter
the deployment of any application
as a portable, self-sufficient container Dockerized app
that can run almost anywhere
Partnership Run
anywhere
Windows
Enable the Docker client to manage Server Linux
multi-container applications using Container
Container Container
both Linux and Windows containers,
regardless of the hosting environment Microsoft Service
or cloud provider Azure Provider
Docker
Strategic Investments in Windows Server 2016 Azure support for the Docker
open orchestration APIs
Open source development of the
investments Docker Engine for Windows Server Federation of Docker Hub images
into the Azure Gallery and Portal
Docker integration
Joint strategic investments to drive containers forward
Docker Hub Docker.exe
Examples:
Huge collection of open and curated applications Docker Client docker run
available for download. https://hub.docker.com docker images
Collaboration Linux
Bring Windows Server containers to the
Docker ecosystem to expand the reach Docker Remote API
of both developer communities Docker Engine Docker Engine Examples:
(Daemon) (Daemon) GET images/json
Docker Engine POST containers/create
Docker Engine for Windows Server containers Windows Server Linux Container
will be developed under the Docker open Container Support Support (LXC)
source project
Docker client
Windows customers will be able to use
the same standard Docker client and interface
on multiple development environments
DevOps process with containers
Developers update,
iterate, and deploy
updated containers
2
3
Operations collaborates with developers
to provide app metrics and insights
Developers build and test apps 1 2 Operations automates
in containers, using development deployment and monitors
environment; i.e., Visual Studio deployed apps from
central repository
Containers pushed
Central Repository to central repository
Container OS environments
Nano Server Server Core
Highly Highly
optimized compatible
“Born in the cloud” Traditional
applications applications
Container runtime
Windows Server
container(s)
Host Operating System
Container runtime
Windows Server
container(s)
Hyper-V
container(s)
Virtual
Host
Operating System machine(s)
Hyper-V Hypervisor
Container runtime Windows Server
container(s)
Hyper-V
container(s)
Hyper-V Hypervisor
Virtual
Host
Operating System machine(s)
Hyper-V Hypervisor
The right tools for you
Container management Service
PowerShell Docker Others
Fabric
Container technologies Development Development
Linux
environments frameworks
and languages
PHP Node
Python Java
Microsoft Cloud Eclipse
Win32 Javascript
Ruby C++
Azure On- Service Others… Go Perl
premises provider
.NET
Demo
Work with containers in PowerShell
Introducing Nano Server
Customer voice
Reboots impact my business
Why do I have to reboot because of a patch to a component I never use?
When a reboot is required, the systems need to be back in service A.S.A.P.
Server images are too big
Large images take a long time to install and configure
Transferring images consumes too much network bandwidth
Storing images requires too much disk space
Infrastructure requires too many resources
If the OS consumes fewer resources, I can increase my VM density
Higher VM density lowers my costs and increases my efficiency and margins
“ I want just the components
I need, and nothing more.”
“We need server configuration
optimized for the cloud.”
The next step in the journey…
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) Server
with a
Extend the Server Core pattern desktop
• Roles & features live outside of Nano Server experience
Server
• No binaries or metadata in OS image Core
• Standalone packages install like apps
• Full driver support
• Antimalware
Nano Server
Nano Server
Nano Server is an Installation Option
• Located on the Windows Server media
• Must be customized to determine it’s functionality
Zero-footprint model
• Server roles and optional features live outside of Nano Server
• Standalone packages that install like applications, from local/cloud repositories
Key roles and features
• Hyper-V, Storage (SoFS), Networking (DNS), Clustering
• Core CLR, ASP.NET 5 and PaaS
Full Windows Server driver support
Antimalware available as optional feature
Nano Server Quick Start
Scripts 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 for
PHYSICAL VIRTUAL
MACHINE MACHINE
New-NanoServerImage -MediaPath F:\ -BasePath .\Base
-TargetPath .\NanoVM\SRV-Nano.vhd -ComputerName SRV-Nano
-GuestDrivers –Storage -Clustering
The end result…
Nano Server roles and features
Table 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 Option
Hyper-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 example
-ReverseForwarders
common application frameworks such as Ruby, Node.js, etc.
Hyper-V guest drivers for hosting Nano Server as a VM -GuestDrivers
Host Support for Windows Containers -Containers
Nano Server roles and features
Table 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 Option
DNS Server Role -Packages Microsoft-NanoServer-DNS-Package
Desired State Configuration (DSC) -Packages Microsoft-NanoServer-DSC-Package
IIS Web Server -Packages Microsoft-NanoServer-IIS-Package
-Packages Microsoft-Windows-Server-SCVMM-Package
System Center VMM Agent
-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
Demo
Build and Deploy Nano Servers
Remotely managing Nano Server
Remote graphical VM & container Deployment & Partners &
PowerShell remoting
& Web tools management monitoring frameworks
• Server manager • Core PowerShell • Hyper-V manager • DISM online & • Chef integration
• Azure Portal tools engine, language, • Hyper-V cmdlets VHD support • .NET Core and
• Task manager and cmdlets • PowerShell Direct • Unattended setup CoreCLR
• Registry editor • Windows Server over PSRP • Visual Studio • ASP.NET 5
• File explorer cmdlets (network, • CimSession integration • Python, PHP, Ruby,
storage, etc.) support • DSC Local Config Node.js
• Server • PowerShell DSC
configuration • Docker Manager • PowerShell Classes
• Remote file • SCVMM agent • Setup & boot • PS Script Analyzer
• Event viewer
transfer & console eventing • PowerShell Gallery
• Disk manager • Remote script • 3rd-party agents • SCOM agent • PowerShellGet
• Device & driver authoring &
management & consoles • VSO App Insights
debugging • Azure Op Insights
• Performance • PowerShell
• Users & groups Web access
Remote Server Management Tool
Eliminating the need to
ever sit in front of a server
Azure-based
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 manager
Supports Server Core and
server with desktop experience
Demo
Deploy Server Management Tools
Nano Server resources and feedback
Shift your org and tools to full remote
management of Server Core
• Inventory tools and agents that only run locally
• Check with your ISV for a remotable version
• Send list of those with no remote equivalent and ISV to nanoserver@microsoft.com
Deploy Nano Server, your apps, and your tools
Deployment guide at: https://msdn.microsoft.com/en-us/library/mt126167.aspx
Give use feedback and let us know where you encounter difficulties:
http://windowsserver.uservoice.com/forums/295068-nano-server
Remote Management feedback
http://windowsserver.uservoice.com/forums/295071-remote-management-tools
Nano resources and feedback
Blogs
Nano Server: http://blogs.technet.com/b/nanoserver/
Server Core: http://blogs.technet.com/b/server_core/
Deeper training
Microsoft Virtual Academy: https://www.microsoftvirtualacademy.com/en
-US/training-courses/a-deep-dive-into-nano-server-13785
Documentation
TechNet: http://aka.ms/nanoserver
Technical preview
Windows Server: https://www.microsoft.com/enus/evalcenter
/evaluate-windows-server-technical-preview
Lab
Getting started with Nano Server