Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20年続くレガシープロダクトに10年携わったエンジニアが思う、システム長期運用のカギ

Azmen
December 21, 2024
450

 20年続くレガシープロダクトに10年携わったエンジニアが思う、システム長期運用のカギ

Azmen

December 21, 2024
Tweet

Transcript

  1. ©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
  2. 運用・保守にかけるコストを下げる プロダクト維持のためにはシステムの定期保守 が必要 ・セキュリティリスク回避 ・開発者体験向上、開発人材確保 ⇒ 定期保守をいかに短く実行するか Application Middleware OS Hardware

    ハードウェア寿命 5年程度 AmazonLinux 5年程度 Node 2年程度 PHP 2年 MySQL 5年 デザイン 5年程度 Laravel 2年 ライフサイクル(寿命) ※プロダクトを構成する様々な要素は 2~5年スパンでアップデート必須 14
  3. 私のウエディングパークでの歴史 株式会社ウエディングパーク入社 パフォーマンスチューニングチーム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
  4. 私が関わった「Wedding Park」サイトのシステム変遷 クチコミサイト スタート MySQL バージョンアップ APIリプレイス PHP/Laravel リプレイス PHP

    バージョンアップ AWS移行 ・・・ 基盤改善 2004 2015 現在 コンテナ化 MySQL バージョンアップ システム リニューアル ・・・ nodeバージョン アップ 18
  5. 見えてきた課題とアプローチ(リプレイス) サイトオープン MySQL バージョンアップ APIリプレイス PHP/Laravel リプレイス PHP バージョンアップ AWS移行

    ・・・ 基盤改善 2004 2015 現在 コンテナ化 MySQL バージョンアップ システム リニューアル ・・・ nodeバージョン アップ 20
  6. リプレイス PJ 【当時の課題】 システム老朽化 使われているか不明な機能 仕様に明るい人が少ない 当時の事業拡大を支える開発基盤を目指したい 【実施内容】 PHP5->7 &

    Zend Framework1->Laravel5リプレイス 機能整理と断捨離 共通モジュール導入で複数機能での再利用性向上 APIのPHP->Goリプレイス APIドキュメントやテストコード作成 返却するデータ構造の統制 21
  7. 見えてきた課題とアプローチ( AWS移行とバージョンアップ) サイトオープン MySQL バージョンアップ APIリプレイス PHP/Laravel リプレイス PHP バージョンアップ

    AWS移行 ・・・ 基盤改善 2004 2015 現在 コンテナ化 MySQL バージョンアップ システム リニューアル ・・・ nodeバージョン アップ 22
  8. 見えてきた課題とアプローチ(コンテナ化) サイトオープン MySQL バージョンアップ APIリプレイス PHP/Laravel リプレイス PHP バージョンアップ AWS移行

    ・・・ 基盤改善 2004 2015 現在 コンテナ化 MySQL バージョンアップ システム リニューアル ・・・ nodeバージョン アップ 24
  9. 見えてきた課題とアプローチ(今後の挑戦) サイトオープン MySQL バージョンアップ APIリプレイス PHP/Laravel リプレイス PHP バージョンアップ AWS移行

    ・・・ 基盤改善 2004 2015 現在 コンテナ化 MySQL バージョンアップ システム リニューアル ・・・ nodeバージョン アップ 32
  10. 長期運用できるシステムサイクル実現に向けて オンプレ AWS化 コンテナ化 小さく早く変化 する体制づくり 再現性のある開発体制の実現への取り組み 中・長期的リリース計画  ⇒ 変更量を小さく・細かくサイクルを回す

    手間を削減し、変更しやすい仕組みづくり  ⇒ 長期で再現性のある、変更のリードタイム短縮   (仕様キャッチアップ、テストフェーズ)  ⇒ 更にアップデートしやすい仕組へ   (CICDなどでの自動化、安心へ) ・モノリシックの解消 ・ローカル開発の実現 ・IaCでさらに構成管理/変更容易 ・インフラ構成変更容易 33