銀の光と碧い空

クラウドなインフラとC#なアプリ開発の狭間にいるエンジニアの日々

#decode17 に参加してきました

de:code 2017に久しぶりに参加しました。初年度以来な気がします。ということで感想をまとめてみました。

キーノート

Mobile First, Cloud First からAI中心の Intelligent Cloud, Intelligent Engineへ。あらゆる製品にAIを搭載する流れ。音声認識の認識率が人間の-5.8%まできたいうのが衝撃でした。自動翻訳については、PowerPointとMicrosoft Translator連携。Skypeも合わせて、プレゼンテーションのリアルタイム翻訳も可能に。

Microsoft と Preferred Networkの提携発表。Chainer-readyなVMをAzureに。SQL ServerにもChainerを組み込み。もう一つのテーマはHoloLens。生みの親であるKipman氏が初来日で講演。

MicrosoftはクロスデバイスでのUX向上を進めている。AndroidでコピーしたテキストをWindows PCでペーストできるようなイメージ。

GitHub - Microsoft/project-rome: Code samples and documentation of Microsoft's Project Rome feature

という感じで、.NET TechnologyとかWindows Mobileといった端末とかはほぼほぼ出てこないキーノートでした。

Azure

あとはテーマ別に参加したセッションの感想を。Twitterという名のメモから拾って構成しているので、あまりうまくまとまっていないかもしれないです。

SC02 シチュエーション別 Active Directory デザイン パターン

2020年めどにServer 2008のサポート切れにともなう移行案件があるので、その話。移行先にAzure ADも考えましょうというお話。ADFSとかAADDSとかの利用シチュエーションの説明もあって、現在使えるAADまわりの機能が復習できました。

SC04 あなたのサービスを “ID” で守る! Azure Active Directory の条件付きアクセスの基礎と実装

AADにアプリを繋いで認証すれば、サイン機能の開発も不要、既存のIDが使える、監査セキュリティログもやってくれる、といいことばかり。AADは毎日150万回のアタックを回避し、3万人の攻撃を受けた可能性のあるユーザーを特定している。つまり、自前で作る認証基盤では実現できないようなリスクベースの防御ができる。多要素認証もサポートしているよ、という話。

AC01 Container 環境を支えるマルチ クラウド運用監視のデザインと実装案

セッションの前半はWindows Server Containerの話。nanoserverのサイは350MBくらい。ダウンロードはDockerHubからがおすすめ。今後の目標は.NET最適化コンテナーのサイズ50%OFF

Windows ServerにもInsider Programを導入。nested Hyper-VがAzureにも来たら、Azure上でHyper-Vコンテナも利用可能に。

後半(長さ的には5分くらい)は、コンテナの監視はOMS Agentがおすすめという話。Azure上の仮想マシンに限らず監視できる。OMSはLinux on Azureでも便利なので期待しているんですが、いかんせんIE以外だとうまく表示されないことがよくあり、Linuxデスクトップでどうするんだという個人的懸念が…

AC11 サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践

サーバーレスとは、サーバーの抽象化・イベントどり分で簡単にスケール・実行単位のフェアな課金という3つをポイントとしたサービス。Azureにおけるサーバーレスは、Azure FunctionsやLogic App などなど多くのサービスが該当している。

Azure Functionsはローカルでデバッグできる。またリモートデバッグもできる。Visual Studioのリモートデバッグ含めたデバッグ機能は大きな優位点ですね。Visual Studio Codeなどでもまだまだ到達できてないですし。

Twitterを拾ってメール通知まで、接続するサービスが対応していれば30秒くらいで作れる。Azure Functionsのトリガーの特徴はステートのチェック間隔を秒単位で指定できること。Azure Functionsは課金体系が2種類ある。用途に応じて決めよう。 Azure Functions も App Service PlanならDeployment SlotでBlue-Green Deploymentが可能に。

という感じでAzure Functionsの入門としてもわかりやすい内容でした。

CT06 チョークトーク: 実践! Azure PaaS/IaaS アーキティクチャ デザイン パターン & アンチ パターン

これ、どこまで内容話していいかよくわからないので、あまり言及できないんですが、内容自体は間違いなくよかったです。同様の形態のセッションは来年以降もぜひやってほしい。

DI07 あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake

Data Lakeという大容量のデータを保管し必要に応じて解析するサービス。思想としては、必要なるタイミングまでネイティブフォーマットのまま生データを大量に保管しておく。解析するための言語として、C#の表現力とSQLのクエリを統一したU-SQLというものを利用。U-SQLスクリプトを記述し、ジョブとして投入する。

あとは、U-SQL入門、Data Lake入門として聞いていました。

.NET / .NET Core

TL04 .NET 15 周年の今こそ考えるクラウド ネイティブ アプリケーションと .NET の活用

自分の聞いていた中ではベストセッションだと思います。自分の手を動かしてみないと気づかないような嵌りポイントにも触れていましたし、何よりデモの構成がよくてすべてのデモが最後につながっている流れがありました。自分がセッションやると、ついつい自分のやりたいデモをやってしまって、流れが切れてしまって、理解の妨げになるようなことがあるので、セッションをやる側としても学びが多かったです。

内容としては、.NET Coreにつながれ歴史の振り返り。One ASP.NET 構想とか、OWIN, KATANA Projectといった懐かしい単語がでてきます。そして、その多くはASP.NET Coreに引き継がれている。

.NET Core 2.0 で導入される.NET Standard 2.0で今より多くのAPIが利用可能になる。既存の.NET Frameworkとの共通点も多くなる。

どのAPIが使えるかは.NET APIブラウザーで

.NET API Browser | Microsoft Docs

.NET Framework 4.7 のプロジェクトに.NET Standardのライブラリを追加する場合は、 NETStandard.Library.NETFramework を追加する必要がある。

VS 2017 PreviewからNuGetパッケージ作成まわりのメニューも強化。Visual Studio Codeを使う場合はdotnetコマンドで。Visual Studio 2017 から Linux docker上のdotnetプロセスにリモートデバッグできる。

より高次な.NET アプリのアーキテクチャガイダンスもあるから参考に。

www.microsoft.com

DI01 窓は開かれた! SQL Server on Linux で拡がる可能性

このセッションも、自分の知らなかった知識を補完してくれるということで助かりました。

SQL Serverの掲げるゴール

  • 展開先を選ばない
  • 様々なOSからの選択
  • 多種多様なデータ
  • DB内の分析/学習環境
  • 多彩な開発言語

SQL Server 2017新機能

  • クエリチューニングの自動化
  • データベースと分析環境の融合

SQL Server on Linuxへの道程を説明。LinuxのうえでSQL Serverを互換環境をつかってそのまま動かそうとした。しかし、それはパフォーマンス上の問題があった。理由はSQL ServerがCPUのスケジューリングをWindows OSの機能ではなく自前で実装していたため。それには理由があり、Windows OSのスケジューリング機能がRDB向きではなかった。SQL Server 7.0~2000でUser Mode Scheduleを採用。SQL Server 2005~2016でCPUに加えてメモリ管理も行うSQL Server OSが実装。ブラックボックス化していたので動的管理ビューも追加した。そこで、SQL Server + SQLOS + Linux Host extensionをLinuxプロセスとして動かそうとした。Linux Host Extensionで全部抽象化しようとしたがパフォーマンスに問題がでた。そこでSQLPALを導入。これがDrawBridgeの成果物。この結果、現時点でもon Linuxの方がon Windowsよりパフォーマンスに優れている点がある。将来的にはWindows版も同じアーキテクチャにそろえる予定。

SQL Serverの管理ツールもクロスプラットフォームへ。CLIならsqlcmd、GUIならVisual Studio Codeが現時点で利用可能。将来的にはLinuxではsqlcmd, bcp, sql-cli (nodejs), mssql-scripter(予定)が使える。さらに、DBA向けのクロスプラットフォームで動くGUI Toolsも開発中。

SQL Server on Linuxに接続するアプリの開発言語もいろいろ選択できる。SQL Server 2017 on Linuxでもバックアップ/リストアは同じ手順。Windowsでエクスポートした bakファイルを転送して、Linux上でリストアもできる。SQL Server 2017 on Linux での自動フェールオーバー可能な構成は、Pacemaker + corosyncを使う。SQL Server自身の機能でフェールオーバーするのに加え、接続するIPアドレスを Pacemaker + corosyncでフェールオーバー。

TCP-Hでの測定では、SQL Server 2017 on Linuxは 2016 on Windows Server 2012 R2より高評価。

その他のセッション

あと参加したけどちょっと感想かきづらいセッションとか、参加していないけど参加したかったセッションとかあります。特に、Web Apps on LinuxとWindows ハードコアデバッキングは聞きたかったですね… 仕事に役立ちそうな方を優先してしまったので*1……

Hack Days (Post event)

今年からの試みとしてdecode終了後の2日間で、ハンズオンとハッカソンを実施されました。私はハンズオンに参加したのですが、ハンズオンはdecodeでも説明のあったMicrosoftの各種技術を自習形式で開発し、わからないことがあったらその場にいるMSのエンジニアに聞けるという形式です。10個くらいテーマがあったはずなので、全部やるには2日で足りない人もいたかもしれないです。という自分は、Linux関連メインであまり該当するテーマがなかったので、独自ハンズオン(ハッカソン)を進めました。

成果

Cognitive ServiceのEmotion API(人の顔の写真から感情を推定する)を使ったアプリを開発。.NET Frameworkを使った例だったので、ASP.NET Coreに変えてLinuxでも動くようにしてみました。

github.com

あと、下記のページにあるRed Hatが出した、OpenShift on AzureのARM Templateの解読とハッキングをしたりしてました。これは、ARM TemplateでAzure上に必要なリソースを展開し、ARM Templateから必要な設定ファイルの配置とOpenShift のAnsible Installerを実行するスクリプトも実行しています。ただ、MarketplaceのRHELイメージを前提としているので、これをBYOLな自前RHEL VHDイメージを基に展開するようにいじろうとしていました。

Deploying Red Hat OpenShift Container Platform 3 on Microsoft Azure - Red Hat Customer Portal

また、この辺の話に興味のある方は6/24のinteract2017の「OpenShift on Azure」のセッションで話す予定なので、ぜひご参加を。

interact.connpass.com

まとめ

運営面の感想としては、満足したという面もあれば、それはちょっとどうだろうという面もあり、アンケートでフィードバックしました。なんか後から話を聞くと、じゃあやむを得ないかと思わないこともないんですが、アンケート書いた時点では知らなかったということで、厳しいフィードバックもご了承いただければ…

セッション全体としてはかなり満足でしたが、やはり自分の立場的には.NET CoreとかASP.NET CoreとかLinux on Azure *2とかとかのセッションが増えるとと嬉しいなという感じです!!

*1:というか最終日の最後の枠が重なりすぎ

*2:OSS on AzureではなくてLinux on Azureね

Y8 2017 spring in Shibuya で .NET Core on Linux の内部について話しました

Y8 2017 Spring という技術系ノンジャンル(と私は理解している)イベントがあったので登壇してきました。CFPにリアクションして頂いたみなさまありがとうございました。こちらが資料です(更新するかもしれないです)。

doc.co

イベントサイトはこちら。

y8-2017-spring.hachiojipm.org

.NET Core がLinux(やmacOS)で動くようにどうやって実装しているかとか、デバッグの仕方とか、OS固有の部分をどうやってLinuxの世界に持ち込んでいるのか、というテーマはずっと話したくて機会を伺っていたのですがようやく世に出すことができました。

もし次があれば、デバッグまわりの部分はもう少し実践的な内容にしたいなあと思います。また、Linuxユーザー向けにはVisual Studio側の機能紹介もしたいですね。今回デモしたように、.NET CoreをLinuxにデプロイする場合でも、Windowsで開発することができ、リモートデバッグすることができます。また、リモートデバッグについてはいつの間にかやたらリモートデバッグの接続の種類が増えているので、改めて調査します。

f:id:tanaka733:20170527164325p:plain

dllに含まれるシグニチャを見るには?

質問されて答えが出せなかったので、いったん調べた内容をこちらに。dllの中で定義されているクラスとかメソッド一覧を取得したいという質問だったのですが、dllの中に定義されているのはIL(中間言語)なのでnmコマンドなどでは見れないはずです。あくまで.NET CoreのILを解釈する必要があります。Windows上の.NET FrameworkならILSpyなどのフリーのツールで逆コンパイルすることもできるのですが、Linux上で動作する.NET Core向けの逆コンパイルツールは見つけられませんでした。

ILSpy

とりあえずできそうな方法はLLDBでlibsospluginをsosコマンドからたどって行く方法です。.NET Coreのlibsospluginの使い方の詳細はこちらにあります。

github.com

定義されているsosコマンドは.NET Frameworkのものと対応しており、その詳細はこちらに書いてあります。

SOS.dll (SOS デバッガー拡張)

ではこれを使って、stringクラスのメソッド一覧を出してみましょう。ちなみにsosコマンドあまり詳しくないので、よりよい方法があればコメントなどをもらえるとうれしいです。

DumpHeapでstringを指定します。

(lldb) sos DumpHeap string
         Address               MT     Size
00007f6b1aed5000 00000000010717b0       24 Free
00007f6b1aed5018 00000000010717b0       24 Free
00007f6b1aed5030 00007f6d3b77db68       72     
(以下略)

どれか1つのアドレスを指定してDumpObjします。

(lldb) sos DumpObj 00007f6b1aed50b8
Name:        System.String
MethodTable: 00007f6d3b77db68
EEClass:     00007f6d3b0916d0
Size:        60(0x3c) bytes
File:        /opt/dotnet/shared/Microsoft.NETCore.App/1.1.1/System.Private.CoreLib.ni.dll
String:      Format_GuidDashes
Fields:
              MT    Field   Offset                 Type VT     Attr            Value Name
00007f6d3b797948  4001aa6        8         System.Int32  1 instance               17 m_stringLength
00007f6d3b7827c0  4001aa7        c          System.Char  1 instance               46 m_firstChar
00007f6d3b77db68  4001aa8     1258        System.String  0   shared           static Empty
                                 >> Domain:Value  00000000010e3fb0:NotInit  <<

メソッド一覧はMethodTableで取得できます。詳細を出すために--mdを指定します。

(lldb) sos DumpMT -md 00007f6d3b77db68 
EEClass:         00007F6D3B0916D0
Module:          00007F6D3B00B000
Name:            System.String
mdToken:         00000000020005AD
File:            /opt/dotnet/shared/Microsoft.NETCore.App/1.1.1/System.Private.CoreLib.ni.dll
BaseSize:        0x18
ComponentSize:   0x2
Slots in VTable: 196
Number of IFaces in IFaceMap: 7
--------------------------------------
MethodDesc Table
           Entry       MethodDesc    JIT Name
00007F6D3B42CE10 00007F6D3B0E1508 PreJIT System.String.ToString()
00007F6D3B42E3F0 00007F6D3B0E17A8 PreJIT System.String.Equals(System.Object)
00007F6D3B42EA60 00007F6D3B0E1878 PreJIT System.String.GetHashCode()
00007F6D3B41EE10 00007F6D3B0DF0B0 PreJIT System.Object.Finalize()
00007F6D3B42CE20 00007F6D3B0E1510 PreJIT System.String.ToString(System.IFormatProvider)
00007F6D3B42CE30 00007F6D3B0E1518 PreJIT System.String.Clone()
00007F6D3B42CF40 00007F6D3B0E1550 PreJIT System.String.GetTypeCode()
00007F6D3B42CF50 00007F6D3B0E1558 PreJIT System.String.System.IConvertible.ToBoolean(System.IFormatProvider)
(以下略)

まあ、めんどくさいですね… これはもう少し調べてみることにします。

Red Hat Summit や //Build 2017 での発表まとめ

Red Hat SummitやらMicrosoftのBuild 2017でいろいろ、Red Hat on Azure, .NET Core, SQL Server on RHEL などなどのセッションがあったので、それぞれの走り書きメモをまとめています。随時更新中。Red Hat Summitは公開されているセッションがすくないので、一つにまとめています。Buildの方は下記のフィルタをかけたものからさらに関係ありそうなものを選んでいます。

Build 2017 | Channel 9

Red Hat Summit

Azure Ref Arch が公開されました。

Deploying Red Hat OpenShift Container Platform 3 on Azure - Red Hat Customer Portal

SQL Server Container をOpenShift上で動かすデモを実行。Public Previewとして誰でも利用できます。

AzureへのOpenShiftのセットアップは、Azure の ARM Template と Red Hat Ansible Installer Scriptの組み合わせで。

OpenShift上のアプリから、Microsoft Bot Framework と Azure Functions を使った Skype Bot を利用。

.NET Core 2.0への対応作業も開始。すでに、s2i imageは.NET Core 2.0 Previewのinitial support branch

OpenShiftからWindows container を扱うデモ。

Windows containerについてはこちら。

DockerCon17 - Beyond the backslash - Docs.com

Build 2017

Azure

Azure CLI 2.0

JEMSPathによるフィルタリングやOutputフォーマットの指定など。 Tab補完や、in-lineでのドキュメントの強化。 IntaracticeモードやCloud Shell。

Azure Compute: New features and roadmap

新機能の紹介

  • NVIDIA GPUとかIB Connectivity とか大容量SSDとかSAP向けとか新しいVMサイズ
  • Dv3とEv3でNested Virtualization
  • Azure Cloud Shell with PowerShell
  • Cross Region Site Recovery
  • Instance Metadata
  • Service Fabric: Windows Server Containers GA, Docker composeのプレビューサポート, Direct Azure endpoint, Hyper-V Isolation
  • OpenShiftやCloufFoundryもあるよ
  • Azure Batch/Low Priority Batch
  • AutodeskによるAzure Batch Rendering Service
  • Web Apps & Lunux container: CI/CD with VSTS and Docker Hub, Direct SSH
  • ローカルで実行できる Azure Functions Runtime Preview
  • Azure Managed Applications & Service Catalog

Introducing Azure Network Watcher

Network topologyの可視化 診断ツール(フィルタリングできるパケットキャプチャとか) メトリクス ログ 8月まで無料

Leverage Azure instance metadata for instance bootstrap and runtime

インスタンスメタデータはVMから認証なしで取得できるREST API。 予定されているメンテナンス情報や、VM自身の方法を取得できる。 今でも使われている 169.254.169.254 というアドレスが正式なサービスとして展開されるイメージ? Azure Instance Metadata Service Overview | Microsoft Docs Scheduled Events with Azure Metadata Service | Microsoft Docs

Big data workloads with Azure Blob Storage | Build 2017 | Channel 9

  • IaaS: Disk, Files
  • PaaS: Blobs, Tables, Queue

Blob Storage?

  • Block blobs: 一般的
  • Append Blobs: 追記
  • Page Blobs: ランダムリード、ライト

Blob Storageのキーコンセプト

  • strong consistency
  • 複数の冗長化の種類
  • Tiered Storage - Hot & Cool
  • 複数のプラットフォーム、言語のサポート

技術的な考慮点

  • 最上位にコンテナというディレクトリ/隔離できる構造がある
  • multipart uploadと範囲指定取得
  • Blobはmutable
  • ETAGとtimestampによる楽観的一貫性
  • 時間もしくは無期限のロック

その他、新機能の予定など

  • Big Data関連のサービスはAzure上に複数あるが、Blobがそれらを支えている
  • AzCopy がLinuxでもサポート(Preview, CoreCLR依存)
  • Blobのゴミ箱サポート
  • Hot/Coolに加え、Archived Storageもサポート予定

Blobの耐久性など

  • 3 replica+ erasure coding
  • MD5ハッシュ
  • CRC checksum
  • GRSによるDisaster Recovery
  • 99.9%のSLA、RG-GRSではReadが99.99%

セキュリティ関連機能の予定など

  • BlobのMS提供キーによる暗号化をサポート予定
  • Secure Transferオプション
  • Network Access Control: 特定のVNETからのアクセスのみ
  • AADのよる認証とBlobへのRBAC

VM storage optionも4TBまでなどと増強予定

Large Block Blobが5TBまで

Storage Accountも5 PBまで

Azure VNet for containers

  • 今迄は Bridge/NAT 接続か、Overlay network modeだった => ACSでSDNも利用可能に (public preview)
  • CNI(k8s, DC/OS), CNM(Docker Engine)といったプラグイン
  • LinuxおよびWindows向け
  • AzureおよびAzure Stack で利用可能

Azure Active Directory v2 endpoint and MSAL: What’s new

  • AAD v2 dev guide: aka.ms/aadv2
  • AADv2は Azure ADのwork&schoolアカウントに加えて個人アカウントでも利用可能
  • クライアントライブラリはMSALと呼ばれるものに変更
  • resourceの代わりにscopeに
  • staticな同意からdynamicな同意に?
  • id_tokenはOpenID connect standardに準拠
  • 1つのアプリでWebとNativeに対応

MSAL はProduction利用可能なPreview。ただし、AADとMSアカウントの両方に対応させる必要がないなら、まだv1がよい。

How containers transform operations and development

What’s container? - アプリのパッケージや配置の単位として使う、 アプリの境界を統一する, Runtime の隔離 What’s container orchestration? - マシン単位での管理をcontainer APIに統一する OPs - Hardware/OSはIaaSに、OSやクラスタリングの設定はコンテナに、クラスタの実行やアプリケーションはDevOpsチームに

=> コンテナクラスタを実行するOSとその管理をAzure Container Servicesに任せよう

Azure Container Service for your cloud native, data intensive, or modernization needs | Build 2017 | Channel 9

VerisonによるACS上でのDC/OSの事例

ASP.NET Core + Azure Service Fabric

  • ASP.NET CoreのMVCやWeb APIをFrontにおき、backendにWeb APIを配置したService Fabric
  • Service Fabicは信頼されたサービス(Reliable Service)として起動
  • ICommunicationListenerを実装したサービスインスタンスを作成し、その中に複数のASP.NET Coreサービスを配置
  • Stateful replicaの場合Change roleライフサイクルでPrimary/Secondary/None を選ぶ
  • NamingServiceを介してサービスを登録/発見する

推奨:

  • WebListener: Internetに面する永続的なエンドポイント。DoS対策や認証なども。
  • Kestrel: 内部向けのエンドポイント

Design for serverless success on Microsoft Azure

Blockchain on Azure

NET Core

Three Runtimes, one standard… .NET Standard: All in Visual Studio 2017 | Build 2017 | Channel 9

.NET Standard とは?

NetStandard.Library というNuGetパッケージはnetstandard.dllを含んでいる ビルド時にはプラットフォームごとのアセンブリにtype forwardする 実行時には環境ごとの実装にtype forwardする

.NET Standard 2.0 Preview出ました

.MET Core 2.0 Preview出ました

  • Frameworkへの参照を単一のパッケージで
  • パッケージングの単純化(ASP.NET CoreやEF Coreを含む)
  • ASP.NET Core 2.0やEF Core 2.0もPreview出ました

Introducing ASP.NET Core 2.0

  • .NET Standard 2.0
  • Web API + MVC + Razor Pages
  • vNext (2.1?) で SignalR も
  • Perf: 4-core Ubuntu 16.04で558,000 rps

Azure AD B2Cも使えるように

SignalR .NET Core: Realtime cross-platform open web communication

  • ASP.NET Coreにあわせて書き換え、再設計
  • HTTP以外での利用(AMQP,MQTT,TCP)
  • 脱jQuery, WebWorkerからの利用も想定
  • JSON & ProtocolBuff protocol
  • Redis, Service Bus, SQL Server (TBD)によるスケールアウト
  • .NET Standard, TypeScript,C++,Java,Swiftのクライアントライブラリ
  • バイナリサポート
  • .NET Core 2.0にあわせてPreview,秋にGA

Entity Framework Core 2.0: data, mobile, server, IoT, and more

2.0の新機能紹介

  • Global Query Filters
  • Context Pooling
  • Compiled Query
  • EF.Functions

[C#]

The future of C#

C# 7.1,7.2,7.3,8.0を計画中

C# 8.0 の予定

Async Streams and Disposable を予定。Rx的な? Extensions Everything ** Record型

言語機能の議論についてはこっちのリポジトリで

github.com

Tools

Visual Studio Code: Conquer the cloud with an editor and a CLI

VS Codeは単なるテキストエディタだけではなくて、クラウド含めたデータストアの操作ツールとしても使えるようにするよというお話?

[The future of Visual Studio] (https://channel9.msdn.com/Events/Build/2017/B8083)

2017 Preview (15.3)出ました

  • .NET Core 2.0
  • C# async main & default expressoins
  • Task status center
  • Docker nano container support etc

any developer, any platform

ユーザーからのFeedback大事

Supercharge your debugging in Visual Studio 2017

DebugのTips集。ビデオみるのがよい。

Developing on Windows Server: Innovation for today and tomorrow - containers, Docker, .NET Core, Service Fabric, and more

  • Windows Server Container と Service Fabricのユーザー事例
  • Visual Studio Docker Toolのデモ
  • Image2Docker モジュール - WIM, VHD, VHDx, 実行中のサーバー からDockerイメージを作成

Docker Enterprise Edition (Docker Datacenter)のWindowsサポート

  • Windows Server container
  • Web管理コンソールの統合
  • LDAP/AD Access
  • etc

Azure Service Fabric

  • Windows Server Container と Hyper-V isolationのサポート
  • イメージの配置とactivation
  • Volume Driverサポート
  • NetworkingとDNS discovery
  • etc

kubernetes

  • Alpha support for Windows Server container
  • Linux nodeでのControl planeの実行と、kubelet/kube-proxyのWindowsでの実行
  • L3 routingでのNerworking
  • 1 Pod あたり 1コンテナのみ

Preview of Azure Functions Runtime https://aka.ms/azafr

  • PortalのホストやEndpointの発行を行う
  • FunctionsはWIndows Server Container内で実行
  • TimerやFileSystem, SQL Service brokerなどからトリガー

Hyper-V 隔離されたLinux Container

  • 1つのDocker engine
  • 1つのコンテナホスト
  • OS/kernelは任意
  • Windows 10上でも動く

=> Ubuntu/SUSE/Fedora on WIndows 10

Nano Serverは圧縮前で1GB程度

dockerのVolume mappingでSMBのサポート

TypeScript

What’s new in TypeScript?

2.0 non-nullable types, discriminated unions 2.1 downlevel async/await, Mapped types 2.2 Mixin classes, Quick fixes 2.3 Type check js files, Plug-in support

TypeScript のLang server: Editor 側にTypeScript pluginを入れ、tsserver (Node.js)とJSON形式で通信