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

Labels:  CakePHP, PHP 投稿者:shin

ランサーズ開発ランチ(Lunchers#3) ~ねこもり高橋さん PHPバージョンアップ編~

エンジニアのshinです。
ランサーズでは4月から、ゲストを招いてランチを食べながら話をするランサーズ開発ランチ(Lunchers)という取り組みを実施しています。
5/16に実施した第3回の内容をご紹介します。

 

第3回のゲスト紹介

合同会社ねこもりの高橋邦彦(@kunit)さんをゲストに迎えて、PHPのバージョンアップの話をして頂きました。

きっかけ

昨年のPHPカンファレンス福岡で弊社の金澤が登壇することになり、事前にPHPバージョンアップの意気込みをブログにアップしました。
その際に多くの有識者の方々からありがたいコメントを頂いたのですが、その中で一番するどいコメントだったのが高橋さんでした。それがきっかけで弊社主催のCakePHP勉強会に参加頂いたりして情報交換するようになりました。
そして今回、ランサーズ開発ランチのゲストとしてお声がけしたところ快く引き受けてくださったという経緯です。

バージョンアップの話

ここからがお話し頂いた内容になり、そのときのスライドがこちらです。

バージョンアップの盛り上がり

  • PHP5.3のサポート期間が長かったこともあり、以前はバージョンアップのメリデメを考えたときにコストで断念することが多かった。
  • しかし、PHP7の登場で状況が変わった。言語の内部構造の見直しで効率化が行れ、大幅なパフォーマンスアップが実現。
  • サーバの台数を減らせるなどコスト的なメリットが見込めることがわかってバージョンアップに踏み切るところが増えてきた。

大幅なパフォーマンス改善

具体的なお話として、PHPバージョンアップを進めているBASE株式会社さんの発表スライドを使って、パフォーマンスがどの程度改善したかのグラフを紹介していただきました。
(高橋さんはBASE株式会社さんのPHPバージョンアップ作業に関われています)

こちらに記載がありますが、PHP5.3→5.6に上げた際のパフォーマンス改善が顕著に表れたそうです(P38)。
PHP5.5以上ではOPcacheというキャッシュ機構の恩恵を受けることができたことが大きく、その他の施策も含めると、処理時間が約4割減になったそうです!驚異的。
PHP7に上げたときもさらにパフォーマンスが改善して、サポートメンバーからも体感的にも速くなったと言われたそうです。

つらみ・注意点

実は自分たちが書いたコードは意外に素直なので、それほど書き換えは多くなく、フレームワークやライブラリの影響で書き換える方が多かったそうです。
注意点としては、PHPマニュアルの付録にあるバージョンごとの変更点は熟読しておくべきとのこと。
使っているエクステンションがどのバージョンまで対応しているかも確認しておく。memcacheとmemcachedのように移行が必要になるものもあるそうです。

ノウハウ

PHPのバージョン間の互換性は想像以上に高いことがわかったが、それで一気にあげようとすると対処する項目が積み重なってくるので、日々追従していくほうがおすすめ。
php7ccやPHP Compatibilityのような互換性チェックツールをかけて動く状態を作っておく。

さいごに

最後におっしゃっていた、「自分たちの都合に合わせてフレームワークを持っていく」という名言が印象的でした。
最新のバージョンに上げることで、エンジニアがPHPやフレームワークに対してPRを送るようになり、モチベーションが上がるという良いサイクルができそうです。

開発ランチ後に社内の参加メンバーにアンケートを取ってみたところかなり好評でした。

BASEさんのPHPバージョンアップについては、開発チームブログの方もご参照ください。

http://devblog.thebase.in/entry/2018/03/20/170050

ランサーズ開発ランチは、始めたばかりの取り組みですが、一緒に会話してランチをして頂けるゲストの方を募集しております。ご興味がある方はお気軽にご連絡ください。

 

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

PHPエンジニア
Rubyエンジニア
サーバーサイドエンジニア
SREエンジニア
フロントエンドエンジニア
その他採用情報

関連記事

[イベント報告] phpcon2017でのPHPクイズ ~答え合わせ編~

こんにちは、エンジニアの上野です。 先日行われたPHPカンファレンス2017でブースを出展して Lancers Top で使っているシステムを利用したPHPの問題(超難問)を出題しました。問題をかなり難しく作ってしまったため、答えを知りたいという声が会場でちら …

AWSでWordPressのスケールアウト

インフラエンジニアの金澤です。 今回は、AWS上のWordPressサーバーをスケールアウトするために行った手順について紹介いたします。 ランサーズで運用しているWordPressサービス ランサーズでは10以上のWordPressサービスをAWSで運用してい …

ランサーズ開発合宿2017@湯河原温泉おんやど恵

こんにちは。ランサーズの @sayaです。 先月末、湯河原温泉で第3回開発合宿をしてきたので、その模様をレポートします。 今回は幸運にも「湯かけまつり」という楽しいお祭りの開催と重なり、大いに盛り上がる合宿となりました。 テーマ 今回のテーマは「開発を最大化す …