(会場拍手) 青山さん、簡単に自己紹介をお願いできますか? 青山真也氏(以下、青山):はい。 さらに、数千のチームがあるということはそれだけの数の責任者がいるということでもあり、それぞれが自分のチームのサービスをより良くする動機と責任を持つことで、サービス向上に取り組むモチベーションをアップさせることにも繋がりました。
まとめ マイクロサービスアーキテクチャは、どちらかといえば複雑な大規模サービスに向いています。
弊社も人材大募集しておりますので……そういう場じゃない? そういう場じゃないですね。
新野:そうでしたね。
サービスの障害が全体に影響しないようにする マイクロサービスは複数のサービスで構成されているため、ひとつのサービスの障害が全体に影響しないようにしないと、モノリシックサービスよりも可用性が低下してしまいます。 ポイントは、一つの処理を実現するのが一つの機能ではなく、複数の機能であるというところです。 そのため、独自でのマイクロサービスの導入は難しく、やはり柔軟な開発手法に対する専門知識や経験がある開発リソースが必要になります。
8サービスの分割は正解のない分野かもしれないが、ECサイト「Oisix」のマイクロサービス化に約1年取り組んできた経験を基に考え方を共有したい。
相互に自立したチームがそれぞれチームごとに異なる作業スタイルを持つという点と、いつまでたっても「終わった」と感じられないという点です。
すみません(笑)。
アプリケーション設計は、ビジネス要件の解決とビジネス・ロジックの実装に重点を置いています。
その心は? 青山:その心は、結局クラウドネイティブは、クラウドを使ってサービス開発してきて、それのベストプラクティスを文言化したものだと思うんですね。
これはこれで非常におもしろい。 アプリケーションの機能を、それぞれスコープが制限されたフォーカスされたサービスに分割できる場合は、モノリシック・アプリケーションをマイクロサービスに移行することを検討してください。
図7 メッセージキューの実装手法 ブローカードのメッセージキューとしては「」や「」などが有名だ。
(会場拍手) クラウドネイティブの定義 新野:今日は3つのアジェンダを用意しています。
マイクロサービスはソフトウェア開発アプローチの1つで、アプリケーションを一枚岩の「モノリシック」なプログラムとしてではなく、複数のサービスや機能を疎結合させて構築します。
サーバーレス アーキテクチャとの違いについて 上述のように、マイクロサービス アーキテクチャとは、全体として巨大なシステムを、数多くの小規模チームで分割して開発・運営するための手法である。 リモート呼出しは遅くなり、失敗する可能性があることに注意してください。
16また、SaaSアプリケーションでは、セキュアな方法でマルチテナンシを利用できます。
マイクロサービス・アーキテクチャでは、サービスは複数のサーバーで実行されます。
メモリ管理など、比較的下位レイヤーの特性を共通化しつつ、一定の言語のバリエーションを持たせられます。
デジタルトランスフォーメーション(DX)の潮流が高まる中、社会全体で「イノベーション」や「スピード」といった要素が注目されている。
マイクロサービスの導入より、どんなにデータ量が増えても、それぞれのデータが1つのシステムに蓄積されることなく、分散して保存されるので、容量オーバーを引き起こす可能性がなくなります。
16弊社はエンジニア集団なんですね。 マイクロサービスの場合、組織構造そのものも機能ごとに明確に分割し、各チームに独立した意思決定を許容します。
よくあんなに簡単に使えるなと思うんですが、そこは非常に大きいメリットです。
英語で「一枚岩」を意味し、「大きな単一機能」という特徴を表現したものです。
また、冗長性確保やスケーリングのために同じマイクロサービスを並行して複数稼動させることも多いが、この場合ロードバランサーのように動的に接続先を管理する仕組みが必要となる。
図4 同期的なメッセージ通信 そのため、メッセージの送信元は送信先がメッセージを受け取って何らかの処理を実行してその結果を送り返すまで、処理を一時停止して待機することとなる。 5.セキュリティ面のリスクを担保するための正しいノウハウが必要 分散されているマイクロサービスは、従来型のモノリシックなサービスに比べると、一つ一つのサービスのセキュリティは弱くなってしまう可能性があります。
18また、データベースをキュー代わりに利用するという手法もある。 Kubernetes関連のアーキテクチャの相談も受けたりしています。
これを自信をもって作れるエンジニアはあまり多くないのではないでしょうか。
新野:よろしくお願いします。
電気代いくら。
ごちゃごちゃしてきたときにも、こことここで何があったなら、そこの通信もちゃんとトラッキングされていて、管理しやすいという話にも近いとは思うんですが、そこの詳細に追っていけるようになっている状態ですね。
9いっぽうで、URLだけでは実行する処理を判断できないというデメリットもある。
そのため非同期的なメッセージ通信ではリアルタイム性は保証されないが、通信先マイクロサービスの状況に左右されずに処理を完了させることができるというメリットがある。
SOMPOホールディングス株式会社デジタル戦略部()に所属し、損保ジャパン日本興亜グループにおける先進技術の研究開発を担当しています。
チーム間の調整が容易:従来のサービス指向アーキテクチャ SOA はプロセス間で処理の重い通信プロトコルを使用するのに対し、マイクロサービスはイベントストリーミングテクノロジーを使用するため、統合が容易です。