Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
今からでも間に合うphp5.5からphp7.2にバージョンアップした話 #phpcon
Search
kosa3
December 15, 2018
Technology
5
1.7k
今からでも間に合うphp5.5からphp7.2にバージョンアップした話 #phpcon
PHP Conference 2018でのLT会登壇資料です。
kosa3
December 15, 2018
Tweet
Share
More Decks by kosa3
See All by kosa3
3ヶ月でphp5.5から7.2にバージョンアップした現在と今後の向き合い方 #PHPerKaigi 2019
kosa3
1
3.6k
Other Decks in Technology
See All in Technology
Operating Operator
shhnjk
1
600
IPA&AWSダブル全冠が明かす、人生を変えた勉強法のすべて
iwamot
PRO
2
170
面倒な作業はAIにおまかせ。Flutter開発をスマートに効率化
ruideengineer
0
270
60以上のプロダクトを持つ組織における開発者体験向上への取り組み - チームAPIとBackstageで構築する組織の可視化基盤 - / sre next 2025 Efforts to Improve Developer Experience in an Organization with Over 60 Products
vtryo
2
370
無意味な開発生産性の議論から抜け出すための予兆検知とお金とAI
i35_267
6
13k
CDKTFについてざっくり理解する!!~CloudFormationからCDKTFへ変換するツールも作ってみた~
masakiokuda
1
170
Tokyo_reInforce_2025_recap_iam_access_analyzer
hiashisan
0
190
Reach American Airlines®️ Instantly: 19 Calling Methods for Fast Support in the USA
flyamerican
1
170
タイミーのデータモデリング事例と今後のチャレンジ
ttccddtoki
6
2.4k
LangChain Interrupt & LangChain Ambassadors meetingレポート
os1ma
2
320
american aa airlines®️ USA Contact Numbers: Complete 2025 Support Guide
aaguide
0
310
〜『世界中の家族のこころのインフラ』を目指して”次の10年”へ〜 SREが導いたグローバルサービスの信頼性向上戦略とその舞台裏 / Towards the Next Decade: Enhancing Global Service Reliability
kohbis
2
310
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
430
65k
The Cost Of JavaScript in 2023
addyosmani
51
8.5k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Designing Experiences People Love
moore
142
24k
Facilitating Awesome Meetings
lara
54
6.4k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
50
5.5k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
690
Building Flexible Design Systems
yeseniaperezcruz
328
39k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Transcript
今からでも間に合う php5.5からphp7.2に バージョンアップした話 菅原 佑太 / kosa3 株式会社ウエディングパーク
・結婚・婚約指輪の口コミサイト 「Ringraph」の運用・開発責任者 ・サーバーサイドエンジニア ・Serverless Framework, Nuxt.js勉強中 菅原 佑太 株式会社ウエディングパーク 新卒3年目/チーフエンジニア
kosa3
・ウエディングパークの姉妹サイト ・2015年 9月からサービススタート(3歳) ・クチコミ数2万件以上 ・php + CodeIgniterで構成
それは突然のことでした…
「社内で実施している セキュリティチェックで 1つお願いしたいことがあるんだが...」 上司
「なんですか?」 ぼく
「PHPのバージョンアップを お願いしてもよいかな?」 上司
「いつまでにですか?」 ぼく
「3ヶ月くらいで…」 上司
「ちょ、調査します!!!」 ぼく
None
既に2016年でサポート終了
今回あげるバージョンは7.2
早速、工数見積もり調査を開始
phpの公式ドキュメントから 移行について洗い出し、 該当するか調べる 調査 その1
None
大体つまずきそうなところは分かった!
Docker環境を作り、 phpのバージョンをあげて検証してみる 調査 その2
$ docker-compose up
None
まぁまぁここまでは想定内… きっと他のミドルやモジュールの 関係だろう
調査結果
・Codeigniter Framework ・CentOS ・Apache ・node.js ・ruby ・composer ・mod_small_light module ・mcrypt
module ・その他モジュールやクライアントライブラリなど PHP以外に必要なバージョンアップ
None
3ヶ月で終わるのこれ…
急遽エンジニア2人増員
・動くようにする ・ログなどのエラーが出ないようにする ・リファクタリング(コードレビュー負荷軽減、 余計なロジック周りのテストの影響範囲を抑える) やるべきこと やらないこと
バージョンアップPJでの課題3選 ・暗号化モジュールmcryptの完全非推奨 ・画像リサイズmod_small_lightのアーキテクチャ変更 ・既存システムの不具合
バージョンアップPJでの課題3選 ・暗号化モジュールmcryptの完全非推奨 ・画像リサイズmod_small_lightのアーキテクチャ変更 ・既存システムの不具合
・php7.2からmcrypt暗号化モジュールが完全非推奨 => 全てOpenSSLに変更 mcryptの完全非推奨
mcryptよりOpenSSLの方が処理速度も良いらしい 【参照】 http://yut.hatenablog.com/entry/20140228/1393543543 mcryptの完全非推奨
バージョンアップPJでの課題3選 ・暗号化モジュールmcryptの完全非推奨 ・画像リサイズmod_small_lightのアーキテクチャ変更 ・既存システムの不具合
・mod_dimsなど他モジュールで代用 ・コンテンツサーバーを用意 ・serverless でリサイズ関数を作成する 画像リサイズmod_small_lightのアーキテクチャ変更 mod_small_lightの後継者探し (サーバー負荷も抑えたい)
・mod_dimsなど他モジュールで代用 ・コンテンツサーバーを用意 ・serverless でリサイズ関数を作成する 画像リサイズmod_small_lightのアーキテクチャ変更 Apache2.4でmod_small_lightの後継者探し (ついでにサーバー負荷も抑えたい) =>姉妹サイトの「DRESPIC」がlambdaでの 画像リサイズを導入していたので横展させてもらう
アーキテクチャ
バージョンアップPJでの課題3選 ・暗号化モジュールmcryptの完全非推奨 ・画像リサイズmod_small_lightのアーキテクチャ変更 ・既存システムの不具合
・全体に及ぶ影響から全範囲を開発・テストする ・意図せぬ不具合を発覚(Sentry, 監査) ・修正 & 報告書 => 工数に入れていない&対応に時間がかかる 既存システムの不具合
まとめ
よかったこと ・PJ開発ルールの統一 ・ミドルのバージョンをモダンにできた ・WAF、CloudFrontなどアーキテクチャを追加 ・SEO対策、パフォーマンス施策など打てた ・php-cs-fixerを導入し、コードの統一した ・テストコードを導入し、CircleCIで自動テストを運用できた
課題だったこと ・全体工数見積もりの算出 ・既存システムの不具合にかかるリソースコスト ・現行システムの運用案件の並行開発
最後に
タイトなスケジュールでも 事前にやることやらないことを 明確化することで最低限のリソースで 進めることができました (今回だけかも…)
でもやっぱり バージョンはこまめにあげましょう
ご静聴ありがとうございました