ビジネスニーズを中心としたクラウドネイティブアーキテクチャシステムの構築

ビジネスニーズを中心としたクラウドネイティブアーキテクチャシステムの構築

クラウドネイティブの概念は中国でますます言及されるようになっていますが、ほとんどの人のクラウドネイティブに対する理解はコンテナ、マイクロサービス、DevOps などに限定されており、コンテナ、マイクロサービス、DevOps をクラウドネイティブと同一視していますが、これは明らかに間違っています。

CNCF は独自の観点からクラウド ネイティブ テクノロジーを次のように定義しています。クラウド ネイティブ テクノロジーにより、企業はパブリック クラウド、プライベート クラウド、ハイブリッド クラウド環境などの最新の動的環境でスケーラブルなアプリケーションを構築および実行できるようになります。コンテナ、サービス メッシュ、マイクロサービス、不変のインフラストラクチャ、宣言型 API などが含まれます。これらのテクノロジーを使用すると、システムの疎結合、弾力性、管理性、および観測可能性を実現できます。また、自動化と組み合わせることで、最小限の労力で、影響の大きい機能に頻繁かつ予測可能な変更を加えることも可能になります。

クラウド コンピューティングは、俊敏性、セルフサービス性、不変性を備えたインフラストラクチャを提供するため、ビジネス アプリケーションをクラウドに移行することが一般的な考え方となっています。ただし、クラウドネイティブ アーキテクチャを再構築せずにクラウドに移行するのは危険な場合があります。従来のビジネス アプリケーション アーキテクチャは、クラウド上で弾力的に拡張したり、俊敏に対応したりすることができず、クラウド コンピューティングの特性を効果的に活用して企業を強化することができません。

そのため、従来のアーキテクチャの業務システムを分散型マイクロサービスに分割・再構築し、DevOpsの考え方を用いてコンテナクラウドプラットフォームなどに展開・運用し、CI、CDなどを通じてデリバリー効率を継続的に向上させることが必要になる場合があります。アプリケーションは最初からクラウドの特性を備えて作成され、クラウドのために生まれます。クラウド コンピューティングの分散型および弾力的なスケーラビリティ機能を十分に活用するように設計されているため、クラウド上での展開および運用の要件を備えているか、またはそれに適応しており、クラウドのアイデア、方法、およびツールを使用してクラウド内に直接作成されており、自然にクラウドの特性を備えています。したがって、クラウド ネイティブは、クラウド ネイティブのテクノロジと方法論を使用してクラウド アプリケーションを構築、実行、管理し、クラウドに基づいてクラウド アプリケーションを構築および実行するための方法論と技術システムと考えることができます。

Matt Stine 氏は 2015 年の著書『Migration to Cloud Native Architecture』で、クラウド ネイティブ アーキテクチャの特徴として、12 要素アプリケーション、マイクロサービス、セルフサービス アジャイル インフラストラクチャ、API ベースのコラボレーション、脆弱性に対する回復力を定義しました。クラウドネイティブシステムの内容については明確な定義はありませんが、一般的には、クラウドネイティブテクノロジーのシステムと方法論には、マイクロサービス、コンテナ、DevOps、継続的デリバリー、ServiceMesh、不変インフラストラクチャ、宣言型API、カオスエンジニアリング、セキュリティ、モバイルベースの顧客体験などが含まれると考えられています。

図1 クラウドネイティブテクノロジーシステム

アプリケーションの 12 要素は、クラウド ネイティブ アプリケーションの設計に関する基本的なガイダンスを提供します。マイクロサービス アーキテクチャは、クラウド ネイティブ アプリケーション アーキテクチャ設計、分散展開、アジャイル変更などのソリューションを提供します。コンテナは、クラウド ネイティブ アプリケーションに弾力的なスケーリング、一貫した環境などの機能を提供し、マイクロサービスと組み合わせることで、アプリケーションのオンデマンド拡張をサポートします。セルフサービス アジャイル インフラストラクチャは、クラウド ネイティブ アプリケーションの継続的な配信のためのインフラストラクチャ リソースを提供し、コンテナー化された PaaS プラットフォームと連携して、クラウド ネイティブ アプリケーションの自動エラスティック拡張、視覚的な監視、自動インテリジェント運用と保守をサポートできるため、ユーザーはインフラストラクチャ リソース、インフラストラクチャ リソースの運用と保守、またはアプリケーションの展開場所に注意を払う必要がありません。サービス メッシュはサービスの管理とガバナンスをサポートします。カオスエンジニアリングはシステムの回復力と安定性を継続的に強化します。 DevOps は、組織間のコラボレーションを最適化し、お互いの懸念に対処し、CICD の実装と継続的な配信をガイドし、アプリケーションの完全なライフサイクル管理を実現します。宣言型 API により、標準化されたサービスリリースとサービス間の連携が実現します。セキュリティには、DevOps セキュリティ、DevSecOps、コンテナ イメージ セキュリティ、ネットワーク セキュリティ、アプリケーション セキュリティ、A PI セキュリティ、認証と承認、アクセス制御など、クラウド ネイティブ アーキテクチャ システムのすべての側面が含まれます。これらすべてのテクノロジー、方法、原則は、いつでもどこでも顧客のニーズを満たし、顧客の操作を簡素化し、顧客体験を向上させます。

クラウド ネイティブ アーキテクチャ システムの研究と理解に基づくと、比較的完全なクラウド ネイティブ アーキテクチャ システムには次のものが含まれると考えます。

図2 クラウドネイティブアーキテクチャシステム

モバイル通信技術の発展とモバイルデバイスの普及により、人々の仕事、生活、社会交流、投資などの方法は大きく変化しました。今日では、人々は基本的に携帯電話を通じていつでもどこでも自分のニーズを満たすことができます。ユーザーは、さまざまな端末、さまざまなオペレーティング システム、さまざまなバージョン、さまざまな場所から、さまざまな時間 (24 時間 7 日間) に業界アプリケーション システムにアクセスする場合があります。これには、APP クライアントが操作しやすくインタラクティブであるだけでなく、バ​​ックエンドのサービスとシステムが俊敏に応答できることも必要です。モバイル アプリのエクスペリエンスの品質は、ユーザーがアプリを使い続けるかどうかを直接決定する可能性があります。モバイル インターネットの時代では、モバイル エクスペリエンスに対するユーザーの要求がアプリケーション設計の重要な推進要因となります。

クラウド アプリケーションの 12 の要素は、クラウド アプリケーション (独立して展開可能なユニット) の設計原則と方法論のセットであるクラウド アプリケーション アーキタイプを説明します。宣言型の構成、水平方向に拡張するステートレス/シェアードナッシング プロセス、およびデプロイメント環境との全体的な疎結合を強調することで、速度、セキュリティ、およびスケーラビリティに重点を置いています。 Kevin Hoffman 氏は、「Beyond the 12-factor App」でクラウド ネイティブ アプリケーションの 12 の要素を再説明および拡張し、API 優先度、テレメトリ、認証、承認という 3 つの要素を追加しました。新たに追加された要素は、API コラボレーション、視覚的な監視、セキュリティなどのコンテンツを組み合わせたもので、クラウド ネイティブ アプリケーションの設計をより包括的にガイドします。

マイクロサービス アーキテクチャは、モノリシック アプリケーションを、単一の機能を持つ複数の独立してデプロイ可能なサービス (つまりマイクロサービス) に分割する分散アプリケーション アーキテクチャです。通常、マイクロサービスはビジネス機能、つまりビジネス価値を提供する最小の「アトミック」サービス単位を表します。密に結合されたモノリシックシステムでは変更や更新が困難であるという問題を解決し、軽量で俊敏な変更を可能にします。

図3: モノリシックアーキテクチャがマイクロサービスアーキテクチャに進化

ミドルプラットフォームの本質も一種の建築手法であり、その核心は再利用を実現することです。ミドルプラットフォームは常に一種のエンタープライズアーキテクチャと見なされており、再利用の粒度に関する明確な議論がないため、その実装に関する明確な方法や標準は存在しません。アプリケーションアーキテクチャの観点から見ると、ミドルプラットフォームとアプリケーションのフロントエンド、ミドルエンド、バックエンドの階層分割には本質的な違いはなく、新しいアーキテクチャアプローチとは言えません。

マイクロサービス分解アーキテクチャはシステムを水平に分解し、中間層の階層化アーキテクチャはシステムを垂直に階層化することで、さまざまなレベルでのマイクロサービスの再利用と共有を実現します。単一のアプリケーション システムからすべてのエンタープライズ システムまで拡張し、最終的には階層化されたエンタープライズ レベルのシステムに統合する、これが著者が常に言及してきた「システム統合」の考え方です。

コンテナは、プロセス レベルでの分離を提供し、単一のアプリケーションに対して一貫した動作環境を提供する、カーネル軽量のオペレーティング システム層仮想化テクノロジです。各アプリケーションとその環境は、分離された環境で実行できます。コンテナ機能はマイクロサービス アーキテクチャと非常に互換性があるため、マイクロサービスは通常、アジャイル デプロイメント、自動化されたエラスティック スケーリング、環境の一貫性などの機能を実現するためにコンテナにデプロイされます。しかし、コンテナはまだ比較的低レベルの運用単位であり、多数のコンテナの管理とガバナンスは難しい問題です。 Kubernetes (K8s とも呼ばれます) は、コンテナ アプリケーションの展開、スケーリング、管理を自動化するためのオープン ソースのコンテナ管理およびスケジューリング フレームワークです。アプリケーションを構成するコンテナを論理ユニットにグループ化し、管理と検出を容易にします。

コンテナ クラウド プラットフォームは、コンテナとコンテナ管理およびスケジューリング テクノロジを使用して構築されたアプリケーション管理、展開、および運用プラットフォームであり、さまざまなテナントのコンテナ アプリケーション管理およびガバナンス機能をサポートします。コンテナ クラウドに基づいて、ログ、監視、認証、権限、構成、ミドルウェア、ツール プラットフォーム、アルゴリズムが均一に展開および保守され、エンタープライズ レベルのプラットフォーム サービス機能が提供され、軽量の PaaS プラットフォームが構築され、自動化とインテリジェンスが組み合わされて、セルフサービス型のアジャイル レスポンス インフラストラクチャ機能を実現します。

図4 コンテナクラウドアーキテクチャ

クラウド ネイティブの中核はクラウド ネイティブ アプリケーションです。セルフサービス型のアジャイル レスポンス インフラストラクチャは、クラウド ネイティブ アプリケーションの自動化された環境の準備、構築、展開、監視、フィードバック、ヘルス チェック、障害の自己修復、リソースのスケジューリング、エラスティック スケーリング、動的ルーティング、負荷分散をサポートし、自律的なサービス プラットフォーム上でのクラウド ネイティブ アプリケーションの展開と運用を可能にし、構成管理を自動化し、インフラストラクチャ リソースを透過的にすることで、アプリケーションの実行場所を気にする必要がなくなります。最終的には IaaS と PaaS を統合して、よりスムーズで一貫性のあるエクスペリエンスを提供します。企業はインフラストラクチャ リソース管理(マルチクラウド管理プラットフォーム)を通じて異種リソースを管理し、リソース サービスを統合できます。継続的な配信を実現し、可用性、スケーラビリティ、管理性を向上させます。

DevOps は、開発チームと運用チーム間の懸念事項を調整および合理化し、コラボレーションの効率を向上させることを目的とした概念と方法論です。 DevOps は、開発と運用の統合を実現し、自動化、インテリジェンス、その他のツールを通じてアプリケーションのライフサイクル全体の管理と組織間の効率的なコラボレーションを実現することを目的としています。 DevOps の方法論と概念に基づいて構築されたプラットフォームは DevOps プラットフォームとも呼ばれ、通常は自動化されたパイプラインを使用して継続的インテグレーション (CI) や継続的デリバリー (CD) などの機能を実現します。 Google SRE は DevOps の特定のプラクティスです。システム エンジニアリングの考え方を使用して、ソフトウェア エンジニアリングの問題を解決し、運用と保守を自動化してインテリジェント化します。運用および保守担当者は、運用および保守ツールの開発に 50% 以上の時間を費やす必要があります。これにより、R&D 担当者はビジネス アプリケーションの開発に集中できるようになります。 Google SRE はエラー バジェットを使用して、R&D と運用の間の懸念事項を調整します。エラー バジェットを使い果たすと、運用部門はビジネス アプリケーションのリリースと展開を拒否するため、R&D 部門はビジネス アプリケーションの安定性と堅牢性に重点を置くことになります。

サービス メッシュは、マイクロサービスの東西トラフィックを管理および制御します。これは、API ゲートウェイによるサービスの North-South トラフィックの管理とガバナンスとは異なります。これは通常、コンテナ環境でトラフィック管理、観測性、およびセキュリティ機能をサイドカー方式でプロキシするために使用されます。サービス グリッドの全体的なアーキテクチャは、トラフィック プロキシ コンポーネントと管理コンポーネントで構成されます。プロキシ コンポーネントはデータ プレーンと呼ばれ、受信および送信データ パケット、転送、ルーティング、ヘルス チェック、負荷分散、認証、承認を直接処理し、監視データを生成します。管理コンポーネントはコントロール プレーンと呼ばれ、エージェントとの通信、ポリシーと構成の発行を担当します。私はサービス メッシュの開発をフォローしていますが、まだ採用していません。その理由は、一方では十分に成熟していないと感じ、他方では階層化されたアプローチが遅延を引き起こし、私が提唱する複雑な問題を単純な方法で解決するという考え方に反しているからです。

アンチフラジャイルは、ナシム・タレブが著書『アンチフラジャイル』で提唱したものです。アーキテクチャの欠陥を特定して排除し、アプリケーション アーキテクチャの弱点を見つけて修復を強制するために、障害がランダムに運用環境に注入されます。アーキテクチャは時間の経過とともに強化され、安定性、可用性、耐久性などが向上します。国内ではカオスエンジニアリングとも呼ばれています。中国情報通信科学院は2020年にカオスエンジニアリング技術の研究を開始し、クラウドネイティブシステムの回復力のあるアーキテクチャを検証するためにカオスエンジニアリング手法の適用を提案し、カオスエンジニアリングプロジェクトチームを設立しました。 2021年には「カオスエンジニアリングテストプラットフォーム機能」の標準概要が発表され、業界標準の「カオスエンジニアリングプラットフォーム機能要件」が​​発表されました。

クラウド ネイティブ アプリケーション間のやり取りは、公開されバージョン管理された API を通じて実現され、通常は HTTP REST スタイルを使用して JSON データをシリアル化します。再利用可能なインターフェース レイヤーは API を通じて提供できます。同時に、API はビジネス ロジックの内部詳細をカプセル化し、消費者が API サービスの内部データに直接アクセスできないため、データのセキュリティもある程度強化されます。

セキュリティはあらゆるシステムの不可欠な部分です。リスクはどこにでもあります。クラウドネイティブアーキテクチャシステムには多くのコンテンツがあります。各コンポーネントおよび各サービスは、リスクやセキュリティ上の問題をもたらす可能性があります(そのため、「レイヤー削減」方式によりコンポーネントおよびサービスを最小化し、「必要でない限り採用しない原則」を厳守する必要があります)。クラウドネイティブ アプリケーションのライフサイクルの観点から見ると、クラウドネイティブ セキュリティは、「設計時のセキュリティ」と「実行時のセキュリティ」の 2 つの部分に簡単に分けることができます。設計時には、コード分析、イメージの脆弱性スキャンなどの静的検出と分析が主に使用されます。実行時には、侵入検知、ウイルス検知、ネットワークマイクロ分離などの動的かつインタラクティブな検出、保護、分析が主に使用されます。クラウド ネイティブ セキュリティでは、認証と承認、アクセス制御、暗号化と復号化、コンプライアンス テスト、静的セキュリティ テスト、動的セキュリティ テスト、ネットワーク分離などの従来のセキュリティ技術と方法を利用できます。利用可能なセキュリティ メカニズムを通じてクラウド ネイティブ セキュリティ機能を強化することに重点が置かれています。

私たちは、セキュリティをシフトレフトし、設計期間中にセキュリティリスクを可能な限り排除することを推奨していますが、ランタイムセキュリティも同様に重要です。セキュリティの脆弱性はいつでも発生する可能性があります。マイクロサービスとコンテナを使用するクラウドネイティブ アーキテクチャでは、ランタイムにさらに多くのリスク ポイントがもたらされ、セキュリティの防止と制御がさらに困難になります。セキュリティ管理機能を強化するには、システムの可視性、エラー分離などの機能を継続的に改善する必要があります。クラウド ネイティブ セキュリティは、従来のネットワーク セキュリティのセキュリティ ドメイン モデルとは異なります。動的な自動化とインテリジェントな管理および制御機能が必要です。将来的には、クラウド ネイティブは、ソフトウェア定義の境界、強化された ID 認証、マイクロ分離などのテクノロジーを通じて、動的なネットワーク セキュリティの管理と制御を徐々に実現する可能性があります。

クラウドネイティブ アーキテクチャ システムは非常に大きく、あらゆる部分で実行すべき作業がたくさんあります。しかし、クラウドネイティブのアーキテクチャとシステム内容を包括的に理解し、それらの間のつながりと制限を認識して初めて、顧客のニーズを満たし、いつでもどこでもモバイル サービスをサポートし、弾力的な拡張、俊敏な対応、セキュリティと安定性を可能にするクラウド コンピューティングの特性を備えたクラウドネイティブ アプリケーションを真に構築できるようになります。

<<:  Kubernetes ネットワークのビジュアル ガイド

>>:  クラウド移行はスキルアップの機会を通じて安心感を与える

推薦する

SEOの将来の方向性を予測することは、私たち全員にとって重要なことです

現在、百度は再びアルゴリズム調整の特別な時期を迎えています。SEOをうまく行うには、またウェブサイト...

ウェブサイトのおすすめ: KitApps「ワンストップ」モバイルアプリ DIY サービス

KitApps: ワンストップモバイルアプリDIYサービス新浪テクノロジー ヤン・フェイモバイル イ...

孫静偉:電子書籍とオンラインプロモーションの統合はまさに一石二鳥

この記事を書いているとき、タイトルについてずっと悩んでいました。一石二鳥のタイトルにすべきか、オンラ...

ライブストリーミング販売で損失が出たのはなぜですか?

年初から、セレブビジネスやライブ配信の人気が続いています。ライブ電子商取引の取引規模と参加者数は過去...

raksmart: ロサンゼルス本土最適化ラインの「クラウドサーバー」の簡単な評価、中国電信は双方向cn2で、コストパフォーマンスが高い

Raksmart はクラウド サーバー事業に注力しており、従来の VPS 事業を放棄する可能性があり...

お知らせ: budgetvm アムステルダム データセンターの VPS が利用可能になりました

budgetvm VPS の販売業者についてはこれ以上紹介しません。興味があれば、以前書いた bud...

Weiboマーケティング:ブランドWeibo運用の5つの現状

現状調査によると、ブランドWeiboの現在の運営状況は、「ブラインド型」、「伝統型」、「コンテンツ型...

ZXPlay - 7ドル/2gメモリ/800gハードディスク/1Gポート/無制限トラフィック/ドイツ

ZXPlay【 VAT Number : 206 5572 17】からすごいものが発売されました。今...

NFS-Ganesha ソースコード分析

1. NFSv4の概要NFS プロトコル (NFSv2) は、もともと 1984 年に Sun Mi...

ウェブサイトの最適化に関して私たちが知らない詳細についてお話しします

私たちの考えでは、ウェブサイトの最適化とは、その名前が示すように、SEOテクノロジーを使用してウェブ...

friendhosting: 2018年夏、全10室のVPSルームが45%割引、トラフィック無制限、半年あたり8ユーロから

今から7月30日まで、friendhostingは毎年恒例の夏のVPSクレイジープロモーションを開始...

Microsoft プラットフォームを使用してクラウドベースのインテリジェント サプライ チェーンを構築し、「在庫切れ」のジレンマを回避します。

世界中のサプライチェーンはここ数ヶ月、かなりの圧力にさらされており、それがヘンドリック・ベンター氏を...

フォーラムマーケティングの特徴は何ですか?

フォーラム マーケティングは、実際にはフォーラム プロモーションのアップグレードです。フォーラム マ...

第三都市における求人サイトのプロモーション戦略

第三級都市で人材募集サイトを宣伝するにはどうすればよいでしょうか。まず、人材ネットワークの宣伝は、オ...

ウェブサイトをアップグレードして改訂する予定です。大量のデッドリンクを回避するために SEO テクノロジーをどのように使用すればよいでしょうか?

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますシンプルな...