イベントセミナー 受付終了

みんなに知っててほしいマイクロサービスの課題とその解決方法
最適なAPIテスト、運用まるわかりセミナー

受付終了

みんなに知っててほしいマイクロサービスの課題とその解決方法
最適なAPIテスト、運用まるわかりセミナー

11/17(水)テクマトリックス共催Webinarを開催しました!

テクマトリックスとカサレアルは、11/17(水)にマイクロサービスに関するWebinarを共催。

マイクロサービスの導入メリットや、マイクロサービスの特性に起因し、発生してしまう開発面、運用面の

課題をご紹介しました。


 Webinarアジェンダ

 1.みんなに知っててほしいマイクロサービスのメリットと課題のご紹介 

 2.開発面の課題とAPIテスト自動化/サービス仮想化ツール
   「SOAtest/Virtualize」が提供するソリューションのご紹介

 3.運用面の課題と「NGINX」が提供するソリューションのご紹介    


本レポートでは、3本立ててお送りしたWebinarの中からカサレアル 新津のパートを抜粋してお届けします。

講演の資料はこちらに公開しておりますので、あわせてご覧ください。

日程詳細

  • 開催日程
    2021年11月17日
  • 時間
    16時00分~18時00分 <受付開始:15時50分>
  • 会場
    オンライン
  • 対象者
    ・これからマイクロサービス化に取り組む方
    ・すでにマイクロサービス化に着手しており、テスト手法について情報を収集している方
    ・すでにマイクロサービス化に着手しており、運用手法について情報を収集している方

講演者

写真:新津 佐内
プロフェッショナルサービス技術部 プロフェッショナルサービス課 課長
新津 佐内

実施報告

みんなに知っててほしいマイクロサービスのメリットと課題のご紹介 

本講演では、マイクロサービスとは何かやマイクロサービスのメリットについてご紹介し、マイクロサービスにおける課題を運用面/開発面という2つの観点でご説明いたしました。

講演目次
1.マイクロサービスとは
2.マイクロサービスのメリット
3.マイクロサービスの課題(運用面)
4.マイクロサービスの課題(開発面)

◆マイクロサービスとは
マイクロサービスとはアプリケーションが持つ機能を細かいサービスに分割し、それぞれのサービスを連携させてシステムを動かすアーキテクチャを指します。
本講演ではマイクロサービスの特徴を、スマホユーザーがレストランのデリバリーを依頼する場合のシステム構成を例にご説明しました。
マイクロサービスには「各サービスが独立しており他のサービスに依存しない(=疎結合である)」という特徴があります。 この特徴に対する、設計時の注意点もご紹介しました。

◆マイクロサービスのメリット
続いて、マイクロサービスのメリットを3つご紹介しました。
1つ目のメリットは、「開発サイクルのスピードの向上」です。 各サービスが独立しているという特徴から、機能拡張が容易になり、サービスとの調整が不要でリリースも行いやすくなります。 また、各サービスで実装する言語がそれぞれに委ねられるため、サービスの特性に合わせた技術を導入できることも、重要な点としてお伝えしました。
2つ目のメリットは、「柔軟なリソース配分」です。 画像解析を行うサービスを例に、サービスの特性に合ったリソースを割り当てることが可能なメリットをお伝えしました。
3つ目のメリットは、「優れた障害分離性」です。 他のサービスの影響を受けづらくなるように設計・運用することで、優れた障害分離性を生むことができます。

◆マイクロサービスの課題(運用面)
ここからは、乗り越えるべきマイクロサービスの課題についてご説明しました。
まず運用面における課題として、①サービス全体の把握が難しい点、②障害発生時の影響範囲を極小化する必要がある点が挙げられます。
①について、マイクロサービスでは複数のサービスが連携して処理を行うため、サービスの全体像やそれぞれの関連を把握することが重要となります。 Uberが過去に実装していたマイクロサービスの構成図を例に、複雑な構成を可視化する仕組みの重要性をお伝えしました。
②については、複数のサービスが連携して処理を行うマイクロサービスでは、いずれかのサービスで障害が発生している可能性もあり得ます。 その様な場合でも、メリットでご紹介した障害分離性を保ち、システムとしてサービスを提供できるようにする仕組みが必要であると説明しました。

◆マイクロサービスの課題(開発面)
開発面の課題としては、①サービスの独立と並行開発の加速に対する対応が必要な点、②トランザクションの整合性を確保する必要がある点、③通信のオーバーヘッド、レイテンシが挙げられます。
①について、マイクロサービスでは、他のサービスから独立した開発をおこなうことができ、開発スピードが向上する一方、他のサービスとの連携テストを自分たちのチームで実施する必要が出てきます。 この課題ついても、レストランのデリバリーを例にご説明しました。
②について、マイクロサービスでは通常、各サービスごとにデータベースを持つ構成となり、マイクロサービスのトランザクションは複数のサービスのローカルトランザクションから構成されます。 複数あるサービスの中のいずれかでエラーが発生した場合、全体をロールバックしなければならず、トランザクションの整合性を確保できていることをテストする必要があるとお伝えしました。
③について、マイクロサービスでは複数のサービスをまたがって1つのユーザリクエストを処理するため、特定のサービスがボトルネックとなることにより、全体のレスポンスが悪化してしまう可能性があります。 また柔軟なスケーリングを行えることから、マイクロサービスではスケーリングを行う場面の基準(指標)を決めておく必要があります。 これらは言い換えると、「事前の性能テストを十分に実施しておく必要がある」ということだとご説明しました。


マイクロサービスには様々なメリットがありますが、メリットを享受するためには、課題として挙げた事項を乗り越えるための下支えとなるテストや仕組みが必要です。
Webinarでは、下支えとなるテストや仕組みについて、テクマトリックスの方々に紹介していただきました。

今回の講演で、みなさまのマイクロサービスへの理解がより深まりましたら幸いです。