SSブログ

書籍『Docker Deep Dive』 [本]

Docker Deep Dive: Zero to Docker in a single book (English Edition)

Docker Deep Dive: Zero to Docker in a single book (English Edition)

  • 作者: Poulton, Nigel
  • 出版社/メーカー:
  • 発売日: 2016/09/20
  • メディア: Kindle版

「MAY 2020」とカバーにある(おそらく最新版)を読みました。普段、Dockerを深く使いこなしてはいないので、Docker全体を知るために読んでみました。

Dockerfileやdocker-composeについてはもちろん説明はされています。それ以外にも、Docker Swarm、Docker Stacks、ネットワーキングについても解説されていますし、15章「Security In Docker」ではセキュリティに関する基本的な事柄も説明されています。

Dockerのセキュリティに関しては、ちょうど「Security Journey」で基本を学んだばかりでしたので、復習にもなりました。

Docker Swarm関連では、分散サービス用のRaft、gossipプロトコル、リーダー選出(leader election)などの用語が事前説明なしで使われています。これらも『Go言語による分散サービス ―信頼性、拡張性、保守性の高いシステムの構築』で学んだばかりだったので、問題なく理解することができました。

本の内容は、実際に手元でDockerを動作させて確認できますし、Docker Swarmについても(全部ではないですがある程度)Play with Dockerで試すことができます。

コメント(0) 

『人月の神話』オンライン読書会を開催します [オンライン読書会]

人月の神話

人月の神話

  • 出版社/メーカー: 丸善出版
  • 発売日: 2021/07/13
  • メディア: Kindle版

9月より、月に1回、土曜日の午後1時〜5時で、書籍『人月の神話』のオンライン読書会を開催します。


この本については、拙著『ソフトウェア開発の名著を読む【第二版】』でも紹介しています。

ソフトウェア開発の名著を読む 【第二版】 (技評SE選書)

ソフトウェア開発の名著を読む 【第二版】 (技評SE選書)

  • 作者: 柴田 芳樹
  • 出版社/メーカー: 技術評論社
  • 発売日: 2009/10/21
  • メディア: 単行本(ソフトカバー)

コメント(0) 

『Go言語による分散サービス』オンライン読書会を開催します [オンライン読書会]

Go言語による分散サービス ―信頼性、拡張性、保守性の高いシステムの構築

Go言語による分散サービス ―信頼性、拡張性、保守性の高いシステムの構築

  • 出版社/メーカー: オライリージャパン
  • 発売日: 2022/08/03
  • メディア: 単行本(ソフトカバー)

今までのオンライン読書会は、出版されてから時間がしばらく経過している本を取り上げることが多かったのですが、8月に出版される私の新たな翻訳本を使ったオンライン読書会を開催します。


月に1回、土曜日の午後1時から5時までの読書会です。

2020年からさまざまなオンライン読書会を開催してきていますが、第1回が最も参加者が多く、徐々に少なくなっていきます。最後まで参加される人は、だいたい決まっています。これは、オンラインの読書会に限った話ではなく、会社内で行ってきた読書会も同じ傾向でした。

オンライン読書会での特徴の一つとして、過去に私の他のオンライン読書会に参加経験がなくて、ある本のオンライン読書会の何回目かに初めて参加される人の中には、必ずといってよいほど、キャンセル処理をすることなく欠席される人がいます(開催の案内メッセージで、「都合により欠席される場合、キャンセル処理をお願いします。」と毎回書いているのですが)。そのようなキャンセル処理なしで欠席されたことがある参加者は、申し込まれても私の方でキャンセル処理することがあります。
コメント(0) 

書籍『Googleのソフトウェアエンジニアリング』 [本]

Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを支える技術、文化、プロセス

Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを支える技術、文化、プロセス

  • 出版社/メーカー: オライリージャパン
  • 発売日: 2021/11/29
  • メディア: 単行本(ソフトカバー)

職種としての「ソフトウェアエンジニア」は、ソフトウェアの設計から実装まで行うものと考えられることがあると思います。しかし、そこにエンジニアリングという視点はどの程度含まれるのでしょうか。さまざまな設計手法、さまざまなレビュー、テスト駆動開発、継続的インテグレーションなどの実践は、確かにエンジニアリングではあります。しかし、実践できていない開発組織もまだまだ多いと思います。

仮に実践できているとしても、小さな組織で行っているエンジニアリングが、Googleほどの大きな組織へと拡大するためには、スケールするのかを考える必要があります。Googleほどの大きさにならなくても、ビジネスが成長しているのであれば、それを支える開発組織も大きくなっていき、今までのエンジニアリング的な実践がスケールするのかを考える必要が自然と発生していきます。

この本では、大きなソフトウェア開発組織へと成長する過程で、試行錯誤しながらGoogleが取り組んできたソフトウェアエンジニアリングについて述べられています。

私自身のウェブサービスの開発経験はメルペイで働き始めてからなので限られてはいますが、この本を読みながら、現在自分達が直面している問題、あるいは、今後直面するであろう問題を色々と考えさせられることが多い内容でした。ただ、私自身があまり馴染みがない領域に関しては内容を理解できないものもありましたが、全体としてはとても参考になることが多い本でした。

この本で紹介されているHyrumの法則というのがあります。
あるAPIに十分な数のユーザーがいるとき、APIを作った者自身が契約仕様として何を約束しているかは重要でない。作られたシステムが持つあらゆる観測可能(obserbable)な挙動に関して、それに依存するユーザーが出てくるものである。
この法則に、いかに苦しんできたかは、この本全体でいろいろなところに登場します。小さな組織であれば、API仕様をきちんと書いておくだけでおそらく十分なのでしょうが、組織が大きくなれば、Hyrumの法則が登場して、思わぬ使われ方や想定が行われるようになっていくということです。
コメント(0)