マイクロサービスが分散スパゲッティコードになることを回避するにはどうすればよいでしょうか?

マイクロサービスが分散スパゲッティコードになることを回避するにはどうすればよいでしょうか?

[[315389]]

[51CTO.com クイック翻訳] ガートナーのリサーチディレクターであるRaj Bala氏は、サーバーレス製品の最も優れた点の1つは、「これまでにないほどプログラミング言語とフレームワークを組み合わせることができる」ことだと述べています。つまり、たとえば、function-as-a-service (サーバーレス) プラットフォームを使用して、Python ライブラリを呼び出す Java アプリケーションを作成できます。

本当にクールですね。

しかし、これはまた、構造化されていない、保守が難しいコードであるスパゲッティ コードの新しい時代を意味する可能性もあります。モノリシック コードに別れを告げたからといって、「展開、通信、監視などに影響を与える分散システムの問題」に置き換わらないということではありません。従来のソフトウェア開発と同様に、保守が容易なマイクロサービスを開発するには、慎重かつ思慮深いアプローチが必要です。

マイクロサービスへの愛を広める

Bala 氏は、サーバーレスと「単一目的のマイクロサービス」の主な利点の 1 つは、「1 つの言語、1 つのフレームワーク、さらには 1 つのデータベースに縛られることなく、適切なツールを適切な作業に使用できる」ことだと指摘しました。これにより、開発者は、ワークロードが急増し、潜在的に使用率が低下するモノリシック アプリケーションを作成する代わりに、一時的なサーバーレス関数に関連付けられたマイクロサービスを作成できるようになるため、作業が大幅に軽減されます。システムがアイドル状態のときはシャットダウンし、コストはかかりません。誰もが勝者です。

これにより、コードの保守も容易になります。モノリシック アプリケーションでは、すべての依存関係を最新の状態に保つことが難しいため、コードの更新が負担になる可能性があります。 Ophir Gross 氏は次のように指摘しています。「スパゲッティ コードには、使用されているインターフェイスのバージョンを確認し、正しいコードが実行されていることを確認するためのチェックが満載です。このコードは整理されていないことが多く、コードの変更によって開発段階では予測が困難だった領域の機能が影響を受けるため、メンテナンスに多大な労力がかかることがよくあります。」

対照的に、マイクロサービス ベースのアプローチでは、マイクロサービス内のコードはビジネスの 1 つの機能に限定されるため、理解しやすくなります。チームは、好みの実装手法とフレームワークを使用して、互いに独立して作業できます。

ただし、マイクロサービスには独自のリスクがないわけではありません。皮肉なことに、こうしたリスクの 1 つは、開発者が回避するために積極的にマイクロサービスを採用したスパゲッティ コードそのものかもしれません。

分散スパゲッティコード

その他の複雑さ (より複雑なデバッグ、進化する API の課題、サービスで使用される API が最新の状態に保たれていることの確認) とは別に、マイクロサービスに関する 1 つの問題は、開発者がモノリシック アプリケーションを構築するのと同様の方法でマイクロサービスを構築したくなることです。

マイクロサービスは独立している必要があることに気付いていない人が多いです。たとえば、さまざまなサービスが作成されていても、単一のデータベースが共有されていることがよくあります。もう 1 つの問題は、人々がモノリシック アーキテクチャで慣れ親しんだ方法でプログラミングしているため、サービス間の同期呼び出しのチェーン (ネットワーク経由) が長くなりすぎることです。また、さまざまなサービスが互いに競合することによって生じる可能性のあるスパゲッティ構造にも注意が払われていません。

マイクロサービスを設計する上で重要なのは、「マイクロサービスの境界と接続方法を正しく定義することです。疎結合のサービスでは、関連する動作が 1 か所にまとめられ、連携するシステムの残りの部分についてはほとんど認識されません。」疎結合が重要です。限られた数のエンドポイントと非同期に通信し、共有データベースを持たないサービスを希望します。

もちろん、これによって「スパゲッティ コード 2.0」の可能性が排除されるわけではありません。そのパワーと利便性により、開発者はサーバーレス関数に対して多種多様な API 呼び出しを作成することになり、状況がすぐに混乱してしまう可能性があります。ただし、サービスが疎結合されていることを確認すると役立ちます。

原題: マイクロサービスを分散スパゲッティコードに変えるのを避ける方法、著者: Matt Asay

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください。

<<:  全国の中小企業の業務再開に無料のクラウドリソースを提供するUCloudの防疫支援プランがアップグレードされました

>>:  ビジネスに最適なクラウド プラットフォームを選択する方法

推薦する

「数秒で理解できます!」 JVM 仮想マシンの詳細なグラフィックとテキストの説明!全然難しくない

[[335556]]序文: Javaでオブジェクトや変数などが格納されるメモリ領域を理解することは...

SEOの詳細が成功と失敗を左右する

SEOの詳細が成功か失敗かを決め、新たな競争力で勝利ウェブサイトのSEO検索エンジン最適化とは、イン...

淘宝、抖音、快手の一流アンカーが「撤退」

インターネット界のゴッドファーザー、ケビン・ケリーはかつてこう言った。「注目が集まるところに、お金は...

プロメテウス複数ビジネス割引/VPS/クラウドホスティングなど/20%オフ

Prometeus は新しいプロモーションを開始しました。今回のプロモーションには、仮想ホストの商用...

デジタルオーシャンはどうですか? [年] Digitaloceanのインドデータセンターの簡単なレビュー

デジタルオーシャンはどうですか?デジタルオーシャンインドはどうですか?現在の国内のインターネットアク...

クラウドコンピューティングの人工知能の開発は遅いが、注目を集めている。

IT プロフェッショナルが AI の適用を実験する際、その多くはパブリック クラウドでそれを実行する...

Taobao Live を始めるにはどうすればよいですか? また、Taobao Live を開設する必要がある理由は何ですか?

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス近年、ライブストリーミン...

インベントリ: 2022 年のエッジ コンピューティング インフラストラクチャ管理ソリューション プロバイダーのトップ 10

エッジ コンピューティングは、エンタープライズ アプリケーションをデータ ソースに近づける分散コンピ...

Xiong Zhanghao 最適化: エラーが発生しました。どうすればいいですか?

月収10万元の起業の夢を実現するミニプログラム起業支援プラン熊張豪の発売以来、百度は検索最適化に基づ...

2010 年の SEO に関する 8 つの予測を明らかにする

昨日、seomoz.org の randfish が、2010 年の SEO に関する 8 つの予測...

習得すべきウェブサイト最適化の4つの詳細

ウェブサイトの最適化には多くの詳細事項が関係していることは誰もが知っています。これらの細かい詳細は、...

コンテンツ マーケティングの 4 つの波: テキスト、画像、パーソナライゼーション、次のステップはマーケティング アプリケーションでしょうか?

コンテンツ マーケティングは、最初はシンプルなテキスト、その後は画像、そしてパーソナライズされたカス...

エッジコンピューティングは多様なアプリケーションに拡張されます

エッジ コンピューティングにより、分散コンピューティング インフラストラクチャを通じて、コンピューテ...

ジャック・マー、ポニー・マー、ロビン・リー、ティム・クックが烏鎮に集まった。彼らは何て言ったの?

今年も「烏鎮」の季節がやってきました。 12月3日、第4回世界インターネット会議が正式に開幕しました...

ウェブサイト最適化のボトルネックを打破する方法を教えます

多くのウェブマスターは、ウェブサイトを一定期間運営した後に最適化のボトルネックに遭遇します。最適化の...