こんにちは。いっとくです!
営業からWebエンジニアに転職して、早いもので1年経ちそうです。
だいたい仕事で使う範囲のPHPやフレームワークの使い方はわかってきたし、フロント側の制作もデザインセンス的なところを除けば問題なくできるし、成長したな〜と感じる一方で全く成長していない部分もあるんですよね。
そう、僕はDockerをなんとなくで使っている!!
ローカルの開発環境では思いっきりDockerを使っていて、起動の仕方とか止め方とかはわかるんですけど、一体裏で何をしてくれているのかはよくわからないし、なんならDockerfileとかdocker-compose.ymlに書かれている中身の意味が全然読み解けません。
ぶっちゃけ環境構築系の作業って一度設定を終わらせてしまえば、その後しばらくいじることはない部分だから、躍起になって覚えなくてもいいかという気がしてるんですが、とは言えやっぱりできた方がかっこいいよね!?ということで手を伸ばしたこちらの書籍。
実は図書館で偶然見つけて読んでみたのですが、めっちゃわかりやすい…!
僕みたいなインフラ知識ゼロの基礎グラグラプログラマーにとってはかなり有用な書籍でした!
ということで本書で何が学べるかということをメモっていこうと思います!
インフラの基礎とDockerについて
インフラと聞くとどんなイメージでしょうか?
僕の中のインフラのイメージは、データセンターで線をゴニョゴニョしたり、Apacheとかnginxの設定をいじったり、AWSを使っていつでもサービスカモンな状態を作ったりするというようなイメージです。
そして、勝手なイメージですが、エラーのデバッグがめっちゃ大変。
なんかいつも環境構築の時にエラー出るのですが、エラーの内容がざっくりしていて具体的な解決方法がよくわからないんですよ!なんか一つのメッセージで、数パターンの原因があったりしません??
そんなわけで超絶苦手意識を持っているわけではありますが、まぁWebエンジニアだから関係ないし、、、と思って避けてきたのに、Dockerで必要になるんすね…
今までDockerは個人環境を作るための軽量なツールだと思っていたけど、その登場の背景としては、どのハードウェア内にも全く同じ環境を構築することや、インフラの環境をコードとして管理することによってgitで差分を管理することを目的にしたものらしい。
つまるところ、インフラをもっと手軽にコードで扱えるようにしたものなので、基礎的なインフラの知識がないと扱うは難しいよ!ということらしい…
どうりで今まで全然わからなかったし、開発経験が増えてもわかるようにならねぇわけです。
まず本書を読むことによって、この基本的なインフラの知識というのがざっくりとわかるようになります。
突き詰めればもっと難しいことがたくさんあるんだろうけど、ミドルウェアとかプロトコルとかLinuxカーネルとか諸々がどんなものなのかがわかるだけでも成長ですよ。
そして、そんなインフラの基礎やDockerの登場した歴史を学んだところで、具体的なDockerの使い方に入っていく。
Dockerfileがざっくり読めるようになりました。
今まではもらったDockerfileを何も考えずに使って環境を立ち上げていた私。
でもやっぱり、こういうコードで書かれていることって、何が起きているのかくらいは把握しておいた方がいいと思うんですよ。というか把握して起きたいというのが僕の性分。
でも、Dockerfileを開いてみると、もうわからんわからん。
普段はdocker-composeを使っているので、docker-compose.ymlを開いてみても、Dockerfileよりはわかりそうな気がするけど…おえっ、無理!
ってなっていました。
そんな方は、このDocker教科書を読むことによって、ある程度何が書かれているのかを読み解くことができるようになると思います。
あのRUNとかCMDとか大文字で書かれている系のやつですよ。
ただし、ある程度です!
あと、書けるようにもならないと思います。
というのも、Dockerfileって、結構Linuxコマンドを使って、必要な環境をインストールしていくという作業が多いのですが、コマンドわからないと何をやっていいのかわからないし、必要な環境を揃えるにしても、何が必要なのかわからないからです。
多分その辺はもっと、中上級者向けの分厚い本をマスターすることで書けるようになってくるんじゃないでしょうか〜。怖いですね〜。
とはいえ、ファイルを見て、ざっくり何をしようとしているのかがわかったり、どうやって動いているのかということを知っているのと知らないのでは天と地ほどの差があります。
無知は恐怖ですから。行動が鈍ってしまいます。
そんなわけで、普段はアプリケーション側のエンジニアだからあんまりインフラわからんよ!って人にはおすすめな1冊だと思いました。
特に、ミドルウェアがいまいちよくわからんとか、そもそもdockerとdocker-composeって違いは何?とかdockerを感覚で使いすぎてちょっとした不安を覚えてるというような人は確実に損しない内容かなと!
第2版も出ているようですが、そっちは全く目を通していませんので触れないようにしようと思います。
ただ、Dockerは開発スピードも早く、数年立ってしまうと異なることもあると思うので、使い方は都度最新情報をキャッチアップしないとですね〜
以上、インフラを何も知らないPHPerがDocker教科書を読んでみたら、得るものがたくさんあったという話でした。
おしまい!
コメント