案件を一つ増やすたび、まっさらなキッチンを一から建てていた話

新しい案件を始めるたびに、動く環境を手作業で組み上げていた。
毎回同じ手順を、毎回はじめてのようにやり直していた。
手順そのものを一本のスクリプトにしてから、増やす作業が数分で終わるようになった。

前回、外からの入り口(玄関)は一つにまとめて、その奥に案件ごとのキッチンを並べている、という話を書いた。
ここからは、そのキッチンを増やす作業そのものについて。
新しい案件が決まるたびに、僕は同じ作業を手でくり返していた。
設定ファイルを前の案件からコピーして、名前を書き換えて、抜けを探して。
慣れていても、毎回どこかで一つは書き換え忘れる。

キッチンごとに、コンロの型番が違う

案件が増えると、少し困ったことが起きた。
古くから続いている案件は古いPHPの版で動かないと困るし、新しく始める案件は新しい版でないと使いたい機能が入らない。
同じパソコンの中に、違う版のPHPを同時に共存させたい。
ふつうにインストールする方法だと、パソコンに入れられるPHPは基本的にひとつだけで、案件を切り替えるたびに入れ替える羽目になる。

コンテナの場合、この悩みがそもそも起きない。
キッチンごとに「このバージョンのPHPで動かす」という指定を持たせられるので、隣のキッチンが古い版でも、こちらは新しい版で動く。
設定ファイルの中の一行を変えるだけで、その案件専用のコンロが用意される。
パソコン全体には手を触れない。

手順をスクリプトにした

案件を増やすときにやることを、あらためて書き出してみた。

ひとつ、案件専用のフォルダを作る。
ふたつ、そこに設定ファイルの雛形を置いて、案件名とポート番号を書き換える。
みっつ、玄関役の設定に「この名前が来たらここへ」という一行を足す。
よっつ、自分のパソコンの名簿(hosts)にも、案件名を一行足す。
いつつ、データベースに、その案件専用の棚を作る。

五つとも、毎回やることが決まっている。
決まっているなら、人間がやらなくてもいい。
この一連の流れを一本のスクリプトにまとめて、案件名を一つ渡すだけで全部終わるようにした。
いま新しい案件を始めるときにかかる時間は、数分程度だ。
前は半日仕事になることもあった。

雛形を一箇所で直せるようにした

もうひとつ効いたのが、雛形そのものを一箇所にまとめたことだった。
最初の頃は、雛形をコピーして案件ごとに置いていたので、雛形に不具合が見つかっても、すでにある案件全部を一つずつ直して回る必要があった。
いまは雛形を触ると、その雛形を参照している全案件に効くようにしてある。
ただし、案件ごとの事情で雛形と違う動きをさせたい場面もある。
そういうときは、雛形そのものではなく、案件側に用意した拡張の差し込み口から手を加える。
雛形はできるだけ触らない、という決め事にしてから、直したつもりが別の案件を壊す事故が減った。

次は、鍵マークの話

ここまでで、玄関とキッチンをそろえる仕組みはひととおり書けた。
最後に残っているのが、ローカルで開いているだけなのにブラウザの鍵マークが点く、あの仕組みについて。
次回、そこを書く。

スタンプラリーに挑戦する 行った場所・気になる場所は、現地チェックインでスタンプに残せます。 みんなのコースを見てみる 会員が作ったスポット巡りのコースを都道府県から探せます。自分だけのコースも作れます。 運営者の個人noteも書いています AI活用やサイト運営で気づいたことを、もう少し個人の視点で掘り下げています。

※運営者が個人で書いているnoteです。

技術ブログ一覧へ戻る