apice-technologymemorandum
投稿日時:2023/11/20
マイクロサービス
私の不勉強で、システム開発にて、アジャイル開発はりかいしているのですが、マイクロサービスを実現できるようにとあり、これは何?? ということで、ちょっと調べてみました。
マイクロサービスとは、大きなアプリケーションを小さな独立したサービスに分割するソフトウェア開発の手法です。それぞれのサービスは、特定のビジネス機能を実行するために設計されています。これらのサービスは独立して動作し、それぞれが自身のデータベースとAPIを持つことができます。
例えば、オンラインショッピングサイトを考えてみましょう。このサイトは、商品の検索、カートへの追加、注文処理など、さまざまな機能を提供しています。これらの各機能は、マイクロサービスとして独立して動作することができます。
マイクロサービスの利点は以下の通りです:
スケーラビリティ:各サービスは独立してスケールアップまたはスケールダウンできます。これにより、需要の高いサービスにリソースを集中的に割り当てることが可能になります。
耐障害性:一つのサービスがダウンしても、他のサービスは正常に動作し続けます。
開発の柔軟性:各サービスは独立して開発とデプロイが可能です。これにより、開発チームはそれぞれのサービスに最適な技術スタックを自由に選択できます。
ただし、マイクロサービスには以下のような課題もあります:
データ管理:各サービスが独自のデータベースを持つため、データの一貫性を保つのが難しくなることがあります。
サービス間通信:サービス間での通信が増えると、ネットワークの遅延や障害がアプリケーション全体に影響を与える可能性があります。
基本的には、提供するサービスを細切れにして、少しずつ提供していく。
APIで実現するならば、いろいろな粒度のサービスを、アジャイルで提供するようなイメージですね。
上記のようなサービスを意味するならば、IT業界 40年超えの私の理解を超えるものではなかったので、ちょっとほっとしました。