Faster app development using Windows Server 2016 containers
Download
Report
Transcript Faster app development using Windows Server 2016 containers
+353 (1) 9014625
blackmarble.com
Containers
Faster app development using Windows Server 2016 Containers
+353 (1) 9014625
blackmarble.com
@rikhepworth
blogs.blackmarble.co.uk/blogs/rhepworth
Rik Hepworth
IT Director, Black Marble
MVP (Azure)
Black Marble
Challenges between developers and IT
Developers
IT
I need to create applications
at a competitive rate without
worrying about IT.
I need to manage servers
and maintain compliance
with little disruption.
New applications run smoothly on
my machines but malfunction on
traditional IT server.
I’m unsure of how to integrate
unfamiliar applications, and
I require help from developers.
My productivity and application
innovation become suspended
when I have to wait on IT.
I’m unable to focus on both server
protection and application compliance.
Balancing innovation and control
How do you empower developers
to create innovative applications at
a competitive rate without disrupting
IT’s ability to manage servers and
maintain control?
Containers
What is a container?
Containers
= Operating system virtualization
Container
Container
Container
Windows Server containers
Maximum speed and density
Container
Container
Container
Applications
Kernel
Traditional virtual machines = hardware virtualization
VM
VM
VM
Hyper-V containers
Isolation plus performance
Container
Container
Container
Container benefits
A new approach to build, ship, deploy, and instantiate applications
Physical
Physical/
Virtual
Key benefits
Virtual
Container overview
Dependencies: Every application has its own
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 packaging
them into virtual containers.
Shared host OS: Processes in containers are isolated
from other containers in user space, but share the
kernel with the host and other containers.
Flexible: Differences in underlying OS and
infrastructure are abstracted away, streamlining
‘deploy anywhere’ approach.
Fast: Containers can be created almost instantly,
enabling rapid scale-up and scale-down in response
to changes in demand.
Container
App B
Bins/Libraries
Containers offer unique capabilities
Fast
iteration
Defined
state
separation
Resource
controls
Immutability
Rapid
deployment
Containers
How do they differ from virtual machines?
Dependencies: Each virtualized app includes 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.
Flexible: VMs can be migrated to other hosts to
balance resource usage and for host maintenance,
without downtime.
Secure: High levels of resource and security isolation
for key virtualized workloads.
Virtual Machine
App B
Bins/Libraries
Guest OS
Containers inside virtual machines
Deployment options suited to many scenarios
Containers in VMs: By combining containers with
VMs, users can deploy multiple, different VM
operating systems, and inside, deploy multiple
containers within those guest OSs.
By combining containers with VMs, fewer VMs would
be required to support a larger number of apps.
Fewer VMs would result in a reduction in storage
consumption.
Each VM would support multiple isolated apps,
increasing overall density.
Flexible: Running containers inside VMs enables
features such as live migration for optimal resource
utilization and host maintenance.
Virtual Machine
Container
App A
Bins/
Libraries
App B
Bins/
Libraries
Guest OS
w/ Container Support
Windows Server containers
Anatomy and key capabilities
Build: Developers will use familiar development
tools, such as Visual Studio, to write apps to run
within containers.
By building modular apps leveraging containers,
modules can scale independently, and be updated
on independent cadences.
Run: Container capabilities built into Windows Server.
Manage: Deploy and manage containers using
PowerShell, or using Docker.
Resources: Define CPU and memory resources per
container along with storage and network
throughput.
Network: Provide NAT or DHCP/static IP for
network connectivity.
Container A
Container B
Container C
Web tier
App tier
DB tier
LOB app
LOB app
LOB app
(+Binaries)
(+Binaries)
Libraries
(Shared across containers)
Host OS
(+Binaries)
Libraries
Containers are central to DevOps process
Physical/Virtual Servers
Operations collaborates with
developers to provide app metrics
and insights.
Developers build, test and
update apps in containers, using
development environment;
i.e., Visual Studio.
Operations automates deployment
and monitors deployed apps from
central repository.
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 APIs
as Windows Server containers ensuring consistency
across management and deployment toolsets.
Hyper-V container
Hyper-V container
Compatibility: Hyper-V containers use the exact same
images as Windows Server containers.
Strong isolation: Each Hyper-V container has its own
dedicated copy of the kernel.
Highly trusted: Built with proven Hyper-V
virtualization technology.
Optimized: The virtualization layer and the operating
system have been specifically optimized for
containers
App A
Bins/Libraries
Windows Guest OS
Optimized for Hyper-V container
App B
Bins/Libraries
Windows Guest OS
Optimized for Hyper-V container
Docker components
“Developer” Workflows
Registry Services
Infrastructure
Management
Containers offer ideal support
Distributed
compute
𝑓 𝑥
Scale
out
Databases
Tasks
Web
Container operating system environments
Server Core
Nano Server
Highly
optimized
Born-in-the-cloud
applications
Highly
compatible
Traditional
applications
The right
tools for you
Container management
PowerShell
Development
environments
Container technologies
Microsoft cloud
Others…
Docker
Others
The right
tools for you
Virtual Machines
Development frameworks and languages
PHP
Ruby
Go
Python
JavaScript
.Net
Win32
Node
Java
Perl
C++
Microsoft cloud
Azure
Service fabric
Container technologies
On premises
Service Provider
Next steps
Learn more about Windows Server 2016:
www.microsoft.com/WindowsServer2016
Review Windows containers documentation:
http://aka.ms/containers
Windows Server blog:
http://blogs.technet.microsoft.com/windowsserver
+353 (1) 9014625
[email protected]
+353 (1) 9014625
@blackmarble
Black Marble Ltd.
Black Marble
blackmarble.com
© 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.
Technology comparison