iCARE の若手エンジニアにおすすめの本を紹介するシリーズ その3. Beyond the 12 Factor App
先月のクリーンアーキテクチャに続いて設計関連、特にクラウドネイティブなアプリを構築して運用する上で大切なポイントを端的にまとめた The 12 Factor App の発展版です
どんな本か
元になった The 12 Factor App は Heroku のファウンダーである Adam Wiggins によるクラウドネイティブなアプリケーションを設計・運用する上で重要な勘所をまとめた指南書のようなもの
この本は Pivotal のアーキテクトである Kavin Hoffman が、曖昧だった内容の見直しを行い、項目を追加して 15 のポイントに拡充したものになります
おすすめする理由
クラウドが標準になった現在、ソフトウェアエンジニアの職域はアプリケーションを構築するだけではなく、インフラの構築から CI/CD デプロイまで、いわゆる DevOps を意識した設計や実装が必須になっています
日々の業務ではどうしても、アプリケーションの中でどうやって仕様通りに動かすかという狭い視点で開発しがちです。ですが、そのせいで急にユーザーが 100倍になった時にアプリケーションのスケールアウトができなかったらどうなるでしょうか?また、クラウド上でインスタンスに障害が起こった時にクラウドでの運用を考えていなかったためにユーザーの重要なデータが消失してしまうかもしれません
この本は PaaS での運用を前提としていますが、 aws や gcp, Azure といった IaaS で運用する場合も基本的な考え方は全く変わりません。前回のクリーンアーキテクチャはアプリケーションの中でより全体をみながら設計を考える視点を提供してくれますが、この Beyond the 12 Factor App は「アプリケーションの外側」からみる設計の大切さを学ぶことができるでしょう
読み方
本自体は英語版しかなく、配布サイトで個人情報を入力するとダウンロードできます。内容もシンプルで各章も短めなので原文を読んでみるのもいいともいますが、オリジナルの The 12 Factor App は日本語訳が公開されています。またそちらを参照しながら差分を解説した質の高いブログ記事もあるので、日本語のリソースだけでも内容は把握できると思います
内容についてですが、単純に日々開発しているアプリケーションがこの本が提供するガイドラインに対してどれくらい適合しているが、どのように適合しているか、できていないところは何か、ということを照らし合わせるチェック項目として使ってみてください
また、もしあなたがまだ自分が関わるサービスのインフラやデプロイについて知識がないなら、この本は最高のガイドラインになるでしょう
最後に
原文を読むと繰り返し書かれていますが、「クラウドネイティブは手法ではなく姿勢である」と「最初は大変だが一度そのルールが身についてサイクルが回りはじめると開発が加速する(それなしではいられなくなる)」というのは本当です
毎日の開発をしていると業界のプラクティスよりも実装が早く終わることを優先しがちですが、こららの考え方をきちんと実践して、気持ちよく効率的な開発を身につけてください