読むのがホネな(積みがちな)技術書やビジネス書を取り上げて2週間の読書期限を課して読んでアウトプットする仮想読書会「デッドライン読書会」の第54回。常時、けっこうな量の積読があるのだけれども、知り合いと読書期日を約束することによって消化が捗るという仕組み。過去5回分のログはこんな感じ。
- #53 「要件最適アーキテクチャ戦略」の前半を読んだ。難しいぞ - 勘と経験と読経
- #52 ウォーターフォールを殺しにきている書籍「継続的デリバリーのソフトウェア工学」を読んだ - 勘と経験と読経
- #51 V字モデルの深淵を覗き込んで反省する:「単体テストの考え方(UTPPP)」を読む(後編) - 勘と経験と読経
- #50 V字モデルの深淵を覗き見た気分:UTPPPを読む(前編) - 勘と経験と読経
- #49 「デジタルトランスフォーメーション・ジャーニー」でDXできる? #デッドライン読書会 - 勘と経験と読経
さて、今回取り上げるのは前回に引続き「要件最適アーキテクチャ戦略」だ。ちょっと長いので前半と後半に分けて読んでいる。今回は後半の「Part3 イベントファーストアーキテクチャ」「Part4 目的を持ったアーキテクチャの2つの道」を取り扱う。
日本語タイトルは若干わかりにくい気がする。原題は「Strategic Monoliths And Microservices: Driving Innovation Using Purposeful Architecture」、ストレートに直訳すると「戦略的なモノリスとマイクロサービス: 目的別アーキテクチャによるイノベーションの推進」というタイトルの本となる。まずは目的を持ったモノリスを作る(大きな泥だんごではなく)
このような形で紹介されているわけではないけど、本書を読むとシステムの進化の段階は以下の3レベルと定義されていることがわかる。
ゼロから、もしくは大きな泥だんごから一足飛びにマイクロサービスに向かうことを筆者は推奨していない(不可能ではないが、「もっとも険しい道のり」と言っている)。また、全てのシステムがマイクロサービスの適用を目指すべきではないとも。
モノシリックアーキテクチャを構築することを、責任逃れの三流の選択のように感じる必要はない。つまり、筆者が勧めているように、十分にモジュール化された、ちゃんとしたモノリスを構築するのであれば、そうはならない。
要件最適アーキテクチャ戦略 第10章 モノリスを目的どおりに構築する
そして筆者の言う「十分にモジュール化されたモノリス」ならば、必要に応じたマイクロサービスへの移行も難しくない(第11章 モノリスからマイクロサービスへの悠然たる移行)のだ。
うーん、言うのは簡単だけれども、実践は難しそう。
一応数年以内に出版される予定の続編で、さらにこのあたりは詳しく語られるようだ。
後半を読んだ感想
- 前半の感想にも書いたのだけれども難解。そして例題がわかりにくいのは引続き。
- 難しいのだがそれでも「第10章 モノリスを目的どおりに構築する」は興味深かった。大きな泥だんごシステムを例にとって、どのような形で正しいモノリスへリアーキテクティングしていくか、という話だからである。どう分解していくべきかという話は非常に面白い。
- またあくまで戦略としてはリライトではなく、リアーキテクティング推しである。
筆者には、建設業界で経験を積んでいる友人がいる。その友人が言うには、建物をきちんとした方法で解体するのにかかる時間は、その建物の建設にかかった時間の10 分の1 以下で済むそうだ。単に建物を壊すだけではなく、重要なパーツをすべて再利用することも目的に含まれている。ソフトウェアの構築は建築業界とはあまり似ていないが、友人の主張は、コードの有意義な再利用を意図した、大規模なシステムのコードベースの秩序あるリファクタリングと再構築の手がかりになるだろう。
要件最適アーキテクチャ戦略 第10章 モノリスを目的どおりに構築する
うーむ、私の周りにもゴロゴロとした大きな泥だんごがあるのだが、誰か一緒に本書を読みながら戦ってくれる人はいないか、と思う今日この頃であった。
さて、本書もなんとか一応読み終わった。次は何を読もうかなぁ。話題の本を取り扱っても良いかもしれない