4/9(日)に開催された技術書典2で買ってきた本を読んでいくシリーズ。一覧は技術書典2で入手した本リスト #技術書典。
もう買ってから3ヶ月経っていてだいぶアレだけど読み終わるまで読みます。
今回はWantedly執筆部 著のWANTEDLY TECH BOOK 2です。
開発者にとってのユーザビリティも重視する姿勢、良いと思います。
以下、各章のメモです。
Kubernetesの利用を絡めつつ、コンテナを使って開発/QA/Prod環境をせっせと回していくためのベース思想の話と小粒ながら筋良いツールで日々の仕事を楽にする話でした。よいです。
(Kubernetesに関して)
運用は間違いなく難しくなりますが
好感を持てる表現。
WHYとWHAT、よい文化ですね。
2.2.2(IssueやPRの間でのリンク)あたりを読んでいると、スタイルが完全に道を切り開いていく戦士の戦い方 on GitHubです。これに加えてコミュニケーションミスでいろいろなものが失われるのを避けようという柱があり、これらのための工夫を凝らした仕事体制、というふうに読めました。
第1章で書かれていたツール設計思想と同じく"Make each program do one thing well."で通しているのは🆒ですね。
3.2.2での例示はスパム判定の話と文字列正規化の話が微妙に混ざってしまっているので惜しい感じでした。執筆の途中でテーマを切り替えた雰囲気でしょうか。
「3.4 動き続けるシステムで精度を保証したい」からが実運用中ならではという特に良い内容でした。
章の冒頭、一番最初の文が
ハッキリ言わせてもらいますが、世の中に出ている「開発環境Docker化」に関する記事はまるで役立たずです。
で、「オッ、活きが良いな」という感触からのスタートでした。
文体は少々クセがありますが、普通に納得のいくプラクティス、およびWantedly社の環境(要求)で正しそうと納得いくもの、が多かったです。
なかでも、Dockerイメージ内にアプリケーションコードを含まないようにすることで、社内用開発イメージですらもパブリックにできるという視点は🆒ですね。
地味に見どころ。
本項では
本質的にこのようなscript はメンテナンスが難しくout-of-dateになりがちで、一発でセットアップが完了することはありません。
という記載があるんですが、実は本書を読み進めると第5章(5.3.5)にて新規参加するアプリケーション開発者向けに一発インストール手順を用意するという話が出てきて、「あ~ ここでつながってるのかー。」という気持ちになります。
難しいですね。
第5章の著者である@koudaiiiさんもhttps://www.wantedly.com/companies/wantedly/post_articles/27548で言及しているように、環境の動態保存策としてのDocker(+なにかしらのDocker Registry)はなかなかパワあるので、個人的にはアプリケーション開発者向けの環境セットを構築スクリプトよりDockerで提供しておきたい族です(それでもDockerfileからのビルドや同ファイル自体のメンテは別問題ですが)。
vendorディレクトリに大量のファイルが存在する場合、これをvolume mountすると特にmacOS上でめちゃくちゃファイルアクセスが遅いという話題です。
それらのツールを含む10通りのアプローチでこの問題に取り組みましたがvolumeで同期させることは不可能だと分かりました。
とあったのですが、試した10通りの中に「macOS環境ではDocker for MacやVBoxバックエンドではなくVMware Fusionバックエンドを利用する」方法が含まれているのか否かが気になりました。Railsほどではないにせよvendor分が巨大なSymfony 2系のプロダクトをmacOS+Dockerで触っていた際、バックエンド切り替えのみで十分なパフォーマンスを出せて他の検討を止めた記憶があるので…*1。
[*1] もちろん、企業としての採否はライセンス費用や導入・運用コストとの兼ね合いでの判断かと思います
Kubernetesマニフェストの解説が大変勉強になりました(特に5.5のBlue-Green Deploymentと5.6のRolling Deploy)。
Copyright © Kei Nakazawa 2017, Licensed under CC-4.0-BY unless otherwise noted.