SlideShare ist ein Scribd-Unternehmen logo
1 von 53
Windows Server 2019 における、
Windows Server コンテナーと
Windows Subsystem for Linux の進化
山本 美穂
日本マイクロソフト株式会社
パートナー事業本部 パートナー技術統括本部
パートナー ソリューション プロフェッショナル
(Data & AI)
CI13
SlideShare: https://www.slideshare.net/mihochannel1
作成日時点
予告なく変更される場合
撮影はOK
他の方のご迷惑にならない方法
お願い事項
SlideShare: https://www.slideshare.net/mihochannel1
• インフラ寄りの視点
• Windows コンテナー
コンテナー全般、オーケストレーション、モ
ニタリング、Windows Server 2019 全般がこ
わい方は
対象としておりません
このセッションの対象
SlideShare: https://www.slideshare.net/mihochannel1
このほかコンテナー関連セッション
Windows Server 2019 関連セッション
このセッションの目的とゴール
おさらい:Windows Server 2019 の特徴
このセッションの
テーマ
コンテナー サポートの強化
Server Core および Nano Server に最適化されたイメージ
Linux サポートの強化
Windows Subsystem for Linux
このセッションの目的とゴール
このセッションの目的とゴール (実際のとこ
ろ)
おしながき
Windows Server コンテナーについて
Windows コンテナーとは?
Windows コンテナーの動作の仕組み
Windows カーネル
ホストユーザーモー
ド
システムプロセス
Container
Management アプリ
Windows Server
Container
System
Process
Windows コンテナーの動作の仕組み
Windows カーネル
ホストユーザーモー
ド
システムプロセス
Container
Management アプリ
Windows Server
Container
System
Process
Application
Process
Windows コンテナーの動作の仕組み
Windows カーネル
ホストユーザーモー
ド
システムプロセス
Container
Management アプリ
Windows Server
Container
System
Process
Application
Process
Windows コンテナーの構成(層になっている)
Windows コンテナーの構成(層になっている)
Windows Container OS レイヤの互換性
コンテナーOS
バージョン
ホストOSバージョン
Windows Server
2016
Build 14393
v1709
Build 16299
v1803
Build 17134
Windows Server
2019
Build 17763
Windows Server
2016
Build 14393
Hyper-V コンテナー
Windows コンテ
ナー
Hyper-V コンテナー Hyper-V コンテナー Hyper-V コンテナー
v1709
Build 16299
Hyper-V コンテナー
Windows コンテ
ナー
Hyper-V コンテナー Hyper-V コンテナー
v1803
Build 17134
Hyper-V コンテナー
Windows コンテ
ナー
Hyper-V コンテナー
Windows Server
2019
Build 17763
Hyper-V コンテナー
Windows コンテ
ナー
ベース OS レイヤの選択基準
• クラウドアプリ
ケーションのた
めに誕生
• .NET core サ
ポート
• 自動化された
ワークロード
• Windows OS
コンポーネント
の
多くを持ち込め
る
• アプリの互換
のために
• .NET Framework
フルサポート
94 MB
イメージサイズ (OSの
み)
1.4 GB 3.5 GB
Windows コンテナーを選択する
のは
どのような場合
.NET Framework 4.5
5GB
Windows コンテナーを選択する場合の一例
Windows コンテナーのベストプラクティス
あわない場合は選択し
まとめ:Windows コンテナーについて
おしながき
Windows Subsystem for Linux (WSL) とは
WSLの歴史
Windows
Server 2019WSL 初登場!
ベータ機能と
して追加
Ubuntu 16.04.01 LTS
ベース
マルチディスト
リ
ビューション対
応
Windows との
連携がシームレ
スに
正式機能とし
て
実装
POSIX
SUA
WSL について誤解されていること
いずれも違います!
NT Subsystem とアプリケーションの関係
WSL と Hyper-V 仮想マシンとの違い
WSLHyper-V
WSL の基本動作ロジック
システムコールの詳細
LinuxApp!Open(“hoge.txt”)
libc!open(“hoge.txt”)
Pico process system service
dispatcher
(nt!KiSystemServiceHandler)
LxOpen()
Linux Subsystem Driver
sysenter(5)
Distro のインストール方法は3通り
市販の Distro
なども入手可
能
WSL-
DistroLauncherを使
用してお好みの
Distro 作成
Distro の appx
をインストール
WSL-DistroLauncher
https://aka.ms/wsl-ubuntu-1804
https://aka.ms/wsl-ubuntu-1804-arm
https://aka.ms/wsl-ubuntu-1604
https://aka.ms/wsl-debian-gnulinux
https://aka.ms/wsl-kali-linux
https://aka.ms/wsl-opensuse-42
https://aka.ms/wsl-sles-12
サイドローディング用にダウンロード可能な
Distro
https://github.com/WhitewaterFoundry/WLinux
WLinux
wslconfig
/l, /list [/all] 登録された Distro を一覧表示
/all すべての Distro を表示
(インストール中、アンインストール中を含
む)
/s, /setdefault <Distro> デフォルトの Distro 設定
/u, /unregister <Distro> デフォルトの Distro 設定解除
ファイルシステムについて (DrvFS と VolFS)
VolFS
• Linux ファイルシス
テム機能を完全実装
• Permission
• シンボリックリンク
• ファイル名特性
• Windows 非互換
DrvFS
• Windows 互換
• 実態はOSのフォルダ
を
マウントしている
WSL がうれしいのは
どのような場合
WSL がうれしいシチュエーション
まとめ:WSL について
おしながき
こわくな
い!
まとめ
最新の Windows Server をデモで体験
@EXPO Area2 会場 “Microsoft Azure ブース”
#3 ハイパーコンバージド インフラストラクチャー
#1 ハイブリッド データセンター
#2 高度なセキュリティ
#4 コンテナー プラットフォーム
2
0
0
8
Windows Server 2019
Windows Server イベント詳細&参加登録
https://atnd.org/events/101324
Day3 18:00-20:00
メロディーライン
Windows Server
Community Night
要参加登録
© 2018 Microsoft Corporation. All rights reserved.
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。
 本書に記載した情報は、本書各項目に関する発行日現在の Microsoft の見解を表明するものです。Microsoftは絶えず変化する市場に対応しなければならないため、ここに記載した情報に対していかなる責務を負うものではなく、提示された情報の信憑性
については保証できません。
 本書は情報提供のみを目的としています。 Microsoft は、明示的または暗示的を問わず、本書にいかなる保証も与えるものではありません。
 すべての当該著作権法を遵守することはお客様の責務です。Microsoftの書面による明確な許可なく、本書の如何なる部分についても、転載や検索システムへの格納または挿入を行うことは、どのような形式または手段(電子的、機械的、複写、
レコーディング、その他)、および目的であっても禁じられています。
これらは著作権保護された権利を制限するものではありません。
 Microsoftは、本書の内容を保護する特許、特許出願書、商標、著作権、またはその他の知的財産権を保有する場合があります。Microsoftから書面によるライセンス契約が明確に供給される場合を除いて、本書の提供はこれらの特許、商標、著作権、また
はその他の知的財産へのライセンスを与えるものではありません。
© 2018 Microsoft Corporation. All rights reserved.
Microsoft, Windows, その他本文中に登場した各製品名は、Microsoft Corporation の米国およびその他の国における登録商標または商標です。
その他、記載されている会社名および製品名は、一般に各社の商標です。
https://myignite.techcommunity.microsoft.com/sessions/64616#ignite-
html-anchor
https://myignite.techcommunity.microsoft.com/sessions/65885#ignite-
html-anchor
https://myignite.techcommunity.microsoft.com/sessions/65918#ignite-
html-anchor
参考リンク
https://myignite.techcommunity.microsoft.com/sessions/65919#ignite-
html-anchor
https://myignite.techcommunity.microsoft.com/sessions/66666#ignite-
html-anchor
https://docs.microsoft.com/ja-
jp/virtualization/windowscontainers/manage-docker/optimize-
windows-dockerfile
参考リンク
https://aka.ms/cliblog
https://aka.ms/learnwsl
https://aka.ms/wsldocs
https://github.com/Microsoft/WSL
https://github.com/Microsoft/Console
http://aka.ms/winbashuv
参考リンク
https://www.infoworld.com/article/3251828/application-
development/infoworlds-2018-technology-of-the-year-award-
winners.html#slide10
https://blogs.msdn.microsoft.com/commandline/2018/01/12/chmod-
chown-wsl-improvements/
https://blogs.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-
support/
参考リンク
https://blogs.msdn.microsoft.com/appserviceteam/2018/08/08/window
s-containers-on-azure-app-service-public-preview/
https://www.whitewaterfoundry.com/
https://github.com/dylanaraps/neofetch
https://www.slideshare.net/Docker/windows-container-security
https://blogs.msdn.microsoft.com/bharry/2017/05/24/the-largest-git-
repo-on-the-planet/
参考リンク

Weitere ähnliche Inhalte

Was ist angesagt?

A02_Azure Kubernetes Service on Azure Stack HCI 、オンプレ・エッジで動く AKS とは? [Microso...
A02_Azure Kubernetes Service on Azure Stack HCI 、オンプレ・エッジで動く AKS とは? [Microso...A02_Azure Kubernetes Service on Azure Stack HCI 、オンプレ・エッジで動く AKS とは? [Microso...
A02_Azure Kubernetes Service on Azure Stack HCI 、オンプレ・エッジで動く AKS とは? [Microso...
日本マイクロソフト株式会社
 
M17_情シス必見、Azure Arc によるマルチプラットフォーム管理の今 [Microsoft Japan Digital Days]
M17_情シス必見、Azure Arc によるマルチプラットフォーム管理の今 [Microsoft Japan Digital Days]M17_情シス必見、Azure Arc によるマルチプラットフォーム管理の今 [Microsoft Japan Digital Days]
M17_情シス必見、Azure Arc によるマルチプラットフォーム管理の今 [Microsoft Japan Digital Days]
日本マイクロソフト株式会社
 

Was ist angesagt? (18)

Windows Server Container and Windows Subsystem for Linux
Windows Server Container and Windows Subsystem for LinuxWindows Server Container and Windows Subsystem for Linux
Windows Server Container and Windows Subsystem for Linux
 
Azure Data Box Family Overview and Microsoft Intelligent Edge Strategy
Azure Data Box Family Overview and Microsoft Intelligent Edge StrategyAzure Data Box Family Overview and Microsoft Intelligent Edge Strategy
Azure Data Box Family Overview and Microsoft Intelligent Edge Strategy
 
Microsoft Azure Workshop day1
Microsoft Azure Workshop day1Microsoft Azure Workshop day1
Microsoft Azure Workshop day1
 
Azure id and rbac v0.7.19.0815
Azure id and rbac v0.7.19.0815Azure id and rbac v0.7.19.0815
Azure id and rbac v0.7.19.0815
 
Sql azure入門
Sql azure入門Sql azure入門
Sql azure入門
 
ウェブディレクターのための Web A11Y 勉強会 (Season 2) #01
ウェブディレクターのための Web A11Y 勉強会 (Season 2) #01ウェブディレクターのための Web A11Y 勉強会 (Season 2) #01
ウェブディレクターのための Web A11Y 勉強会 (Season 2) #01
 
A02_Azure Kubernetes Service on Azure Stack HCI 、オンプレ・エッジで動く AKS とは? [Microso...
A02_Azure Kubernetes Service on Azure Stack HCI 、オンプレ・エッジで動く AKS とは? [Microso...A02_Azure Kubernetes Service on Azure Stack HCI 、オンプレ・エッジで動く AKS とは? [Microso...
A02_Azure Kubernetes Service on Azure Stack HCI 、オンプレ・エッジで動く AKS とは? [Microso...
 
JAZUG Nagoya Bar Azure #2 Japan DC 20140331
JAZUG Nagoya Bar Azure #2 Japan DC 20140331JAZUG Nagoya Bar Azure #2 Japan DC 20140331
JAZUG Nagoya Bar Azure #2 Japan DC 20140331
 
JAZUG Sendai Windows Azure Update 20131109
JAZUG Sendai Windows Azure Update 20131109JAZUG Sendai Windows Azure Update 20131109
JAZUG Sendai Windows Azure Update 20131109
 
Azure Antenna AI 概要
Azure Antenna AI 概要Azure Antenna AI 概要
Azure Antenna AI 概要
 
20180309 azure+container
20180309 azure+container20180309 azure+container
20180309 azure+container
 
M17_情シス必見、Azure Arc によるマルチプラットフォーム管理の今 [Microsoft Japan Digital Days]
M17_情シス必見、Azure Arc によるマルチプラットフォーム管理の今 [Microsoft Japan Digital Days]M17_情シス必見、Azure Arc によるマルチプラットフォーム管理の今 [Microsoft Japan Digital Days]
M17_情シス必見、Azure Arc によるマルチプラットフォーム管理の今 [Microsoft Japan Digital Days]
 
Azure and cloud native approach.v0.6.19.0807
Azure and cloud native approach.v0.6.19.0807Azure and cloud native approach.v0.6.19.0807
Azure and cloud native approach.v0.6.19.0807
 
Tech summit 2018 CI17 VDI Strategy in Microsoft
Tech summit 2018 CI17 VDI Strategy in MicrosoftTech summit 2018 CI17 VDI Strategy in Microsoft
Tech summit 2018 CI17 VDI Strategy in Microsoft
 
Microsoft Azure Overview - Japanses version
Microsoft Azure Overview - Japanses versionMicrosoft Azure Overview - Japanses version
Microsoft Azure Overview - Japanses version
 
Modernization of IT Infrastructure by Microsoft Azure
Modernization of IT Infrastructure by Microsoft AzureModernization of IT Infrastructure by Microsoft Azure
Modernization of IT Infrastructure by Microsoft Azure
 
Power app custom api v0.1.21.1221
Power app custom api v0.1.21.1221Power app custom api v0.1.21.1221
Power app custom api v0.1.21.1221
 
20140926 vd iand_azure_slideshare
20140926 vd iand_azure_slideshare20140926 vd iand_azure_slideshare
20140926 vd iand_azure_slideshare
 

Ähnlich wie Windows Server 2019 Container & WSL

build 2012 Windows Azure 的まとめ
build 2012 Windows Azure 的まとめbuild 2012 Windows Azure 的まとめ
build 2012 Windows Azure 的まとめ
Sunao Tomita
 
Windowストアアプリ コントラクトとライフサイクル
Windowストアアプリ コントラクトとライフサイクルWindowストアアプリ コントラクトとライフサイクル
Windowストアアプリ コントラクトとライフサイクル
Hiroyuki Mori
 
18-D-1 .Net Framework 4 概要
18-D-1 .Net Framework 4 概要18-D-1 .Net Framework 4 概要
18-D-1 .Net Framework 4 概要
Developers Summit
 

Ähnlich wie Windows Server 2019 Container & WSL (20)

Visual Studio 2019で始める「WPF on .NET Core 3.0」開発
Visual Studio 2019で始める「WPF on .NET Core 3.0」開発Visual Studio 2019で始める「WPF on .NET Core 3.0」開発
Visual Studio 2019で始める「WPF on .NET Core 3.0」開発
 
build 2012 Windows Azure 的まとめ
build 2012 Windows Azure 的まとめbuild 2012 Windows Azure 的まとめ
build 2012 Windows Azure 的まとめ
 
Microsoft Build 2021をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPs
Microsoft Build 2021をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPsMicrosoft Build 2021をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPs
Microsoft Build 2021をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPs
 
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Codeどっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
 
日立ソリューションズの取り組みとプラットフォーム関連セション内容のご紹介
日立ソリューションズの取り組みとプラットフォーム関連セション内容のご紹介日立ソリューションズの取り組みとプラットフォーム関連セション内容のご紹介
日立ソリューションズの取り組みとプラットフォーム関連セション内容のご紹介
 
Microsoft Build 2022をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPs
Microsoft Build 2022をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPsMicrosoft Build 2022をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPs
Microsoft Build 2022をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPs
 
【BS5】帰ってきたハードコアデバッギング ~.NET6 を添えて~
【BS5】帰ってきたハードコアデバッギング ~.NET6 を添えて~【BS5】帰ってきたハードコアデバッギング ~.NET6 を添えて~
【BS5】帰ってきたハードコアデバッギング ~.NET6 を添えて~
 
17-D-1 Azure開発の極意 ~2011年版~
17-D-1 Azure開発の極意 ~2011年版~17-D-1 Azure開発の極意 ~2011年版~
17-D-1 Azure開発の極意 ~2011年版~
 
デブサミ関西2012[A-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
デブサミ関西2012[A-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方デブサミ関西2012[A-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
デブサミ関西2012[A-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
 
社内認証基盤用のVault Pluginを作るメリット
社内認証基盤用のVault Pluginを作るメリット社内認証基盤用のVault Pluginを作るメリット
社内認証基盤用のVault Pluginを作るメリット
 
(管理者向け) Microsoft Edge の展開と管理の手法
(管理者向け) Microsoft Edge の展開と管理の手法(管理者向け) Microsoft Edge の展開と管理の手法
(管理者向け) Microsoft Edge の展開と管理の手法
 
Community cloud運用開発の基礎
Community cloud運用開発の基礎Community cloud運用開発の基礎
Community cloud運用開発の基礎
 
より良い登壇を目指して今すぐできること re:Master #devio2020
より良い登壇を目指して今すぐできること re:Master #devio2020より良い登壇を目指して今すぐできること re:Master #devio2020
より良い登壇を目指して今すぐできること re:Master #devio2020
 
夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
 
Windowストアアプリ コントラクトとライフサイクル
Windowストアアプリ コントラクトとライフサイクルWindowストアアプリ コントラクトとライフサイクル
Windowストアアプリ コントラクトとライフサイクル
 
クラウド時代にこそ求められるIt部門の役割
クラウド時代にこそ求められるIt部門の役割クラウド時代にこそ求められるIt部門の役割
クラウド時代にこそ求められるIt部門の役割
 
IBM Log Analysis with LogDNAを評価した話
 IBM Log Analysis with LogDNAを評価した話 IBM Log Analysis with LogDNAを評価した話
IBM Log Analysis with LogDNAを評価した話
 
18-D-1 .Net Framework 4 概要
18-D-1 .Net Framework 4 概要18-D-1 .Net Framework 4 概要
18-D-1 .Net Framework 4 概要
 
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT appsMAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
 
【IMJ】デジタルマーケティング基盤を駆使して『利益を産むサイト』adobe.com(I・CON2014)
【IMJ】デジタルマーケティング基盤を駆使して『利益を産むサイト』adobe.com(I・CON2014)【IMJ】デジタルマーケティング基盤を駆使して『利益を産むサイト』adobe.com(I・CON2014)
【IMJ】デジタルマーケティング基盤を駆使して『利益を産むサイト』adobe.com(I・CON2014)
 

Mehr von Miho Yamamoto

Mehr von Miho Yamamoto (20)

分析データとトランザクションデータ
分析データとトランザクションデータ分析データとトランザクションデータ
分析データとトランザクションデータ
 
20190108 Azure Data Services
20190108 Azure Data Services20190108 Azure Data Services
20190108 Azure Data Services
 
いそがしいひとのための Microsoft Ignite 2018 + 最新情報 Data & AI 編
いそがしいひとのための Microsoft Ignite 2018 + 最新情報 Data & AI 編いそがしいひとのための Microsoft Ignite 2018 + 最新情報 Data & AI 編
いそがしいひとのための Microsoft Ignite 2018 + 最新情報 Data & AI 編
 
いそがしいひとのための Microsoft Ignite 2018 最新情報 Data 編
いそがしいひとのための Microsoft Ignite 2018 最新情報 Data 編いそがしいひとのための Microsoft Ignite 2018 最新情報 Data 編
いそがしいひとのための Microsoft Ignite 2018 最新情報 Data 編
 
Microsoft Azure Workshop day2
Microsoft Azure Workshop day2Microsoft Azure Workshop day2
Microsoft Azure Workshop day2
 
こわくない!デジタルトランスフォーメーション
こわくない!デジタルトランスフォーメーションこわくない!デジタルトランスフォーメーション
こわくない!デジタルトランスフォーメーション
 
技術に恋をすると、乙女はどうなるか
技術に恋をすると、乙女はどうなるか技術に恋をすると、乙女はどうなるか
技術に恋をすると、乙女はどうなるか
 
ネットアップとマイクロソフトで アプリケーションをちょっと良くしよう!!
ネットアップとマイクロソフトで アプリケーションをちょっと良くしよう!!ネットアップとマイクロソフトで アプリケーションをちょっと良くしよう!!
ネットアップとマイクロソフトで アプリケーションをちょっと良くしよう!!
 
Microsoft Azure とチェック・ポイントで実現するクラウド・セキュリティ
Microsoft Azure とチェック・ポイントで実現するクラウド・セキュリティMicrosoft Azure とチェック・ポイントで実現するクラウド・セキュリティ
Microsoft Azure とチェック・ポイントで実現するクラウド・セキュリティ
 
こわくない!Azure IaaS 運用管理
こわくない!Azure IaaS 運用管理こわくない!Azure IaaS 運用管理
こわくない!Azure IaaS 運用管理
 
こわくない!SQL Server 2017 セキュリティ関連機能について
こわくない!SQL Server 2017 セキュリティ関連機能についてこわくない!SQL Server 2017 セキュリティ関連機能について
こわくない!SQL Server 2017 セキュリティ関連機能について
 
こわくない!Azure概要
こわくない!Azure概要こわくない!Azure概要
こわくない!Azure概要
 
Azure のネットワークはブラックボックスじゃない!
Azure のネットワークはブラックボックスじゃない!Azure のネットワークはブラックボックスじゃない!
Azure のネットワークはブラックボックスじゃない!
 
こわくない!WSL
こわくない!WSLこわくない!WSL
こわくない!WSL
 
今こそはじめるsql server(後編)
今こそはじめるsql server(後編)今こそはじめるsql server(後編)
今こそはじめるsql server(後編)
 
Windows Server 2016 で実現しちゃう HCI (Hyper Converged Infrastructure)
Windows Server 2016 で実現しちゃう HCI (Hyper Converged Infrastructure)Windows Server 2016 で実現しちゃう HCI (Hyper Converged Infrastructure)
Windows Server 2016 で実現しちゃう HCI (Hyper Converged Infrastructure)
 
そのデータ、活かせていますか?
そのデータ、活かせていますか?そのデータ、活かせていますか?
そのデータ、活かせていますか?
 
ついに上陸!PaaS 最新兵器のご紹介
ついに上陸!PaaS 最新兵器のご紹介ついに上陸!PaaS 最新兵器のご紹介
ついに上陸!PaaS 最新兵器のご紹介
 
インフラ観点で運用を考える!Windows 10 VDI on Azure
インフラ観点で運用を考える!Windows 10 VDI on Azure インフラ観点で運用を考える!Windows 10 VDI on Azure
インフラ観点で運用を考える!Windows 10 VDI on Azure
 
データからビジネス変革をもたらすマイクロソフトの AI とは
データからビジネス変革をもたらすマイクロソフトの AI とはデータからビジネス変革をもたらすマイクロソフトの AI とは
データからビジネス変革をもたらすマイクロソフトの AI とは
 

Windows Server 2019 Container & WSL

Hinweis der Redaktion

  1. 14:50- 15:40
  2. すみません、本セッションのターゲットにLinuxコンテナーやコンテナーオーケストレーションは含まれていません
  3. すみません、本セッションのターゲットにLinuxコンテナーやコンテナーオーケストレーションは含まれていません
  4. 14:53 くらい。
  5. ハイブリッドクラウド パブリッククラウドサービスである Microsoft Azure と対をなすように、ハイブリッドクラウドソリューションとして Microsoft Azure Stack があります。Microsoft Azure Stack はこれまでの Hyper-V を活用したプライベートクラウドとしての仮想基盤とは異なり、ユーザーインターフェースもその足回りのテクノロジーも含めてすべて Microsoft Azure と同一です。しかし、既存環境のリソースをすべてパブリッククラウドや準ずる環境に移行することは、お客様の環境によってはかなり大変なことだったりします。オンプレミスなプライベートクラウド環境が必要なケースももちろん存在します。Windows Server 2019 には、Microsoft Azure のパブリッククラウドの基盤として培われた Software Defined Network (SDN) や Software Defined Storage (SDS)の最新技術の恩恵をオンプレミスなプライベートクラウドで利用可能なように実装されています。 セキュリティ セキュリティのアプローチは、Protect(保護)、 Detect(検出)、 Respond(対応)の3つで構成されており、Windows Server 2019 にはそのすべてが搭載されています。 Protect (保護) については、Windows Server 2016 で初めて搭載された、Host Guardian Services と Shielded VM という機能では Hyper-V の仮想マシンを保護する機能で、仮想ハードディスクイメージ(VHDX) の署名つき暗号化や起動・停止、アクセスに際して保護対象のクラウド基盤とは別の認証情報を使用するための Active Directory をもちます。この機能を使うことで、悪意のある管理者やマルウェア被害を受けた管理者から仮想マシンを保護する機能です。Windows Server 2019 では保護対象の仮想マシン OS に Linux が追加されました。また、 仮想ネットワークセグメントを暗号化する Encrypted Networks が追加されています。 Detect (検出) 及び Respond (対応) については、Windows Defender Advanced Threat Protection (ATP) の機能が拡張され、予防的保護、攻撃やゼロデイ攻撃の検出といった機能が追加されました。 アプリケーションプラットフォーム アプリケーションプラットフォームのアプローチは、開発者からのリクエストの中でも多かった Windows Server Container と Windows Subsystem for Linux (WSL) の2機能の改善です。 ハイパーコンバージド インフラストラクチャ コンバージド インフラストラクチャと比較して、共有ストレージを持たないというのがハイパーコンバージドインフラストラクチャの大きな特徴です。Windows Server では、Windows Server 2012 R2 でStorage Spaces、やScale Out File Serverといった機能でストレージの仮想化を軸としたコンバージドインフラを、更にWindows Server 2016 でハイパーコンバージドインフラストラクチャソリューションとして実装された Storage Spaces Direct (S2D)の機能があります。Windows Server 2019 では更に S2D のスケーリング性、パフォーマンス、信頼性を強化し、柔軟な構成がとれるように改良されます。そして、その運用管理に前述の Windows Admin Center を使用することを想定しています。
  6. コンテナーは、開発者にとっても IT 部門にとっても魅力的なものであり、両者がチームとして作業するうえで役立つものです。 コンテナーを使用し、コードをほとんど/まったく変更することなく、従来のアプリケーションを最新の DevOps 環境に移行することで、同じツールを用いて、開発、テスト、および実稼働にわたって一貫性を確保できるといったメリットを実現できます。これにより、セキュリティを向上させながら、迅速な展開、継続的な統合、および継続的な提供を行うことが可能になります。 コンテナーは、さまざまな理由で優れています。 高速イテレーション: コンテナーを使用すると、開発プロセスを通じて迅速なイテレーションが可能になります。軽量であることと、アプリケーションが依存関係と共にパッケージ化されていることがその理由です。 定義済みの状態分離: あるコンテナーの変更が他のコンテナーに影響を与えることはありません。 リソース コントロール: ホストは、そのホストのリソースのうちどれくらいの量をコンテナーが使用できるようにするかを制御します。CPU、RAM、ネットワーク帯域幅などのリソースを管理することで、要求したリソースをコンテナーが取得し、そのホスト上で実行されている他のコンテナーのパフォーマンスには影響を与えないことが保証されます。 不変性: コンテナー内で行われた変更は、同じホスト上で実行されている他のコンテナーに影響を与えません。 迅速な展開: コンテナーはリソースに関して軽量であるため、移動、コピー、および共有が容易です。これにより、迅速なアプリケーションの展開が可能になります。
  7. DevOps のライフサイクルはどのようなものでしょうか。 まず、開発者はアプリケーションをコンテナー、つまり開発者自身のボックスで構築およびテストします。これには、Visual Studio のような開発環境や、サードパーティの開発環境を使用できます。ここでは、2 つの異なるコンテナーがあります。おそらくアプリケーションまたはワークロードの 2 つの層を表しています。 完了すると、これらのコンテナーは中央リポジトリに送信されます。 運用チームは、この中央リポジトリからターゲット マシンへのコンテナーの展開を自動化します。ターゲット マシンは物理マシンでも仮想マシンでもかまいません。運用チームはコンテナーの監視を続けます。 そして、開発者と協同して、洞察と監視のメトリックを提供します。これらのメトリックを使用して開発チームはアプリケーションの使用を洞察することができます。 これを使用することで、特定のコンテナーへの更新を促すことができます。開発者は自身のボックスで、1 つのバージョンの反復処理を行い、中央のリポジトリへ更新済みバージョンを展開します。次に、更新済みのバージョンは、既存の展開済みコンテナーの更新に使用できます。開発者は、必要に応じて、前のバージョンにロール バックすることもできます。コンテナーは、この空間に高い柔軟性をもたらします。
  8. (DevOps) Windows Server 2019 は、コンテナーと Linux のサポート強化により、迅速なイノベーションをサポートしたいと考える開発者と IT 運用チームのニーズに対応します。 コンテナーのサポートにより、一段と迅速にアプリを最新化。Windows Server 2019 はより小さなサーバー コアのコンテナー イメージを提供することでダウンロードを高速化し、Kubernetes クラスターと Red Hat OpenShift Container Platform のコンピューティング、ストレージ、およびネットワーキングの拡張サポートを提供します。 Linux オペレーションの向上。Linux と Windows のコンテナーをサイド バイ サイドで実行できる以前のサポートの上に構築された Windows Server 2019 では、開発者は Open SSH、Curl、および Tar といった標準ツールを使用できるため、複雑さが軽減されます。  
  9. Windows Server 2019 は、コンテナーと Linux のサポート強化により、迅速なイノベーションをサポートしたいと考える開発者と IT 運用チームのニーズに対応します。 コンテナーのサポートにより、一段と迅速にアプリを最新化。Windows Server 2019 はより小さなサーバー コアのコンテナー イメージを提供することでダウンロードを高速化し、Kubernetes クラスターと Red Hat OpenShift Container Platform のコンピューティング、ストレージ、およびネットワーキングの拡張サポートを提供します。 Linux オペレーションの向上。Linux と Windows のコンテナーをサイド バイ サイドで実行できる以前のサポートの上に構築された Windows Server 2019 では、開発者は Open SSH、Curl、および Tar といった標準ツールを使用できるため、複雑さが軽減されます。  
  10. 機能ありきの目的だったけど、そうじゃないよー 技術が目的になっていませんか? 技術はあくまで手段。目的が一番重要。目的を達成するたびに色々な技術をまなぶ。
  11. 技術が目的になっていませんか? 技術はあくまで手段。目的が一番重要。目的を達成するたびに色々な技術をまなぶ。
  12. 15:00
  13. 18
  14. Windows コンテナーの場合 もう少し詳細な動作を見ていきましょう
  15. レジストリやネットワークが分離された形でWindows Server Containerのプロセスができたら
  16. Host Compute Service の子プロセスとしてコンテナーは生成されます。 ・リソースは親プロセスから受け継ぎますし
  17. Windows コンテナーに限った話ではないのですが、コンテナーは基本的に層になった複数のものをひとつに固めたような構成になっています。 一番下がベースとなるOSのレイヤー 次にカスタマイズのレイヤー(アプリが動作するために必要な設定やミドルウェアがここにはいります。) 最後にアプリケーションのレイヤー
  18. Windows コンテナーに限った話ではないのですが、コンテナーは基本的に層になった複数のものをひとつに固めたような構成になっています。 一番下がベースとなるOSのレイヤー 次にカスタマイズのレイヤー(アプリが動作するために必要な設定やミドルウェアがここにはいります。) 最後にアプリケーションのレイヤー
  19. 例えば、Linuxのコンテナイメージとしてよく使われているCoreOSが294MB と300MB無いくらいなので、Nano Server 以外のコンテナイメージは遙かに大きい Reflects latest WS2019 offerings WS2016 5GB Linux コンテナと Windows コンテナの共存も可能です。 Windows Serverコンテナーのオーケストレーションとして、Kubernetes がベータ版としてサポートされています。 Windows コンテナーを選ぶ理由ってなに?
  20. Image size Group related actions Remove excess files Build speed Multiple lines Ordering of instructions Cosmetic optimizations
  21. 15:15とかだったら説明する Windows コンテナーに限った話ではないのですが、コンテナーは基本的に層になった複数のものをひとつに固めたような構成になっています。 一番下がベースとなるOSのレイヤー 次にカスタマイズのレイヤー(アプリが動作するために必要な設定やミドルウェアがここにはいります。) 最後にアプリケーションのレイヤー
  22. 15:15とかだったら説明する Python のインストーラーをダウンロード、インストール、削除までシングルライナーで
  23. 15:15とかだったら説明する
  24. 15:15とかだったら説明する
  25. 15:15とかだったら説明する
  26. 15:15とかだったら説明する Containers get temporary storage Throw away storage when container goes away
  27. 15:15とかだったら説明する Each container gets their own network isolation Uses Windows Hosts’ Firewall Bind container to host ports.
  28. 15:20 ごり押ししない。 目的が一番重要。手段である技術は目的を達成するためにある!
  29. 15:20 楽しい時間だー! 超絶たのしいぞ!
  30. Ability to run unmodified ELF64 Linux binaries, expand toolkit and capabilities Online tutorials are written in bash script WSL Provides choice and flexibility The ability to invoke Linux binaries from Windows The ability to invoke Windows executables from Linux Your choice to use a Linux, or Windows
  31. Ubuntu 14.04.4 LTS が最初 Windows Subsystem for Linux (WSL)とは、2016年4月にリリースされた、Windows 10 の Insider Preview build 14316 で初めて実装され(注釈1)、2016 年8月にリリースされた Anniversary Update (version 1607, Build 14393)でベータ版として追加された機能です。実装の当初は開発者モードにする必要があり、機能そのものもベータの扱いでした。この段階では、Ubuntu 14.04.4 LTS ベースのモジュールが動作するというものでした。 この連載でご紹介させていただいていたように、WSL は仮想マシンによる実装ではありません。Microsoft Research の Drawbridge (注釈2)というエミュレーションの技術を元に開発されているため、比較的フットプリントが軽く、非力なマシンでも動作するようにつくられています。同じ技術で実装されている製品として、SQL Server の Linux 版及びコンテナ版が挙げられます。余談になりますが、Windows 10 の Windows Container は仮想マシンによる実装となっており、Hyper-V がストレスなく動作するスペックのマシンや OS のエディションに制約があるため WSL に比べると利用可能なシーンが幾分か制限されています(注釈3)。 やがて、Windows Insider Preview の Build 14936 から、ベースとなる Ubuntu のバージョンが 16.04.1 LTS へとバージョンアップしました。(注釈4)このとき、244番目の syscall として、chroot をサポートしました。この段階ではまだ、サポートしているディストリビューションは Ubuntu のみでした。この段階では、まだ開発者モードが必須でした。 次に大きな変更が入ったのは、2017年4月にリリースされた Creators Update (version 1703, Build 15043)でした。一番大きな特徴は Windows との連携がよりシームレスになったことが挙げられます。具体的には、 WSL のコマンドラインから Windows のアプリケーションを直接呼び出したり、逆に WSL のコマンドを -c オプションで Windows のコマンドプロンプトからコールすることもできるようになりました。ここのことによって、よりシームレスに Windows の環境と WSL の環境を併用して利用することが可能になり利便性が格段に向上しました。
  32. 少し、昔話をしましょう。20年以上前の技術のことなのですが、Windows NTの頃 NT Subsystem NT3.51までの当初の マルチサブシステムをサポート サブシステムのコンポーネントは一つのサブシステムのプロセスと、プロセス内のサブシステムのDLLという構成です。 すべてユーザーモードだったため、BSODとは無縁の安定したOSだったそうです。
  33. Windows NT時代のPOSIXについて少しおさらいしてみましょう。Windows NTでは数のようにSubsystemという概念が実装されていました。当初、OS/2やPOSIXとの互換性を確保するためにそれぞれサブシステムを実装していました。余談ですが、NT3.51以前ではサブシステムはすべてユーザーモードで実装されていたため、非常に安定したOSでしたが、NT4でWin32サービスやドライバの一部がカーネルモードで実装されているため、BSOD(Blue Screen of Death)などの予期せぬエラーが発生するようになってしまいました。 Windows Subsystem for Linux とは、遥か昔のWindows NT の頃にサポートしていたPOSIX(Portable Operating System Interface for UNIX)やその後継としてWindows Vistaで搭載されたものの、Windows 8で非搭載になったSubsystem for UNIX-based Application(SUA)のサブシステムとは異なり、新しく実装されたテクノロジーです。
  34. この美しいテクノロジはDrawbridgeといい、SQL Server 2017のLinux版にも応用されています。 Pico プロセスはプロセスベースで分離されたミニマルカーネルのAPI Surfaceをもつコンテナのテクノロジー Hyper-Vの魅力: Secure Isolation(セキュアな分離)つまり、アプリケーションの振る舞いがホストマシンに悪影響を与えない Persistent Compatibility(絶え間ない互換性)ホストとアプリケーションが別々に更新できること。ホストの変更がアプリケーションを破壊しないこと。 Execution Continuity(実行の継続性)アプリケーションが特定のホストと結びつかないこと。実行中のアプリケーションは開始されたホストコンピューターに縛られずに移動することが可能であること。 Picoプロセスの中に、ライブラリOSという技術を使用することによってハードウェア仮想化によるアプリケーション特性のメリットはそのままに、オーバーヘッドを最小化させるというテクノロジーとなっています。 Picoプロセスは軽量化されたセキュアな分離をされたコンテナです。OSプロセスのアドレス空間で動作しますが、これまでのOSの機能が取り除かれたものです。アプリケーションバイナリーインターフェース(ABI)はPicoプロセス内で実行されるコードとOSの間をつなぐステートレスなインターフェースです。すべてのABIコールは、従来のハードウェア仮想化におけるハイパーバイザーまたはVMモニタに似た役割のセキュリティモニタによってサービスされます。
  35. WSLはカーネルドライバであるLXCoreとユーザーモードヘルパーのセット。 Minimal Process(ミニマルプロセス)原始的なタイプのプロセス。ミニマルプロセスとしてマークされたプロセスはホストから管理しないようにホストOSに伝達します。Windows カーネルからはからのユーザーモードアドレス空間として扱われます。 Pico プロセス:ミニマルプロセスと紐づいた空のユーザーモードアドレス空間を管理するPicoプロバイダカーネルモードドライバーのセット(後述のlxss/lxcore) これまでのNTプロセスとは異なり、ミニマルプロセスを作成するときにはユーザーモードアドレス空間はプロセス内で実行するスレッド等がない状態で確保されます。Pico プロセスには下記のような特徴があります。 ユーザーモードのバイナリーであるntdll.dllとデフォルトではマッピングされない。 PEB(Process Environment Block)が生成されない Picoプロセスのためにスレッドが作成されたとしても、イニシャルスレッドが自動的に作成されないため、TEB(Thread Environment Brock)も生成されない。 Shared User Data セクションはプロセスにマッピングされない。
  36. 46
  37. Linux application (i.e., ELF binary) running in a Linux Subsystem pico process System call trap handler forwards system calls from Linux application to Linux Subsystem driver Part of Pico support Kernel forwards syscall for Pico process to its managing Pico driver Linux subsystem driver (lxcore) implements system call 300+ system calls
  38. 16203のWindows SDKにwslapi.hが含まれている
  39. We will be adding support for using Docker securely between WSL and Windows or remote Docker hosts in the next week or two.
  40. lxrun.exe は1803以降では利用できないそう。
  41. 15:35なら語る
  42. 15:30であればdocker demo AF_UNIXとは、プロセス間通信を
  43. 15:40
  44. 62
  45. BRK1097 How Microsoft builds software and services like Windows, Office, Bing, Minecraft, and others powered by Azure DevOps