こんばんは!
一週間お疲れ様でした!
リモートになって椅子が変わり、早速腰が痛い!!ヤバイ!!
今日はマイクロサービスについて調べてみました。
自社でも取り入れられている手法で詳しく知っておきたいので、、。
マイクロサービスとは
マイクロサービスとはなんでしょう。
超小さいサービス。訳としては完璧です。
ただ、今回のマイクロサービスの意味は、超小さいサービスを組み合わせて作ったサービスという意味になります。
では超小さいサービスとは具体的にどんなものでしょう。
例えば、サイトの検索機能だったり、ログイン機能だったり、メール機能だったりします。
これらのサービスは多くのサイトに標準的にありますよね。それらを細分化し、独立したものがマイクロサービスです。
これまでのサービスはマイクロサービスと対象の言葉としてモノシリック(一枚岩)と呼ばれます。
もちろんそれぞれにメリットデメリットがありますが、モノシリックが流行っていたのは、マイクロサービス化するには高度な技術が必要だったからです。
サービスが独立するにはサービスごとにサーバーが要ります。要はパソコンがサービスの数だけ必要です。
でも今はVMやコンテナ技術が発達しており、仮想でたくさんのパソコンが用意出来るようになりました。
そういう意味ではどんどんマイクロサービス化していくのがこれからの流れかもしれませんね。
では具体的にどういったメリットがあるか簡単にご紹介します。
- それぞれが独立したサービスのため、単一で機能する。
- 小さいサービスを組み合わせて作るので拡張性がある。
- 新しい大きなサービスも小さなサービスを組み合わせて作っていける。
- それぞれのサービスを異なるプログラミング言語で書ける。
- 同時に多人数で開発できる。
いいことづくめですね。ただし気をつけなければならないポイントもあります。
それぞれのサービスはAPIで通信し、まとめ役はESB(Enterprise Service Bus)が行います。
なのでサービス間の依存関係は一方向が望ましいです。
お互いに依存し合う構造の場合、他方に問題があると共倒れする可能性があります。
よって最初の設計を考える工程が非常に大切です。
また、まとめ役(ESB)が結局モノシリックという見方ができないわけでもないので、そこが崩れると全体に被害が及びます。
ESB自体は企業がサービスとして提供しているので、セキュリティや冗長性は信頼出来るところにしたいですね。
というわけで今日はマイクロサービスについてでした。
設計が難しいところもありますが、小さく作ってデプロイ、修正を繰り返していく手法はメリットも多いです。
上手く使いこなしていきたいものですね。
それではまた!
2021.1.15 ガオ
コメント