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
20年続くレガシープロダクトに10年携わったエンジニアが思う、システム長期運用のカギ
Search
Azmen
December 21, 2024
1.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20年続くレガシープロダクトに10年携わったエンジニアが思う、システム長期運用のカギ
Azmen
December 21, 2024
Featured
See All Featured
How to build a perfect <img>
jonoalderson
1
5.7k
The Invisible Side of Design
smashingmag
302
52k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
330
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.6k
RailsConf 2023
tenderlove
30
1.5k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
180
First, design no harm
axbom
PRO
2
1.2k
エンジニアに許された特別な時間の終わり
watany
107
250k
Transcript
20年続くレガシープロダクト に10年携わったエンジニアが思 う、システム長期運用のカギ 株式会社ウエディングパーク 東 和樹 • 2024 年
12 月 22 日 PHP Conference Japan 2024
アジェンダ ・自己/会社/サービス紹介 ・サービスと私の歴史 ・運用と挑戦で見えてきた課題とアプローチ ・まとめ 2
Xで、ご感想の投稿 お待ちしてます! #phpcon #track5 3
自己/会社/サービス 紹介 4
自己紹介 東 和樹(あずめん) 1990年生まれ 趣味:料理、お菓子作り、 Vtuber推活 2015年 ウエディングパーク入社 PHPer歴10年 ・バックエンドエンジニア ・SREチーム
・テックリード 好きなPHP8のアップデート Named Arguments x: @AzMen29759244 5
©WEDDING PARK CO., LTD. 経営理念 2018年12月 桂由美 ブライダルエディター賞 6
©WEDDING PARK CO., LTD. ビジョン 2018年12月 桂由美 ブライダルエディター賞 7
©WEDDING PARK CO., LTD. ウエディングパークの歴史 6月 結婚準備クチコミ情報サイト「Wedding Park」オープン 2004 7月 アドテクノロジー専門部署「WedTech推進室」 (現デジタルマーケティング本部)を設立
2014 3月 海外・リゾートウエディングのクチコミ情報サイト「Felicita」 (現Wedding Park海外)オープン 2009 1月 フォトウエディング・前撮りのクチコミ情報サイト「Photorait」オープン 6月 データ分析プラットフォーム「DAP」スタート 9月 婚約・結婚指輪のクチコミ情報サイト「Ringraph」オープン 2015 1月 結婚衣装選びのクチコミ情報サイト「DRESPIC」 (現Wedding Park DRESS)オープン 2017 10月 「データ推進室」設立 2018 5月 DX専門部署「DX推進室」(現DX本部)設立 2020 当社は「サイバーエージェントグループ」として、2004年に日本初・結婚式場のクチコミサイトをリリース、世の中にイノ ベーション起こしました。その後も、デジタル×ウエディングの領域で、常に新しい技術や領域にチャレンジし続けています。 4月 「Wedding Park D-Creative School」プロジェクト発足 2021 2022 10月 カップル向け満足度調査サーベイ「survox」リリース 2024 11月 結婚式費用の超リアルなシミュレーションサービス「mieruupark」リリース 8
©WEDDING PARK CO., LTD. ウエディングパークのサービス|専門メディア 結婚準備クチコミ情報サイト 海外・リゾートウエディングのクチコミ情報サイト 結婚衣装選びのクチコミ情報サイト フォトウエディング・前撮りのクチコミ情報サイト 婚約・結婚指輪のクチコミ情報サイト
結婚の各領域に特化した専門メディアを複数運営 デジタル技術を活用し、カップルと様々なウエディングサービスのベストマッチを実現します 9
©WEDDING PARK CO., LTD. ウエディングパーク的「デザイン経営」の推進 社会のニーズを掴む「視点」・社会のニーズから考える「発想」 ⇄ 事業運営 デザイン=「社会にとって必要なものはなにか」という視点と発想 全社員が世の中にとって必要とされるありかたを考え、カタチにしていこうとしています 10
©WEDDING PARK CO., LTD. 業界への取り組み(一部) サービス・組織 プロジェクト・イベント 結婚が多様な幸せを叶えていく新しい時代を創るために デザイン思考を活用したサービス・組織づくりや、社会・業界へ向けた取り組みを複数行っています 11
©WEDDING PARK CO., LTD. エンジニア組織の指針 クリエイターが、デザイン思考と具現化力で、事業成長をリードする 12
さまざまな取り組みを多く実行するためには? それらのリードタイムを短くする & 現在の事業を支える 運用・保守にかけるコストを下げる (※品質劣化を限りなく抑える) 変化に強い Platformへ 挑戦しつづける チームのために
13
運用・保守にかけるコストを下げる プロダクト維持のためにはシステムの定期保守 が必要 ・セキュリティリスク回避 ・開発者体験向上、開発人材確保 ⇒ 定期保守をいかに短く実行するか Application Middleware OS Hardware
ハードウェア寿命 5年程度 AmazonLinux 5年程度 Node 2年程度 PHP 2年 MySQL 5年 デザイン 5年程度 Laravel 2年 ライフサイクル(寿命) ※プロダクトを構成する様々な要素は 2~5年スパンでアップデート必須 14
20周年となった結婚準備クチコミ情報サイト 「Wedding Park」 長期運用されてきたこのサービスは、現在も多く利 用いただいており、日々改修を進めている ここに10年携わった私の体験を基に、システムの 歴史と共に、長期運用に大事な考え方 を紹介しま す 15
プロダクトの歴史 16
私のウエディングパークでの歴史 株式会社ウエディングパーク入社 パフォーマンスチューニングチームJOIN ⇒ 一部PHP製APIのGoリプレイスでサイト速度パフォーマンス改善 2015 Wedding Parkの全システムに及ぶリプレイスプロジェクト APIのPHP -> Goへのリプレイス
PHP5.x/ZendFramework1 -> PHP7.x/Laravel5 AWS環境でのバージョンアップ 大規模リプレイス 会員基盤構築 Wedding Parkのサービス横断の会員基盤構築と会員統合 Wedding Parkの検索ロジックを担う検索エンジンの内製化 システム内製化 コンテナ化 SREチームJOIN 全社インフラの運用・構築 既存環境のterraformでのInfrastructure as a Codeの推進 Wedding Parkの機能追加/商品バージョンアップ MySQL8へのバージョンアップ ウエクリのバージョンアップ 動画レポートコンテンツ「ムビレポ」への生成AI活用事例導入 現在 システム運用保守の小さく早く回すサイクルづくり PHPバージョンアップ nodeバージョンアップ 17
私が関わった「Wedding Park」サイトのシステム変遷 クチコミサイト スタート MySQL バージョンアップ APIリプレイス PHP/Laravel リプレイス PHP
バージョンアップ AWS移行 ・・・ 基盤改善 2004 2015 現在 コンテナ化 MySQL バージョンアップ システム リニューアル ・・・ nodeバージョン アップ 18
見えてきた課題とアプローチ 19
見えてきた課題とアプローチ(リプレイス) サイトオープン MySQL バージョンアップ APIリプレイス PHP/Laravel リプレイス PHP バージョンアップ AWS移行
・・・ 基盤改善 2004 2015 現在 コンテナ化 MySQL バージョンアップ システム リニューアル ・・・ nodeバージョン アップ 20
リプレイス PJ 【当時の課題】 システム老朽化 使われているか不明な機能 仕様に明るい人が少ない 当時の事業拡大を支える開発基盤を目指したい 【実施内容】 PHP5->7 &
Zend Framework1->Laravel5リプレイス 機能整理と断捨離 共通モジュール導入で複数機能での再利用性向上 APIのPHP->Goリプレイス APIドキュメントやテストコード作成 返却するデータ構造の統制 21
見えてきた課題とアプローチ( AWS移行とバージョンアップ) サイトオープン MySQL バージョンアップ APIリプレイス PHP/Laravel リプレイス PHP バージョンアップ
AWS移行 ・・・ 基盤改善 2004 2015 現在 コンテナ化 MySQL バージョンアップ システム リニューアル ・・・ nodeバージョン アップ 22
AWS移行や各種バージョンアップ 【当時の課題】 オンプレサーバ運用 (単一障害点のHW故障、複数機能の障害) サーバ構築の工数大 システム老朽化 【実施内容】 AWS移行 単一障害点の解消 サーバ構築のリードタイム短縮
AWSでのMySQL、PHPバージョンアップ システム老朽化改善 サーバ複製でのバージョンアップ実行 23
見えてきた課題とアプローチ(コンテナ化) サイトオープン MySQL バージョンアップ APIリプレイス PHP/Laravel リプレイス PHP バージョンアップ AWS移行
・・・ 基盤改善 2004 2015 現在 コンテナ化 MySQL バージョンアップ システム リニューアル ・・・ nodeバージョン アップ 24
コンテナ化 【当時の課題】 アプリケーション肥大化、アップデートの手間 サーバ設定依存のアプリケーション構成 サーバ構築の手間(過去の設定値の管理や背景不明) 【実施内容】 コンテナ化 サーバ構成変更のオーバヘッド短縮 ローカル環境整備やバージョンアップで老朽化解消も実現 複雑なアプリケーション運用の解消実施
Infrastructure as a Codeの実現 設定値に関する経緯を残せる/再利用できる サーバ構築と変更のオーバヘッド短縮 25
長期プロジェクトを 幾多も越えて 26
実現されてきたこと 構成変更を始めやすい システム構成 システム構成変更容易性向上 (構成変更準備のオーバヘッド短縮) システム依存の緩和 (モノリシックの依存/サーバ固有設定緩和) 27
未だ残る課題 高頻繁なシステム変更の実施が できず、毎回長期のプロジェクト になる 28
未だある開発課題 頻繁にアップデート実施ができない ・対応が後手に回ることで膨大なアップデート内容となる ・アップデート実施影響の判断材料が足りてない ・日々の運用案件で小さい変更を含めることができない 毎回長期プロジェクトになる ・各機能の仕様のキャッチアップに時間がかかる ・各機能のドキュメントが引き継げていない ・テスト実行およびテスト準備が膨大 29
再現性のある開発体制が必要 30
再現性のある開発体制が必要 システムだけでなく開発体制の改善 がセットで必要 システム運用するのは、「人/組織」 長期運用すると、システムも変われば体制も変わる 。 属人化した仕様や構成など過去のノウハウが引き継げないこと でプロジェクトの長期化 =再現性のある開発体制が必要 常に、人/組織が、安心して決断できる状態へ
31
見えてきた課題とアプローチ(今後の挑戦) サイトオープン MySQL バージョンアップ APIリプレイス PHP/Laravel リプレイス PHP バージョンアップ AWS移行
・・・ 基盤改善 2004 2015 現在 コンテナ化 MySQL バージョンアップ システム リニューアル ・・・ nodeバージョン アップ 32
長期運用できるシステムサイクル実現に向けて オンプレ AWS化 コンテナ化 小さく早く変化 する体制づくり 再現性のある開発体制の実現への取り組み 中・長期的リリース計画 ⇒ 変更量を小さく・細かくサイクルを回す
手間を削減し、変更しやすい仕組みづくり ⇒ 長期で再現性のある、変更のリードタイム短縮 (仕様キャッチアップ、テストフェーズ) ⇒ 更にアップデートしやすい仕組へ (CICDなどでの自動化、安心へ) ・モノリシックの解消 ・ローカル開発の実現 ・IaCでさらに構成管理/変更容易 ・インフラ構成変更容易 33
最後に 34
まとめ 10年携わって考える システム長期運用に大事なカギ システムと開発体制の両面を常にアップデートする ⇒構成変更しやすいだけでなく実行しやすい状態へ 小さく早く、そして、未来に繋ぐ取り組みを ⇒変更して終わりではなく、今やっていることが未来で誰 かが繰り返さないように繋いでいく 35
ウエディングパークの スポンサーブースにもおりますのでお 気軽にお声がけください! 36