RustのBorrow Checkerと格闘し、KubernetesのYAML地獄を抜け、TerraformでState管理に頭を抱える。
個人開発において、 オーバーエンジニアリング です!
Perlから始まり、Java、Kotlin、Rust、そしてReact/Next.jsと、あらゆるモダン技術を渡り歩いてきましたが、私が辿り着いたのは作りかけのアプリケーションばかり。
今度こそ私は間違えない!
コンテナではなく、あえて素のPHPなのか。技術的負債ではなく「技術的資産」としてのPHP戦略について、私の視点で解説します。
技術遍歴と「敗北」の歴史
まず、私の悲しい歴史を紹介します。
PerlのCGI時代を経て、PHPの簡便さに触れ、その後は型安全とパフォーマンスを求めて旅に出ました。
Javaの冗長さに絶望し、KotlinのSyntax Sugarに感動し、最終的には Rust に辿り着きました。「メモリ安全性」と「ゼロコスト抽象化」は、エンジニアとしての美的感覚を極限まで満たしてくれました。
フロントエンドも同様です。地獄のバニラJSを経て、jQueryをダサく感じ、Reactの宣言的UIに移行し、TypeScriptで型パズルを解くことで昇天する日々。
だが、ある時ふと我に返りました。
私は、インフラの世話をするためにコードを書いているのか?
Docker Imageの軽量化、マルチステージに数時間を費やし、EKS(Kubernetes)のアップグレード計画に悩み、NAT Gatewayの料金に枕を濡らす。
「動けばいい」だけのアプリケーションに、私は何をしているんだ?
AI時代にコードの定義が変わった
現代の開発フローにおける最大のパラダイムシフトは、 「コーディングの主体がAIになった」 こと。
Claude CLIやGemini CLIにプロンプトを投げれば、コードは一瞬で生成されます。
ここでRustの「コンパイラが人間に厳しい」という特性が、逆にボトルネックになります。
AI生成コードにおいて、人間がBorrow Checkerのエラーを修正する時間は無駄です。動的型付け言語の「ランタイムで動けば正義」という緩さは、AIとのペアプロにおいて圧倒的なスピードを生みます。
だからこそ、 PHP なんです(爆)
なぜ「PHP + レンタルサーバー」が最強のアーキテクチャなのか
ここでいうPHPは、Laravelとかいう、私が使ったこともないフレームワークでガチガチに組む話ではありません。もっとプリミティブな、あるいは軽量フレームワークを用いたミニマムな構成です。
1. デプロイパイプラインの極小化 Rsync 祭り
CI/CDパイプライン? Blue/Greenデプロイ?
個人開発の初期フェーズにおいて、それらは過剰です。
- モダン構成 : Git push -> CI (Test/Build) -> Container Registry -> K8s Rolling Update -> Pod起動待ち(Cold Start含む)
- PHP構成 : AIが書く ->
rsync-> 即反映
よくみたら、モダン構成何してんのかわからんなw
このスピード感。Rsyncなら差分転送で一瞬です。超原始的だけど。
Dockerコンテナのビルド時間を待つ間に、PHPなら本番環境で動作確認が終わっています。
2. コストパフォーマンスという名の「非機能要件」
AWSやGCPで、まともなRDBMSとロードバランサを用意してごらんなさい。最低でも月額数千円〜数万円が溶けます。
対して、日本の ロリポップ! や エックスサーバー はどうでしょう。
- PHP-FPMのチューニング済み
- WAF標準装備
- MariaDB 込み!?
- nginx/Apacheの設定不要
これで 月額500円〜1000円 です。
これをクラウドで再現しようとすれば、VMインスタンスの管理コストだけで赤字になります。彼らは長年の運用で、PHPを動かすことに特化した「究極のマネージドサービス」を提供しています。
大丈夫、流行ってからRustに書き直せ😄
「でも、PHPじゃスケーラビリティが……」
おまいらはすぐにそう言う。だが聞きたい。 おまいらの個人サービス、秒間何万リクエスト来るんですか?
- AIにPHPを書かせ、共用サーバーにデプロイ。ランニングコストは月500円。
- サービスが当たり、サーバーが悲鳴を上げ始める。収益が発生する。
- ここで初めて、稼いだ金とAIを使ってRustやGoにフルスクラッチ し、コンテナ化してK8sに移行する。
最初から最終構成で作るのは、YAGNIの原則に反します。
「動くコード」を最速で市場に出すことこそが正義です。
まとめ
もし、コンテナホスティングサーバーが月500円で、RDBMS込みで、コールドスタートなしで動くなら、私だってRustがいいです。あいつは最強です。でも現実はそうじゃないです。
今の私の開発フローはこう。
- AIに要件を伝える。
- PHPコードを出力させる。
- XサーバーにRsyncする。
これ以上に「速く」、そして「安く」仮説検証を回せるアーキテクチャがあるなら教えてください。
泣きながら unwrap() を書くのはもうやめましょう。私たちが必要としているのは、美しい型定義ではなく、 ユーザーに使われるプロダクト なんですから。
ただいま……PHP。いじめてごめんね。