本連載では、業界の第一線で活躍する著名エンジニアたちが、それぞれの視点で選んだ書籍について語ります。ただのレビューに留まらず、エンジニアリングの深層に迫る洞察や、実際の現場で役立つ知見をシェア!初心者からベテランまで、新たな発見や学びが得られる、エンジニア必読の「読書感想文」です。
Metaの精鋭エンジニアたちが「設計の最適解」を導くために頼る一冊。世界規模の開発を支えるシステム設計のバイブル
著名エンジニアが、独自の視点で「おすすめ書籍」を紹介する本連載。
今回の語り手は、コンピュータサイエンス学習プラットフォーム「Recursion」の共同創業者であり、Metaでのソフトウェアエンジニア経験を持つJeffry Alvaradoさんだ。
Jeffryさんが「学生時代に出会ったものの、その真の価値を理解したのはMetaで世界規模のインフラに携わってからだった」と振り返る一冊がある。現代の分散システム設計における決定版とも言える名著『データ指向アプリケーションデザイン』(オライリー・ジャパン)だ。
スケーラビリティや信頼性、一貫性といった、データ集約型アプリケーションが直面する複雑な課題をどう乗り越えるべきか。
Jeffryさんが実務を通じて得た「トレードオフの本質」と、本書を「二度読むべき理由」について語ってもらった。
発売日:2019年07月18日
著者:Martin Kleppmann 監訳:斉藤 太郎 訳:玉川 竜司
出版社:オライリー・ジャパン
ISBN:978-4-87311-870-3
原書:Designing Data-Intensive Applications
書籍概要:現代の分散システム設計においてデータの扱いは重要な課題です。システムはスケーラビリティ、一貫性、信頼性、効率性、メンテナンス性を維持する必要があり、そのためにリレーショナルデータベース、NoSQLデータストア、ストリーム、バッチプロセッサ、メッセージブローカーなどのツールが数多く存在します。 本書は、データを処理し、保存するさまざまなテクノロジーの特性を詳述することで、ツールの長所と短所を理解し、システムの課題と使用するアプリケーションに適した選択肢の発見を助けます。
本書を読んだ背景
私が初めてこの本を手に取ったのは大学生の頃です。アプリケーションをスケールさせる際の、データの仕組みを学ぶためでした。ここで言うスケールは、1000人規模のデータ保存・処理要件から、1000万人規模へと拡大するようなケースを指します。
当時の私は、システム設計面接(*)の練習をする際の参考資料として使う程度で、それほど深く読み込んではいませんでした。
本書は面接対策として非情に優れた一冊ですし、ビッグデータを扱う感覚を概念的に掴むのには良い本です。
一方で、バックエンドのデータアーキテクチャに関する実務経験が乏しいジュニアエンジニアにとっては、本書で語られている重要な知恵の多くは、少し難解に感じられるかもしれません。実際に、当時の私もそうでした。
この本が私のバイブルとなったのは、Metaのような大規模な企業で働き始めてからのことです。
世界規模のインフラ環境に身を置く中で、異なるデータアーキテクチャを採用した際に必ず生じる「ペインポイント(苦労する点)」や、その選択肢におけるメリット・デメリットの議論が、現実の課題として腹落ちしました。
デメリットを制御しつつ、大量のデータを処理するためにシステムをどうバランスさせるか。あるケースではそのデメリットは完全に許容可能ですが、別のケースではバックアッププランが必要です。
自社のシステムが直面している課題と、これまで適用されてきた解決策。そのつながりが明確に見えるようになったのです。その時、この本に書かれている「知恵」の意味がようやく理解できました。
大規模システムでの実務を一度経験すると、この本は「珠玉の一冊」に変わります。
二度読む価値がある、そんな本です。
一度目は実務経験がない状態で、大規模データ処理・保存の全体像を把握するために。そして二度目は、実務経験を積み、実際にシステムの設計を任されるようになった時です。
その時こそ、本書は真の輝きを放ちます。
(*)主にソフトウェアエンジニアの採用で、Webサービスなどの大規模システムを構築する能力を評価する面接
本書で得られた学び・教訓
本書の核心は、大量のデータ処理や保存を必要とするアプリケーションの開発手法を学ぶことにあります。
こうしたアプリケーションの場合、バックエンド設計のアプローチは多岐にわたり、アプリケーション固有の要件に応じて考慮すべきトレードオフが無数に存在します。
ITエンジニア向けスカウト転職サービス
に登録すると続きをお読みいただけます。会員登録後、画面が自動で更新されます。
登録すると、あなたの経歴や希望条件を見た企業から直接あなたに特別なスカウトが届きます。 忙しい毎日でも、スキマ時間で転職活動を進めることが可能です。
本書を読むことを推奨する人
以下のような方に強くお勧めします。
●大規模システムでのデータ処理・保存の実態を知りたい経験豊富なバックエンドエンジニア
●自社データセンターを持つようなメガテック企業への転職を目指すエンジニア
●データエンジニアやインフラエンジニアを志している方
●システム設計(システムデザイン)のスペシャリストを目指す方
また、アプリケーションのデータ処理をスケールさせたり、最適化したりする必要が生じた時は、いつでも本書を手に取ってみてください。
データベースを用いたアプリケーションの設計・構築経験が一度でもあるのなら、本書を読み始める準備はすでに整っています。
まとめ
Metaのようにデータ集約型のバックエンドを扱う企業では、担当機能の設計や拡張を行う際、本書を手に取り参照する光景は日常茶飯事でした。
データ負荷がそれほど高くないアプリケーションであれば、一般的な構成で十分かもしれません。
しかし、データ集約型のアプリケーションでは最適化が不可欠です。そしてその最適化は、アプリケーション固有のニーズに100%依存します。
本書は、データ保存と処理のテクニックを教えてくれるだけでなく、多様なニーズに対して最適な設計を行うための「強固な基礎」と「直感」を養ってくれる一冊です。
元Meta ソフトウェアエンジニア
Jeffry Alvaradoさん(@jalva_dev)
大学ではコンピュータサイエンスを専攻し、在学中に複数のインターンシップを経験。コンピュータサイエンスが学習できるプラットフォームRecursionを創業し、CTOとしてカリキュラム作成、ソフトウェア開発を担当。元Meta社のソフトウェアエンジニア
文/Jeffry Alvarado 編集/今中康達(編集部)
RELATED関連記事
JOB BOARD編集部オススメ求人特集
RANKING人気記事ランキング
新卒初任給引き上げ、現場エンジニアは納得済み? サイボウズ、LINEヤフー、LayerXが明かす報酬高騰の裏側
AWS認定資格12種類を一覧で解説! 難易度や費用、おすすめの学習方法も
高卒マック店員から32歳で米マイクロソフトのプリンシパルになれた理由「信頼は貯金せず、再投資せよ」
南場智子「ますます“速さ”が命題に」DeNA AI Day2026全文書き起こし
『システム思考の世界へ』に学ぶ、AI時代にエンジニアが「技術に詳しくあるべき」理由【nwiizo】
タグ