メリークリスマス!ChatWork Advent Calendarもついにラストとなりました。
本日の記事はChatWork CTOの山本が担当です。
ChatWorkでは約3年半前に、PHPの独自フレームワークでつくられた大規模システムを、Scalaを使ってゼロベースでつくりなおすという決断をしました。
当時の記事:チャットワークの新しい開発言語とフレームワークを決める開発合宿を開催!その全貌を丸公開します。
その決断をした時に在籍していたScalaエンジニアは0人。まずブログで宣言してからスタートするという、なんとも無謀なプロジェクト進行ではあったのですが、当時の自分たちとしてはマジメも大マジメ、ここでなんとかしないとサービスが将来的に死ぬと背水の陣で挑んだプロジェクトでした。
あれから3年半。途中で大きく開発が頓挫しチームが絶望に包まれた時もありましたが、どうにかこうにか立て直しに成功し、昨年度末に基幹となるシステムをリリース。今年にかけて中規模なサブシステムが2つほどScalaで新規に稼働するなど、まだまだPHPの部分が大きく残っているものの順調に切り替えが進んでいます。
ちょくちょく他社のCTOやエンジニアさんからアーキテクチャ刷新に関するアドバイスを求められることも増えており、一旦区切りとしても良いタイミングなので、このブログ記事でCTOとしての目線で振り返りと考え方をまとめてみたいと思います。
僕らの事例はキレイに成功したわけでもなく、またあくまで一例には過ぎないのですが、あまりここまで大規模なアーキテクチャ刷新の事例は少ないとも思いますので、少しでも参考になれば幸いです。
続きを読む