Faster app
development
using Windows Server 2016
containers
Challenges between developers and
IT
Developers IT
I need to create applications I need to manage servers
at a competitive rate without and maintain compliance
worrying about IT. with little disruption.
New applications run smoothly on I’m unsure of how to integrate
my machines but malfunction on unfamiliar applications, and
traditional IT server. I require help from developers.
My productivity and application I’m unable to focus on both server
innovation become suspended protection and application compliance.
when I have to wait on IT.
Balancing innovation and control
How do you empower developers
Containers
to create innovative applications
at
a competitive rate without
disrupting
IT’s ability to manage servers and
maintain control?
What is a container?
Containers
= Operating system virtualization Windows Server containers
Contain Contain Contain
Maximum speed and density
er er er
Container Container Container
OS Applications
Kernel OS
Hardware Kernel
Traditional virtual machines = hardware Hyper-V containers
virtualization Isolation plus performance
Container Container Container
VM VM VM
Application
OS
Kern Kern Kern
el el el
Hardware
Hyper-V
Container benefits
A new approach to build, ship, deploy, and instantiate applications
Applications traditionally built and
deployed onto physical systems with 1:1
relationship. Package and run apps within
New applications often require containers.
Physical new physical systems for isolation Physical/
of resources. Virtual
Higher consolidation ratios
and better utilization. Key benefits
Faster app deployment than in a Further accelerate app deployment.
traditional, physical environment.
Reduce effort to deploy apps.
Apps are deployed into VMs with high
compatibility success. Streamline development and testing.
Apps benefit from key VM features, such Lower costs associated with app deployment.
Virtual as Increase server consolidation.
live migration, HA.
Container overview
Dependencies: Every application has its own Container
dependencies which include both software
(services, libraries) and hardware (CPU,
memory, storage).
Virtualization: Container engine is a lightweight
virtualization mechanism which isolates these
dependencies per each application by App A App B
packaging them into virtual containers. Bins/Libraries Bins/Libraries
Shared host OS: Processes in containers are
isolated from other containers in user space,
but share the kernel with the host and other Host OS
containers. w/Container Support
Flexible: Differences in underlying OS and
infrastructure are abstracted away,
Server
streamlining ‘deploy anywhere’ approach.
Fast: Containers can be created almost
instantly, enabling rapid scale-up and scale-
down in response to changes in demand.
Containers offer unique capabilities
Fast Defined Resource Immutabili Rapid
iteration state controls ty deployme
separation nt
Containers
How do they differ from virtual machines?
Dependencies: Each virtualized app includes Virtual Machine
the app itself, required binaries and libraries
and a guest OS,
which may consist of multiple GB of data.
Independent OS: Each VM can have a different
OS from other VMs, along with a different OS
to the host itself. App A App B
Bins/Libraries Bins/Libraries
Flexible: VMs can be migrated to other hosts to
balance resource usage and for host
maintenance, Guest OS Guest OS
without downtime.
Secure: High levels of resource and security Hypervisor
isolation
for key virtualized workloads.
Server
Containers inside virtual machines
Deployment options suited to many scenarios
Containers in VMs: By combining containers Virtual Machine
with VMs, users can deploy multiple, different
VM operating systems, and inside, deploy Container
multiple containers within those guest OSs.
By combining containers with VMs, fewer VMs
would be required to support a larger number
of apps. App A App A
Bins/
App B
Bins/
Bins/Libraries Libraries Libraries
Fewer VMs would result in a reduction in
storage consumption.
Guest OS Guest OS
Each VM would support multiple isolated apps, w/ Container Support
increasing overall density.
Flexible: Running containers inside VMs Hypervisor
enables features such as live migration for
optimal resource utilization and host
maintenance. Server
Windows Server containers
Anatomy and key capabilities
Build: Developers will use familiar Container A Container B Container C
development
tools, such as Visual Studio, to write apps to
run
within containers.
Web tier App tier DB tier
By building modular apps leveraging
containers, LOB app LOB app LOB app
modules can scale independently, and be (+Binaries) (+Binaries) (+Binaries)
updated
on independent cadences. Librarie
Libraries
(Shared across containers) s
Run: Container capabilities built into Windows
Server.
Host OS
Manage: Deploy and manage containers using with container support
PowerShell, or using Docker.
Server
Resources: Define CPU and memory resources (Physical or Virtual)
per container along with storage and network
throughput.
Containers are central to DevOps
process
Physical/Virtual
Servers
Operations collaborates with
developers to provide app
metrics and insights.
Developers build, test and
Operations automates
update apps in containers,
deployment and monitors
using development
deployed apps from central
environment;
repository.
i.e., Visual Studio.
Developers push containers
to central repository.
“ By containerizing legacy applications using
Windows Server containers, we gain better
consistency and control between developers,
“
testers, and deployment teams—a full DevOps
environment—without changing the
application.
Matthew Roberts
Principle Software
Engineer
Tyco International
Hyper-V containers
Anatomy and key capabilities
Consistency: Hyper-V containers use the same Hyper-V container Hyper-V container
APIs as Windows Server containers ensuring
consistency across management and
deployment toolsets.
Compatibility: Hyper-V containers use the
exact same images as Windows Server
containers. App A App B
Bins/Libraries Bins/Libraries
Strong isolation: Each Hyper-V container has
its own dedicated copy of the kernel.
Windows Guest OS Windows Guest OS
Highly trusted: Built with proven Hyper-V Optimized for Hyper-V
container
Optimized for Hyper-V
container
virtualization technology.
Optimized: The virtualization layer and the Hypervisor
operating system have been specifically
optimized for containers
Server
Docker components
Build Ship Run
“Developer” Workflows Registry Services Management
Docker
Cloud
Docker Client Docker Hub Docker Cloud
Docker Trusted Docker Universal
Docker Compose
Registry Control Plane
Docker
Datacente
r
Docker Engine
Operating System Infrastructure Plugins
Containers offer ideal support
Distribut Scale Database Tasks Web
ed out s
compute
𝑓 (𝑥 )
Container operating system
environments
Nano Server Server Core
Highly Born-in-the- Highly Traditional
optimized cloud compatibl applications
applications e
The right Container management
tools for you
PowerShell Docker Others
Development Container technologies
environments
Linux
Microsoft cloud
Others… On Service
Azure premises Provider
The right Virtual Machines
tools for you
Linux
Development frameworks and Service fabric
languages
PHP Go Python .Net Node Perl
Ruby JavaScript Win32 Java C++
Microsoft cloud Container technologies
Azure On premises Service Provider Linux
Next steps
Learn more about Windows Server 2016:
[Link]/WindowsServer2016
Review Windows containers
documentation:
[Link]
Windows Server blog:
[Link]
© 2016 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other
countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must
respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this
presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Appendix
Technology comparison
Comparing containers and virtual machines
Windows Server Linux Virtual
containers containers machines
Base image Same as host Same as host Any Windows/Linux
Multi-tenant security No No Yes
Resource managed Yes Yes Yes
Density Higher Higher Lower
Startup time Shorter Shorter Longer
Disk footprint Smaller Smaller Larger
Application
Medium Medium High
compatibility
Operating System: Containers share same OS as host system, but can run inside virtual machines to enable
OS flexibility.
Security: Virtual machines offer a higher level of protection against threats such as kernel exploits.
VM features: Whilst containers have faster startup time, virtual machines benefit from features such as live
migration.
App compatibility: For greatest benefit, apps should be designed, architected and written for containers i.e.