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

101
Ignite Mini 2016: Windows 與 Azure 與與與與 與與 Microsoft Azure MVP K.NET Co-founder

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

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

Ignite Mini 2016:Windows 與 Azure 的容器旅程小朱Microsoft Azure MVPK.NET Co-founder

Page 2: Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Page 3: Windows 與 Azure 的容器旅程 @ Ignite Mini 2016

• 主體• BRK3146 Dive into the new world of Windows Server and Hyper-V

Containers• 包含

• BRK4008 - Dive deep into Azure Container Service• BRK2194 - Hear about the state and future direction of the Azure Compute services• BRK1036 - Build applications with Microsoft Azure Service Fabric on Windows and

Linux• BRK2165 - Discover what’s new in Windows Server 2016 Virtualization• BRK3147 - Accelerate application delivery with Docker Containers and Windows

Server 2016 • BRK3319 - The Path to Containerization – transforming workloads into containers• BRK3189 - Develop, debug and deploy Containerized Applications with Docker

本課程涉及的 Microsoft Ignite 2016 議程…

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

讓雲端依我們所預期的變化

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

超擴展可用性 敏捷

雲端應用程式可預期的…

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

一切都是為了 DevOps…

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

開發人員 系統與網管建置

Development Environments

發行安全內容與協同合作

使用案例:於雲端開發與測試

開發者

版本控制Docker受信任登錄資料庫

品保工程

預備環境

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

為什麼需要容器?

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

為什麼需要容器?轉換現有應用程式為雲端應用程式是很困難的!

建置混合雲是很困難的!

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

容器讓一切都變得簡單了…

為什麼需要容器?

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

容器如何讓一切變簡單?

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

容器如何讓一切變簡單?

效率一致性

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

容器如何讓一切變簡單?效率一致性

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

容器如何讓一切變簡單?一致性

快速演進快速部署

再製力

服務分隔 高可用

於擴展下測試相容多雲環境 可擴展

減少成本不變性

效率

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

什麼是容器?

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

什麼是容器?

Application

OS

Hardware

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

什麼是容器?Traditional virtual machines = hardware virtualization

Application

OS

Hardware

VM VM VM

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

什麼是容器?

Traditional virtual machines = hardware virtualization

Application

OS

Hardware

VM VM VM

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

什麼是容器?

Traditional virtual machines = hardware virtualization

Application

OS

Hardware

OS

Hardware

VM VM VM

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

OS

Hardware

什麼是容器?Containers = Operating system virtualization

Traditional virtual machines = hardware virtualization

Applications

Kernel

Application

OS

Hardware

VM VM VM

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

什麼是容器?Containers = Operating system virtualization

Traditional virtual machines = hardware virtualization

OS

Hardware

ApplicationsKernel

CONTAINER

CONTAINER

CONTAINER

Application

OS

Hardware

VM VM VM

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

什麼是容器?Containers = Operating system virtualization

Traditional virtual machines = hardware virtualization

OS

Hardware

ApplicationsKernel

CONTAINER

CONTAINER

CONTAINER

Application

OS

Hardware

VM VM VM

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

什麼是容器?Containers = Operating system virtualization

Traditional virtual machines = hardware virtualization

OS

Hardware

ApplicationsKernel

CONTAINER

CONTAINER

CONTAINER

Kernel

CONTAINER

CONTAINER

CONTAINER

Windows Server ContainersMaximum speed and density

Application

OS

Hardware

VM VM VM

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

什麼是容器?Containers = Operating system virtualization

Traditional virtual machines = hardware virtualization

Kernel

CONTAINER

CONTAINER

CONTAINER

Windows Server ContainersMaximum speed and density

Hyper-V

Kernel

CONTAINER

Kernel

CONTAINER

Kernel

CONTAINER

Hyper-V ContainersIsolation plus performance

OS

Hardware

ApplicationsKernel

CONTAINER

CONTAINER

CONTAINER

Application

OS

Hardware

VM VM VM

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

容器是如何運作的?

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

高階架構

Operating System

Docker Engine

Docker Client

Docker Registry

Docker Compose

Docker Swarm

Docker Universal Control Plane}容器開發與管理工具集

容器執行期元件

Docker PowerShel

l

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

Windows Containers

Hyper-V Hypervisor

主機使用者模式

Container Managemen

t

Windows 核心

Compute Services

Docker Engine

System Processes

Session Manager

Local Security Authority

Etc…

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

Windows Containers

Hyper-V Hypervisor

主機使用者模式

Container Managemen

t

Windows 核心

Compute Services

Docker Engine Windows Server

Container

System Processes

Session Manager

Local Security Authority

Etc…

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

Windows Containers

Hyper-V Hypervisor

主機使用者模式

Container Managemen

t

Windows 核心

Compute Services

Docker Engine Windows Server

Container

System Processes

System Processes

Session Manager

Local Security Authority

Etc…

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

Windows Containers

Hyper-V Hypervisor

主機使用者模式

Container Managemen

t

Windows 核心

Compute Services

Docker Engine Windows Server

Container

System Processes

Application

Process(es)

System Processes

Session Manager

Local Security Authority

Etc…

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

Windows Server Container

System Processes

Application

Process(es)

Windows Containers

Hyper-V Hypervisor

主機使用者模式

Container Managemen

t

Windows 核心

Compute Services

Docker Engine Windows Server

Container

System Processes

Application

Process(es)

System Processes

Session Manager

Local Security Authority

Etc…

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

Windows Server Container

System Processes

Application

Process(es)

Windows Containers

Hyper-V Hypervisor

主機使用者模式

Container Managemen

t

Windows 核心

Compute Services

Docker Engine Windows Server

Container

System Processes

Application

Process(es)

System Processes

Session Manager

Local Security Authority

Etc…

Hyper-V Container

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

Hyper-V Container

Windows Server Container

System Processes

Application

Process(es)

Windows Containers

Hyper-V Hypervisor

主機使用者模式

Container Managemen

t

Windows 核心

Compute Services

Docker Engine Windows Server

Container

System Processes

Application

Process(es)

System Processes

Session Manager

Local Security Authority

Etc…

Windows 核心

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

Hyper-V Container

Windows Containers

Hyper-V Hypervisor

Host User Mode

Container Managemen

t

Windows 核心

Compute Services

Docker Engine Windows Server

Container

System Processes

Application

Process(es)

System Processes

Session Manager

Local Security Authority

Etc…

Windows 核心

Windows Server Container

System Processes

Application

Process(es)

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

虛擬機器為執行容器而做特別最佳化

Windows Containers

Hyper-V Hypervisor

主機使用者模式

Container Managemen

t

Windows 核心

Compute Services

Docker Engine Windows Server

Container

System Processes

Application

Process(es)

System Processes

Session Manager

Local Security Authority

Etc…

Hyper-V Container

Windows 核心

Windows Server Container

System Processes

Application

Process(es)

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

NodeJS with Nano ServerWindows Server ContainerUnder 600 Milliseconds!

A virtual machine takes ~3 seconds

Hyper-V Container~1.75 seconds

啟動效能NodeJS with Windows Server Core

Windows Server Container~1 秒

虛擬機器需要 ~5 秒到超過 1 分鐘

Hyper-V Container~3.3 秒

* 包含初始啟動供應階段 ( 盒外組態等 )** 啟動時間於初始容器開始後

Testing performed on HP ProLiant SL250s Gen8, E5-2600, 2 Socket, 8 Core, 128GB RAM, HP SATA SSD - results may vary based on hardware and software configurations.

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

NodeJS with Nano ServerWindows Server Container

600 毫秒以內虛擬機器需要 ~3 秒鐘

Hyper-V Container~1.75 秒

啟動效能

NodeJS with Windows Server CoreWindows Server Container

~1 秒虛擬機器需要 ~5 秒到超過 1 分鐘

Hyper-V Container~3.3 秒

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

NodeJS with Nano ServerWindows Server Container

First Container ~120MBAdditional Containers ~75MB

Hyper-V Container

First Container ~340MBAdditional Containers ~150MB

密度 ( 容器大小 )

NodeJS with Windows Server CoreWindows Server Container

初始容器 ~150MB額外容器 ~75MB

Hyper-V Container

初始容器 ~555MB額外容器 ~280MB

Testing performed on HP ProLiant SL250s Gen8, E5-2600, 2 Socket, 8 Core, 128GB RAM, HP SATA SSD - results may vary based on hardware and software configurations.

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

NodeJS with Nano ServerWindows Server Container

初始容器 ~120MB額外容器 ~75MB

Hyper-V Container

初始容器 ~340MB額外容器 ~150MB

密度 ( 容器大小 )

NodeJS with Windows Server CoreWindows Server Container

初始容器 ~150MB額外容器 ~75MB

Hyper-V Container

初始容器 ~555MB額外容器 ~280MB

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

不同的東西,但不互斥

WS 2016 Linux

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

如何建立容器環境?

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

你的環境能使用 Windows Container 嗎?硬體需求• 支援虛擬化的處理器 (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 。

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

巢狀虛擬化 (Nested Virtualization)Run Hyper-V in Hyper-V• 主要動機:支援 Hyper-V Containers 於任何的雲端環境• 額外的好處:做 lab 更容易了。

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

1. 安裝 Hyper-V 功能於主機2. 於主機建立一個要執行 Hyper-V Container 的 VM3. 安裝 Windows Server 2016 or Nano Server 至 VM4. 將虛擬機器關機,於主機啟動虛擬機器的巢狀虛擬化功能5. 將虛擬機器開機,安裝 Hyper-V 功能6. 於主機上對 Hyper-V Container 下指令

準備 Hyper-V VM 以使用 Hyper-V Container

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

準備 Hyper-V VM 以使用 Hyper-V Container

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

如何建立容器?

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

Docker Run建立與啟動一個新容器Runtime options

Name (network name and management name)Interactive or ServiceNetwork configurationResource managementVolume mappingsIsolation level

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

什麼是容器映像 (Container Image) ?

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

容器映像類似於虛擬機器的 VHD 與組態檔用以執行容器與捕捉變更變更包含檔案與登錄

映像詮釋資料

Name,Creation Data,

Command To Execute,Dependences

內容

Files FoldersRegistry

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

容器映像

IIS

My Website

基礎映像 (OS)

應用程式框架

應用程式

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

容器映像

IIS

My Website

映像內容Folders and Files

License.txt PerfLogs Program Files

Program Files (x86) Users Windows

Registry

HKLM HKCU

HKCR HKU

基礎映像 (OS)

應用程式框架

應用程式

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

容器映像

IIS

My Website

映像內容Folders and Files

License.txt PerfLogs Program Files

Program Files (x86) Users Windows

Registry

HKLM HKCU

HKCR HKU

映像內容Folders and Files

mysite.html

Registry

inetpub

SOFTWARE/mykey

HKLM

基礎映像 (OS)

應用程式框架

應用程式

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

自動化映像建置Docker 建置與 Dockerfiles自動化容器映像建置方法執行 “ docker build” 指令時取用 捕捉未變更的指令與 Docker Hub 整合

範例IIS

FROM microsoft/windowsservercoreRUN powershell –command Add-WindowsFeature Web-Server

WebsiteFROM iisADD mysite.htm inetpub\mysite.htm

IIS

My Website

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

映像登錄資料庫 (Image Registry)什麼是登錄資料庫 ?儲存容器映像映像是被推進去登錄映像是由登錄拉出來映像可於登錄內搜尋

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

映像登錄資料庫 (Image Registry)Docker Hub 與 Docker Store公開,官方與私有映像儲存庫由組織支援的細粒存取控制自動化映像建置支援Docker 受信任登錄企業級私有登錄資料庫運行於你的基礎建設 ( 地端或雲端 )AD 與以角色為主的存取控制Docker 登錄資料庫以開源為基礎以容器的方式運行於你的基礎建設 ( 地端或雲端 )https://docs.docker.com/registry and or https://github.com/docker/distribution

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

關於一些你會想知道的事…

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

授權

https://www.microsoft.com/en-us/cloud-platform/windows-server-pricing

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

修補與更新更新容器 OS 映像拉取已更新的基礎映像使用 dockerfile 重建容器

10.0.14393.0

IIS

My Website

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

修補與更新更新容器 OS 映像拉取已更新的基礎映像使用 dockerfile 重建容器

10.0.14393.0

IIS

My Website

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

修補與更新更新容器 OS 映像拉取已更新的基礎映像使用 dockerfile 重建容器

KB123456 = new image on Docker Hub10.0.14393.0

IIS

My Website

10.0.14393.1

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

修補與更新更新容器 OS 映像拉取已更新的基礎映像使用 dockerfile 重建容器

FROM windowsservercoreRUN powershell –command Add-WindowsFeature Web-Server

KB123456 = new image on Docker Hub10.0.14393.0

IIS

My Website

10.0.14393.1

IIS

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

修補與更新更新容器 OS 映像拉取已更新的基礎映像使用 dockerfile 重建容器

FROM windowsservercoreRUN powershell –command Add-WindowsFeature Web-Server

FROM iisADD mysite.htm inetpub\mysite.htm

KB123456 = new image on Docker Hub10.0.14393.0

IIS

My Website

10.0.14393.1

IIS

My Website

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

修補與更新更新為一個新的層次於容器下載更新 ( 例如在容器中執行 Windows Update)當容器完成更新時表示已經套用為新的層次

10.0.14393.0

IIS

My Website

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

修補與更新更新為一個新的層次於容器下載更新 ( 例如在容器中執行 Windows Update)當容器完成更新時表示已經套用為新的層次

10.0.14393.0

IIS

My Website

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

修補與更新更新為一個新的層次於容器下載更新 ( 例如在容器中執行 Windows Update)當容器完成更新時表示已經套用為新的層次

10.0.14393.0

IIS

My Website

10.0.14393.0Same Image

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

修補與更新更新為一個新的層次於容器下載更新 ( 例如在容器中執行 Windows Update)當容器完成更新時表示已經套用為新的層次

10.0.14393.0

IIS

My Website

10.0.14393.0

IIS

My Website

Same Image

Same Image

Same Image

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

修補與更新更新為一個新的層次於容器下載更新 ( 例如在容器中執行 Windows Update)當容器完成更新時表示已經套用為新的層次

10.0.14393.0

IIS

My Website

10.0.14393.0

IIS

My Website

KB123456

Same Image

Same Image

Same Image

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

資源控制CPU容器能使用的主機 CPU 比例Memory容器可使用的最大記憶體比例Disk系統磁碟的最大 I/O 頻寬系統磁碟的最大 IOPS 限制Network由平台支援的輸出能力

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

網路功能由 Docker 完全管理網路建立 /列舉服務發掘 為 Microsoft Cloud Stack 最佳化進階網路原則 (ACLs, QoS) 可指派至容器端點 可使用 Microsoft 軟體負載平衡器處理負載平衡 (Coming Soon)

正規與持續創新Docker 網路的工具支援 (Compose) (GA 時有限度支援 )與其他編配器的整合 (Kubernetes, Swarm, etc.)原生重疊網路驅動程式單一主機多重網路 (NAT 與重疊 )

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

儲存容器映像並非設計為永久儲存並非設計為安全“卷冊”啟用儲存一致性啟用容器內的儲存對應唯讀或可讀寫同一主機內的多重容器可存取相同的位置外掛架構網路儲存容器可存取 SMB 分享透過容器網路存取

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

卷冊對應 (Volume Mapping)

Container HostContainer Host

My Container

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

卷冊對應 (Volume Mapping)

Container Host

Image Contents

License.txt PerfLogs Program Files

Program Files (x86) Users Windows

Host Storage

C: D:

ContainerDataContainer Host

My Container

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

儲存卷冊對應實例

Container Host

Image Contents

License.txt PerfLogs Program Files

Program Files (x86) Users Windows

Host Storage

C: D:

ContainerData

Running a Container

docker run –v d:\ContainerData:c:\data

mycontiner

Container Host

My Container

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

卷冊對應 (Volume Mapping)

Container Host

Image Contents

License.txt PerfLogs Program Files

Program Files (x86) Users Windows

Host Storage

C: D:

ContainerData

Running a Container

docker run –v d:\ContainerData:c:\data

mycontiner

Container View

License.txt PerfLogs Program Files

Program Files (x86) Users Windows

data Container Host

My Container

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

卷冊對應 (Volume Mapping)

Container Host

Image Contents

License.txt PerfLogs Program Files

Program Files (x86) Users Windows

Host Storage

C: D:

ContainerData

Running a Container

docker run –v d:\ContainerData:c:\data

mycontiner

Container View

License.txt PerfLogs Program Files

Program Files (x86) Users Windows

data Container Host

My Container

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

供應給企業級應用程式- Active Directory 的基礎建立無需變更- 可取用群組受管理服務帳戶- 開啟容器化應用程式與 SQL Server、檔案共享與其他應用進行驗證

簡單與安全- 識別於容器啟動時期指定- 認證不會儲存在容器映像內- 跨環境應用下不需變更 i.e. dev, test, prod, cloud

容器的 Active Directory 識別

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

容器的 Active Directory 識別Image

Credential Spec

DefaultAccount: Domain\

MyWebApp1$

IIS & ASP.NetRunning

ContainerService: IIS

User: LocalSystem

SQL Serve

r

Domain\MyWebApp1$

1) 使用預設帳戶進行服務與工作 (LocalSystem, Network Service)

2) 當啟動容器時給予服務帳戶3) 容器使用服務帳戶連結

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

自動化與管理

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

組合與編配 (Composition and Orchestration)應用程式通常會包在許多容器內容器通常會橫跨叢集的節點間代管編配工具自動化了這些工作

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

組合與編配 (Composition and Orchestration)Docker ComposeDefine application as separate containersManage different containers as a unitScale parts of application as needed

Docker SwarmAggregate container hostsSupports tagging, affinity/anti-affinity

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

組合與編配 (Composition and Orchestration)Azure Service FabricMicroservice and orchestration platform Build applications as containers and/or microservicesAvailable on Windows & LinuxBuilt-in cross-container communication Web based management UIAvailable On-Prem, Azure or other Clouds

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

組合與編配 (Composition and Orchestration)KubernetesOpen source project started by Google

Windows support being added though community partnership spear headed by Apprenda

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

組合與編配 (Composition and Orchestration)Mesos/Mesosphere + MarathonAggregates container hostsWeb based UIService Launch and Discovery

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

Standard Docker tooling and API supportStreamlined provisioning of Docker Swarm and DCOSLinux and Windows Server containersAzure and Azure Stack

Azure 容器服務Azure

Swarm DC/OS

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

App1

App2

Azure 容器服務

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

應用程式

基礎建設

Azure 容器服務

ARM Templat

e

編配器(Orchestrator

)

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

Azure 容器服務

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

管理與監控工具Docker Datacenter

ComputePrivate Cloud Public Cloud

Docker Swarm

Docker Trusted Registry

Docker Universal

Control Plane

Commercially Supported Docker Engines

Docker Engine

Docker Engine

Docker Engine

Docker Engine

Docker Engine

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

管理與監控工具Docker Datacenter

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

Microsoft Operations Management SuiteDocker 的監控解決方案

Syslog eventsPerformance metricsContainer data

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

開發工具

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

Visual Studio Docker Tools

• Run, Debug, Test Web & Console apps in docker containers• Linux today, Windows Server & Nano Server coming soon

• F5 Debugging• Edit & Refresh of code• Scaffolds docker assets

• Dockerfile, docker-compose.yml

aka.ms/DockerToolsForVS

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

建置一次,於各種地方執行using System;class Program{ static void Main() {

}}

© 2016 Microsoft Corporation. All rights reserved.

http://aka.ms/containers

Page 94: Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Page 95: Windows 與 Azure 的容器旅程 @ Ignite Mini 2016

微服務 (Microservices)

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

• 將一件事做好• 管理獨立的程式碼與狀態• 由小型跨功能團隊開發• 由最適合工作的語言與框架建置

微服務 …

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

• 將一件事做好• 管理獨立的程式碼與狀態• 由小型跨功能團隊開發• 由最適合工作的語言與框架建置

• 鬆散耦合• 由事先定義好的介面與協定溝通• 有唯一的名稱 (URI) 可被解析• 獨立更新• 獨立擴展

微服務 …

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

• 狀態:單一單體式資料庫• 指定技術的層次

• 彼此連結的服務結構• 狀態由服務自行管理• 可使用完全不同的技術

無狀態服務

分離儲存的無狀態服務

有狀態服務

無狀態展示層服務

單體式應用程式 微服務應用程式

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

推薦讀物

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

Free IT Pro resourcesTo advance your career in cloud technology

Cloud role mapping Expert advice on skills needed Self-paced curriculum by cloud role $300 Azure credits and extended trials Pluralsight 3 month subscription (10 courses) Phone support incident Weekly short videos and insights from Microsoft’s leaders and engineers Connect with community of peers and Microsoft experts

Microsoft IT Pro Career Centerwww.microsoft.com/itprocareercenter

Microsoft IT Pro Cloud Essentials www.microsoft.com/itprocloudessentials

Microsoft Mechanics www.microsoft.com/mechanics

Microsoft Tech Community https://techcommunity.microsoft.com

Plan your career path

Get started with Azure

Connect with peers and experts

Demos and how-to videos

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

ReferencesWindows Container: https://msdn.microsoft.com/en-us/virtualization/windowscontainers/about/about_overview Hyper-V Container: https://msdn.microsoft.com/en-us/virtualization/windowscontainers/management/hyperv_container Docker in Windows: https://msdn.microsoft.com/en-us/virtualization/windowscontainers/docker/configure_docker_daemon Understand Microservices: https://azure.microsoft.com/en-us/documentation/articles/service-fabric-overview-microservices/ Azure Container Services:https://azure.microsoft.com/en-us/documentation/articles/container-service-intro/ Azure Service Fabric:https://azure.microsoft.com/en-us/documentation/articles/service-fabric-overview/