Microsoft Ignite The Tour Osaka に参加して得たモノ

オウルです。

2020 年 1 月 23 (木) – 24 日 (金)に開催された Microsoft Ignite The Tour Osaka に個人(プライベート)で参加してきました。

Microsoft Ignite The Tour

Microsoft Ignite The Tour とは、米国で年に一度開催される Microsoft Ignite で最も人気の高い選りすぐりのコンテンツ(クラウド テクノロジや開発者向けツールの最新情報)を提供する Microsoft の最先端テクニカルカンファレンスです。

今回は、Tailwind Traders という架空の企業を例に、この企業が抱えている課題を Azure サービスを使用して解決していくストーリーで各セッションが構成されていました。

参加セッション

AI や Power Platform は面白そうでしたが、今回はコンテナ中心にしました。

  • クラウド内のデータに関するオプション
  • コンテナーを使用したアプリケーションの最新化
  • インフラストラクチャと Azure Kubernetes Service を統合する
  • 監視、パフォーマンス、スケーリングによってアプリを次のレベルに進める

人気セッション

どのセッションも人気の中、特に人気だったのは「Azure の基礎」のラーニングパス。「Azure ネットワークの基礎」「Azure のセキュリティの基礎」は参加したかったのですが、2日前にスケジュールを見ると ”満員” 。事前にセッションカタログは公開されているので、次回参加される方は、早めに参加するセッションを決めて、スケジュール登録することをお勧めします。

それでは、参加したセッションの記憶を風化させないために簡単にレポートしてみます。とその前に Microsoft Ignite The Tour Osaka に参加して技術以外で得たモノについてです(後半でAzure サービスのレポートはあります)

Microsoft Ignite The Tour Osaka に参加して得たモノ

何を隠そう僕は Microsoft Ignite The Tour Osaka のような大きなカンファレンスに参加したのは、これが初めて。もう30も後半なのに。

何事も初めてはいい年になっても色々ネガティブになります。例えば、まだ自分は参加するレベルに達していないのではとか、参加しても活用する場面がないから無駄ではとか(IT業界において最先端技術を、その人に無駄と思わせるような環境の方にリスク(というかつまらない)があるような気がしますが)。そんなネガティブ思考を変えたのは、次でした。

  1. 参加費が無料
  2. 所属している組織とは関係なく個人で参加
  3. 参加する目的は、個人の目的とする

1は今回クリアです(交通費+宿泊費。飛行機を使ったので決して安くはなかったですが)。やはり参加費が無料なのはハードルが、かなり下がります。

2は1番参加への後押しになりました。当たり前のことですが、仕事ではないため、純粋に自分の興味を中心に考えることができたからです。

3は個人の興味が中心となるので、目的が明確になります。僕の目的は、次のような感じになりました。つまり、これが Microsoft Ignite The Tour Osaka に参加して、僕が得たモノになります。

  1. 自分の理解と答え合わせ
  2. 最新情報による知識のアップデート
  3. 周囲の熱量
  4. 次の目標の設定

2は個人の情報収集には限度がありますし、なによりソースが Microsoft なので信頼できます。今回だと AKS で Azure SQL Database を使用するとなると Endpoints リソースが必要でプライベートネットワークに閉じれないと思っていましたが、後程でてくる Pod Identity なるもので実現可能と知ることができました。3、4は抽象的ですが、モチベーション維持につながります。

得たモノは多くありましたが、結局の1番は、行動(カンファレンスに参加)したという事実かもしれません。僕みたく大きいカンファレンスに参加したことない方は、視野を広げる機会の1つと思ってネガティブにならず、まずは軽い気持ちで参加してみるのはありだと思います。

お弁当

これを無料配布。 さすが、Microsoft。

Tシャツ

なんかめっちゃ並んでると思っていたら、Tシャツでした(アンケートに回答するともらえるやつ)

では、このお話は、そろそろ終わりにして Microsoft Ignite The Tour Osaka のテックレポートをさくっと。

Azure でのコンテナーとオーケストレーション

各セクションの前に、まず Azure サブスクリプションについて、基本のおさらいです。なぜかというと Azure サービスをビジネスで使用する以上、課金のお話がついてきます。実際、各セッション中もサブスクリプションという用語で課金のお話がでてくるので、押させておくべきポイントの1つだと思います。

Azure サブスクリプション

Azure リソースを使用した場合に発生する課金が、 Azure サブスクリプションに計上されます。つまり Microsoft に支払う単位になります。

僕が Azure サブスクリプションを複雑だなと感じてしまう大きな理由として Azure AD との関係です。Azure サブスクリプションを契約すると既定の Azure AD が 1 つ作成され紐づきます。

サブスクリプション管理者には、代表的なロールが3つがあります。

アカウント管理者

Azure サブスクリプションの課金などの管理を行うための権限

サービス管理者

Azure サブスクリプション内のリソースなどの管理を行うための権限

所有者 (RBAC のロール)

RBAC によるロールの1つ

Azure サブスクリプションを契約して、初めて Azure ポータルにログインすると何でもできます。それは、既定でサブスクリプション作成時のアカウントが、「アカウント管理者」「サービス管理者」に設定されているからです。

じゃ、追加で Azure サブスクリプションを契約した場合の Azure AD はどうなるの?といったことを丁寧に説明してくれている公式ブログがあります。僕も今回↓ この記事で勉強させてもらいました。

クラウド ネイティブ アプリケーションの開発

セクションタイトルの下にテーマ(課題)を引用しています。このテーマを一読後に、公開資料(公開資料は「動画」「パワーポイント」のリンクで遷移)をみると理解が深まりやすいと思います。

クラウド内のデータに関するオプション

Tailwind Traders 社は、危険な単一障害点を持つ大規模な小売企業です。販売、フルフィルメント、監視、テレメトリのデータは、オンライン店舗と実店舗全体で集中管理されています。構造化データベース、非構造化データ、リアルタイム データ、ファイル ストレージに関する考慮事項を確認し、パフォーマンス、コスト、運用上の影響の間のバランスについてのヒントを共有します。 このセッションでは、Tailwind Traders 社が、Azure SQL、Cosmos DB、Cosmos DB Mongo API などの複数の Azure サービスを使用して柔軟なデータ戦略を作成した方法、および一般的な課題を克服して適切なストレージ オプションを見つける方法について説明します。

このセッションにある「データ格納戦略」が参考になります。データの種類(構造化データ・非構造化データ・半構造化データ)、特性(量・スピード・多様性)、コストを分析して、適切なサービスAzure Storage Services にするのか、はたまた Azure SQL Database(RDBMS)や Azure Cosmos DB(NoSQL)など)を選択することです。

実際は使用するサービスを決めても、例えばストレージの冗長性だと LRS なのか GRS なのか、IOPSは、などさらに細かく設計する必要があります。

他にも Azure Key Vault を利用したアプリケーションシークレットの管理などがありました。実体験の例をあげると Azure Key Vault は、SQLServer の列暗号(Always Encrypted)に使用することができます。

コンテナーを使用したアプリケーションの最新化

最近、Tailwind Traders 社は、コア アプリケーションの 1 つを仮想マシンからコンテナーに移動し、デプロイの柔軟性と反復可能なビルドを実現しました。 このセッションでは、デプロイのためにコンテナーを管理する方法、コンテナー レジストリに関するオプション、デプロイされたコンテナーを管理およびスケーリングする方法について説明します。また、Tailwind Traders 社が Azure Key Vault サービスを使用してアプリケーションのシークレットを格納し、アプリケーションがビジネスに不可欠なデータに安全にアクセスできるようにする方法についても説明します。

このセッションでは、コンテナ(Docker)の特徴として代表的な「軽量」「携帯性」「揮発性」の3つのうちの「軽量」「携帯性」について、仮想マシンとの比較で、その特徴(コンテナのメリット)を理解することができます。

↓ こちらの記事で Docker のうれしいことをまとめています。

また、このセクションから基本コマンド操作(Dockerfile、Docker ビルド、Docker リポジトリのプッシュ etc)のハンズオンがあるので Docker を知らない方には、いいセクションではないかと思います。

このセッションで得たのは Azure Container Instances の特徴(AKSとのすみわけ) と Web App for Containers サービスについてです。Azure App Service は以前から知っていましたが、コンテナー化されたアプリケーションをデプロイできることは知りませんでした。個人的には、単に Web App をコンテナで動作させたい場合は、Azure Container Instances < Web App for Containers でしょうか。

動画 パワーポイント

インフラストラクチャと Azure Kubernetes Service を統合する

Kubernetes はオープンソースのコンテナー オーケストレーション システムであり、スケーリングと信頼性によってアプリケーションを強化し、A/B テスト、ブルー/グリーン デプロイ、カナリア ビルド、非常に簡単なロールバックなどの高度な機能を利用できるようにします。 このセッションでは、Tailwind Traders 社がコンテナー化されたアプリケーションを選択して Azure Kubernetes Service (AKS) にデプロイした方法を説明します。Kubernetes の主要な概念と、それを業界標準のツールで使用できるようにする方法について、深く理解できるようになります。

このセッションでは、Kubernetes のアーキテクチャ ⇒ Azure Kubernetes Service アーキテクチャ ⇒ Azure CLI で AKS のデプロイをハンズオンします。AKS のデプロイ後に変更できない項目(ネットワークポリシーなど)があり、設計時の注意事項なんかも紹介してくれています。後、重要なのは冒頭であげた Pod Identity です。

↓ こちらの記事で Kubernetes のうれしいことをまとめています。
Pod Identity の概要
  • Pod が他の Azure サービスに安全に接続可能
  • Azure AD および Azure Managed ID を使用
  • Pod から Azureサービスへの接続を容易に設定追加・削除可能

監視、パフォーマンス、スケーリングによってアプリを次のレベルに進める

アプリケーションのログとメトリックを理解することは、Tailwind Traders 社の課題でした。社内では次のようなことがよく尋ねられていました。「何を探しているのかを知るにはどうすればよいですか。ログを見るのですか。メトリックですか。それとも両方ですか。」 Azure Monitor と Application Insights を使用することで、同社はアプリケーション ログをさらに強力なテレメトリにすることができます。このセッションでは、公開されている Web サイトに Application Insights を接続し、ホーム ページの読み込みの遅さを解決した方法について説明します。次に、このテレメトリの概念を拡張して、同社の Cosmos DB のパフォーマンスを向上させる方法を明らかにします。最後に、Azure Front Door のような強力でありながら簡単なサービスを使用して、容量の計画とスケーリングを行う方法を説明します。

アプリの開発だけでなく、その後の運用や保守を経験されている方なら、このセクションの重要性がお分かりになると思います。

登場する Azure サービス
  • Application Insights を使用したアプリケーションの把握
  • Azure Monitorを使用したトラブルシューティングと修正
  • Azure Front Door によるディザスタ・リカバリ
Application Insights で監視可能なデータ
  • リクエスト数、応答時間、失敗率、例外
  • ページビューとパフォーマンス
  • パフォーマンス(CPU、メモリ、ネットワーク)
  • カスタムイベントとメトリック
Azure Monitor で収集可能なデータ
  • アプリケーションログ(webapp、ブラウザなど)
  • OSメトリック
  • コンテナメトリック
Azure Monitor for Containers で提供される機能
  • クラスタ内で実行中のコンテナを追跡
  • CPU/メモリ/IO使用率の確認
  • アラートの設定
Azure Front Door で提供される機能
  • トラフィック負荷分散
  • コンテンツ配信ネットワーク(CDN)
  • ヘルスチェック

最後に、MS Learn です。これは学習用のコンテンツです。

こういうコンテンツを利用して、上手に(適切に)クラウドサービスを活用できるデベロッパーになりたいものです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA