SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2024 Summer レポート

さきがけ精神で挑むアーキテクチャ刷新!──技術革新と進化をもたらす秘訣とは

【23-B-7】さきがけから振り返るアーキテクチャ刷新:技術革新と進化をもたらした戦略と戦術

  • X ポスト
  • このエントリーをはてなブックマークに追加

 技術革新が進む中、自社システムのアーキテクチャ刷新を検討する企業・組織も少なくないだろう。アーキテクチャ刷新は、システムの成長を阻害するさまざまな課題に正面から向き合い、その解決策を模索していくプロセスだ。やりがいのある一方、技術的負債や複雑な仕様への対応は非常に困難である。GMOインターネットグループの成瀬允宣氏は、こうしたアーキテクチャ刷新に果敢に挑み、見事成功を収めた人物だ。本セッションでは、成瀬氏が直面した数々の課題に対し、「さきがけ精神」で挑んだ戦略と戦術、そしてその具体的なアプローチについて紹介する。

  • X ポスト
  • このエントリーをはてなブックマークに追加

アーキテクチャ刷新の背景と成長を阻害する問題点

 セッションの冒頭、「アーキテクチャ刷新は楽しそうに見えるが、実際には非常につらい」と成瀬氏は実感を交えてこう切り出した。一般的にアーキテクチャ刷新の必要性は多くの課題に起因しており、新しいアーキテクチャにはこれらの課題を解決する仕組みが求められる。成瀬氏はまず、自らの経験をもとに、システムの成長を阻害し、開発生産性を低下させるアーキテクチャの問題点について紹介した。

 多くのシステムがまず直面するのは、「仕様の複雑化」である。サービスの成長に伴い、機能の追加が繰り返される中で、後から来た開発者が「こんな機能があったのか」と驚くケースは少なくないという。特定の少数ユーザーしか使わない機能であっても、ビジネス上必要であれば維持せざるを得ないのだ。さらに、担当者の退職による仕様の把握困難やドキュメントの不備も、複雑化を助長する要因となっている。

 次に、「過渡期特有の難解なコード」も問題として挙げられる。過去に成功したコードが他のプロジェクトでも使い回され、無秩序に拡散することや、レビューをすり抜けて本番環境に入り込んだコードが、時間と共に"秘伝のタレ"のように継ぎ足されていく現象も発生しているという。

 さらに、「技術スタックの相対的な老朽化」も深刻だ。成瀬氏の所属する会社のサービスでは、パッケージマネージャーが存在しなかった時代のレガシーコードも多く残っており、その維持管理が現場で大きな負担となっていたという。

GMOインターネットグループ デベロッパーエキスパート 成瀬 允宣氏
GMOインターネットグループ デベロッパーエキスパート 成瀬 允宣氏

 成瀬氏にとって、「変更のハードルの上昇」も大きな課題だった。そもそも、同社のインフラチームは顧客向けのインフラ提供が主業務であり、その合間に開発者向けのインフラも手がけている状況だった。そのため、データベースやサーバーのメンテナンスを依頼しても対応に2~3週間を要し、開発スピードを著しく阻害していたのだ。成瀬氏は当時を振り返り、「アプリの開発者からすれば、変更の決定権はすべてインフラチームに握られていた。我々がやりたいことを進めるには、まずインフラチームにお伺いを立てる必要があった」と語る。

 これらの問題点を踏まえて、成瀬氏が掲げたアーキテクチャ刷新の基本方針は、次の3点だ。第一に、システムを小さくし、わかりやすくすること。第二に、密結合なシステムを疎結合にして、変更に対する柔軟性を高めること。第三に、無意味なコードの多様性を排除すること。どれも実行には困難を伴うが、これらの方針こそがシステム改善への道筋となる。

 さらに、インフラの主導権を開発者側に移す必要があったことも付け加える。「データベースのテーブル変更やサーバーの設定を、開発者の裁量で行えるようにしたいです。この方針のもとで進めたのが、マイクロサービスへの移行とクラウドサービスの活用です。マイクロサービスというバズワードをあいまいにせず、明確に定義し、戦略的に進めることが重要でした」(成瀬氏)

成瀬氏の目指すアーキテクチャ刷新の基本方針
成瀬氏の目指すアーキテクチャ刷新の基本方針

 クラウド活用を進めるに当たっては、当初は成瀬氏が所属する「デベロッパータスクフォース」チームで取り組む予定だった。しかし、メンバー全員が他の業務を兼任しており、クラウド活用に集中できる状況ではなかったことから、成瀬氏は「1人でやります」と宣言。自らがプロジェクトを主導することを決断し、いよいよアーキテクチャ刷新に立ち向かっていくことになった。

次のページ
アーキテクチャ刷新に向けた戦略と実践

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Developers Summit 2024 Summer レポート連載記事一覧

もっと読む

この記事の著者

丸毛 透(マルモ トオル)

インタビュー(人物)、ポートレート、商品撮影、料理写真をWeb雑誌中心に活動。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

水無瀬 あずさ(ミナセ アズサ)

 現役エンジニア兼フリーランスライター。PHPで社内開発を行う傍ら、オウンドメディアコンテンツを執筆しています。得意ジャンルはIT・転職・教育。個人ゲーム開発に興味があり、最近になってUnity(C#)の勉強を始めました。おでんのコンニャクが主役のゲームを作るのが目標です。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/20117 2024/11/20 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング