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
JEMSPathによるフィルタリングやOutputフォーマットの指定など。
Tab補完や、in-lineでのドキュメントの強化。
IntaracticeモードやCloud Shell。
新機能の紹介
- 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
Network topologyの可視化
診断ツール(フィルタリングできるパケットキャプチャとか)
メトリクス
ログ
8月まで無料
インスタンスメタデータはVMから認証なしで取得できるREST API。
予定されているメンテナンス情報や、VM自身の方法を取得できる。
今でも使われている 169.254.169.254 というアドレスが正式なサービスとして展開されるイメージ?
Azure Instance Metadata Service Overview | Microsoft Docs
Scheduled Events with Azure Metadata Service | Microsoft Docs
- 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まで
- 今迄は Bridge/NAT 接続か、Overlay network modeだった => ACSでSDNも利用可能に (public preview)
- CNI(k8s, DC/OS), CNM(Docker Engine)といったプラグイン
- LinuxおよびWindows向け
- AzureおよびAzure Stack で利用可能
- 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がよい。
What’s container? - アプリのパッケージや配置の単位として使う、 アプリの境界を統一する, Runtime の隔離
What’s container orchestration? - マシン単位での管理をcontainer APIに統一する
OPs - Hardware/OSはIaaSに、OSやクラスタリングの設定はコンテナに、クラスタの実行やアプリケーションはDevOpsチームに
=> コンテナクラスタを実行するOSとその管理をAzure Container Servicesに任せよう
VerisonによるACS上でのDC/OSの事例
- 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: 内部向けのエンドポイント
NET Core
.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出ました
- .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も使えるように
- 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
2.0の新機能紹介
- Global Query Filters
- Context Pooling
- Compiled Query
- EF.Functions
[C#]
C# 7.1,7.2,7.3,8.0を計画中
C# 8.0 の予定
Async Streams and Disposable を予定。Rx的な?
Extensions Everything
** Record型
言語機能の議論についてはこっちのリポジトリで
github.com
Tools
VS Codeは単なるテキストエディタだけではなくて、クラウド含めたデータストアの操作ツールとしても使えるようにするよというお話?
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大事
DebugのTips集。ビデオみるのがよい。
- 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
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形式で通信