クラウドポータビリティに関する3つの考慮事項:2番目はマイクロサービスアーキテクチャ

クラウドポータビリティに関する3つの考慮事項:2番目はマイクロサービスアーキテクチャ

このシリーズの記事では、アーキテクチャや設計、クラウドのポータビリティに関して考慮すべき具体的な詳細、クラウド時代の技術ロックインを最小限に抑える方法、クラウドの柔軟性を最大限に発揮する方法など、さまざまな側面を検討します。

Akamai クラウドコンピューティングの詳細を読む

海外のクラウドサービスならア・カマイクラウドコンピューティング

次の記事では、クラウド ネイティブとコンテナ テクノロジーについて簡単に説明します。こちらをクリックして前回の記事を読み、クラウド ポータビリティにおけるクラウド ネイティブおよびコンテナー テクノロジの考慮事項について学んでください。

マイクロサービスはスケーラブルで単一の機能に重点を置き、各自己完結型のモジュール ユニットが大規模なシステム内の特定の機能の処理を担当する必要があり、大規模なアプリケーションは多くの場合、このようなモジュール コンポーネントまたはサービス (コンテナーやサーバーレス コンピューティングなど) から構築できます。

マイクロサービスは、さまざまな部門、予算、要件で構成されるビジネスと考えることができます。毎年、企業のニーズが変化するにつれて、これらの要件も変化します。時間の経過とともに、アプリケーションは変化する要件に直面し、その一部によってさらなる要求が生じたり、より多くの注意が必要になったりする可能性があります。さらに、アプリケーションのさまざまな側面では、さまざまな程度の拡張やスケーリングが必要になる場合があります。マイクロサービスは、アプリケーションの他の側面に影響を与えることなく、アプリケーションの特定の側面を独立した方法で拡張または拡大するのに役立ちます。

プログラミングの分野では、いわゆる単一責任の原則を誰もが覚えていると思います。この点ではマイクロサービスも同様です。マイクロサービスは、1 つのことを実行し、それを適切に実行する責任があります。もちろん、マイクロサービスを使用することで、回復力とフォールト トレランスの面で固有の利点も得られます。マイクロサービス アーキテクチャは、障害を単一のサービスに限定することで、障害がシステム全体に影響するのを防ぐことを目的としています。特定の障害が発生した場合、その場所がわかり、他のものに影響を与えることなく修正することができます。

発見可能な問題にも注意してください HashiCorpConsulなどのサービス メッシュ ソリューションを使用することで、新しいサービスがオンラインになったときにそれを把握し、サービス カタログとして機能する集中型システムを構築して、それらのサービスが何を実行し、どのように相互に通信するかを定義できるようになります。

マイクロサービスを使用する理由は何ですか?

  • 市場投入までの時間の短縮:マイクロサービスにより、複数のコンポーネントを並行して開発および展開できるため、全体的な開発プロセスが高速化され、新機能の提供に必要な時間が短縮されます。
  • スケーラビリティの向上:マイクロサービスは独立して拡張できるため、企業はリソースをより効率的に割り当て、さまざまなワークロードやトラフィック パターンをより効果的に処理できます。
  • 回復力の向上:マイクロサービスの分散化により、システム全体の障害のリスクが軽減され、継続的なサービス可用性とシステム全体の信頼性が向上します。
  • 柔軟性と適応性:マイクロサービスにより、企業はさまざまなコンポーネントにさまざまなテクノロジーとフレームワークを使用できるため、変化する要件に適応したり、新しいテクノロジーを組み込んだりすることが容易になります。
  • メンテナンスと更新の簡素化:マイクロサービスのモジュール設計により、システム全体に影響を与えることなく各コンポーネントを個別にアップグレードまたは交換できるため、システムのメンテナンスと更新が簡素化されます。

マイクロサービスのベストプラクティス

マイクロサービスを小規模に保ち、単一のビジネス機能に重点を置くことが重要です。この方法により、追加機能を簡単に追加でき、無秩序な拡張を回避できます。ただし、各マイクロサービスの理想的なサイズに関する明確な標準はありません。具体的な用途と実際のニーズに基づいて決定する必要があります。

失敗を想定した設計も必要です。複数のサービスとマイクロサービスは設計上、本質的にフォールト トレラントですが、再試行、サーキット ブレーカー、バルクヘッドなどの追加設計によって、さらに耐障害性を高めることができます。船に隔壁がある理由を考えてみましょう。これらの隔壁は船の構造的完全性を保ち、漏れが生じた場合、隔壁が閉じて船が沈むのを防ぎます。多くのイベント駆動型アーキテクチャでは、いわゆるデッドレターキューが使用されます。メッセージを配信できない場合は、特別なキューに配置され、キュー内のメッセージをチェックして失敗の原因を特定できます。

マイクロサービスは、ドメイン駆動設計原則に基づいて設計する必要があります。つまり、ビジネス機能に基づいてサービスをモデル化し、共通言語を使用してサービスがビジネス要件を満たすようにします。ドメイン駆動設計は、ビジネスを深く理解した上でソフトウェア システムを構築することに重点を置いており、その原則は、ソフトウェアがドメインに適合し、ビジネスに価値をもたらすように設計プロセスを導くのに役立ちます。これらの原則を組み合わせることで、ビジネス ドメインに対する深い理解が促進され、開発作業がビジネス ニーズや変化する要件と密接に連携されるようになります。

APIファーストのアプローチを採用して、マイクロサービスとサードパーティのサブシステム間の通信を容易にする中央接続ポイントを提供するAPIゲートウェイを設計および実装しますAPIゲートウェイは、ルーティングのほとんどに加え、認証、承認、レート制限なども処理します。API設計パターンは、マイクロサービスのモジュール性と再利用性にとって非常に重要です。

さらに、マイクロサービスには次のようなベスト プラクティスがあります。

  • 自動テストとデプロイメント:継続的インテグレーションと継続的デプロイメント ( CI/CD ) パイプラインなどの自動化ツールを使用してマイクロサービスをテストおよびデプロイし、エラーのリスクを軽減し、サービスが迅速かつ一貫した方法でデプロイされるようにします。
  • コンテナを使用する:コンテナは、マイクロサービスをパッケージ化してデプロイするための軽量で移植可能な方法を提供します。コンテナを使用すると、デプロイメント プロセスが簡素化され、アプリケーションのスケーラビリティと移植性が向上します。
  • 監視と観察:マイクロサービスでは、期待どおりに実行されていることを確認し、問題やエラーを検出するために、継続的な監視とログ記録が必要です。ログ アグリゲータとアプリケーション パフォーマンス監視 ( APM ) ツールは、これらすべてを実行するのに役立ちます。トレースを通じて、分散システム内のデータフローをさらに理解することもできます。これら 3 つの機能は、パフォーマンスのエンドツーエンドの可視性を獲得するのに役立ちます。
  • サービスの保護:マイクロサービスは、認証、承認、暗号化などのベスト プラクティスを通じて保護する必要があります。もちろん、コンテナー自体のセキュリティも無視してはなりません。全体的な攻撃対象領域を減らすには、強制ポリシーを通じて、どのマイクロサービスが他のサービスと通信できるかを定義する必要があります。セキュリティはすべての設計作業の一部である必要があり、より安全なアプリケーションを実現し、機密データを適切に保護するために、開発プロセスのすべての段階で徹底的に検討する必要があります。

この記事の内容は大丈夫でしょうか?今すぐLinodeプラットフォームで試してみませか?今すぐ登録すると、 100ドル相当の無料クレジットを獲得できることをお忘れなく。早速、この記事で紹介した機能やサービスを実際に体験してみましょう↓↓↓

海外のクラウドサービスならAkamaiが最適です!

高可用性MySQL/MariaDBリファレンス アーキテクチャと豊富なアプリケーション例について学ぶには、 Akamaiをフォローしてください

<<:  分散相互排除方式は分散技術に不可欠である

>>:  Kubernetesの8つのコアコンポーネントの詳細な説明

推薦する

テンセントから金を奪った金儲けマシンYYはいかにして作られたのか

李雪玲が登場する以前、6年前でさえ、テンセントからインスタントメッセージングのおいしい料理を奪い取ろ...

海賊版WindowsはWindows 10にアップグレードしても海賊版のまま

海外メディアの報道によると、マイクロソフトが世界中の海賊版システムにWindows 10へのアップグ...

Qiniu Cloud Storage 2.0、第2世代のビッグデータストレージは素晴らしい

Qiniu Cloud Storageは、新しいアーキテクチャと消失訂正符号算術冗長技術を備えた第2...

friendhosting: 「sysadmin」フェスティバル、すべての VPS 価格が 55% 引き下げられ、9 つのデータ センター、無制限のトラフィック、半年あたり 8 ユーロから

毎年 7 月の最終金曜日は世界的に「システム管理者の日」であり、システム管理者の努力に感謝する日と言...

ウェブサイトのページと機能の主な目的:ユーザーの心理的ニーズを調整する(パート 2)

前回のウェブサイトのウェブページと機能開発に関する記事では、主に業界の共通コンテンツと業界の設計につ...

パブリッククラウドが攻撃されたらどうなりますか?

パブリック クラウドがハッキングされ、重要なデータが無防備な状態のまま放置されることは、どの組織にと...

フラッシュセールウェブサイトにおけるユーザーロイヤルティを低下させる3つの要因

お客様は神様です。当社の Web サイトにアクセスするすべてのユーザーは、お客様とみなすことができま...

XenS「言葉にできない」時代 - 4 ドル/Xen/512 MB メモリ/100 GB ハードディスク/400 GB トラフィック

XenS の「言葉にできない」時代は、XEN PV 仮想環境に基づくストレージ VPS に重点を置い...

racknerd: メモリアル デー、年間 22 ドル、2G メモリ/2 コア/30g SSD/4T 帯域幅、ロサンゼルスの multacom データ センター

メモリアルデー(米国戦没者追悼記念日)に、racknerd は米国ロサンゼルスの DC-02 データ...

SAPは製薬業界のデジタル変革とスマートライフサイエンス企業の構築を支援します

8月27日〜28日、中国医薬・医療情報化連盟(CIAPH)主催の第8回医薬・医療産業情報化サミットフ...

speedykvm - $31/年/KVM/Win/1g メモリ/50g ハードディスク/5T トラフィック

speedykvm は、「Volatile」と呼ばれる新しいタイプの VPS を開始しました。通常の...

分散システムに関する20,000語の詳細な入門書

WeTest の紹介 QQ、WeChat、Taobao など、特定のインターネット アプリケーション...