Blue whale, jail and Microsoft

Post on 09-Apr-2017

916 views 3 download

Transcript of Blue whale, jail and Microsoft

Blue whale, jail and Microsoft

Łukasz Kałużny, Cloud Architect @ ITMAGINATION, MVP: Microsoft Azurelukasz.kaluzny@itmagination.pl @kaluzaaa blog.kaluzny.pro

• Jail?• chroot?• zones?• App-V Server?• LCX?

Frontend

Node.js

SASS

API

Python

Flask

Celery

Database

MySql

Proxy

Nginx

Cache

Memcached

Redis

MyDevelopment

YourDevelopment Acceptance ProductionPre-production

STACK DELIVERY TODAY SCENARIO

App A App B

Libs

Guest OS

Libs

Guest OS

HypervisorHost OS

Server

VMApp B

Docker EngineHost OS

Server

App A

Libs LibsContainer

HYPERVISOR VS. CONTAINER

DOCKER

Frontend

Node.js

SASS

API

Python

Flask

Celery

Database

MySql

Proxy

Nginx

Cache

Redis

Redis

MyDevelopment

YourDevelopment Acceptance ProductionPre-production

DOCKER STACK DELIVERY

DOCKER ECOSYSTEM

Official Repos & 14K+ Dockerized Apps

Community640+ Contributors250+ Meetups on Docker38M Downloads16K Projects on GitHub

SupportEnterprise SupportRobust DocumentationImplementation, Integration, Training Network of Partners

The Docker Platform Docker Engine Docker Hub

Build, Ship, and Run

Partners

Content

Users

Official Repos &35 K Dockerized Apps

Microsoft

♥Linux

COMBINING WINDOWS AND LINUX

Background

Workers

SQL Server

Nginx

Windows Server Linux

Docker Engine (Daemon)

Windows Server Container Support

Linux Container Support

Docker Engine (Daemon)

Containers in WS2016 TP3Can still change a lot!!!

• Windows Server 2016 TP3 + feature Containers• Windows Server Container Preview = Windows Server

2016 TP3 with Containers pre installed

CONTAINER OPERATING SYSTEM ENVIRONMENTS

Server CoreNano Server

Born in the cloud applications Traditional Applications

Highly CompatibleHighly Optimized

DEPLOYING CONTAINERS

Physical Machine

Hyper-V Virtual Machine(s)

Hyper-VContainer(s)

Windows ServerContainer(s)

DEPLOYING CONTAINERS

Physical Machine

Hyper-V Virtual Machine(s)

Hyper-VContainer(s)

Windows ServerContainer(s)

Requires Hyper-V Hypervisor

Hyper-V Hypervisor

DEPLOYING CONTAINERS

Physical Machine

Virtual Machines

Hyper-VContainer(s)

Windows ServerContainer(s)

DEPLOYING CONTAINERS

Physical Machine

Virtual Machines

Hyper-V Container(s)

Windows Server

Container(s)

Requires Hyper-V

Hypervisor

Hyper-V Hypervisor

MICROSOFT’S CONTAINER RUNTIMES

Windows Server Container

HIGHLY AUTOMATED EFFICIENTSCALABLE

AND ELASTIC

Hyper-V Container

HIGHLY AUTOMATED EFFICIENTSCALABLE

AND ELASTICPUBLIC

MULTI-TEANCYSHARED HOSTING

SECURE

SECURE

HOSTINGTRUSTED

MULTI-TENANCY

REGULATED WORKLOADS

IMAGE CREATION

Local Repository

Application

Framework

Container Run-Time

Container OSImageC:\Windows\*

IMAGE CREATION

Local Repository

Application

Framework

Container View

Container OSImage C:\Windows\*

C:\Windows\*Sandbox empty

IMAGE CREATION

Local Repository

Application

Framework

Container View

Container OSImage C:\Windows\*

C:\Windows\*Sandbox empty

C:\nodeJS

IMAGE CREATION

Local Repository

Application

Framework

Container View

Container OSImage C:\Windows\*

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

C:\nodeJS

IMAGE CREATION

Local Repository Container

ViewContainer OS

Image C:\Windows\*

Sandbox C:\nodeJs

IMAGE CREATION

Local Repository

Application

Framework

Container View

Container OSImage C:\Windows\*

C:\nodeJsApplicationFramework

IMAGE CREATION

Local Repository

Application

Framework

Container View

Container OSImage C:\Windows\*

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

ApplicationFramework

Sandbox Empty

IMAGE CREATION

Local Repository

Application

Framework

Container View

Container OSImage C:\Windows\*

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

ApplicationFramework

Sandbox Empty

C:\myApp

IMAGE CREATION

Local Repository

Application

Framework

Container View

Container OSImage C:\Windows\*

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

C:\nodeJsApplicationFramework

Sandbox C:\myApp

C:\myApp

IMAGE CREATION

Local Repository

Application

Framework

Container View

Container OSImage C:\Windows\*

C:\nodeJsApplicationFramework

Sandbox C:\myApp

IMAGE CREATION

Local Repository

Application

Framework

Container View

Container OSImage C:\Windows\*

C:\nodeJsApplicationFramework

C:\myAppApplicationImage

DEMO – POWERSHELL – NEW CONTAINER• Get-Command -Module containers• Get-ContainerImage• Get-VMSwitch• $container = New-Container -Name ”MyContainer" –ContainerImageName

WindowsServerCore -SwitchName "Virtual Switch"• Start-Container -Name "MyContainer”• Enter-PSSession -ContainerId $container.ContainerId -RunAsAdministrator• Stop-Container -Name "MyContainer"

ADD NGINX• wget -uri 'http://nginx.org/download/nginx-1.9.3.zip' -OutFile "c:\nginx-

1.9.3.zip"• Expand-Archive -Path C:\nginx-1.9.3.zip -DestinationPath c:\ -Force

DEMO – POWERSHELL – NEW CONTAINER IMAGE• $newimage = New-ContainerImage -ContainerName MyContainer -Publisher

Demo -Name newimage -Version 1.0

DEMO – POWERSHELL – NEW CONTAINER FROM IMAGE• $newcontainer = New-Container -Name "newcontainer" -ContainerImageName

newimage -SwitchName "Virtual Switch„• Start-Container $newcontainer• Enter-PSSession -ContainerId $newcontainer.ContainerId –RunAsAdministrator• cd c:\nginx-1.9.3\ & start nginx

Networking• Add-NetNatStaticMapping -NatName "ContainerNat" -Protocol TCP -

ExternalIPAddress 0.0.0.0 -InternalIPAddress 172.16.0.2 -InternalPort 80 -ExternalPort 80

• if (!(Get-NetFirewallRule | where {$_.Name -eq "TCP80"})) { New-NetFirewallRule -Name "TCP80" -DisplayName "HTTP on TCP/80" -Protocol tcp -LocalPort 80 -Action Allow -Enabled True}

Microsoft CloudAzure On Premises Service Provider

Container ManagementPowerShell OthersDocker

Development Environments

Others…

Container Technologies

Linux

THE RIGHT TOOLS FOR YOU

THE RIGHT TOOLS FOR YOU

Virtual MachinesLinux

Service FabricDevelopment Frameworks

and Languages

.NetPHP Node

C++JavaRuby Win32

Go PerlPhython

JavaScript

Container TechnologiesLinux

Microsoft CloudAzure On Premises Service Provider