ナビゲーションをスキップする

Microsoft Azure でオープンソース アプリケーションを自分流に実行する柔軟性を得る

2021年5月26日 に投稿済み

Azure Distinguished Engineer

「オープンソースの考え方を持って生まれてきたテクノロジ企業なら理解できることですが、私たちの夢を信じられるものにし、最終的に達成できるものにするのは、一緒に働く能力です。他の人のアイデアを基に構築することを学ぶ必要があります」 - Microsoft、CEO、Satya Nadella

Microsoft は常に開発者ファーストの組織であり、開発者に提供するツールとプラットフォームを改善するよう努めています。Azure はその精神で設計されていて、インフラストラクチャを開発者が制御できるようになっており、オペレーティング システム、データベース、言語、デプロイ ツール、手法に関係なく最大の柔軟性を提供し、それらのオプションがオンプレミスとエッジに拡張されています。今日、それらのシステムの多くはオープンソースです。Linux、Kubernetes、Spark、Python は、最もよく知られている例のほんの一部です。そのため、Azure はこれらのテクノロジの実行を、サービスとしてのインフラストラクチャ (IaaS) またはサービスとしてのプラットフォーム (PaaS) のどちらのレベルにおいても、仮想マシン (VM) で稼働する Linux や、クラウドネイティブ開発用の Azure Kubernetes Service (AKS) を通して行えるように構築されており、多くの場合は一般的なオープンソースのデータベース向けのマネージド サービスの 1 つと連携するようになっています。

Microsoft ではオープンソースに積極的に取り組んでいます。Linux on AzureKubernetes on AzureVisual Studio Code に貢献しており、Cloud Native Computing Foundation (CNCF) や Open Source Security Foundation (OpenSSF) などのオープンソース組織で働いています。Microsoft Build では、開発者が Azure 上で柔軟に開発し、迅速に革新を行えるようにするための最新の作業成果を共有しています。

Microsoft におけるオープンソース

オープンソースとは、オープンなマインドセットを生み出すことです。つまり、共同作業とソフトウェア ナレッジへの貢献によって付加価値を生み出し、他の人の作業に基づいて構築することです。Microsoft はコミュニティ、お客様、パートナーと協力して、彼らが持つ最高のテクノロジをお客様に提供するとともに、オープンソース プロジェクトに貢献してそれらの正常性を確保し、Microsoft のイノベーションを共有します。Microsoft の開発者は、オープンソースを使用して、仕事をより効率的に行っています。Microsoft のほぼすべてのチームは、オープンソースの使用または貢献に関わっています。Microsoft の 30,000 人の従業員が、Microsoft ID に関連付けられた GitHub アカウントを持っています。

クラウドネイティブ アプリケーションの柔軟性

クラウドネイティブ開発のメリットを活かす開発者は毎日増加しています。Azure を使用すると、ビジネスを中断することなく、アプリケーションを最新化し、クラウドに移行する野に役立ちます。Azure は開発者を念頭に置いて構築されており、難しいアーキテクチャがシンプルになっています。Azure は安全性の高いクラウド プラットフォームであり、コンプライアンス対応範囲が最も幅広いため、自分のワークロードとデータは安全であると信頼できます。ここでは、そのしくみをいくつか見てみましょう。

コンテナー サービスAzure 上のマイクロサービス、およびAzure 上の DevOps ソリューションは、クラウド上に構築するためのコア テクノロジです。新しいアプリの 90% は、2022 年までにマイクロサービス アーキテクチャで構成されることになります1。コンテナ化されたアプリケーションの複雑さを管理するため、Azure Kubernetes Service (AKS) では、自動化および統合化された継続的インテグレーションと継続的デリバリー (CI/CD) パイプラインを使用して、コンテナーを調整し、必要に応じてスケールアップまたはスケールダウンします。マイクロサービス アーキテクチャのメリットとして、構築、テスト、デプロイのための自動化されたワークフローを備えた、アジャイル開発用のオープンで、効率的な、スケーラブルで、移植可能なソリューションであることが挙げられます。

Microsoft では、パートナーのクラウドネイティブ テクノロジをお客様に提供するための連携も行っています。たとえば、Azure Red Hat OpenShift では、Microsoft と Red Hat の両方が監視および運用する、高可用性を備えたフル マネージドの OpenShift クラスターをオンデマンドで提供します。Kubernetes は、Red Hat OpenShift の中核にあります。OpenShift は Kubernetes を補完するための付加価値の高い機能を備えており、開発者や運用者のエクスペリエンスを大幅に向上させたターンキー コンテナー プラットフォームとなっています。

サーバーレス テクノロジは多くのお客様にとって次世代アプリケーションのプラットフォームとなります。イベントドリブン アーキテクチャを使用して、独立性、抽象化、柔軟性を維持しながら、分離されたサービス間でイベントを通して通信を行うことで、マイクロサービスの利点を最大化できます。Kubernetes Event-Driven Autoscaling (KEDA) は、イベントドリブンでサーバーレスのスケールを任意のコンテナーにもたらすオープンソース プロジェクトです。このコミュニティでは、すべてのクラウドにまたがる 35 を超えるイベント ソースの構築サポートを支援してきました。KEDA と、Azure Functions などのサーバーレス ランタイムを組み合わせることもできます。Azure Functions のイベントドリブン アーキテクチャは、サーバーレスの開発者エクスペリエンスとランタイムの上に成り立っています。Azure Functions は、GitHub 上の 10 個の別々のオープンソース プロジェクトにまたがっており、コミュニティから 60 人の共同作成者がいて、数百件のコミットが行われています。サーバーレス アプリケーションはコストを削減し、開発者の生産性を向上させ、イノベーションのペースを加速します。開発者は、最終的に、インフラストラクチャ管理ではなく、アプリケーションの構築に専念できます。 

オープンソース プロジェクトの Dapr (Distributed Application Runtime) を使用すると、マイクロサービス アーキテクチャをさらに強化できます。これにより、開発者は、同じ分散型アプリケーションの課題を何度も解決するのではなく、アプリケーションの構築に集中できます。Dapr では、ステートフルなアプリケーションを構築するための状態の保存、サービス呼び出し、シークレット管理などの課題を抽象化する構成要素のコレクションを提供します。業界トップのオープンソースやクラウド固有のテクノロジを開発者が使用できるようにする、70 を超えるさまざまなコンポーネントと統合することで、Dapr はクラウドネイティブ アプリケーションの開発を簡略化します。この簡略化により、使用する言語やアプリケーションの実行場所 (オンプレミス、クラウド、エッジ デバイス) を選択する柔軟性を損なうことなく、開発者はアプリケーションをより迅速に構築できます。Dapr はサイドカーとしてアプリケーションと共に実行されるため、アプリケーション コードは独立したままであり、Dapr はそれに合わせてスケーリングされます。Dapr v1.0 の最近のリリースでは、Dapr が運用環境で使用できるようになりました。また、ZEISSIgnition Group などの一部の Azure のお客様は、既に Dapr を使用して AKS で実行されるクラウドネイティブ アプリケーションを構築しています。

Azure を使用すれば、オープンソースのツール、言語、フレームワークの統合サポートの条件に基づいて構築できます。Java 開発者向けに、OpenJDK の Microsoft Build of OpenJDK の一般提供を発表しました。これは、オープンソースであり、誰でもどこにでもデプロイできる OpenJDK の無料の長期サポート (LTS) ディストリビューションです。オープン クラウドでは、アプリケーションの移植性と柔軟性が得られるため、効果の実現に専念できます。新しい Microsoft Build of Open JDK の詳細については、最近のブログ記事「Azure は、エンタープライズ Java アプリケーションのホームです」をご覧ください。

イノベーションを迅速に解放する

Azure には、AI を活用したアプリケーションの構築に役立つ多数のサービスも用意されています。Azure Machine Learning では、オープンソースの Python 機械学習ライブラリとプラットフォームを使用して、機械学習モデルを構築、トレーニング、デプロイできます。MLflow を使用してエンドツーエンドの機械学習ライフサイクルを管理および追跡したり、PyTorch Profiler を使用してパフォーマンスのボトルネックを取り除いたり、高性能の推論およびトレーニング エンジンである ONNX Runtime を使用して最適化して、どこにでもデプロイすることができます。ONNX Runtime では、トランスフォーマー モデルの高速トレーニングがサポートされるようになりました。これにより、速度が 45% 向上します。PyTorch Enterprise を使用すると、100% オープンソースの PyTorch コードを実行しながら、ディープ ラーニング プロジェクトのエキスパート サポートを受けることができます。Azure では開発者の現状に合わせた実際的なアプローチを行い、機械学習の専門的なトレーニングを受けていない開発者向けに、事前トレーニング済みの AI モデルを提供してアプリケーションに組み込めるようにしています。Azure Bot Services は、エンタープライズ級の会話型 AI エクスペリエンスを構築するための包括的なフレームワークです。Bot Framework を使用すると、販売からカスタマー サポートや従業員の生産性向上にいたるまで、あらゆるシナリオでボットを構築、テスト、公開することができます。

機械学習で重要なのは、不公平を軽減し、ユーザーを差分プライバシーで保護し、機械学習のライフサイクルをデータシートで文書化することです。Microsoft では、データ科学者と開発者が責任を持って革新を行えるように、責任ある機械学習の原則を実践し、機械学習ツールキットをオープンソース化しています。

AI はデータなしでは価値がないため、データの検出と準備にかかる時間を短縮できるように、データセットをオープンソース化しています。Azure Open Datasets は、機械学習ワークフローですぐに使用して精度を向上させることができる、一般公開されたデータセットです。データセットは API を介してアクセスされ、気象、国勢調査、休日、公共安全などのパブリック ドメイン データを含みます。独自のデータを使用することを選択した場合は、MongoDB および Cassandra 向けのオープンソース API を備えたフル マネージド NoSQL データベースである Azure Cosmos DB に加え、Azure Database for PostgreSQLAzure Database for MySQLAzure Database for MariaDBAzure Cache for Redis などのフル マネージドのオープンソース データベースにデータを保存できます。

開発者が最新の機械学習ツールキットを使用して新しいインテリジェント アプリケーションを構築できるようにし、責任を持って革新を行うための予防的なサポートを提供します。アプリケーションで AI の価値を活用する方法の詳細については、最近のブログ記事「Azure でデータと AI の力をアプリケーションに活かす」をご覧ください。

Azure のオープンソース エコシステム

Azure オープンソース エコシステムには、多くの企業や個人のソリューションが含まれています。Azure が開発者にとって優れたプラットフォームになるために必要なこととして、期待されるすべてのサービスを、そのソースに関係なく、サポートすることがあります。また、Microsoft では、Azure がパートナーにとって優れたプラットフォームになるようにも努めています。Azure Red Hat OpenShift サービスについて言及しましたが、Microsoft では、Red HatSUSEDatabricksHashiCorpVMware などとも提携して、それらのソリューションをマネージド サービスとして共同で構築およびサポートしています。つまり、運用、ID、セキュリティ、請求でシームレスなエクスペリエンスを実現でき、こうしてユーザーの生活をシンプルにしています。この機運を高めるため、Microsoft Build で追加の Elastic on Azure ネイティブ統合を発表しました。これにより、Azure でエラスティック サービスを使用しているお客様は、課金の統合、完全なテクニカル サポート、Azure portal 統合にアクセスすることができます。

将来的に、私たちと同じようにオープンソース テクノロジの開発に投資している企業と提携することを楽しみにしています。

Azure はオープンソース開発者向けのクラウドです

「地球上のすべての個人とすべての組織がより多くのことを達成できるように支援する」ことが Microsoft のミッションです。Azure は、今日、明日、そして将来のイノベーションに役立ちます。私たちは、開発者が、最高のツールと構成要素を備えたオープンなプレイグラウンドとしてプラットフォームを使用することにより、アプリケーションを構築および革新できるように支援しています。ご自分が将来構築するものをまだ知る必要はありませんが、私たちは皆さんの開発を見ることを楽しみにしています。Microsoft Build での Microsoft Azure を使用した自分流のオープンソース アプリケーションの実行というセッションと優れたデモをチェックして、どのように開発者が自由かつ迅速に革新できるようにしているかをご覧ください。Microsoft のエンジニアがオープンソースを使ってどのように革新を行っているかについては、Microsoft ブログのオープンソースで最新情報を入手し、Twitter でフォローしてください。


1IDC FutureScape:Worldwide IT Industry 2019 Predictions

Azure。目的を持って創造する。