開發人員 系統與網管
建置
Development Environments
發行
安全內容與協同合作
開發者
版本控制
Docker
受信任登錄資料庫
品保工程
預備環境
快速演進快速部署
再製力
服務分隔 高可用
於擴展下測試相容多雲環境 可擴展
減少成本不變性
什麼是容器?
什麼是容器?
Application
OS
Hardware
什麼是容器?
Traditional virtual machines = hardware virtualization
VM VM VM
什麼是容器?
Traditional virtual machines = hardware virtualization
VM VM VM
什麼是容器?
Traditional virtual machines = hardware virtualization
VM VM VM
什麼是容器?
Containers = Operating system virtualization
Traditional virtual machines = hardware virtualization
Applications
Kernel
VM VM VM
什麼是容器?
Containers = Operating system virtualization
Traditional virtual machines = hardware virtualization
Applications
Kernel
CONTAINER CONTAINER CONTAINER
VM VM VM
什麼是容器?
Containers = Operating system virtualization
Traditional virtual machines = hardware virtualization
Applications
Kernel
CONTAINER CONTAINER CONTAINER
VM VM VM
什麼是容器?
Containers = Operating system virtualization
Traditional virtual machines = hardware virtualization
Applications
Kernel
CONTAINER CONTAINER CONTAINER
CONTAINER CONTAINER CONTAINER
Windows Server Containers
Maximum speed and density
VM VM VM
什麼是容器?
Containers = Operating system virtualization
Traditional virtual machines = hardware virtualization
CONTAINER CONTAINER CONTAINER
Windows Server Containers
Maximum speed and density
Kernel
CONTAINER
Kernel
CONTAINER
Kernel
CONTAINER
Hyper-V Containers
Isolation plus performance
Applications
Kernel
CONTAINER CONTAINER CONTAINER
VM VM VM
容器是如何運作的?
容器開發與
管理工具集
容器執行期元件
主機使用者模式
Container
Management
System
Processes
主機使用者模式
Container
Management
System
Processes
主機使用者模式
Container
Management
System
Processes
System
Processes
主機使用者模式
Container
Management
System
Processes
Application
Process(es)
System
Processes
System
Processes
Application
Process(es)
主機使用者模式
Container
Management
System
Processes
Application
Process(es)
System
Processes
System
Processes
Application
Process(es)
主機使用者模式
Container
Management
System
Processes
Application
Process(es)
System
Processes
Hyper-V Container
Hyper-V Container
System
Processes
Application
Process(es)
主機使用者模式
Container
Management
System
Processes
Application
Process(es)
System
Processes
Hyper-V Container
Host User Mode
Container
Management
System
Processes
Application
Process(es)
System
Processes
System
Processes
Application
Process(es)
虛擬機器
為執行容器而做特別最佳化
主機使用者模式
Container
Management
System
Processes
Application
Process(es)
System
Processes
Hyper-V Container
System
Processes
Application
Process(es)
Windows Server Container
Under 600 Milliseconds!
A virtual machine takes ~3 seconds
Hyper-V Container
~1.75 seconds
Windows Server Container
~1 秒
虛擬機器需要~5 秒到超過 1 分鐘
Hyper-V Container
~3.3 秒
HP ProLiant SL250s Gen8, E5-2600, 2 Socket, 8 Core, 128GB RAM, HP SATA SSD
Windows Server Container
600毫秒以內
虛擬機器需要~3 秒鐘
Hyper-V Container
~1.75 秒
Windows Server Container
~1 秒
虛擬機器需要~5 秒到超過 1 分鐘
Hyper-V Container
~3.3 秒
Windows Server Container
First Container ~120MB
Additional Containers ~75MB
Hyper-V Container
First Container ~340MB
Additional Containers ~150MB
Windows Server Container
初始容器~150MB
額外容器~75MB
Hyper-V Container
初始容器~555MB
額外容器~280MB
HP ProLiant SL250s Gen8, E5-2600, 2 Socket, 8 Core, 128GB RAM, HP SATA SSD
Windows Server Container
初始容器~120MB
額外容器~75MB
Hyper-V Container
初始容器~340MB
額外容器~150MB
Windows Server Container
初始容器~150MB
額外容器~75MB
Hyper-V Container
初始容器~555MB
額外容器~280MB
如何建立容器環境?
• 支援虛擬化的處理器 (Intel VT-x)
• 4GB記憶體
• 若是執行 Hyper-V Container,則虛擬機器內至少要2顆 vCore
• Windows Server 2016 或 Windows 10 週年版作為 Container Host。
• 若是執行 Windows Server Container,則要安裝容器功能;若是執行
Hyper-V Container,則要啟用 Hyper-V 角色。
• Windows Server Container 要求作業系統一定要安裝在 C:,但此規則不
影響 Hyper-V Container。
如何建立容器?
什麼是容器映像 (Container Image)?
詮釋資料
Name,
Creation Data,
Command To Execute,
Dependences
內容
映像內容
License.txt PerfLogs Program Files
Program Files (x86) Users Windows
HKLM HKCU
HKCR HKU
映像內容
License.txt PerfLogs Program Files
Program Files (x86) Users Windows
HKLM HKCU
HKCR HKU
映像內容
mysite.html
inetpub
SOFTWARE/
mykey
HKLM
Docker 建置與 Dockerfiles
範例
推進去
拉出來
搜尋
https://docs.docker.com/registry https://github.com/docker/distribution
關於一些你會想知道的事…
https://www.microsoft.com/en-us/cloud-platform/windows-server-pricing
更新容器 OS 映像
10.0.14393.0
更新容器 OS 映像
10.0.14393.0
更新容器 OS 映像
KB123456 = new image on Docker Hub
10.0.14393.0 10.0.14393.1
更新容器 OS 映像
FROM windowsservercore
RUN powershell –command Add-WindowsFeature Web-Server
KB123456 = new image on Docker Hub
10.0.14393.0 10.0.14393.1
更新容器 OS 映像
FROM windowsservercore
RUN powershell –command Add-WindowsFeature Web-Server
FROM iis
ADD mysite.htm inetpubmysite.htm
KB123456 = new image on Docker Hub
10.0.14393.0 10.0.14393.1
更新為一個新的層次
10.0.14393.0
更新為一個新的層次
10.0.14393.0
更新為一個新的層次
10.0.14393.0 10.0.14393.0
Same Image
更新為一個新的層次
10.0.14393.0 10.0.14393.0
Same Image
Same Image
Same Image
更新為一個新的層次
10.0.14393.0 10.0.14393.0
Same Image
Same Image
Same Image
Container Host
License.txt PerfLogs Program Files
Program Files (x86) Users Windows
ContainerDataContainer Host
License.txt PerfLogs Program Files
Program Files (x86) Users Windows
ContainerDataContainer Host
License.txt PerfLogs Program Files
Program Files (x86) Users Windows
ContainerData
License.txt PerfLogs Program Files
Program Files (x86) Users Windows
data
Container Host
License.txt PerfLogs Program Files
Program Files (x86) Users Windows
ContainerData
License.txt PerfLogs Program Files
Program Files (x86) Users Windows
data
Container Host
供應給企業級應用程式



簡單與安全



Credential Spec
DefaultAccount:
DomainMyWebApp1$
Service: IIS
User:
LocalSystem
DomainMyWebApp1$
1) 使用預設帳戶進行服務與工作
(LocalSystem, Network Service)
2) 當啟動容器時給予服務帳戶
3) 容器使用服務帳
戶連結
自動化與管理
Standard Docker tooling
and API support
Streamlined provisioning
of Docker Swarm and DCOS
Linux and Windows Server
containers
Azure and Azure Stack
Azure
Swarm DC/OS
應用程式
基礎建設
編配器
(Orchestrator)
Compute
Commercially Supported Docker Engines
開發工具
Visual Studio Docker Tools
aka.ms/DockerToolsForVS
using System;
class Program
{
static void Main()
{
}
}
微服務 (Microservices)
• 由小型跨功能團隊開發
微服務
• 由小型跨功能團隊開發
微服務
• 狀態:單一單體式資料庫
• 指定技術的層次
• 彼此連結的服務結構
• 狀態由服務自行管理
• 可使用完全不同的技術
無狀態服務
分離儲存的無狀態
服務
有狀態服務
無狀態
展示層服務
單體式應用程式 微服務應用程式
推薦讀物
www.microsoft.com/itprocareercenter
www.microsoft.com/itprocloudessentials
www.microsoft.com/mechanics
https://techcommunity.microsoft.com
https://msdn.microsoft.com/en-us/virtualization/windowscontainers/about/about_overview
https://msdn.microsoft.com/en-us/virtualization/windowscontainers/management/hyperv_container
https://msdn.microsoft.com/en-us/virtualization/windowscontainers/docker/configure_docker_daemon
https://azure.microsoft.com/en-us/documentation/articles/service-fabric-overview-microservices/
https://azure.microsoft.com/en-us/documentation/articles/container-service-intro/
https://azure.microsoft.com/en-us/documentation/articles/service-fabric-overview/

Windows 與 Azure 的容器旅程 @ Ignite Mini 2016