Upload
lukasz-kaluzny
View
916
Download
3
Embed Size (px)
Citation preview
Blue whale, jail and Microsoft
Łukasz Kałużny, Cloud Architect @ ITMAGINATION, MVP: Microsoft [email protected] @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
Windows Server Containers Quick Starthttps://msdn.microsoft.com/en-us/virtualization/windowscontainers/quick_start/quickstart