社内読書会で読んだ書籍を紹介します

Technology&Design部(T&D部)SREチームのUsekです。2022年もカラフルバレットをよろしくお願いします。

T&D部では読書会を定期的に開催しています。 思い返すと私がバレットグループにアサインした初日、18時になるとメンバーがフリースペースに移動し始め、いったい何が始まるのかと聞くと「情熱プログラマーの読書会があるんだよ」と回答をいただき、バレットグループのメンバーの向上心の高さを感じました。

IT企業では読書会が盛んに開催されていますが、自分も参加することで、以下のようなメリットがあることが分かりました。

一人で読書するよりモチベーションが高まる

自発的に何冊、何十冊と本を読める人もいるかもしれませんが、残念ながら自分はそうではありません(笑) しかし読書会という場を設けられることで動機が生まれ、またモチベーションにも繋がり、結果たくさんの本を読むことができました。

自分には無い気付きを得ることができる

読書会のスタイルはいくつかありますが、T&D部では事前に1章を読んだ上でその感想を話し合う形式を採用しています。 感想会では自分では思いつかなかった考え方や価値観、自分とは正反対の意見を聞くことができました。 自分の中で間違えて覚えていた知識の訂正や、既に古くなった情報のアップデートなどもあり有意義でした。

業務では関わらないメンバーとコミュニケーションできる

T&D部内でもチーム外メンバーのコミュニケーションはどうしてもチーム内メンバーより不足してしまいます。 普段業務に関係しない内容の書籍をテーマとした読書会に参加することは、普段関わりのないメンバーと交流を深める機会でもあります。 話が脱線すると結果として「この人こういう趣味の人なんだ」という意外な発見もあります。

f:id:Usek:20220120131413p:plain

読書会での交流がきっかけでDevチームのメンバーからボルタリングに誘ってもらえました😄

今回はT&D部で2021年に読んだ書籍を皆さんに紹介します。

SRE サイトリライアビリティエンジニアリング

www.oreilly.co.jp

私の所属するSREチームの名前の基にもなっている”SRE”(Site Reliability Engineering)はGoogleが提唱した用語です。 その名の通りサイト(サーバ、サービスとも言い換えることができるでしょう)の信頼性のためのエンジニア活動と言えます。 それだけですと伝統的なインフラエンジニアとあまり変わらないように聞こえますが、SREの取り扱う業務はもっと広範囲にわたります。 インフラの構築はもちろん、そのインフラの運用保守、障害対応、そして古い世代の私にとっては「それはソフトウェアエンジニアの役割では・・・?」と思うような開発環境の構築など、さまざまな事象に対応します。 インフラを自動で運用する目的でコーディングも行うため、ソフトウェアエンジニアリングの知見も必要になります。 この本はGoogleがSREについて説明した英文が翻訳されたものとなります。 Googleの過去の経験に基づいた大規模データセンター内の活動など、一般企業には適用しづらい実例もありますが、参考になる事例も多く紹介されています。 T&D部もこの本の内容を業務に反映させました。例えば

  • トイル」について、私たちの日々の業務でも「これはトイルではないか」「トイルを撲滅しなければ」が合言葉になった
  • インシデントが発生した際には処置完了後、必要に応じてポストモーテムを作成するようになった
  • GitHub Actionsによるデプロイの自動化、Terraformによるインフラ構築の自動化を実施した

などが挙げられます。

テスト駆動開発

https://www.amazon.co.jp/%E3%83%86%E3%82%B9%E3%83%88%E9%A7%86%E5%8B%95%E9%96%8B%E7%99%BA-Kent-Beck/dp/4274217884www.amazon.co.jp

こちらは開発チームが主催した読書会でしたが、私もテスト駆動開発という概念に興味を持っていたため勉強のため参加しました。 結論から言うと、今までその概念を「素晴らしい発想の転換」と思っていたテスト駆動開発ですが、いざ自分が手を動かしてみると途中からはちんぷんかんぷんでした😅 redをgreenにする作業がゲーミフィケーション的な要素によりコーディングの楽しさも生まれ、モチベーション維持につながるのかもしれないと思う一方で、章が進むほどにプログラミングというよりパズルをやっているような気持ちになってきて、”何故わざとわざわざ通らないことがわかっているテストを書かなければいけないのか”などが納得できず、テスト駆動開発の文化に染まることはできませんでした。 あとケント=ベック氏の独特な婉曲的な言い回し(海外の文章ではこういうのは普通だったりするのでしょうか)が却って理解を難解にさせているように思えます。

ただ、自分一人でこの本を読んだら絶対に序盤で挫折していましたが、周囲の仲間が理解できない箇所をアドバイスしてくれるなどのサポートのおかげで最後まで進むことができました。 これも社内勉強会の良いところだと思います。

Web配信の技術

gihyo.jp

CloudFrontや静的サイトホスティングなど、私たちの業務になくてはならない配信技術。配信とは広義ではキャッシュとも言えますが、現代のインターネットにおいてキャッシュは最重要要素であることがよく分かる本でした。 最初はインターネットの構造について説明がありますが、Webアプリやクラウドを利用して日々業務を行なっているメンバーにもイメージが付きにくいインターネットを理解できたと好評でした。 キャッシュに対する理解を深め、アプリケーション側でヘッダの設定を行えば、今までnginxなどのWebサーバのリバースプロキシ機能がよしなに行ってくれていたキャッシュ機能もより高度なチューニングができるようになります。 本の中で紹介されていた情報を基に、自社サービスやコーポレートサイトの設定を確認し、コンテンツのキャッシュ比率の調査やマネージドサービスを利用したコンテンツ表示時間短縮の検討など、読書会の内容をチームの業務にフィードバックすることができました。

Linuxのしくみ

gihyo.jp

AWSやコンテナ技術を利用して業務を行うからには避けては通れないLinux。そのLinuxについて改めて理解しようという理由でこちらの本をチョイス。 「デバイスドライバ」「カーネル」「システムコール」など『聞いたことあるけど・・・』な用語や、これまで考えたことがなかったコンピュータの低レイヤの部分を知ることができました。 パフォーマンス向上のために、Linuxでもストレージにデータを保存せず、キャッシュ目的でメモリにデータを保存する技が使われていることを知り、Web配信の技術と共通点を見出しました。技術は突然変異で現れるのは稀で、既存のテクノロジーを参考にしている、異なる分野でも類似した技術が利用されているものなのだと思いました。 コアCPUがn個あれば性能はn倍というのはあくまで最良ケース。パソコンショップの店員にはもう騙されません(笑)

Real World HTTP

www.oreilly.co.jp

我々の生活になくてはならないインターネット、その根幹を担うプロトコルであるHTTPとその周りの技術について広範に説明している書籍になります。 この本を読んで「自社のWebサービスで実装されているとある機能は、この技術を利用したものでは?」と開発チームメンバーに質問して「その通り」と回答がもらえてとても嬉しかったです(笑) 鍵交換による公開鍵認証方式やSSLアクセラレータなど、昔は試験問題に出てくる「お約束」の要素も現在は非推奨や不要になっており、知識は随時学びアップデートしていかないと、時代遅れになってしまうと痛感しました。 SSLもHTTPも、インターネット上でやりとりされるデータ量の爆発的増加という需要に対して、回線帯域の拡張とテクノロジーの進歩によりどんどん形が変わっているのですね。感動しました。

とにかくボリュームのある本で、網羅している分野も高レイヤーから低レイヤー、プロトコルやフレームワーク、ハードウェアにセキュリティとさまざま。一度読んで内容を全て覚えるのは不可能でしょう。仕事の中でふと「そういえばあの本に言及があったような・・・」と思い出すために使えそうです。 この本を読むとSRE本と同じ感想を持ちます。すなわち、現代ではソフトウェアとインフラの両者の領域は溶け合っており、両方の知識が必要になるということです。

いかがでしたでしょうか。 こうやって振り返るとさまざまな分野の書籍を読んできました。一人では絶対にチョイスしない書籍に出会えるのもまた社内読書会の大きな利点ではないでしょうか。 2022年1月現在も、昨年末から始めたAWSコンテナ設計・構築[本格]入門を読んでいます。こちらの紹介も今後できればと思います。

ITエンジニア本大賞2022

www.shoeisha.co.jp

今年で9回目になるITエンジニア向けおすすめ本を投票する企画です。こちらで選ばれた本も今後の読書会で採用したいと思います。