本記事の目次 (→シリーズの特集ページ)
550社・7万エンドユーザーのアプリをたった25名で開発・サポート
――ところで、TeamSpiritの開発やサポートはどのような体制で?
倉谷:現在、TeamSpiritは550社に導入いただき、7万人のエンドユーザーさんにご利用いただいていますが、サポート業務は10名で行っています。Force.com上で稼働するアプリケーションは、ユーザーさんから許可をいただけば、リモートアクセスで環境を確認したり設定を変えたりできます。説明も双方が画面を見ながら電話で行えます。10名でサポートができているのは、現地へ行かなくていいことが大きいです。そのほか、サポートチームではTeamSpirit新規導入のコンサルティングもやってます。
有本:Force.comならではメリットは開発面にもあります。まず、インフラ管理が不要です。弊社にはインフラ管理者が1人もいないんですよ。TeamSpiritの開発は、私と倉谷が所属するR&Dチームで行っているのですが、所属する15名全員がTeamSpiritの開発に集中できています。
――Force.comの機能があってのこととはいえ、その少人数で運営できているのはすごいですね。
倉谷:でも、現在の開発環境を構築するまで、テストを担当していた私は辛かったです(笑)。単体テストを実行する仕組みは元々Force.comにありますが、そこから先のテストは私が手作業でやってました。特にリグレッションテストは2年ぐらい前からずっと辛かった。もう、あまりに辛くて、CI(継続的インテグレーション)の環境を1人で整えました。ただ、品質の確保にも関わることなので、1年ほど前から経営陣も「その辺りはチームのメンバーを巻き込んでちゃんとやらないとね」と支援してくれています。今は、Force.comの本番環境へデプロイする前に、CIによるテストをパスすることが徹底されています。

Jenkins+GitHub+Docker+SeleniumでSalesforce向けCI環境を構築
――CI環境! 具体的にはどのような構成になっているんですか?
倉谷:この図のような感じです。Jenkinsを使って、GitHubなどのリポジトリからForce.comのソースコードをチェックアウトしてきて、テスト用の開発組織にデプロイし、テストを自動的に回しています。画面操作もSeleniumで毎日テストを自動実行しています[3]。
テストの辛さもありましたが、アジャイル開発を行っているので、CI環境を構築することは自然の流れでした。セキュリティの静的解析や品質を担保するためのテスト自動実行とテストカバレッジの計測は、割と早い時期からできるようにしていました。今は2時間に1回、テストコードを実行するようにしており、テストカバレッジが75%を下回るとChatter(社内SNS)に通知が来るようにしています。

――CI環境からForce.comへデプロイする仕組みはどうしているのですか?
倉谷:ここは開発メンバーそれぞれですね。Eclipse(Force.com IDE)から行う人もいますし、Force.comマイグレーションツールっていう、Apache Antベースのコマンドラインツールで上げるっていう人もいます。
――バージョン管理はどのように?
倉谷:メジャーバージョンごとにブランチを切って管理しています。新機能開発やバグ修正はmasterブランチで行っていて、適用すると判断した変更はバージョンごとにまとめて更新パッケージにします。各バージョンのブランチに更新パッケージの内容をマージすることで変更が適用されます。ただし、動作が変わるような変更は、ユーザーさんの作業に影響を与える恐れがあるので、適用をオンに設定しないと有効化されないようにしてあります。
注
[3]: セールスフォース・ドットコムのイベント「Salesforce World Tour Tokyo 2015」で、倉谷氏が行ったセッション「2年で400%成長、50,000ID突破の業務アプリ『TeamSpirit』を支える継続的インテグレーション」のスライド資料がSlideShareにアップされている。倉谷氏によるCI環境(Apexコードのユニットテスト、静的解析、スモークテスト/シナリオテスト、機能テスト、およびChatOps)の構築方法や使用したツールなどがまとめられた貴重な資料だ。
Force.comは「無料」で試せます!
簡単なご登録ですぐにさわってみることができます。ご興味のある方はForce.comの下記ページから。