One minute
Goとマイクロサービス
マイクロサービスの定義としては
「あるサービスが、独立した小さなサービスの集合で構成される」
というのが一般的?で、俺もそう思っている。
Goはこのマイクロサービス的なサービス開発に適している気がする。
ワンバイナリ=サービスの単位
Goの最大のメリットと考えているのは、
ビルドしたら実行可能なバイナリが1個吐き出されて、ミドルウェア等の設定が不要。
というのは、過去にも書いた。
この実行可能なバイナリをマイクロサービスでいうところの「小さなサービス」とすると、とてもしっくり来る感じ。
バイナリ=Goパッケージ=サーバインスタンスの単位
- API
- Batch A
- Batch B
- Proxy(image)
で構成されるサービスがあったとして、全部Goで書いたとする。
それぞれがGoプロジェクトの1パッケージに対応し、そのパッケージ毎にバイナリを生成し、
バイナリごとにサーバインスタンスを割り当てる感じになる。
まさにマイクロサービス。
まとめ
GoはProxyサーバみたいな特定の用途に特化した(アドホックな)処理を、
1個のバイナリとしてまとめられるので、Goで全部やってると勝手にマイクロサービスっぽくなるよね
というお話。
Read other posts