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

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

[[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の防疫支援プランがアップグレードされました

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

推薦する

hostgator - 全製品/共有ホスティング/VPS/専用サーバーが最大75%オフ

HostGator(市場で最も有名な仮想ホスティング ブランドの 1 つで、かつては最高の外国貿易ウ...

MetWeb: ウェブサイトをオープンソース化するとはどういう意味ですか?

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

多面的なネットワークマーケティングSKYCC複合マーケティングソフトウェアは、通常のソフトウェアよりも強力です

今日のオンライン マーケティング プロモーションには、手作業で時間がかかり、労力がかかる方法が数多く...

2020 年に企業はどのクラウド コンピューティング戦略を選択すべきでしょうか?

多くの組織は、クラウド コンピューティングがビジネスの将来において重要な役割を果たすと確信しています...

素晴らしいアイデア:これは、降格されたウェブサイトを復元する方法です

SEO 業界が混乱していた 2012 年には、次のようなヘルプ リクエストが多かれ少なかれ見られまし...

Google SEO を行うには、コンテンツを作成する必要があります。では、記事の SEO 価値をどのように判断するのでしょうか?

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスGoogle SEO に...

並行輸入粉乳調査:オンラインショッピング業者は巨額の利益と安全リスクの間で微妙なバランスを保っている

「並行輸入」粉ミルクの調査:巨額の利益と安全リスクの狭間で張旭が北京から報告ニュージーランドが粉ミル...

創造性の出発点と核心は問題を解決することである

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

中国トップ18インターネット企業の広告収入ランキング(通年)

2018年の中国インターネット企業の広告収入状況は?この問題は多くのマーケティング担当者にとって緊急...

SEO は限界に近づいている

長い間、私はさまざまな SEO グループに参加したり、経験豊富な SEO 担当者とコミュニケーション...

シングルページの Web サイトでも、フルページのレイアウトとアニメーションを使用できますか?

シングルページ ウェブサイトについて話すとき、ほとんどのウェブマスターは画像とアニメーションを思い浮...

なぜクラウドネイティブなのか?スピード、安定性、フルサイクル開発

マイクロサービス、クラウド コンピューティング、DevOps などの「クラウド ネイティブ」テクノロ...

#blackfriday# MediaTemple - 40% オフ/デラックス パッケージ/ハイエンド ホスティング プロバイダー

高級で上品、高貴なホストである mediatemple が、ブラック フライデーにサプライズをくれま...

SaaS とオンプレミスの IT 管理プラットフォームの導入: 長所と短所

多くのベンダーが IT 管理用の SaaS ツールを提供しています。単一のプラットフォームを維持し、...