ランサーズ等のサービスを開発・運用する中で得た知識やノウハウを紹介しています。

Labels:  AWS, CakePHP, EC2, Nginx, PHP, PHP-FPM, RDS, イベント/登壇 投稿者:kanazawa

PHPカンファレンス福岡 2017に登壇しました

インフラエンジニアの金澤です。

2017/06/10(土)に、PHPカンファレンス福岡に登壇させていただきました。

今回、30分枠とLT枠(5分)の2枠を採択していただきました。

登壇内容

CakePHP 1.3 + PHP 5.3 → CakePHP 3 + PHP 7 移行を決めた話

Dホール/16:15〜16:45 (30分)

事前に、概要をエンジニアブログで公表させていただいていたのですが、思いのほか反響がありました。
(特に、CakePHP 1.3 → 3 への移行に関しては賛否両論あり、参考にさせていただきました)

バージョンアップは以下のフェーズに分けて計画しています。

Apache + mod_php + PHP 5.3 + CakePHP 1.3
↓(第1フェーズ)
Nginx + PHP-FPM + PHP 5.3 + CakePHP 1.3
↓(第2フェーズ)
Nginx + PHP-FPM + PHP 5.6 + CakePHP 1.3
↓(第3フェーズ)
Nginx + PHP-FPM + PHP 5.6 + CakePHP 2
↓(第4フェーズ)
Nginx + PHP-FPM + PHP 5.6 + CakePHP 3
↓(第5フェーズ)
Nginx + PHP-FPM + PHP 7.x + CakePHP 3

現在、第2フェーズの最中です。

PHP 5.6のバージョンアップまでは、できそうな手ごたえを感じていますが、問題はCakePHPのバージョンアップです。
ここをどのように行うか、今も議論中で、会場の皆さんにもアドバイスをいただきたい旨を話しました。

最後、時間が少し余ったため、その場で質疑応答の時間としていただき、CakePHPのバージョンアップ経験者の方々から様々なアドバイスをいただきました。

  • CakePHP 2 → CakePHP 3の移行スクリプトはそれほど期待できない
  • UTがSimpleTestからPHP Unitに変更されるのをどう対応するか
  • 経験者の方々からの移行工数の目安

など、これからぶつかるであろう壁について、予め確認することができて良かったです。

※ブログの反響を受け、詳細な質問に答えられるように、PHPエンジニアの上野にも参加してもらいました。上野自身もかなり収穫があったようです。

WHERE 1 = 1

Fusicホール/17:00〜17:45 ライトニングトーク(各5分)

質疑応答(Ask the Speaker)でも盛り上がっていたのですが、LTは2番目の発表だったため、切り上げて急いでFusicホールに向かうことに。

間髪入れず、次の発表となり、緊張はしなかったのですが、時間がなくてあっという間に5分が過ぎてしまいました。
銅鑼が鳴り焦って帰って来たら、マイクを持って帰ってしまう失態(笑
LTもリハーサルしておくべきでした。またどこかで再チャレンジしたいです。
でも、なんとか伝えたいとこまでは伝えられたと思います。

反響としては、「面白かった」ではなく、「恐ろしい話だった」というもの多かったと思います。
会場の方々も、CakePHPでコーディングしている方々は多く、やはり他人事ではないのだと感じました。

こちらはスライドはアップできないのですが、
一番伝えたいことは、CakePHPの以下のバグを放置しないことです。
CakePHP generated UPDATE query with WHERE 1 = 1

このバグは2014/7にFixされていますので、
該当バージョンの方は速やかにアップデートしておくことをお勧めします。
https://github.com/cakephp/cakephp/pull/3959

※CakePHP 1.3側も、1.3.21 でFixされています。
https://github.com/cakephp/cakephp/commit/41082b1

懇親会

まず、LTの話題で盛り上がりました。
開発環境で起こったことがあるという話も聞き、表には出てこなくても、やっぱり同じ経験をしている方もいるのだと思いました。

そして、CakePHPのバージョンアップについて、引き続き熱い議論が繰り広げられました。
今後のバージョンアップ方法について、考えている方法をいくつか提案しましたが、その良し悪しについても極めて論理的にアドバイスを頂きました。
自分のサービスであるかのようにアドバイスしていただいた、Fusicさんや有識者の方々に深く感謝いたします。

特に、CakePHP 2 → CakePHP 3 へのバージョンアップは、フレームワークを別なものに変更するくらいに考えたほうがよく、このタイミングで、別なフレームワークに移行する方も多いとのことでした。

※この話を聞き、バージョンアップ計画としては、PHP 5.6 + CakePHP 2 までできたら、(CakePHP 3ではなく)先にPHP7.x化を着手した方が良さそうだなーという感触です。

福岡の参加者で、ランサーズを使っている方が多かったのも意外な驚きでした。
フリーランサーや学生さんが、ランサーズを知っていて、私たちのセッションを楽しみにしていただいてたことを聞き、嬉しかったです。

最後に

今回、登壇者という形で参加させていただきましたが、参加者としても非常に勉強になり、刺激を受けたイベントでした。特に、今回、PHPのバージョンアップをテーマにしたセッションが他にもあり、参考にさせていただいた内容も多かったです。

CakePHP 2 → 3 への移行がツラいということは身に染みて分かりましたが、それでもチャレンジしたいという気持ちも残っていますし、アドバイスいただいた方々はじめ、ランサーズがCakePHP 3までできるのか、興味深く見守ってもらえると感じました。

まずは、PHP 5.6 + CakePHP 2 まで、確実にバージョンアップしたいと思います。
次の日に、CakePHP 1.3 → 2の移行スクリプトを検証を開始してしまうくらい、テンション上がってしまいました。

お知らせ

CakePHP 3.4 クックブック & ソースコードリーディング

CakePHPの最新版を勉強しておく目的で、3月よりソースコードリーディング会を始めました。

2017/6/22(木)に第3回目を行います。

第3回 CakePHP 3.4 クックブック & ソースコードリーディング

社外からの参加者も募集しています。興味のある方は是非ご参加ください!

エンジニア募集中!

ランサーズでは、バージョンアップのプロジェクトに協力していただけるエンジニアを募集しています。

PHP/CakePHP大規模なバージョンアップを推進するエンジニアを募集!

本プロジェクトに興味を持った方と、是非一緒に推進したいです!

※もちろん、プロダクト成長させていくエンジニアも募集しています!

詳しくは↓から

ランサーズではサービスを成長させてくれるエンジニア、デザイナーを募集しています!
ご興味がある方は、以下URLよりご応募ください。

PHPエンジニア
Rubyエンジニア
フロントエンドエンジニア
インフラエンジニア
新卒エンジニア
その他採用情報

関連記事

thumbnail
プログラミング言語Go読書会#3(1.3-1.6)[2017/03/29]

どうも、ameshoです。 先日Lancersで開催された「Go 読書会 #3」の記録をQiitaに書きました。 http://qiita.com/amesho/items/0d2ea220a1ee11019759 よろしくお願いします。

CakePHP 3 のマイナーバージョンを調べる方法あれこれ

田園都市線のあざみ野駅、つくし野駅、つきみ野駅が、ときどき分からなくなる nakajiman です。 知らない誰かの CakePHP 3 環境を覗くとき、マイナーバージョンってどうやって調べてますか~ってはなしです。 VERSION.txt を見る Confi …

thumbnail
Web系ベンチャー各社の開発体制・開発プロセスについて | Weekdayランサーズ勉強会

こんにちは、ランサーズのtomohiroです。 ランサーズでは、自社で開催する勉強会で、 『WeekendLancers(週末ランサーズ)』というイベントを開催してきたのですが、少しご無沙汰になっていました。今回改めて再開しようと調整した結果、平日の夜(4月2 …