Dockerエキスパート養成読本を(無理やり)献本いただきました!

@ と @ が寄稿したというのを聞いたので、親愛なる米村さんに「欲しいです!」といったら、献本もらいました。ありがとうございます!

Dockerエキスパート養成読本[活用の基礎と実践ノウハウ満載!] (Software Design plus)

Dockerエキスパート養成読本[活用の基礎と実践ノウハウ満載!] (Software Design plus)



巻頭記事

「Dockerプラットフォームがもたらすもの」というタイトルで、Docker単体だけでなく、Dockerをサポートする周りのシステムやツールがどんな状況にあるのかが完結にまとめてあり、ここを抑えておけば最近のDocker事情をある程度追えました。

その代わり、Docker自体の基本的な話、例えばどういう仕組みでどういうメリットがあるかなどの説明はあまりなく、いきなり現状の話に入るので、まったくDockerを知らない人は別途他の本や記事でおさえておいたほうがいいかもしれません。

基本編

基本編は、Dockerの基礎と、コンテナクラスタ管理システムのKubernetesの紹介です。Dockerの基礎は割りと色々なところで見たことはあったのですが、Kubernetesはあまりちゃんと調べたことがなかったので、勉強になりました。(とは言っても、まだ概要さらりといったレベルで、実際どんな感じで使おうかというイメージはあまり湧いていないのですが。。。)

github.com

実践編

[開発者のための]試して分かるDocker活用術

1章目では、Dockernizeされたツールなどを色々紹介していました。記事中ではRedmineやGitlabなどをDockerコンテナ上でたちあげるという例が掲載されていましたが、これは自分が携わってる仕事の中でも生かせるよなーというのをイメージしながら読んでました。あと、各Dockerコンテナをプロキシしてくれるnginx-proxyというのは知らなかったので、知れてよかったです。

github.com

そうそう、コラムの「Dockerの使いどころ」も、課題点の"進化スピードが早過ぎるためにメンテナンスが追いつかない"や、使いどころなど共感できるところが多かったです。

Dockerによる環境構築の自動化入門

2章目は、Dockerfileでのimage buildと、後半はHashicorp製品でのDockerの取り扱いについてでした。VagrantやPackerなどを会社に導入したことや今はTerraformを狙ってることもあって、個人的にHashicorpツールは注目してるのですが、ちょっとこの記事だけでは無理してHashicorpツールからDockerを当たらずともよいのかな、という印象を受けました。

[ビルドとテストを自動化]Drone入門

3章は、おまちかね @mopemope さんによるDockerを使ったCIツール Droneの紹介です。僕が得意とするところがCIツールやJenkinsなこともあって、前々からDroneは調べてみたいやつでした。

github.com

今自社で使ってるやつはもちろんJenkinsで、今すぐこれを乗り換えようとは正直考えていないのですが、Jenkinsだといくつかしんどい部分も当然あるわけです。その内の一つが、ビルド環境の構築部分で、そこにDockerfileを使ったDockerでビルド環境の構築をシステム化しようと今試みています。

そういう観点で、Docker環境が前提のDroneがどういうふうに解決してるかは参考になりました。特に、"services" という定義でデータベースなどの外部リソースを指定できるようになってること、"cache"定義で依存ライブラリを毎回ダウンロードするのではなくキャッシュして使いまわせるようになってること、などです。この辺は、まさにDocker on Jenkinsをトライしてるときに、まさに直面してた問題でした。

また、Droneとは直接関係ないけど、ローカルホストを簡単に外部からアクセス可能にするngrokは色々使いドコロありそうだなというのを再確認しました。(ブラウザキャッシュに残ってたから以前調べたことあったはずだけど、完全に忘れてた・・・)

Gunosyが本気で試したDocker投入・検証記

最後の章は、Gunoryさんの体験記です。

この記事を読む前から、プロダクション環境に投入するのは正直大変だろうなと考えていたところに、この記事を読んでより一層面倒だなと感じたところが正直なところです。と思いながら読み進めてたら、最後の追記で

もともと検討・想定していた運用の多くはAmazon Web Servicesが提供するOpsworksでの運用に切り替えられ、Dockerの利用は非常に限定的な状態です。

で、そうだよな〜と納得してしまいました。現在は、ffmpegを使った動画変換処理はDocker運用されてるようですが、この辺は確かCookpadさんも似たようなこと言ってて、セットアップが面倒なものにはすごい効果的だよなというのを感じました。

ともあれ、Docker移行は局所的になったとは言え、やってみないと分からないこともあるだろうし、ある種ネガティブに受け取られる可能性がある事例もこうやって公開してくれることは、すごく参考になってありがたかったです。

全体的な所感

今現在のDocker事情や活用例などを知りたい方は、非常に参考になると思います。現在のDockerで何ができるのか、どういう風に使えるかをイメージするのに、いい本だと思いました。

惜しむらくは、もうちょっと本全体を通して一貫性というかスムーズな感じで、記事を提供してもらえるといいかなと感じました。例えば、Dockerfileの基本的な文法についての話が章をまたいで何回か出てきたり。この辺は個々の執筆者だけでは気づきにくいところだと思うので、編集者がコントロールしてもらえるとよりよくなるかなと。

こちらからは以上です。