さきがけ精神で挑むアーキテクチャ刷新!──技術革新と進化をもたらす秘訣とは
【23-B-7】さきがけから振り返るアーキテクチャ刷新:技術革新と進化をもたらした戦略と戦術
技術革新が進む中、自社システムのアーキテクチャ刷新を検討する企業・組織も少なくないだろう。アーキテクチャ刷新は、システムの成長を阻害するさまざまな課題に正面から向き合い、その解決策を模索していくプロセスだ。やりがいのある一方、技術的負債や複雑な仕様への対応は非常に困難である。GMOインターネットグループの成瀬允宣氏は、こうしたアーキテクチャ刷新に果敢に挑み、見事成功を収めた人物だ。本セッションでは、成瀬氏が直面した数々の課題に対し、「さきがけ精神」で挑んだ戦略と戦術、そしてその具体的なアプローチについて紹介する。
アーキテクチャ刷新の背景と成長を阻害する問題点
セッションの冒頭、「アーキテクチャ刷新は楽しそうに見えるが、実際には非常につらい」と成瀬氏は実感を交えてこう切り出した。一般的にアーキテクチャ刷新の必要性は多くの課題に起因しており、新しいアーキテクチャにはこれらの課題を解決する仕組みが求められる。成瀬氏はまず、自らの経験をもとに、システムの成長を阻害し、開発生産性を低下させるアーキテクチャの問題点について紹介した。
多くのシステムがまず直面するのは、「仕様の複雑化」である。サービスの成長に伴い、機能の追加が繰り返される中で、後から来た開発者が「こんな機能があったのか」と驚くケースは少なくないという。特定の少数ユーザーしか使わない機能であっても、ビジネス上必要であれば維持せざるを得ないのだ。さらに、担当者の退職による仕様の把握困難やドキュメントの不備も、複雑化を助長する要因となっている。
次に、「過渡期特有の難解なコード」も問題として挙げられる。過去に成功したコードが他のプロジェクトでも使い回され、無秩序に拡散することや、レビューをすり抜けて本番環境に入り込んだコードが、時間と共に"秘伝のタレ"のように継ぎ足されていく現象も発生しているという。
さらに、「技術スタックの相対的な老朽化」も深刻だ。成瀬氏の所属する会社のサービスでは、パッケージマネージャーが存在しなかった時代のレガシーコードも多く残っており、その維持管理が現場で大きな負担となっていたという。
成瀬氏にとって、「変更のハードルの上昇」も大きな課題だった。そもそも、同社のインフラチームは顧客向けのインフラ提供が主業務であり、その合間に開発者向けのインフラも手がけている状況だった。そのため、データベースやサーバーのメンテナンスを依頼しても対応に2~3週間を要し、開発スピードを著しく阻害していたのだ。成瀬氏は当時を振り返り、「アプリの開発者からすれば、変更の決定権はすべてインフラチームに握られていた。我々がやりたいことを進めるには、まずインフラチームにお伺いを立てる必要があった」と語る。
これらの問題点を踏まえて、成瀬氏が掲げたアーキテクチャ刷新の基本方針は、次の3点だ。第一に、システムを小さくし、わかりやすくすること。第二に、密結合なシステムを疎結合にして、変更に対する柔軟性を高めること。第三に、無意味なコードの多様性を排除すること。どれも実行には困難を伴うが、これらの方針こそがシステム改善への道筋となる。
さらに、インフラの主導権を開発者側に移す必要があったことも付け加える。「データベースのテーブル変更やサーバーの設定を、開発者の裁量で行えるようにしたいです。この方針のもとで進めたのが、マイクロサービスへの移行とクラウドサービスの活用です。マイクロサービスというバズワードをあいまいにせず、明確に定義し、戦略的に進めることが重要でした」(成瀬氏)
クラウド活用を進めるに当たっては、当初は成瀬氏が所属する「デベロッパータスクフォース」チームで取り組む予定だった。しかし、メンバー全員が他の業務を兼任しており、クラウド活用に集中できる状況ではなかったことから、成瀬氏は「1人でやります」と宣言。自らがプロジェクトを主導することを決断し、いよいよアーキテクチャ刷新に立ち向かっていくことになった。
会員登録無料すると、続きをお読みいただけます
-
- Page 1
-
- Page 2
-
- Page 3
この記事は参考になりましたか?
- Developers Summit 2024 Summer レポート連載記事一覧
- この記事の著者
-
丸毛 透(マルモ トオル)
インタビュー(人物)、ポートレート、商品撮影、料理写真をWeb雑誌中心に活動。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営する開発者のための情報メディアです。日々の開発に取り組むエンジニアやテクノロジーを学びたい方に向けて、プログラミングやAI活用、開発ツール、エンジニアの学びとキャリアに関する記事をお届けしています。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
水無瀬 あずさ(ミナセ アズサ)
現役エンジニア兼フリーランスライター。PHPで社内開発を行う傍ら、オウンドメディアコンテンツを執筆しています。得意ジャンルはIT・転職・教育。個人ゲーム開発に興味があり、最近になってUnity(C#)の勉強を始めました。おでんのコンニャクが主役のゲームを作るのが目標です。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
