2019/12/01 に東京で行われた PHP Conference Japan 2019 - #phpcon にて、「Kubernetes で構築する PHP 開発環境」を発表してきました。
発表資料
- サンプルコード: https://github.com/shin1x1/laravel-k8s-dev-sample
- Togetter: https://togetter.com/li/1438089
Kubernetes を使って、PHP 開発環境を構築するという内容でした。デモでは、Mac に構築した Kubernetes クラスタを紹介して、Mac にあるソースコードを変更すると、Kubernetes クラスタ内で実行している PHP Pod で読み込めるということを紹介しました。PHP 開発では重要なことですね。
開発環境に特化した内容なので、本番等で使うときはまた違う点がありますが、いずれ開発環境を構築する際に参考になれば嬉しいです。
サンプルコードでは、Makefile を用意しているので、Kubernetes を自分の PC で動かしてみるサンプルとしても使えると思います。Docker Desktop の Kubernetes 機能を Enable にして試してみて下さい。
セッション前に参加者の方に挙手でアンケートを取ったのですが、Kubernetes を使っている方はわずか 10 人程度でした。実際のところは、まだまだ使われていないんだなあということと、それにも関わるず聞きに来られた方が多くいたということでその関心の高さもうかがえました。
Kubernetes on CircleCI による CI
元々の資料には入れていたのですが、時間の関係で発表前に削除したのが、この CI に関する部分です。公開資料には追加していますので、興味がある方は資料をご覧ください。 https://speakerdeck.com/shin1x1/php-development-environment-on-kubernetes?slide=26
CircleCI + Kubernetes の組み合わせで情報を探していると、Kubernetes クラスタは、GKE や EKS など外部にあって、それを CircleCI の中から、kubectl 等で操作するというパターンは多いのですが、CircleCI の中で Kubernetes を動かすというものは少なく、色々と試行錯誤を行いました。
基本は、minikube なり kind なりを入れれば良いという話なのですが、なぜか kubectl apply が失敗したり、クラスタ起動が遅かったりで、動くけど、まだまだ改善の余地があるというが今の印象です。
CircleCI 側で Kubernetes 環境が用意されていて、CI 時によしなに利用できるようになると嬉しいですね。
このあたり、みんながどうしているか聞いてみたいところです。
対話
自分のセッションがあるイベントでは、あまり他の方の発表は聞けないことが多いのですが、今回は前日にも発表があったこともあり、セッションに参加してもいまいち集中できなかったので、うろうろしながら、色々な方と話していました。
いつもはあまりいないスタッフ、スピーカー控室(和室)でゆっくりして、周りにいた方とお話ができたのも楽しかったです。場所自体がカンファレンスの喧騒からは切り離されたところなので、落ち着いて話ができるのが良かったです。
本当は、もっと話したい方もいたし、これまで接点が無かった方とも話してみたかったのですが、どうにも時間も体力も足りませんでした。またの機会にお願いします!
最近は、PHPの現場 をやっているおかげで、配信した内容が会話のネタになったり、ゲスト出演の依頼が話しかけるきっかけにもなったりしています。何人かの方に承諾して頂けたので、来年の収録が楽しみです。
さいごに
前日は PHPerKaigi(派生イベント)、当日は PHP カンファレンスということで、両イベントのキャラクタが違いが感じられました。PHPerKaigi は、参加者同士が交流しやすくする仕掛けが多く用意されてあり、主催側がそれを促していること。一方、PHP カンファレンスは、場は用意するので、あとはご自由にという印象でした。
もちろん、どちらが良い悪いという話ではなく、また規模感も参加費も何もかもが違うので単純には比較できないですが、2 日間で異なる雰囲気のイベントに登壇したので、その対比が面白かったです。
毎年ながら、あの規模のイベントをつつがなく運営されているのは本当にありがたい限りです。今年も楽しいカンファレンスをありがとうございました!