システムリプレイスを乗り越える!成功体験に導く3つの心構え

こんにちは。エンジニアの竹田です。
BUYMAの検索システムやMLOps基盤の開発・運用を担当しております。
こちらはEnigmo Advent Calendar 2024の18日目の記事です 🎄

はじめに

2024年もいよいよ年の瀬ですね!寒さが増すこの季節、みなさまいかがお過ごしでしょうか?

早速ですが本記事の主題のシステムリプレイスについてです。
ここ言うシステムリプレイスとは、老朽化したシステムの刷新、管理目的での移設など、既存システムがあり、それを何かしらの方法で置き換えることを指しています。
例えば、古くなったオンプレミス環境をクラウドに移行したり、データベースをより新しいものに入れ替えるといった作業も含まれます。

サーバサイドから下位のレイヤを担当している方々は、システムリプレイスを行う機会が割と多いのではないでしょうか。
実際に自分もエニグモに入社してからもそうですが、それ以前からも新規システムを構築するよりはシステムリプレイスを行うことが多いと感じています。

  • 今までの実績
    • 各種検索システムのリプレイス
    • MLOpsシステムのkubeflow pipelines→vertex ai pipelinesへのリプレイス
    • アカウント検知システムのリプレイス

どんなシステムでも老朽化が進むため、定期的なリプレイスが必要です。
気が付くとサポート期限間近であったりということは少なくないのではないでしょうか。
ただ、新しいもの作りという訳ではないので、なかなかモチベーションを上げ辛い作業ではないかなと思います。

また、旧システムとインプットやアウトプットは変えない、というのが命題となるので、結果比較に時間を要したりとナーバスになる作業も多いです。

そんな中でも、モチベーションを高く保つために自分が意識していることを紹介したいと思います。

システムリプレイスのモチベーションを高めるために

改善のチャンスと捉える:システムの価値を高める!

何か付加価値を提供できないかを考えます。
システムコストや学習コストの兼ね合いもありますが、思い切って足回りやミドルウェアの置き換えなど検討しても良いと思います。

  • コスト削減
    • 新たなマネージドサービスの利用
    • 多めに見積もって構築されていたリソースの削ぎ落とし
  • システム強化
    • 少し気になっていたコードの修正
    • 構成周りの定義での一工夫
  • マイクロサービス化
    • 機能の一部を切り出して影響を局所化
  • 監視強化
    • 迅速な障害対応、柔軟な運用

学びのチャンスと捉える:自身のスキル底上げ!

少なくとも現状を一切変更しないリプレイスはあまり存在しないと思います。
例えば、旧システムのデータベースを調査中に、想定外のデータ構造や運用上の工夫を発見することもあります。それが新システム設計のヒントになることもしばしばです。
そう考えると、以下の点で新しく学びを得られる機会があります。

  • 各種ライブラリのバージョン最新化
    • 動作差異の確認、理解
  • あまり深く知らない言語の理解
    • どの言語でも固有の特徴がある
  • 旧システムの構成や思想の理解
    • wiki等が残っていれば確認、当時の思想が全く分からないこともある...
    • とにかく旧システムを把握しないことには作業を進めづらい

アウトプットのチャンスと捉える:学びを共有して価値を広げる!

どういった方法でシステムを刷新したか、その意図など、技術ブログなどで外部発信する機会を得られます。
技術ブログの他にも、社内勉強会やカンファレンスでのLT(ライトニングトーク)なども該当するかと思います。
自分もこの点はあまり実践できていないので、自戒の意味も込めて記載しています。

  • 自身の技術棚卸し
    • こういった機会を作ることで、振り返りの機会を設ける
  • 外部向け文章作成の機会
  • 企業ブランディングへの貢献

より気持ちを高めるために

関わったことのなかった方と関わりを持てる可能性がある

過去担当していた方と関わりを持ち、人間関係を広げる機会になる可能性があります。
怯むことなく関わりを持てるようにしましょう。

今どきな言い方をしてみる

slack等でやりとりする際、リプレイスではなく モダナイズ という言葉を使ってみたりしています。
ただし、クラウドの新機能を利用したり、インフラやアプリの構成を大幅に見直すような場合でないと名前負けした感じになるので注意が必要です。

最後に

以上のようなことを意識して取り組んでいるため、比較的楽しくシステムリプレイスを行っていると思っています。
システム規模が大きくなればなるほどリプレイスは大変になるので、立ち止まって特定の機能を切り出せないかを考えたりするのも良いと思います。

みなさんもシステムリプレイスを楽しむ方法を見つけて、エンジニアとしての成長を一緒に楽しんでいきましょう!

明日の記事の担当は同グループの中村さんです。お楽しみに!!


株式会社エニグモ すべての求人一覧

hrmos.co