概要
結婚準備クチコミ情報サイト「Wedding Park」は今年でクチコミサービス開始から20周年を迎えたウェブサイト。
このレガシープロダクトでは、幾度もPHPで動くシステムのバージョンアップやシステムリプレイスのプロジェクトが生まれてきました。
・PHPのバージョンアップ
・Laravelフレームワークへのリプレイス
・オンプレサーバからAWSへの移行
・コンテナ化 など
システム運用者として定期的にアップデートしていきたい想いと、長期にわたる大規模プロジェクトとなり頻度高く実施ができない。そんな悩みとぶつかっていました。
その歴史の中で約10年、アプリケーションエンジニアとSRE、各視点で向き合って運用・開発してきた経験を基に、
・これまでのシステム改善の変遷と知見
・運用と開発視点でのプロダクトとの向き合い方
・新たな価値を継続的に提供し続けるための長期計画
をご紹介します。
所感
サービスを開発、運用保守をしている身としては、サービスには長く続いて欲しい。
我が子が、活躍する姿を長く見ていたいですよね。
ネックになる運用保守。バージョンアップ、セキュリティアップデートは、絶対についてまわるもの。
そういう面において、やはり実際の経験談というのは、とても参考になります。
印象に残った言葉として、「再現性のある開発体制」、というのがあるのですが、本当、わかりみが深いです。
自分たちのプロダクトでも最近、コンテナ化しk8sで管理した事が運用保守面においてメリットデカかったね、という話をしたのですが、本当、先のことを考えた柔軟で再現性のある開発。
難しいですけど、とても重要ですね。
スライド
受講メモ
## 大規模リプレイス
### 課題
システムの老朽化 5年経過
つかわているか不明瞭な機能
仕様に明るい人が少ない
当時の事業拡大を支える開発基盤を目指したい
### 実施内容
php5 -> 7、zend frameworl1 -> Laravel
機能整理と断捨離
共通モジュール導入で服機能の再利用性向上
APIのPHP->goリプレイス
APIドキュメントの作成やテストコードの作成
## AWS移行
### 課題
オンプレサーバー運用)
複数のアプリが相乗り
サーバー構築工数が大きい
システム料休暇
→単一障害点
### 解決
AWS移行
## コンテナ化
アプリケーションの肥大化
アップデートの手間
サーバー設定依存のアプリ
サーバー構築の手間
### 解決
コンテナ化
IaCの実現
## これまでの経験を経て
構成変更をはじめはしぃシステム構成になった
高頻度なアップデートができない
毎回長期プロジェクトになる
再現性のある開発体制
年月を経て、人員構成は変わっていく
ノウハウの継承
俗人化を回避する