GMOフィナンシャルホールディングス株式会社
総合ネット金融グループがシステム開発基盤に GitHub Enterpriseを公式採用。 生産性アップとソースコードの品質向上に大きく貢献。
  • 業種 金融
  • 企業規模 300+

事例をダウンロードする

高い生産性を求めGitHub Enterpriseに移行。堅牢なセキュリティを要求される金融業界のニーズを満たすオンプレミス製品を選定

GMOフィナンシャルホールディングス株式会社(以下、GMOフィナンシャルHD)は、そのルーツであるGMOクリック証券株式会社(以下、GMO クリック証券)を筆頭に、株式会社FXプライム by GMO や、GMOコイン株式会社など、国内外の子会社10 社を傘下に置く金融持株会社だ。同社グループでは、株式や先物・オプションのほか、店頭FXや店頭CFD、バイナリー・オプションなどの金融商品や仮想通貨のインターネット取引を提供している。

多様化する顧客ニーズに迅速に対応するため、GMOクリック証券の設立以来、取引システムやオペレーションシステムの企画、開発、保守、運用までを一貫して自社グループで行っているのが特徴で、利便性とユーザビリティの高い取引ツールの自社開発と改善、バックオフィスの自動化、アウトソーシングの活用などにより、業界最安値水準の手数料・取引コストでのサービスを実現。それが同社の急成長を後押しし、FX年間取引高は2012年以来6 年連続で世界第1位を記録(Finance Magnates調べ)しているほか、香港・英国・タイなどへの海外展開を積極的に推し進める原動力ともなっている。

同社は、2015 年1月からGitHub Enterprise を正式に採用し、社内での活用範囲を段階的に広げることで、ソースコード開発からビルドまでの作業の効率化と品質向上に継続して取り組んできた。現在では、GMOクリック証券の商品の一部、そして香港および英国のシステムの一部を GitHubで開発している。 GMOフィナンシャルHDでは、今まで集中リポジトリ型バージョン管理システムApache Subversion(以下、SVN)が標準のバージョン管理ツールとして利用されていたが、ブランチの管理が煩雑であるだけでなく、SVNではユーザーがソースコードをコミットするとサーバー側に直ちに反映される仕組みのため、各エンジニアが頻繁に共有リポジトリへコミットを行うと競合が発生しやすくなり、エンジニアの作業負荷が増え、コミットに失敗することも多々あったという。さらに、複雑なマージ作業に対応するため「マージ担当」を専任で置くなど、生産性が高いとは言えない開発環境だった。

それらの状況を打破すべく、GitHub Enterpriseを試験的に導入。最初は20シートからスモールスタートし、まずは実験的に海外(香港と英国)向けシステムのソースコードを開発するチームで活用を開始した。その後、適用範囲を順次拡大し、2018 年4月現在ではGMOフィナンシャルHD のシステム統括部と、業務委託先の協力会社の担当者を含め、110 名まで利用ユーザーを拡大。全エンジニア約250 名の半分にまで浸透している。

当時、導入プロジェクトに関わったシステム統括部 マネージャーの金 澤相氏は、「社員の半数以上がエンジニアの技術者集団である当社には、常に最新の技術をキャッチアップしたいという企業文化が根付いています。“GitHub” はエンジニアであれば誰でも使ってみたいと願う憧れの開発基盤であり、プライベートでGitHub.comを使っていた人からはその効率的な開発体験を業務にも活かしたいという希望が増えていました。一方で、金融業界はセキュリティやコンプライアンスで求められる水準が高いため、クラウド製品の導入にはためらいがありました。そこで、オンプレミスで利用できるGitHub Enterpriseの導入を正式に決定しました」と説明する。

コミット前のコードレビューを徹底しソースコードの品質を向上

GitHub Enterpriseの活用により、主に次の5つの効果が得られている。

1つ目は「ソースコード品質の向上」。SVNは全てマスターリポジトリにマージされてコミットする仕組みのため、どうしてもソースコードレビューが後手に回ってしまう。リリースするコードに一度入ってしまうと検知できる仕組みがなく、全部のコミットをチェックして品質の低いコードが混入していないか洗い出さなければならないという不安があったという。管理者で、システム統括部 マネージャーの満石豊氏は、その点が大きく改善したと話す。「GitHub Enterpriseではレビューが終わるまではマージされず、レビューをパスしたものだけがマスターブランチにマージされる仕組みのため、バグが混入した品質の低いコードがリポジトリに紛れ込む危険性が減少し、とても安心感が増しました」

2つ目は「コードレビューの徹底」。GitHub Enterpriseでは、1)自分が担当する実装作業用のブランチを作成、2)変更点を作業用ブランチにコミット、3)ブランチにコミットしたソースコードの単体テストが終わったらサーバー上の同名ブランチにpush、4)作業用ブランチを元にマスターへの変更依頼(Pull Request)を作成、5)レビュアーは Pull Request の内容を確認し、問題なければマスターに変更を反映(マージ)するといった、一連のコードレビューのフローが統合された仕組みがあるため、SVNと比較して格段に使いやすくなったという。

3つ目は「コードベースコミュニケーションの実現」。開発者の、システム統括部 近藤 祥子氏は、「SVN はリポジトリがクライアントソフトウェアからしか見ることができず、他のエンジニアとのコミュニケーションが困難でした。GitHub Enterpriseはブラウザでソースコードが表示できるので、URLだけで気軽にソースを開くことができ、リポジトリの中でチャットによるコミュニケーションが成立します。Pull Requestを送る際もソースに紐付いた具体的な会話が可能になっています」と分析する。

4つ目は「タスクの把握」。機械学習システムを開発するGMOクリック証券 事業推進部 マネージャーの鎌滝 佳祐氏は、「JIRAほど大掛かりではありませんが、GitHub EnterpriseでIssueを作り、それを元にプロジェクト機能でタスクや状況を把握したり履歴を管理したりするなど、使いやすいUIのおかげでプロジェクト管理がしやすくなりました。また、複数のエンジニアが協力する場合でも、個々にブランチを切り、一定のタイミングで差分を確認しながらマージするなど、お互いに状況を理解し合いながら容易に開発を進める体制を作ることができます」と説明する。

コードレビューにかかる負担が約3分の1にまで圧縮

そして5つ目は「GitHub Flowとブランチモデルの効能」。SVNはプロジェクトを立ち上げるようなイメージでブランチを作り、マージにおいてもコード内容に誤りのないようチェックを徹底し、常に同期を取る必要があることから、精神的な負担が重かったという満石氏は、「GitHub Flowでは大小のブランチをカジュアルに作ることが可能で、少しの変更でも気軽に作ってマージすることができるため、複数案件が並行する場合でも負担なく開発しやすくなりました」と述べる。

これらの効果により、コードレビューにかかるコストはSVNと比較して約3分の1にまで圧縮できたという。また、コードをプッシュした後にレビューを行い、マージされたらJenkins による CI でテストをするといった環境も実現した。

「GitHub Enterpriseを活用して最初にメリットを感じたのは、コードレビューのしやすさでした」と金氏は語る。SVNにはコードレビューの仕組みがないため、以前はオープンソースのコードレビューツールを連携させて運用を試みたが、レビュー依頼のメールが送信できなくなるなど安定せず、安心して使うことができなかったという。

「GitHub Enterpriseはソースコードレビューが容易であり、コメントも残すことができるのでコミュニケーションが円滑になります。また、ローカルで少しずつコミットを溜めてからプッシュするため失敗することはありません。そうしたことが生産性向上や、開発者のモチベーションを高めることにつながり、GitHub Enterpriseを使ってみたいという希望者が増えていきました」(金氏)

満石氏は、「システム統括部内においてGitHub Enterpriseは、もはや開発作業を行う上で最低限の条件と言っても過言ではないほど浸透し始めています」と高く評価し、今後はさらに活用範囲を広げ、最終的には全てのエンジニアが業務で使う標準ツールにしていくことが目標だという。次世代のFinTechに挑み続ける若きエンジニアたちの創造力を、これらかもGitHub Enterpriseは支えていく。