マイクロサービスについて思うところ
こんにちは。ものレボの古澤です。
ちょっと古くなってきてはいますが、マイクロサービスについての記事を読みたいというお声を頂戴したのでチャレンジしようと思います。
マイクロサービスですが、それぞれ独立した小さなサービスを組み合わせて1つのサービスを提供するアーキテクチャのことを言います。
では、どこまでマイクロにするのでしょうか?
答えは、そのサービス毎(サービスを設計する人毎)に異なります。
では、どうやって答えを出していけばいいのでしょうか?
この人毎に違う答えをどうやって導いていくかという所で、私はマイクロサービスのメリットを享受できるような設計にすることがマイクロサービスを用いた設計を行っていると言えると思います。
では、マイクロサービスのメリットとはどのようなものでしょうか?
・マイクロサービスのメリット
・サービスの変更時に、システム全体ではなく、単独サービスを変更するだけで済む
・開発単位が小さいので、1機能をリリースするまでの期間が短縮される
・問題箇所の切り分けが比較的容易にできる
いざ、書き出してみると、あまり特別なことはなく、昔からよく言われていることになります。
デスクトップアプリケーションの時代から、ソフトを作る際には関数間の呼び出しは密結合を避けて疎結合を保つように言われてきましたが、それをそのままネットワークサービスに置き換えたものという印象です。
そう考えると、デスクトップアプリ、ネットワークサービス、スマフォアプリなどなど、ソフトウェアの提供形態が変わると、自分の技術が役に立たないと尻込みする技術者の方はいると思いますが、基本的な考え方、自分がこれまで培ってきた経験はそのまま使えるため、色々なことにチャレンジする足掛かりとなると思います。
「マイクロサービス」のような定義のはっきりしない言葉が出てくると、なんじゃこりゃと思うことは多いですが、自分の技術力や経験値を再確認するという意味で今後出てくる言葉についても積極的に取り入れたいと思う今日この頃でした。