この記事はLivesense Advent Calendar 2020 24日目の記事です。
自分は今年新卒でリブセンスに入社し、10月途中からマッハバイトというサイトの開発を行っております。
現在マッハバイトは絶賛大きな負債解消に取り組んでいる最中(ようやく終わりが見えてきました)なのですが、モダンへの足掛かりも掴んでおり自分が一部の取り組みをさせているのでお話しできればと思います。
背景
自分の所属するマッハバイトは、2006年の弊社創業時から一度リニューアルを果たしていますが、15年近く運営されているサービスになります。
技術的負債
長期に運営されているサービスだとどうしても技術の進歩と共に、当時のトレンドはいずれ時代遅れな設計となってしまいます。そのため継続的な負債の返済が求められますが、ベンチャー企業の成長フェーズだとどうしても事業の成長に向けた方面に舵を切りがちです。事業として落ち着いてくると、負債の解消にも舵を切りますが、その時点で大きなモノリシックなサービスとして動き出していると負債の解消にはとても大きな労力を要します。実際マッハバイトにおいても、負債を解消していくのには長い時間がかかっています。
Railsへの移行1
2006年当初からサービスはPHP(どこかのタイミングでsymfony)で構成されていましたが、恐らく2015年頃からRailsへの移行が始まります。移行開始時点で10年レベルの負債なのでなかなか途方もない感じがしますね...。
方針としては既存のサービスを動かしながら移行を行う必要があるため、機能やページで分割しつつ移行を進めていきます。
一方で負債の解消だけでなく、growthの施策を進める必要ももちろんあります。growthを進めながらサブタスクで負債を解消するやり方では、継続的な新陳代謝という意味では正しいかもしれませんが、負債の問題が顕在化している段階では遅すぎる感は否めません。
また、これだけ長期化するとPHP側のロジックも遺産的になり、なぜこのようになっているかわからないし、実装者も既にいない...ということも起こりがちです。
しかし、冒頭でも触れましたがマッハバイトでは遂にRails移行の終わりが見えてきています。実に5年超えのプロジェクトです、大変ですね...
今後に向けて
レガシーからRailsへの移行は遂に終わりに近くなっていますが、Railsで終わりというわけでもありません。Rails化の次はフロントのモダン化やDBの改善などが計画されています。
フロント改善
自分が担当しているのはここの部分です。マッハバイトのサービス本体ではないですが、マッハバイトの社内管理画面のフロントの環境構築と設計を行っています。
フロントのNext.jsの使用は事前に決まっており、開発、staging、本番における環境を設計・構築しますが、自分のスキルセットとしてサーバーの開発がメインであったため、モダンなフロントとインフラの構築は躓くことが多かったです。
躓き
まず大問題として自分がAWSへの知見がかなり薄く、構築には自信が全くありませんでした...(lambdaくらいしか使ったことない)
知識0, 自信0だとなかなかリモート化で1から教えて!というわけに行かないので、就業中はリファレンスと既存の構築を見ながら、検証環境を立てる。裏ではNextとAWSを使ったサイトを構築してみる。という形でようやく自分の中でほんの少しの自信が付いてきた気がしています。
無知な状態から自信や知識が少しでも付いてくると、先輩に尋ねることにもしやすくなり、動き出しができるようになってきます。(自分だけ技術スタックが極端に不足していると質問しにくい。。。)
現状
現状としては大まかな構成を決め、検証用の構築を済ませた段階です。(WIP)2
今後もIaC等やることは山積していますが、0ベースで知識や物を作っていくのは貴重な経験として学習・共有を進めていきたいです。
取り組み
年末ということもあり、マッハバイト開発チームでは現在Hackdaysを行っています。
テーマはPHP→Ruby→???ということで今後の技術や言語の選定に対しても考える機会になって助かっています。
まとめ
個人的には新卒でJoinして数ヶ月の段階で、大きなタスクに関われたことは成長機会としてありがたいです。
まだ、タスク自体の進捗やAWSの知識など不足している点も多いので吸収やチャレンジを続けていきたいと思います。