勘と経験と読経

略すとKKD。ソフトウェア開発やITプロジェクトマネジメントに関するあれこれ。

「Building Microservices」7章以降も読んだ #デッドライン読書会

未消化の積読技術書をデッドラインを決めて読んで感想をブログに書く企画(ざっくり)の第5回。今回は少し前に発売されたオライリーの「マイクロサービスアーキテクチャ」を2回に分けて読むことにしている。というわけで第7章以降を読んだ感想。結論から言うと10章以降がすばらしい。

マイクロサービスアーキテクチャ

マイクロサービスアーキテクチャ

デッドライン読書会のルールは、以下参照

前編はこちら

Building Microservices 7章以降の感想

10章まではマイクロサービス構築時の様々なテーマの課題(7章テスト、8章監視、9章セキュリティ)の話なのだけれども、当然のことながらマイクロサービス固有の話ばかりではなく、なかなか興味深かったけれども知っている話も多かった。まぁ本書(原著)は2015年の本なので、あたりまえなのかもしれないけれど。
10章以降はかなり興味深く、いろいろと関連資料も見ながら、なかなか楽しく読むことができた。

10章 コンウェイの法則とシステム設計

コンウェイの法則、およびWindowsVistaの失敗については以前に本ブログで取り上げたこともある。

本書ではWindows Vistaの件に加えて、NetflixAmazonの取組みについて触れられている。個別に事例を読んだことはある気がするが、改めて並べてみるとかなり興味深い。
また、コンウェイの法則の対策の一つとして提言されている「社内オープンソース」という考え方は、なかなか良い考え方のように見える。取込みを検討したい。
そして、逆コンウェイの法則。これは以前に平鍋さんのブログでも紹介されていたな・・・

11章 大規模なマイクロサービス

本章は文字通り、大規模なマイクロサービス(というか、マイクロサービスを用いた大規模システム)の課題をまとめている。現在具体的に似たような悩みを抱えているからかもしれないが、すごく「あるある感」を感じながら読んでしまった。

冒頭で紹介されている「分散コンピューティングの誤謬」というのは有名な話のようだが、知らなかった。笑える。

類似のもので

「分散システムとは、あなたが知らなかったコンピュータの障害が原因で、自分のコンピュータを使用できなくすることができるシステムです」レスリー・ランポート(コンピュータ科学者)

というのもあったが、類似の匂いを感じる。

また、偶然最近読み終わったタレブの「反脆弱性」の話も出てくる。アンチフラジャイルな組織については、2013年にACMで論文が公開されているようだ。NetflixのChaos Engineering関連。後でよむ。

その後は各種の対応パターンがいろいろ掲載されているのだけれども、どうやらいくつかの対応はRelease It!: Design and Deploy Production-Ready Software (English Edition)に詳しく書かれているようだ。これも読まねば。

設計アプローチとしては、マイクロサービスはまだかなり若いので、注目すべき経験がいくつかありますが、今後数年間でそれらを大規模に扱う際により有用なパターンが得られると確信しています。それにもかかわらず、この章では、マイクロサービスへの道のりを拡大できるようにするためのいくつかの手順を概説しました。

私がここで扱ったことに加えて、私はMichael Nygardの素晴らしい本、Release It!をお勧めします。。その中で彼はシステム障害とそれにうまく対処するのを助けるためのいくつかのパターンについての物語のコレクションを共有しています。この本は読む価値があります(実際、大規模にシステムを構築している人にとっては必須の読み物と見なすべきだと私は言えるでしょう)。

探索は続く

そういえば、今日たまたま聞いていた、EM.FM ep23でちょうど、マイクロサービスとか犠牲的アーキテクチャの話が聞こえてきてびっくりした。

犠牲的アーキテクチャとマイクロサービスは相性がいい。このあたりも深堀していきたい今日この頃。

テーマ的には、次は プロダクションレディマイクロサービス ―運用に強い本番対応システムの実装と標準化

プロダクションレディマイクロサービス ―運用に強い本番対応システムの実装と標準化

プロダクションレディマイクロサービス ―運用に強い本番対応システムの実装と標準化

を読もうかと思っていたけど、を先に読んだほうがいいのかなぁ・・・