Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James...

43
Define, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan www.jamesbannanit.com David O’Brien @david_obrien www.david-obrien.net

Transcript of Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James...

Page 1: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Define, bundle, deployWorking with Windows Server Containers and Docker

James [email protected]

David O’Brien@david_obrienwww.david-obrien.net

Page 2: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

#MMSMOA

@jamesbannan

Solution Architect, Ensyst

TechEd, Blog, Book, Courses

Pre-Windows 2000 ;-)

Cloud & Datacenter Management MVP

Melbourne, Australia

James Bannan

Page 3: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

#MMSMOA

@david_obrien

Microsoft MVP for Windows PowerShell

MMS 2014

TechEd AU 2014

Melbourne UG

• Automation

• xPlatform

• DevOps

Melbourne, Australia

David O’Brien

Page 4: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Container Ecosystem

Container Images

Container Run-Time

Linux

Image Repository

Applications

Application

Frameworks

Page 5: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Container Run-time

Operating System

Physical Host

Image

Page 6: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Container Run-time

Operating System

Operating System

Image

Virtual machine(s)

Operating System

Hardware Virtualization

Page 7: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Container Run-time

Operating SystemContainer(s)

Operating System

Hardware Virtualization

Page 8: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Image Creation

Local Repository

Application

Framework

Container Run-Time

Container OSImageC:\Windows\*

Page 9: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Image Creation

Local Repository

Application

Framework

Container View

Container OSImage C:\Windows\*

C:\Windows\*Sandbox empty

Page 10: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Image Creation

Local Repository

Application

Framework

Container View

Container OSImage C:\Windows\*

C:\Windows\*Sandbox empty

C:\nodeJS

Page 11: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Image Creation

Local Repository

Application

Framework

Container View

Container OSImage C:\Windows\*

C:\Windows\*C:\nodeJSSandbox C:\nodeJs

C:\nodeJS

Page 12: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Image Creation

Local Repository

Container View

Container OSImage C:\Windows\*

Sandbox C:\nodeJs

Page 13: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Image Creation

Local Repository

Application

Framework

Container View

Container OSImage C:\Windows\*

C:\nodeJsApplicationFramework

Page 14: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Image Creation

Local Repository

Application

Framework

Container View

Container OSImage C:\Windows\*

C:\Windows\*C:\nodeJSC:\nodeJs

ApplicationFramework

Sandbox Empty

Page 15: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Image Creation

Local Repository

Application

Framework

Container View

Container OSImage C:\Windows\*

C:\Windows\*C:\nodeJSC:\nodeJs

ApplicationFramework

Sandbox Empty

C:\myApp

Page 16: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Image Creation

Local Repository

Application

Framework

Container View

Container OSImage C:\Windows\*

C:\Windows\*C:\nodeJSC:\myApp

C:\nodeJsApplicationFramework

Sandbox C:\myApp

C:\myApp

Page 17: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Image Creation

Local Repository

Application

Framework

Container View

Container OSImage C:\Windows\*

C:\nodeJsApplicationFramework

Sandbox C:\myApp

Page 18: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Image Creation

Local Repository

Application

Framework

Container View

Container OSImage C:\Windows\*

C:\nodeJsApplicationFramework

C:\myAppApplicationImage

Page 19: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

DemoWindows Server Containers

Page 20: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Local Repository

Development Process Using Containers

Central Repository

Application

Framework

Page 21: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Local Repository

Development Process Using Containers

Application

Framework

Developers can choose desired application frameworks

and pull them locally from central repositories

Central Repository

Application

Framework

Page 22: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Required dependencies are automatically identified and pulled

locallyLocal

Repository

Development Process Using Containers

Application

Framework

Central Repository

Application

Framework

Developers can choose desired application frameworks

and pull them locally from central repositories

Page 23: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Local Repository

Development Process Using Containers

Central Repository

using System;class Program{ static void Main() {

}}

Developers use the same programming languages

and environments they are accustomed to

Application

Framework

Application

Framework

Page 24: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Local Repository

Development Process Using Containers

Applications are compiled and assembled in the same

way developers are accustomed to

Application

Framework

Central Repository

using System;class Program{ static void Main() {

}}

Application

Framework

Page 25: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Local Repository

Development Process Using Containers

Application

Framework

A new container image is

built containing the

application written by

the developer

Central Repository

using System;class Program{ static void Main() {

}}

Application

Framework

Page 26: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Local Repository

Development Process Using Containers

Application

Framework

The new application container image can now be pushed to a central repository

Central Repository

using System;class Program{ static void Main() {

}}

Application

Framework

Page 27: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Development Process Using Containers

Central Repository

Application

Framework

Page 28: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Development Process Using Containers

Share with other developers

Used for unit testing

Central Repository

Application

Framework

Page 29: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Development Process Using Containers

Share with other developers

Used for unit testing

Central Repository

Application

Framework

Staged for integration or

QA

Page 30: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Dev/Ops Process with Containers

Developers build and test apps in containers,

using development environment

i.e. Visual Studio

Operations automates

deployment and monitors deployed apps from central

repository

1 2

2

3

Operations collaborates with developers to provide app metrics and insights

Developers update, iterate, and deploy updated containers

Central Reposito

ry

Containers pushed to

central repository

Page 31: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

DemoContainer image development

Page 32: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Containers Offer

Fast Iteration

Resource Controls

Rapid Deployment

Defined State

SeparationImmutability

Page 33: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Making Them Ideal For

Distributed Compute

𝑓 (𝑥 )Databases Web

TasksScale Out

Page 34: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Container Operating System Environments

Server CoreNano Server

Born in the cloud applications

Traditional Applications

Highly CompatibleHighly Optimized

Page 35: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Microsoft’s Container Runtimes

Windows Server Container

HIGHLY AUTOMATED

EFFICIENTSCALABLE

AND ELASTIC

Hyper-V Container

HIGHLY AUTOMATED

EFFICIENTSCALABLE

AND ELASTIC

PUBLIC MULTI-TEANCY

SHARED HOSTING

SECURE

SECURE

HOSTINGTRUSTED

MULTI-TENANCY

REGULATED WORKLOADS

Page 36: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Modern App Development, Flexible Isolation

Container Management

PowerShell

Others

Docker

Windows Container Images

Application

Framework

Container Run-Times

Hyper-V Container

Windows Server Container

Write once, deploy anywhere

Page 37: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Deploying Containers

Physical Machine

Hyper-V Virtual Machine(s)

Hyper-VContainer(s)

Windows ServerContainer(s)

Page 38: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Deploying Containers

Physical Machine

Hyper-V Virtual Machine(s)

Hyper-VContainer(s)

Windows ServerContainer(s)

Requires Hyper-V Hypervisor

Hyper-V Hypervisor

Page 39: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Deploying Containers

Physical Machine

Virtual Machines

Hyper-VContainer(s)

Windows ServerContainer(s)

Page 40: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Deploying Containers

Physical Machine

Virtual Machines

Hyper-V Container(s)

Windows Server

Container(s)

Requires Hyper-V

Hypervisor

Hyper-V Hypervisor

Page 41: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Microsoft Cloud

Azure On Premises Service Provider

Container ManagementPowerShell OthersDocker

Development Environments

Others…

The right tools for you.

Container Technologies

Linux

Page 42: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

The right tools for you.

Virtual Machines

Linux

Service FabricDevelopment Frameworks

and Languages

.Net

PHP Node

C++

JavaRuby Win32

Go PerlPhython

JavaScript

Container Technologies

Linux

Microsoft Cloud

Azure On Premises Service Provider

Page 43: Define, bundle, deployDefine, bundle, deploy Working with Windows Server Containers and Docker James Bannan @jamesbannan  David O’Brien.

Evaluations: Please provide session feedback by clicking the EVAL button in the scheduler app (also download slides). One lucky winner will receive a free ticket to the next MMS!Session Title:

Discuss…

Ask your questions-real world answers!Plenty of time to engage, share knowledge.

SPO

NSO

RS