kdnakt blog

hello there.

『プロダクションレディマイクロサービス』を読んだ話とか

こちらの記事に触発されて『プロダクションレディマイクロサービス』を読んだので感想とか。

 

kakakakakku.hatenablog.com

 

いい加減読んでから時間が経ってしまったので、とりあえず軽く再読しながらアウトプットしておく。

 

お品書き。

[初回流し読みの感想]

どうせ何回も読むことになると思うので、ざっと流し読みに近い感じで読んだ。

 

個別具体的な話、というよりはやや抽象的な話が多い。その点については、「はじめに」の「本書に期待してはいけないこと」にも書かれているのであまり気にならなかった。

むしろ、これは多分こういうことだよな、できてるできてる、とか、ヤバい全然想像もつかないどういう風に実現するんだろう、みたいな部分もあって、個々のテーマ毎の本を読んでもっと知りたい!という気分になった。

 

[翻って自分はどうか?] 

▼エンドポイントをバージョニングしない(p. 13)

一瞬読んであーやべーという気持ちになる。前科者だ……。

/api/v1/mydataとか/api/v2/mydataってやっちゃいかんよという話かと思うんだけど、それだけのことを言ってる訳でもない気がする。

マイクロサービス、奥が深いなと感じた。

 

▼ サービス検出(p. 19)

etcdとかZooKeeperとか普段あまり触らない層の用語が出てきてこの辺やれば強くなれそうな気がした。

とはいえ、マイクロサービスをやるってことは、当然マイクロサービス間の通信とかもちゃんと考えないといけなくて、それはこれまでの(特にオンプレミスでモノリシックなサービスの経験が中心の)自分にとっては結構辛い話だなと感じた。

 

▼標準化(p. 49)

標準化のためには会社のトップとボトムあらゆるレベルからの支持が必要であり、標準化が自由とベロシティをチームにもたらすことを理解させる必要がある。

この辺はコードベースというよりは、組織のあり方まで含めてマイクロサービスであるという考えを強く印象づけてくれる。

実際、トップとボトムからも支持され、標準化のメリットが十分に理解されて運営されているチームは、その他の観点では色々と問題があるものの今自分的にはうまくいっているな、と思えているので、この節の重要性が身に沁みる。

 

▼ホットフィックスはアンチパターン(p. 65)

ここも一瞬、え?と思ったんだけれど、ここでいうホットフィックスは自分たちのチームの運用よりもだいぶ過激なものを指しているようだった。

十分なテストを受けていないものを本番環境に直接デプロイするようなやり方をホットフィックスというらしい。用語からも何となくその組織の文化みたいなものも見えてくるな。

 

▼ハードウェアリソースの抽象化(p. 78)

ネットワークもそうだけど、ハードウェア周りも弱い自分。Turing Complete FMとか聞いてても、何も知らないなーという劣等感がすごい。

 

最近はこの辺読んだり、AWS Summitのコンテナ入門とか聞いたりして理解を深めるための努力を始めてます。  

kdnakt.hatenablog.com

  

▼耐障害性の獲得(p. 98)

耐障害性の獲得には、本番環境で積極的、反復的、ランダムに壊してみるしかない、という話。

実際に今自分が担当してるサービスについても、耐障害性を獲得するために、結局のところ本番環境でのバグや障害が起きたことをきっかけにして対策を行っていくことしかできていないので、本当に共感する。アプリケーションを強くするには、その問題点を見つけるために、壊すしかないのだ。

 

▼障害検出とアラート(p. 121, p. 140)

エンジニアを障害検出に投入するとそこがSPOFになるという話と、正確なダッシュボードを丁寧に見ていればそれ以外の方法では見つからないような異常を見つけることができるという話。

自動化も大事だし、人間の目で丁寧に追うことも、今はまだ捨てられないんだな。この辺、AIとかでうまく検出できるようになる日が来るんだろうか? 

 

▼葱を与えよ(pp. 148-150)

ドキュメント作成の教訓、ドキュメント作成は開発サイクルの一部にすべし。 

常にドキュメントを作り続け更新し続けるのは難しいことだ。自分もどちらかといえばドキュメントよりコード派だけど、結局それは(将来の)自分の首をしめることになるし、他の同僚やマイクロサービスの利用者の生産性を下げることになってしまう、と。

ドキュメントの作成を開発サイクルに入れる、というのはきっと、人事的な評価項目の一部にしてしまってもいいくらいなのではないかと思う。自分の場合は多分それくらいの強制力がないと書かない気がする。

 

[まとめ]

一周しただけでは概要を掴むどころか、分からないことがどんどん出てきたので、個人的には再読必須です。 

マイクロサービスやっていくぞ!