テクノロジーの発展に伴い、クラウド ホスティングの時代は徐々にクラウド ネイティブへと進化してきました。クラウドネイティブとは、マイクロサービスやDevOpsのアーキテクチャ概念と、クラウドが提供するコンテナやサーバーレスをより適切に組み合わせることで、リソースの利用効率を高め、研究開発や運用保守の効率を向上させることです。では、クラウド ネイティブの時代において、マイクロサービスはクラウド ネイティブをどのように補完すべきでしょうか?
マイクロサービスの定義を見てみましょう。マイクロサービスとは、モノリシック アプリケーションを複数のマイクロサービスに分割し、それらが連携して外部サービス サポートを提供することです。マイクロサービスの運用には 3 つの問題があります。 1. マイクロサービスのライフサイクルを管理する方法 2. 異なるテクノロジー スタックのマイクロサービス間の通信を管理する方法。 3. 異なるテクノロジー スタックのマイクロサービス リクエストをどのように処理しますか? マイクロサービスのライフサイクルを管理する方法を見てみましょう。当初、サービスはモノリシックであり、起動時に特定のマシン リソースに直接展開できました。例外が発生すると、マシン上のサービス バージョンは直接オフラインになります。サービスとリソースの関係は比較的単純で、動的な依存関係はありませんでした。サービスをマイクロサービスに分割すると、異なるマイクロサービスが異なるマシンにデプロイされ、最終的にアプリケーション全体が形成されてユーザーに提示されます。このとき、サービスとリソースの関係は複雑になります。アプリケーションが異なるテクノロジー スタックを使用して開発および実装されている場合 (たとえば、一部のマイクロサービスでは C++、一部では Java、一部では PHP、一部では Golang を使用する場合)、各サービスをデプロイするときに、対応するオペレーティング環境をマシンにインストールする必要があり、アプリケーション全体の運用および保守コストが増加します。 しかし、クラウドネイティブの時代では、Docker などのコンテナや Kubernetes などのコンテナ プラットフォーム テクノロジーによって、これらすべてがシンプルになりました。 Docker コンテナ テクノロジーは、標準パッケージングと標準ランタイムを通じてマイクロサービスの展開を標準化します。 Kubernetes テクノロジーにより、標準化されたマイクロサービスをマシン上で簡単に実行できるようになります。運用および保守担当者は、特定のマシンにマイクロサービスを割り当てる必要がなくなります。 Kubernetes の Pod モデルは、単一のコンテナ実行ステータス インターフェースと DNS アドレス サービスを外部に提供します。簡単な二次開発により、各マイクロサービスがどのアドレスで実行されているかを確認できるため、マイクロサービスのライフサイクル全体の管理が簡素化されます。 異なるテクノロジー スタックのマイクロサービス間の通信を管理する方法を見てみましょう。当初、サービスはモノリシックであり、モジュール間の通信は静的コンパイルによって生成されており、比較的単純でした。サービスをマイクロサービスに分割すると、モジュール間の通信が動的に関連付けられ、マイクロサービスが別のマイクロサービスを見つけることが複雑になります。 Java の Spring などの一部のマイクロサービス フレームワークは、開発者の負担を軽減します。 Java サービスを開発する限り、マイクロサービス間の通信のロジックを書き直す必要はありません。 しかし、企業が複数のテクノロジースタックを導入する場合、上位層はJavaで記述され、下位層はGolangで記述されるのが一般的です。異なるマイクロサービス間の通信フレームワークは異なるため、開発者のコストが間違いなく増加します。しかし、クラウドネイティブの時代には、通信ハイジャックを通じてサービス間の通信の監視と管理を向上させる ServiceMesh が存在します。サービスメッシュには、サイドカー コンテナの概念があります。これは、マイクロサービスのビジネスからの通信機能を抽象化し、コンテナに分離してマイクロサービスと並行して実行し、Istio によって提供される管理および制御機能を使用して、マイクロサービスとサイドカー コンテナをメッシュ化されたデータ プレーンに構築し、その上でサービス間の通信を構成、管理、監視します。 さまざまなテクノロジー スタックのマイクロサービス リクエストを処理する方法を見てみましょう。ブラウザやアプリから外部からのリクエストが送られてきたら、アプリケーション層/ネットワーク層の負荷分散によってどのマシンに処理が分散されるかが決まります。モノリシック アプリケーションは全体として大きく、直接配布できるため、比較的簡単です。マイクロサービスでは、どのサービスとマシンに提供するかを決定するために複雑な論理的判断が必要です。マルチテクノロジー スタック開発の場合、各マイクロサービス フレームワークでリクエスト ロジックを記述する必要があります。しかし、クラウドネイティブの時代には、サーバーレスという概念があります。リクエストタイプ、リクエスト管理、リクエスト処理のロジックを抽出し、標準化できます。ビジネス層では、フロントエンドは関数を呼び出すだけでよく、その後のリクエスト処理や配信を管理する必要がなくなります。 マイクロサービスの出現は確かにテクノロジーの進化を大きく前進させましたが、マイクロサービスは万能ではありません。それを使用する場合、その複雑さによってもたらされるコストを必然的に負担しなければなりません。しかし、マイクロサービスは確かに良い薬です。クラウドネイティブテクノロジーの出現により、この優れた薬がもたらす副作用の多くを排除することができます。クラウド ネイティブは、企業がマイクロサービスを実装するための優れたパートナーである必要があります。 |
<<: ファーウェイ:世界中の180万人のクラウドおよびコンピューティング開発者とともに成長し、新たな産業価値を創造
>>: Huawei Cloud はどのようにして 150 万人の開発者を引き付ける最高のアプリケーション開発プラットフォームを構築するのでしょうか?
知乎はFラウンドに到達した今、商業化は避けられないが、コンテンツの質を担保しながらいかに収益を上げる...
最近、ウェブマスターフォーラムでも、ウェブマスターQQグループでも、Baiduランキングが一昨日はホ...
数日前、同僚とグループチャットで読書について話していました。今まで会話に参加できなかった私も、ようや...
少し前、タオバオ連盟の規則は一連の変更を受けました。関連コンテンツについては、タオバオ連盟の規則変更...
Web 上のナビゲーションは、「私は誰なのか?」「私はどこから来たのか?」「私はどこへ行くのか?」と...
情報技術の急速な発展に伴い、クラウドコンピューティングとエッジコンピューティングは徐々に現代社会の主...
[[408525]]この記事はWeChat公式アカウント「新チタン雲務」から転載し、黄平安が翻訳した...
より多くの女性をコンピューター業界に参入させようという動きは、すでに数十年にわたって続いています。コ...
関連統計によると、現在、タオバオには600万以上の店舗があり、経営不振により毎日1万店舗が閉店してい...
少し前、テンセントがJD.comに投資したというニュースが業界関係者の間で話題になった。しかし、この...
多くの企業がさまざまな理由からワークロードをクラウドに移行しています。パブリック クラウドは、ほとん...
序文最近、分散トランザクションに関するブログ投稿をいくつか読んで、メモを取りました。ハハハ〜データベ...
Namecheap では、9 月 15 日まで特別な新学期プロモーションを実施しています。 (1) ...
有名なトークショー司会者の高小松氏がトークショー「小碩」で優酷から愛奇芸に「移籍」した際、彼はすぐに...
検索エンジン最適化、検索エンジン最適化、略して SEO。検索エンジンの検索原則に従って、ウェブサイト...