銀の光と碧い空

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

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形式で通信