ワークロードがポータブルになるように設計されていれば、どのクラウドプロバイダーを使うかは問題ではない。ポータビリティと標準化を念頭に置いて設計する場合は、ベンダーのロックインポイントや、クラウドベンダーが他のプロバイダーへの移行を妨げる可能性がある箇所を特定することから始める。
例えば、Kubernetesのようなものを中心に設計するだけでは必ずしも十分ではない。Kubernetesクラスタが相互作用する可能性のある、あるいは相互作用する必要のある他のシステムについて考えてみよう。それらの要件を評価し、オープンソースのソリューションや、どのクラウドプロバイダーにもあるコアクラウドインフラ プリミティブを使ってアーキテクチャを設計する。
アプリケーションと他のシステム間の互換性を確保するために、標準的なAPIに焦点を当てる。同期(リクエスト/レスポンス)通信を使うコンポーネントには、RESTful APIから始めましょう。その人気は、最も一般的で広くサポートされているプロトコルであるHTTPを使うことに由来する。ビデオ・ストリーミングのようなものは、他のプロトコルが現れては消え、これからも現れるだろうが、定着しているものはHTTPベースだ。
マイクロサービスや コンテナによるモジュラー設計は、アプリケーションをより小さく管理しやすいコンポーネントに分解し、必要に応じて機能を追加したり削除したりすることを容易にし、アプリケーションをより柔軟でスケーラブルなものにする。クラウドネイティブ・アプローチは、ワークロード全体に影響を与えることなくコンポーネントを更新・交換するための効率的なプロセスを提供する点で優れている。
いったんポータブルなアーキテクチャを手に入れたら、管理の観点からは、どのようにそれを維持するのでしょうか?自動化は、アプリケーションのデプロイと管理を単純化し、合理化する。継続的インテグレーション/継続的デプロイメント(CI/CD)パイプラインとインフラ-as-code (IaC)ツールを使用する。
デプロイメントへの宣言的アプローチにより、アプリケーション、ソフトウェア、システム構成、そして開発環境、ステージング環境、本番環境で実行されるすべてのものなど、ワークロードのあらゆる部分を成文化できる。その結果、新しいクラウドでのスピンアップ、フェイルオーバー、別のクラウドプロバイダーへのバーストなどが迅速に行える。バージョン管理された完全にコード化された環境では、すべてのセットアップ方法が正確に文書化され、すべての変更とそれに変更を加えたすべての人の透過的な履歴が残ります。
そしてもちろん、セキュリティのことも忘れてはならない。このポータビリティへの道筋をたどることで、セキュリティに対するより標準的なアプローチを開発することができ、危険な「セット・アンド・フェザー・イット(セットすれば忘れる)」の考え方を排除することができる。私はこのようなケースをよく見てきた。仮想プライベート・クラウド(VPC)にワークロードをデプロイし、それが安全だと思い込んでいる。
同じ「Everything-as-Code(コードとしてのすべて)」アプローチの中で、ポータブルで標準化されたアーキテクチャを実装する。フィードバックループや脆弱性テストなどを自動化するDevSecOpsプラクティスに加えて、アクセス制御ポリシーや強化された構成テンプレートについても考えてみよう。このようなセキュリティへのアプローチは、特に、アプリケーションをピックアップして、どのクラウド・プロバイダーにもドロップできる場合、非常に強力なものになる。ワークロードをピックアップして移動できることは、ディザスタリカバリのための強固な防御戦略となる。
ポータブル・アーキテクチャの利点
ポータブルなクラウドアーキテクチャは、柔軟性、コストの最適化、弾力性、拡張性、導入手法の改善を実現します。ニーズに最適なクラウド・ソリューションを選択し、ベンダーのロックインを回避し、要件や市場環境の変化に迅速に対応することができます。また、以下のことも可能です:
- 可用性の向上:ポータブルなアーキテクチャにより、アプリケーションを複数のクラウドプラットフォームに容易に展開できるため、プラットフォーム固有の問題によるダウンタイムのリスクを低減できる。
- 俊敏性の向上: クラウドネイティブアーキテクチャにより、開発者は新機能を迅速に反復、展開できるため、市場投入までの時間を短縮し、競争力を高めることができる。
- セキュリティの向上:ポータブル・アーキテクチャは、暗号化やID管理などのセキュリティ機能を、プラットフォームの機能に依存するのではなく、アーキテクチャに統合することで、アプリケーションやインフラ コンポーネントをより一貫したセキュリティで保護することを可能にする。
- 回復力の向上:ポータブルなアーキテクチャにより、アプリケーションはハードウェアやソフトウェアの障害にも、中断やデータ損失なしに耐えることができる。
- より容易な管理: ポータブルなアーキテクチャにより、複数のクラウドプラットフォームで動作する監視、自動化、オーケストレーションのためのツールを使用して、アプリケーションをより効率的に管理できる。
- イノベーションの拡大:ポータブル・アーキテクチャは、人工知能 や機械学習などの新しいテクノロジーを利用して、革新的な新しいアプリケーションやサービスを生み出すことを可能にする。
コメント