法律に関する多様なサービスを展開する弁護士ドットコムは、事業の急成長とともにサービス開発での課題に直面し、その解決に向けてDevOpsを実践している。ソフトウェア開発基盤「GitLab」のカンファレンスに登壇した技術戦略室長 クラウドサイン事業本部 プロダクト部門統括の市橋立氏に、DevOpsの環境整備から文化として浸透させていく道のりなどを聞いた。
弁護士ドットコム 技術戦略室長 クラウドサイン事業本部 プロダクト部門統括の市橋立氏
“カウボーイ”スタイル開発からの脱却
2005年創業の弁護士ドットコムは、法律相談のポータルサイト「弁護士ドットコム」や契約マネジメントプラットフォーム「クラウドサイン」を提供している。創業からしばらくの間はビジネスが厳しい状況だったものの、市橋氏によると、業績が黒字化した2013年頃が開発体制を見直す転機だった。
黒字化以前の開発では、市場ニーズに合致するサービスの実現が主題だったという。それが黒字化により、サービスをスケールさせることも主題に加わった。特に2015年10月に開始したクラウドサインが急成長しており、現在は約130万社の顧客を抱える。開発部門の人員も当初の数人規模から何倍にも増えている。
市橋氏は、かつての開発体制を「カウボーイスタイル」と表現する。1人がほぼ全てを担うスタイルであり、開発者のリソースを集中して市場ニーズを捉えたサービスを実現していくには有利だった一方、属人的でもあり、ビジネスに合わせてサービスをスケールさせていくことには向かず、まずこの点が課題になった。
例えば、同社では以前にリポジトリー管理の「Git」を使用していたが、「ブランチを切ることなく全てマスターにコミットしてプッシュをし、コンフリクトが起きても、もう一度コミットとプッシュをして乗り切れてしまえるなど、ある意味で牧歌的だった。レビューツールなどもあったが、使用は任意で開発プロセスに組み込んでおらず、開発依頼も開発者個人に寄せられ優先度の調整なども任意だった。少人数なら何とか回すことができるが、人員が増えると機能しなくなってしまう」(市橋氏)
そこで、まずコードレビューの必須化など開発プロセスを整備、策定し、その中核として2014年4月にGitLabを導入した。類似ツールと比較して、オンプレミス環境でのコストが低廉な点や、会社のメールアドレスでユーザーアカウントを適切に管理できる点から採用を決め、2カ月ほど社内で検証して本格運用を始めた。
これによりコード資産を一元管理できるようになり、リポジトリーの可視性が向上した。人員が増え続ける中でも、グラフィカルユーザーインターフェース(GUI)を使って容易にユーザーの権限をきめ細かく設定、管理できるようになった。コードレビューを必須として、全ての変更はマージリクエストを作成してレビューするなど開発プロセスを改め、これを定着化させていった。
また、ローカルの開発環境では、仮想化環境を管理するHashiCorpの「Vagrant」やコンテナーの「Docker」、レッドハットの構成管理ツール「Ansible」などを順次導入し、ビジネスの成長とサービスの拡大に欠かせない開発生産性を高めるための整備を進めた。