こんにちは!trebyです(遅刻ごめんなさい)。
職業エンジニア生活も5年目ということでエンジニアを取り巻く状況も変わってきているな、と思っています。顕著だったところはいくつかあって、例えばフロントエンドの変遷の速さ(最近は多少落ち着いていますが)とか、市場で高く売れるスキルセットとかですね。
開発環境を取り巻くもそんな変化が大きかったものうちの一つだと思っていて、それこそ当初はVagrant上とかMacbookなどlocal環境上に構築するのがdockerが使われるのも珍しくなくなってきています。
筆者が勤めている会社では開発環境含めdocker化されていて、その話は開発しやすいRails on Docker環境の作り方などに書かれています(そのままQiitaにある記事を参照できるの超便利)
勤務先でdockerが使われていることによるメリットは何よりも自分で試して詰まった時のサンプルに容易にアクセスできることで、それによってすごく勉強させてもらっているところはあります。最近メインのサービスがRails5.1に上がったし良い会社。ステマです。
何事もそうなんですが、やっぱりdockerも(たとえ使えていたとしても)実際に手を動かしてみないと分からないことが多いな、と思っていまして、最近で言うと、ちょちょっと作ったお遊びのサービスの開発環境をdocker化してみてみました。
(Dockerfileをそれっぽく命名されている割に開発環境しかサポートしていないので、そこはProfessional Rails on ECSの壁打ちするかしら)
実際にハンズ・オンしてみて個人的に勉強になったな、と思っているところは耳触りの良い専門用語ではなくて割とプリミティブよりなところで自分の性質もあるのでしょうがそこは面白いな、と感じます。
例えば、
- 純粋にMac上でどうやってdocker使おうかという話でしたり(筆者はdinghyを使っています)
- コンテナを立てたりとか捨てたりとかするなら永続化したいデータどうすんねんという話でしたり(普通にvolume指定する)
- 1コンテナ1プロセス #とは(なるほど、それでdocker-compose)
- じゃあ本番環境での(会社ではECS使ってるけどkubernetesとどう違う?)
などなど。まだまだ勉強中のところも多いのですが、やってみて理解深まる部分も多いな、と思っています。
(唐突に昨日のShinjuku.rbでのLT)
docker使えるの普通だよねって言われる世界になったけど、「どうしようどうしよう」となっている筆者のような悩みを持たれている方におかれましては、参考にしていただきつつ、ぜひともに研鑽していけますと幸いです!