ハウテレビジョンブログ

『外資就活ドットコム』『Liiga』『Mond』を開発している株式会社ハウテレビジョンのブログです。

負債解消リプレイス: WordPress から GitHub へ

Howtelevision で外資就活ドットコムのソフトウェア・インフラエンジニアをしている広瀬です。 現在進めている負債解消リプレイスのひとつが完了したので、その内容についてご紹介したいと思います。

この記事は、HowTelevision Advent Calendar 2024 3日目の記事です。

概要

外資就活ドットコムでは、就活コラムという学生のための記事を公開しています。ライターの人たちは WordPress という CMS を使用して投稿をおこなっていました。

当サービスは WordPress を使用した Web サイトから始まったのですが、就活サービスがメインになったあとも WordPress に大きく依存した実装が残っており、運用のための魔改造が繰り返された歴史を経て WordPress 自体のバージョンアップも困難な状況に。データの破損も一部発生していたり、難解なデータベース設計も運用の障壁になっていました。

これ以外にも複雑化してきたサービスを全体的にリプレイスを進めている最中ですが、先日ようやくこの WordPress からも決別を果たしたのです。

システム構成

リプレイスにあたっては、設計を見直して WordPress 自体は使い続けるのか、別の CMS を使うのか、または CMS の役割となる管理画面を新たに自前で作成し直すのか、いくつかの選択肢がありました。基本社内向けシステムであり基本オーバースペックであることや、自前で作るとそのぶん開発コストがかかるといったトレードオフがあり、いずれにしても社内システムにはなるべく保守、運用のコストをかけずユーザー向けの価値提供に注力したいといった思惑がありました。

そんな中提案されたのが、開発者であれば慣れ親しんだ GitHub を使う方式です。GitHub はソースコードだけでなく Markdown で書いた設計書や一般のドキュメントの履歴・承認管理にも使えるサービスです。現代のソフトウェア開発になくてはならないもので、保守・運用を高い信頼性の下、任せられる点が大きなメリットです。

基本的な仕組みは以下のとおりです。

構成図

  • ライターは 各記事を Markdown(+HTML) で記述し、GitHub にコミットする。
  • GitHub Actions から連携 API を呼び出して、記事データをサービスに保存する。
  • 画像などの添付ファイルは S3 バケットにアップロードし、ドキュメント内のリンクをアップロード先の URL に書き換える。

サービス内では連携された記事データをキャッシュとして持ち、マスターデータが GitHub にフルマネージドで保存されている形になります。万が一サービスのデータが壊れても GitHub から復元でき、そのすべてがバージョン管理されている点も安心感が高いです。

課題

この方針の大きな課題は、これまで WordPress という Web サイト上で操作していただいていたエンジニアではないライターの方々に、PC のエディターで記事を編集し、 GitHub を使っていただくオペレーション面だということは想像に難くないでしょう。

一億総プログラマー時代と言われ、AI やデータの民主化を弊社としても推し進める中、多くの社員がツールを使いこなし記事投稿以外にも活用できるようになることも見据えて、この方式で行くことが決定しました。

そうは言っても運用の手を休めることはできない中で、非エンジニアがキャッチアップできるまでには大きな壁がありました。Web システムに慣れたスタッフにとって Git を使った作業は難しいことですし、システムのメリットを伝えるもこれまでより手間が増えるマイナスの印象のほうが大きく、少なからず抵抗も感じました。開発も目処が立ってきてから切り替えまでの猶予期間を設けて Git の使い方や運用手順のレクチャーを進めてきたものの、実際に運用してみないとイメージがつかめないことも多く、結局は切り替えて走りながらも細かな見直しをしている状況です。

システムの改善と言いながら慣れない環境や手順に変わることでこれまでになかった負担を与えてしまう中、大きな反発もなく理解していただき、ご協力いただいた運用メンバーの方々にも感謝しております。(正直「これでは使いものにならん!と言われる可能性もあるな..と思っていました😅)

今後の展望

コラムに限らずユーザーに提供するコンテンツやデータを運用チームで編集するためにバックオフィスのシステムを構築することは多いと思いますが、スタッフが GitHub が使えるようになればそういった運用データも管理することが可能になります。

コラムを編集するためだけに GitHub を覚えるということはどうしてもただ面倒になっただけと感じられてしまいますが、これを機にさらなる活用の場を増やして、そのメリットを感じていただきながら、生産性および価値提供にかえていけると良いなと考えています。