TL;DR
上手い事やりましょう。
規模を考える
このエントリーには知見というものはないのですが、マイクロサービスは2週間で作り直せる規模。というのが一つの指標のようです。
個人的な原文の意訳として
- 限定的(単一)な仕組みである。
- 既存の物を2週間で再構築できる規模のものを。
- それ以上は大きすぎる
と捉えたもの。
Desirable attributes of a micro service are:
Micro services, what even are they? | REA Group Tech Blog
1. The responsibility is narrow. The service does one thing, and one thing well.
2. The code base is small. The service can be rewritten and redeployed in 2 weeks.
3. There is no 3.
というわけで、ちょっとしたコメントの補足的なエントリー。
マイクロサービス 規模 - hitode909の日記
URLを投げ込むと一定期間ツイート数をJSONで教えてくれるやつと、ブログの任意URLを投げ込むとRSSを探してJSONで返すやつ、辺りが最近作った近い規模になりそうなやつです。(一番単純なものは数時間で作り直せるもの。)
2016/10/03 16:30
ささやかなブログパーツを提供するサービスのリプレースを行っていて、その裏側で作られたマイクロサービス群なのですが、最小は「確認用コードを発行する」のみのAPIがあります。流石にこれは「ナノ」サービスと呼ばれるようです。
この機能によく似たものとしてGoogleの Search Console で利用される「所有権確認用ツール」の文字列を出すあれが該当します。
一度生成すればサービス内で何度も再生成するようなものではありませんが、基礎になるデータの一部であるため、「絶対に同一のデータが欲しい」という理由で切り出されています。
「確認用のコードが発行される」という事は、それが正しいか確認するための仕組みが必要になり、あるデータを投げ込めば検証された結果として返ってくる機能が用意されます。
発行と検証は機能・性質として似ているので、一つにまとめた方が管理がしやすくなりそうです。
発行、検証をあわせたものを「所有者検証サービス」として固めます。この辺りが今回の丁度良い規模になりそうです。
丁度近い日時でマイクロサービス関連の記事が出ていたり、それにツッコミを入れている方が居たり、色々あったので、そういった話題があったのだと思ったやつ。
追記にあるように、似たような数個の機能をまとめた物や、モノシリックなものを分解して機能単位にすれば0.5人月で作り直せない?的な感じになりそうなやつであったり、手のひらサイズのブロックメモに書き込みできる程度の単位であったり、色々あると思うやつです。
個人的な見解ですが、Windowsで動いているサービス群やDLL(zip作ったり展開するunzip.dllなどなど) *1 、Apacheのmod_なんとか辺りも見方を変えればマイクロサービスっぽいやつですね。と思うやつです。
ここまで書いておいて最後にこれを書くのもなんだかな。というやつですが、免責として個人の見解です。
規模や諸々で変わるものですので、上手い事やれればいいと思います。
上手い事たいこをたたく熊。