Kubernetes を使用する場合
Kubernetes のようなコンテナー オーケストレーション プラットフォームを使用するかどうかは、ビジネス要件と開発要件に依存します。 ここでは、ドローン追跡ソリューションの高レベルなアーキテクチャの概要を確認します。
このソリューションは、疎結合のコラボレーション サービスとして設計されたマイクロサービスとして構築されています。 ソリューションの設計とメンテナンスを簡略化するために、これらのサービスを互いに別々にデプロイします。 ソリューションの現在の構成を次に示します。
- Web フロントエンド: 追跡対象ドローンに関するマップと情報を表示します。
- キャッシュ サービス: 頻繁に要求され、Web サイトに表示される情報を格納します。
- RESTful API: GPS の位置やバッテリ充電レベルなどの状態に関するデータを送信するために、追跡対象ドローンにより使用されます。
- キュー: RESTful API によって収集された未処理のデータを保持します。
- データ処理サービス: キューからデータをフェッチして処理します。
- NoSQL データベース: Web サイトとデータ処理サービスからキャプチャされた、処理済みの追跡データとユーザー情報を格納します。
これらのサービスは、社内の個別のチームによって開発および所有されます。 各チームは、コンテナーを使用してサービスを構築および展開します。 この新しい戦略では、開発者チームが、自動化、テスト、そして全体的な安定性と品質を実現するための最新のソフトウェア開発の要件を把握できます。
開発者の要求が変わることで、会社にもいくつかのプロセスとビジネスの利点が得られました。 たとえば、ホストされているコンピューティング リソースの使用率が上がり、新機能によって市場投入までの時間が短縮され、顧客のリーチが向上しました。
ただし、コンテナーの管理の課題もいくつかあり、それによって会社はコンテナーのオーケストレーション ソリューションの調査が必要になりました。 あなたのチームでは、追跡アプリケーションを少数のデプロイに拡張することは比較的簡単なものの、多数のインスタンスのスケーリングと管理は難しいことがわかりました。
他にも考慮すべき点がいくつかあります。 例として、失敗したコンテナーの対処、ストレージの割り当て、ネットワークの構成、アプリ シークレットの管理などがあります。
前に説明したように、Kubernetes は、これらのすべての課題をオーケストレーション プラットフォームとしてサポートしています。
会社で次を行うような場合、Kubernetes の使用をお勧めします。
- アプリをマイクロサービスとして開発する。
- アプリをクラウドネイティブ アプリケーションとして開発する。
- コンテナーを使用してマイクロサービスをデプロイする。
- コンテナーを大規模に更新する。
- コンテナーのネットワークとストレージの一元管理が必要である。
Kubernetes を使用すべきでない場合
すべてのアプリケーションを Kubernetes で実行する必要はありません。 このため、Kubernetes がご自身の会社に適していないこともあります。
たとえば、モノリシック アプリのコンテナー化とデプロイの手間が、Kubernetes でアプリを実行する利点を上回ることがあります。 モノリシック アーキテクチャでは、個々のコンポーネントのスケーリングや更新などの機能を簡単に使用することはできません。
Kubernetes は、ソフトウェアの開発、展開、管理、およびプロセスの合理化について、多くのビジネス上のベネフィットをもたらします。 しかし、Kubernetes には、急な学習曲線があります。 Kubernetes のモジュール形式の設計により、会社全体のチームに影響を与える新しい概念が導入される可能性があります。
開発チームは、アプリを開発および設計するときに、最新の設計概念を採用する必要があります。 これらの概念には、マイクロサービスの使用や、これらのサービスのコンテナー化が含まれます。 また、チームは、使用可能なすべてのオプションを最大限に活用するために、コンテナーとオーケストレーション環境を試す必要があります。
会社でこの変更を採用する準備ができていない場合、Kubernetes が適さないおそれがあります。