EDITION v7.0 - ASP.NET Core 7.0 に更新
書籍の更新とコミュニティへの投稿については、 変更ログ を参照してください。
このガイドでは、マイクロサービス ベースのアプリケーションを開発し、コンテナーを使用して管理する方法について説明します。 ここでは、.NET コンテナーと Docker コンテナーを使用したアーキテクチャの設計と実装のアプローチについて説明します。
このガイドでは、簡単に作業を開始できるように、コンテナー化された参照アプリケーションとマイクロサービス ベースのアプリケーションについて説明します。 参照アプリケーションは、 eShopOnContainers GitHub リポジトリで入手できます。
アクション リンク
この電子書籍はPDF形式でも入手できます(英語版のみ) ダウンロード
GitHub で参照アプリケーション eShopOnContainers を複製/フォークする
入門ビデオを見る
マイクロサービス アーキテクチャをすぐに把握する
イントロダクション
企業は、コンテナーを使用して、コスト削減の実現、デプロイの問題の解決、DevOps と運用操作の改善をますます実現しています。 Microsoft は、Azure Kubernetes Service や Azure Service Fabric などの製品を作成し、Docker、Mesosphere、Kubernetes などの業界リーダーと提携することで、Windows と Linux のコンテナーイノベーションをリリースしてきました。 これらの製品は、企業がプラットフォームやツールの選択に関係なく、クラウドの速度と規模でアプリケーションを構築およびデプロイするのに役立つコンテナー ソリューションを提供します。
Docker は、Windows および Linux エコシステムの最も重要なベンダーによってサポートされる、コンテナー業界の事実上の標準になりつつあります。 (Microsoft は Docker をサポートする主要なクラウド ベンダーの 1 つです)。 将来的には、クラウドまたはオンプレミスの任意のデータセンターで Docker がユビキタスになる可能性があります。
さらに、 マイクロサービス アーキテクチャは、分散ミッション クリティカルなアプリケーションの重要なアプローチとして登場しています。 マイクロサービス ベースのアーキテクチャでは、アプリケーションは、個別に開発、テスト、デプロイ、およびバージョン管理できるサービスのコレクションに基づいて構築されます。
このガイドについて
このガイドでは、マイクロサービス ベースのアプリケーションを開発し、コンテナーを使用して管理する方法について説明します。 ここでは、.NET コンテナーと Docker コンテナーを使用したアーキテクチャの設計と実装のアプローチについて説明します。 コンテナーとマイクロサービスの使用を容易にするために、このガイドでは、探索可能なコンテナー化されたマイクロサービス ベースの参照アプリケーションに焦点を当てています。 サンプル アプリケーションは、 eShopOnContainers GitHub リポジトリで入手できます。
このガイドでは、基本的な開発とアーキテクチャのガイダンスを主に開発環境レベルで提供し、Docker と .NET の 2 つのテクノロジに重点を置いています。 アプリケーションの設計について考える際には、運用環境のクラウドまたはオンプレのインフラに焦点を当てずに、このガイドを読んでください。 後で運用可能なアプリケーションを作成するときに、インフラストラクチャに関する決定を行います。 したがって、このガイドは、インフラストラクチャに依存せず、開発環境中心であることを目的としています。
このガイドを学習したら、次の手順として、Microsoft Azure での運用対応マイクロサービスについて学習します。
バージョン
このガイドは、 .NET 7 のバージョンに加えて、.NET 7 リリースに合わせて、同じ "ウェーブ" テクノロジ (つまり、Azure と追加のサード パーティ製テクノロジ) に関連する多くの追加の更新プログラムを対象に改訂されました。
注
この電子ブックの新しいバージョンは、.NET 8 および新しい eShop サンプル用に作成されています。
このガイドで説明されていない内容
このガイドでは、アプリケーションのライフサイクル、DevOps、CI/CD パイプライン、またはチーム作業に焦点を当てません。 Microsoft Platform and Tools を使用したコンテナー化された Docker アプリケーション ライフサイクルの補完的なガイドでは、そのテーマに焦点を当てています。 現在のガイドでは、特定のオーケストレーターに関する情報など、Azure インフラストラクチャに関する実装の詳細も提供していません。
その他のリソース
-
Microsoft プラットフォームとツールを使用したコンテナー化された Docker アプリケーションのライフサイクル (ダウンロード可能な電子書籍)
https://aka.ms/dockerlifecycleebook
対象読者
このガイドは、Docker ベースのアプリケーション開発とマイクロサービス ベースのアーキテクチャを初めて使用する開発者およびソリューション アーキテクト向けに作成しました。 このガイドは、Microsoft 開発テクノロジ (.NET に特化) と Docker コンテナーを使用して概念実証アプリケーションを設計、設計、実装する方法を学習する場合に役立ちます。
また、このガイドは、新しい分散アプリケーションと最新の分散アプリケーションに対して選択するアプローチを決定する前に、アーキテクチャとテクノロジの概要を求めるエンタープライズ アーキテクトなどの技術的な意思決定者である場合にも役立ちます。
このガイドの使用方法
このガイドの最初の部分では、Docker コンテナーについて説明し、開発フレームワークとして .NET 7 と .NET Framework のどちらかを選択する方法について説明し、マイクロサービスの概要を説明します。 このコンテンツは、概要を知りたいが、コード実装の詳細に焦点を当てる必要がないアーキテクトや技術的な意思決定者を対象にしています。
このガイドの 2 番目の部分は、 Docker ベースのアプリケーションの開発プロセスに関する セクションから始まります。 .NET と Docker を使用してアプリケーションを実装するための開発パターンとマイクロサービス パターンに重点を置いています。 このセクションは、コードとパターンと実装の詳細に重点を置きたい開発者やアーキテクトにとって最も重要です。
関連するマイクロサービスとコンテナー ベースの参照アプリケーション: eShopOnContainers
eShopOnContainers アプリケーションは、Docker コンテナーを使用してデプロイするように設計された、.NET およびマイクロサービス用のオープン ソース参照アプリです。 アプリケーションは、複数の e ストア UI フロントエンド (Web MVC アプリ、Web SPA、ネイティブ モバイル アプリ) を含む複数のサブシステムで構成されます。 また、必要なすべてのサーバー側操作用のバックエンド マイクロサービスとコンテナーも含まれます。
アプリケーションの目的は、アーキテクチャ パターンを紹介することです。 実際のアプリケーションを開始するための PRODUCTION-READY テンプレートではありません 。 実際、アプリケーションは永続的なベータ状態にあります。これは、新しい潜在的に興味深いテクノロジが表示されるのをテストするためにも使用されるためです。
フィードバックを送信する
本書と関連サンプルは絶えず進化しているため、フィードバックをお待ちしております。 この本の改善方法に関するコメントがあり、この本を <learn.microsoft.com>で読んでいる場合は、ページの下部にある フィードバック セクションを使用してください。
前の画面キャプチャで強調表示されているように、フィードバック セクションでは次のフィードバックを送信できます。
- この製品: .NET 製品フィードバック フォームを使用します。
- このページ: GitHub イシュー テンプレートとページの詳細を使用します。
この本を PDF として読んでいる場合は、新しい .NET Docs: GitHub の問題 を作成するか、 .NET アーキテクチャの電子ブック: GitHub の問題テンプレートを使用してフィードバックを送信できます。
クレジット
共同作成者:
Microsoft Corp. .NET 製品チーム シニア PM セザール・デ・ラ・トーレ
Bill Wagner、シニアコンテンツ開発者、C+E、マイクロソフト株式会社。
Mike Rousos、Microsoft DevDiv CAT チーム、プリンシパル ソフトウェア エンジニア
エディター:
Mike Pope
Steve Hoag
参加者と校閲者:
Jeffrey Richter、Partner Software Eng、Azure チーム、Microsoft
ヘッドスプリングの最高建築家、ジミー・ボガード
Udi Dahan、特定のソフトウェアの創設者および CEO
Factor10 の共同創設者兼 CEO、ジミー・ニルソン
ASP.NET チーム シニア プログラム マネージャー グレン・コンドロン
Mark Fussell、プリンシパル PM リーダー、Azure Service Fabric チーム、Microsoft
Microsoft Entity Framework チーム PM リーダー ディエゴ ベガ
Barry Dorrans、シニア セキュリティ プログラム マネージャー
ローワン ミラー(Microsoft プログラム マネージャー)
Ankit Asthana、プリンシパル PM マネージャー、.NET チーム、Microsoft
Scott Hunter、Microsoft.NET チーム、パートナー ディレクター PM
Nish Anil、シニア プログラム マネージャー、.NET チーム、Microsoft
ディラン・レイセンベルガー、ポリーの建築家および開発リーダー
Steve "ardalis" Smith - ソフトウェア アーキテクトおよびトレーナー - Ardalis.com
Ian Cooper、Brighter のコーディング アーキテクト
Unai Zorrilla、Plain Concepts のアーキテクトおよび開発リーダー
エドゥアルド・トマス、プレーンコンセプトの開発リーダー
ラモン・トマス、プレーンコンセプトの開発者
David Sanz、Plain Concepts の開発者
ハビエル・ヴァレロ、Grupo Solutioの最高執行責任者
Pierre Millet、シニア コンサルタント、Microsoft
Docker Inc 製品マネージャー Michael Friis
Charles Lowell、ソフトウェア エンジニア、VS CAT チーム、Microsoft
プレーンコンセプトのソフトウェア開発エンジニア、Miguel Veloso
スミト・ゴーシュ(ニューデシック校プリンシパルコンサルタント)
著作権
発行者
Microsoft Developer Division、.NET、Visual Studio 製品チーム
Microsoft Corporation の部門
One Microsoft Way
レドモンド、ワシントン 98052-6399
Copyright © 2023 by Microsoft Corporation
無断転載を禁じます。 本書の内容の一部は、発行元の書面による許可なしに、いかなる形でも、いかなる方法でも複製または送信することはできません。
本書は「as-is」として提供されており、著者の見解や意見を表現しています。 この書籍に掲載されている見解、意見、情報(URLやその他のインターネットウェブサイト参照を含む)は、予告なしに変更される場合があります。
本明細書に示すいくつかの例は、例示のためにのみ提供され、架空である。 実際の関連付けや接続は意図されていないか、推論する必要はありません。
Microsoft および "商標" Web ページの https://www.microsoft.com に記載されている商標は、Microsoft グループの商標です。
Mac および macOS は Apple Inc. の商標です。
Docker whale ロゴは、許可によって使用される Docker, Inc. の登録商標です。
他のすべてのマークとロゴは、それぞれの所有者の財産です。
.NET