BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Microsoft .NET Conf - テーマはマイクロサービス

Microsoft .NET Conf - テーマはマイクロサービス

昨日(2020/7/29)、.NET Conf:Focusシリーズの第3弾が開催された。今回フィーチャーされたのは、.NETによるマイクロサービス開発だ。このイベントはあらゆる種類の開発者を対象に、ライブコーディングデモを実施し、関連するコンセプトやツールを包括的に紹介するものだ。無料参加の可能な単日のライブストリームイベントには、コミュニティや.NETプロダクトチームからの講演者が登壇する。これまでの2回はいずれも今年始めに実施され、それぞれがBlazorとXamarinに重点を置いていた。  

Foucsシリーズは.NET Confをオリジナルとする派生イベントである。.NET Confは、.NETプラットフォームに関する最新の開発を紹介する場として、.NETコミュニティとMicrosoftが立ち上げた年次のイベントだ。2019年の.NET Confは3日間のイベントとして開催され、.NET Core、ASP.NET、EF Core 3.0に加えて、C# 8.0とF# 4.7がMicrosoftから公式にリリースされた。これに対してFocusイベントでは、.NETに関連する特定のテクノロジに的を絞り、.NET開発者を対象とした詳細な一連のハンズオンセッションを提供する。

.NET Conf: Micoservicesは、(Microsoftのプラットフォームやフレームワークではない、)より広範なトピックを取り上げた、Focusシリーズとしては初のイベントで、現時点ではおそらく、シリーズ中最高のイベントである。カンファレンスは、.NET Core機能と、.NETでマイクロサービスを開発するためのツールの概要から始まった。このコンテキストにおける数々の.NETの採用例、.NET 5のパフォーマンス改善が紹介された後、Scott Hunter、David Fowler両氏(いずれもMicrosoft)が、マイクロサービス、コンテナ、オーケストレーションのコンセプトの概要を分かりやすく説明してみせた。氏らは次に、Microsoftが今年始めに"experimental"としてリリースした、マイクロサービスの構築、デバッグ、デプロイ用ツールのProject Tyeについて紹介した。

これに続いて行われたセッションは、おそらくは今回のイベント全体で最も重要なセッションだった。Kubernetesの開発者のひとりでAzureチームのエンジニアであるBrendan Burns氏によるプレゼンテーションは、マイクロサービスの実装において、技術的な理由よりも関係者に注意を払わなければならない理由についての説明から始まった。さらに氏は、マイクロサービス採用の決定に関わるべき理由や考慮に話題を進め、チームのスケールアップや共有インフラストラクチャ上での開発について、示唆に富んだ説明を行った。

2つの素晴らしいセッションが、Clemen Vasters氏(Azure Messagingチームのアーキテクト)とJulie Lerman氏(Microsoftリージョナルディレクタ)によって行われた。いずれも非常にテクニカルな内容で、前者ではサービスとメッセージングパターンにおける非同期コミュニケーションの特殊性について詳しく説明された。プレゼンテーションの中でVasters氏は、同期と非同期メッセージングの違い、コミュニケーションパターン、メッセージングプロトコルなどの話題を取り上げた上で、Azure Messaging Suiteで可能なサービスについて詳しく説明し、それらが先程あげた概念とどのように関連しているのかを解説した。このセッションのスライドはこちらにある。

続いてLerman氏が登壇し、ドメイン駆動設計(DDD)の簡単な概要と、マイクロサービス間の境界とインタラクションの決定にそれを用いる方法について解説した。これらの概念に基づいた氏の実践的なデモでは、マイクロサービスを使ったデータの永続化が紹介された。このセッションは優れたデモであると同時に、DDDの概念を実践したアプリケーションであり、EF Coreの新機能の紹介でもあった。デモで使用されたソースコードはこちらにある。

もうひとつの興味深いセッションでは、短いながら.NETの外面として非常に重要な部分が、GoogleのスタッフデベロッパアドボケートのKelsey Hightower氏によって行われた。セッションは、クラウド内で.NETマイクロサービスを作成し、デプロイするという、ライブデモンストレーションだった。他の多くのセッションほど技術的には深くなかったが、デプロイメントのサイズの重要性(マイクロサービスを始めたばかりの開発者にとっては自明ではないかも知れない)や、12ファクタアプリの方法論に照らし合わせたマイクロサービス開発のベストプラクティスなど、手近なプロセスに関連する観察と考察に溢れるものだった。

その他にも、.NETによるマイクロサービス開発に関連するツールやフレームワークの紹介など、優れたセッションがあった。David Dieruf氏は、マイクロサービスとWebアプリ開発の生産性向上を目的としたオープンソースのフレームワークのSteeltoeプロジェクトについて講演した。Microsoftの開発者であるReuben Bond氏は、Microsoftの分散アプリケーション開発フレームワークであるOrleansを紹介した。その他にもDAPRProject Tyeといったフレームワークやツールが紹介された。他のセッションでは、AzureやVisual Studioを使って、マイクロサービス開発のさまざまな側面が取り上げられていた。

イベントに関する最も重要なテーマは、マイクロサービス採用を判断することの重要性と、この判断に何が関与するのか、ということだ。パフォーマンスの重要性、開発者によるマイクロサービス構築とデプロイの簡単さといった面から、開発コミュニティにおいて.NETの採用が拡大しているのは明らかだ。しかし、現在運用しているテクノロジに関わらず、新たなテクノロジの採用の背景にあるモチベーションを理解し、どのシナリオに何を用いるべきかという点が常に優先事項であることに変わりはない。この理由から、技術的な面においてはすべてのセッションが互いを補完する関係にある中で、Brendan Burns氏とClemen Vasters氏によるセッションは、イベント全体において重要なものであった。

イベントで紹介された概念やツールはすべて、Azure上での.NETによるマイクロサービス開発に焦点を置いたポストカンファレンス・ワークショップにある。ワークショップ全体のスケジュールはこちらで確認できる。

次の.NET Confイベントは.NET 5のローンチを中心としたものになる予定で、11月中旬にスケジュールされている。Focusシリーズとは違ってこちらは3日間のイベントで、新たな.NETリリースのさまざまな面を取り上げたセッションが行われる。.NET Confと.NET Conf:Focusの全録画は、MSDN Channel 9の企画プレイリストで公開されている。セッションの様子とデモはこちらで確認できる。

この記事に星をつける

おすすめ度
スタイル

BT