faster app development using windows server 2016 containers

24
+353 (1) 9014625 blackmarble.co m Containers Faster app development using Windows Server 2016 Containers

Upload: nguyendung

Post on 13-Feb-2017

230 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Faster app development using Windows Server 2016 containers

+353 (1) 9014625

blackmarble.com

ContainersFaster app development using Windows Server 2016 Containers

Page 2: Faster app development using Windows Server 2016 containers

+353 (1) 9014625

blackmarble.com

Rik HepworthIT Director, Black MarbleMVP (Azure)

@rikhepworth blogs.blackmarble.co.uk/blogs/rhepworth Black Marble

Page 3: Faster app development using Windows Server 2016 containers

Challenges between developers and IT

Developers ITI 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.

Page 4: Faster app development using Windows Server 2016 containers

Balancing innovation and controlHow do you empower developers

to create innovative applications at a competitive rate without disrupting IT’s ability to manage servers and maintain control?

Containers

Page 5: Faster app development using Windows Server 2016 containers

What is a container?Containers

Traditional virtual machines = hardware virtualization

VM VM VMApplication

OS

Hardware

Hardware

OS

OS Applications

Kernel

= Operating system virtualizationContain

erContain

erContain

er

Windows Server containersMaximum speed and density

Container Container Container

Kernel

Hyper-V containersIsolation plus performance

Hyper-V

Container

Kernel

Container

Kernel

Container

Kernel

Page 6: Faster app development using Windows Server 2016 containers

Container benefitsA new approach to build, ship, deploy, and instantiate applications

Applications traditionally built and deployed onto physical systems with 1:1 relationship.New applications often require new physical systems for isolation of resources.

Physical

Higher consolidation ratios and better utilization.Faster app deployment than in a traditional, physical environment.Apps are deployed into VMs with high compatibility success.Apps benefit from key VM features, such as live migration, HA.

Virtual

Package and run apps within containers.Physical/

Virtual

Key benefitsFurther accelerate app deployment.Reduce effort to deploy apps.Streamline development and testing.Lower costs associated with app deployment.Increase server consolidation.

Page 7: Faster app development using Windows Server 2016 containers

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 ABins/Libraries

App BBins/Libraries

Host OSw/Container Support

Server

Page 8: Faster app development using Windows Server 2016 containers

Containers offer unique capabilities

Fast iteration

Resource controls

Rapid deployment

Defined state separation

Immutability

Page 9: Faster app development using Windows Server 2016 containers

ContainersHow 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.

Hypervisor

Guest OS Guest OS

Virtual Machine

App ABins/Libraries

App BBins/Libraries

Server

Page 10: Faster app development using Windows Server 2016 containers

Containers inside virtual machinesDeployment options suited to many scenariosContainers 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.

Hypervisor

Guest OS Guest OSw/ Container Support

Virtual Machine

App ABins/Libraries

App ABins/

Libraries

Server

App BBins/

Libraries

Container

Page 11: Faster app development using Windows Server 2016 containers

Windows Server containersAnatomy and key capabilitiesBuild: Developers will use familiar developmenttools, such as Visual Studio, to write apps to runwithin containers.By building modular apps leveraging containers,modules can scale independently, and be updatedon 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.

Host OSwith container support

Server(Physical or Virtual)

Web tierLOB app(+Binaries)

Container A

App tierLOB app(+Binaries)

Container B

DB tierLOB app(+Binaries)

Container C

Libraries(Shared across containers)

Libraries

Page 12: Faster app development using Windows Server 2016 containers

Operations collaborates with developers to provide app

metrics and insights.

Physical/Virtual Servers

Operations automates deployment and monitors

deployed apps from central repository.

Developers push containers to central repository.

Developers build, test and update apps in containers,

using development environment;

i.e., Visual Studio.

Containers are central to DevOps process

Page 13: Faster app development using Windows Server 2016 containers

Matthew RobertsPrinciple Software EngineerTyco International

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.

“ “

Page 14: Faster app development using Windows Server 2016 containers

Hyper-V containersAnatomy and key capabilitiesConsistency: Hyper-V containers use the same 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.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

Hypervisor

Server

Windows Guest OSOptimized for Hyper-V

container

Hyper-V container

App BBins/Libraries

Windows Guest OSOptimized for Hyper-V

container

Hyper-V container

App ABins/Libraries

Page 15: Faster app development using Windows Server 2016 containers

Registry Services Management

Docker components

Docker Engine

“Developer” Workflows

Build

Docker Client

Docker Compose

Ship

Docker Hub

Docker Trusted Registry

Run

Docker Cloud

Docker Universal Control Plane

InfrastructureOperating System Plugins

DockerCloud

DockerDatacente

r

Page 16: Faster app development using Windows Server 2016 containers

Distributed compute

Databases

WebTasksScale out

Containers offer ideal support

𝑓 (𝑥 )

Page 17: Faster app development using Windows Server 2016 containers

Server CoreNano Server

Container operating system environments

Traditional applications

Highly compatible

Highly optimized

Born-in-the-cloud applications

Page 18: Faster app development using Windows Server 2016 containers

Container technologies

Microsoft cloud

Azure On premises

Service Provider

Container management

PowerShell OthersDocker

Development environments

Others…

Linux

The right tools for you

Page 19: Faster app development using Windows Server 2016 containers

Virtual MachinesThe right tools for you

Microsoft cloud

Azure On premises Service Provider

Container technologies

Linux

Service fabric

Linux

Development frameworks and languages

C++JavaRuby Win32JavaScript

.NetPHP Go PerlPython Node

Page 20: Faster app development using Windows Server 2016 containers

Next stepsLearn 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

Page 21: Faster app development using Windows Server 2016 containers

+353 (1) 9014625

blackmarble.com

[email protected]

+353 (1) 9014625

@blackmarble

Black Marble Ltd.

Black Marble

Page 22: Faster app development using Windows Server 2016 containers

© 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 marketconditions, 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.

Page 23: Faster app development using Windows Server 2016 containers

Appendix

Page 24: Faster app development using Windows Server 2016 containers

Technology comparisonComparing containers and virtual machines

Windows Servercontainers

Linuxcontainers

Virtualmachines

Base image Same as host Same as host Any Windows/LinuxMulti-tenant security No No YesResource managed Yes Yes YesDensity Higher Higher LowerStartup time Shorter Shorter LongerDisk footprint Smaller Smaller LargerApplication compatibility Medium Medium HighOperating 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. stateless, componentized versus ports of traditional, monolithic apps.