「ソフトウェア品質向上の”変”2016初夏〜FinTech、IoTを見据えた”テスト自動化の勘所”」セミナーリポート(前編)ゴールドマン・サックス、マネーフォワードのサービス開発の在り方とは(2/2 ページ)

» 2016年08月18日 05時00分 公開
[谷崎朋子@IT]
前のページへ 1|2       

特別講演〜マネーフォワードに学ぶDevSecOpsの勘所

ALT マネーフォワード 執行役員CISO最高情報セキュリティ責任者 市川貴志氏

 マネーフォワードは、個人向けの自動家計簿・資産管理サービス「マネーフォワード」や、ビジネス向けクラウドサービス「MFクラウドシリーズ」などの提供を通じて、FinTechトレンドをリードしている1社だ。個人向けサービスの利用者数は、2012年12月のリリースから2016年2月時点で約350万人に達し、家計簿アプリでシェアNo.1を獲得。また、MFクラウドも今ではユーザー数50万人を突破し、飲食業や医療、理美容、製造、教育、農業など、幅広い業種で採用が広がっている。

 マネーフォワードで執行役員CISO最高情報セキュリティ責任者を務める市川貴志氏は、特別講演「マネーフォワードが実践する『DevSecOps』 ベンチャーのセキュリティはいかにして担保されているか」において、同社のサービス開発のポイントを「品質」「スピード」「セキュリティ」に分けて解説した。

 マネーフォワードのインフラ基盤は、オンプレミスとAWSのハイブリッドで構成。350台の物理サーバを持ち、物理環境と仮想環境を併用している。サービスのSLAは99.95%と定義し、これを下回ったことはない堅牢性を担保している。サービスは2580を超える金融関連サービスと連携。ユーザーの利便性を意識し、サービスにおいて必要なデータは連携先サイトから自動的かつ定期的に取得しているという。

ALT マネーフォワードのインフラ基盤の概要

 開発体制は「個人向けサービスのチーム」「ビジネス向けサービスのチーム」、また全プロダクトで共同利用するエンジン/認証機能などの開発、半年〜1年後に課題となる要素の設計見直しなど、「中長期的な課題に取り組む組織横断チーム」の3チーム体制を敷いている。

 こうした中、まず品質担保のポイントとして「コードによる自動化」「開発の内製化」「複雑さの回避」の3つを重視しているという。

 市川氏は自動化について、「ヒヤリハットの取り組みなどはチェックリストを増やすだけで、それ自体を回すことに意味はない。可能な限りコード化することで、チェックは機械に任せ、人間は人間にしかできないことをやるようにしている」と解説。「複雑さの回避」は、「バグの軽減と、機能追加など初版リリース以降の開発の複雑さを避けることが目的」。内製化については、「ナレッジの蓄積と、手の届く範囲にチームを置くことで迅速な対応ができることがメリット」と述べた。

 スピードの担保については、「決裁フローを可能な限り簡素化して時間をかけないようにし、“付加価値の高いこと”に優先的に時間を割く」「リリースは小さい単位で公開し、ユーザーの反応を見ながら調整をかける」「誰よりも早く行動することを意識し、遅いと感じたらやり方を変える」という3点を挙げた。

 市川氏は、「完璧を目指すことは難しい。それよりも、ユーザー視点でプロダクトを考えながら、小さな変更をスピードをもって重ねることが大切」と指摘する。ただし、スピードを重視するといっても、「品質やスコープを調整してまで速く進めるという意味ではなく、スピードを3倍に上げても、品質とスコープを維持できる方法を工夫することが重要だ」と強調した。

 そのためにさまざまなツールを駆使している。テストは1テスト7分程度で並列自動実行できるようJenkinsで管理し、CIの結果通知はSlackを活用。仕様からリリース判断までをGitHubで管理し、インフラデプロイやインフラテストはItamaeとServerspecを組み合わせて実行しているという。

ALT スピードと品質を両立するためのマネーフォワードの考え方

 一方、セキュリティについては「当たり前のことを当たり前にやるのが最も重要」との考えを示した。例えば、「ファイアウォールを挟んでネットワークを複数回層に分け、データを重要度に応じて複数個所に分散保存する」「データを暗号化して保存し、復号鍵をシステム内に配置しない」「ミドルウェアの脆弱性には速やかにパッチ適用する」「内部からのアクセス制限やアクセス権限の定期的な見直しをする」といった具合だ。

ALT マネーフォワード CISO室 鈴木研吾氏

 ただ同社の場合、扱うデータの機密性の高さもあり、「当たり前のことを当たり前に」やった上で、さらに金融機関レベルの対策が必須となる。セキュリティに投入できるリソースも限られている中で、同社はこれにどう対応しているのか?

 この点について、同社CISO室の鈴木研吾氏は、「一般的なセキュリティ対策としては、開発者にセキュアコーディングなどの教育を実施したり、開発完了後にペネトレーションテストを実施したりすることが考えられる。しかし、教育は準備や運用などに多大なリソースが必要で、ペネトレーションテストも開発終了後のテストだと手戻りが多くなり、リリースが多い場合は毎回実施できない」と解説。

 そこで、開発のスピードと確実・効率的なペネトレーションテストを両立するために、WebベースのWebアプリ自動診断サービス「VAddy」のプラグインを利用するとともに、CIのプロセスの中にセキュリティテストを組み込んでいるという。

ALT CIのプロセスの中にテストを埋め込む

 その結果、開発中も細かい単位でセキュリティ診断ができるようになった他、開発者が脆弱性のあるポイントを学習する機会を作ることにもつながった。

ALT 開発中に細かい単位でセキュリティ診断を実施する仕組みを作り、スピードと品質を担保

 また、ITサービス数の増加とともに、Androidアプリの証明書管理も「アプリ証明書が各開発者の端末に分散してしまい集中管理できない」「紛失した場合はアプリの更新ができない」「盗まれた場合はアプリ乗っ取りの可能性が高まる」といった課題が生じがちなことを指摘した。

 そこで、Androidアプリの証明書管理問題については、「ローカル開発環境に証明書を置かない」「apkはデプロイツール、または直接ストアにアップロードする」「キーストアが消えた場合に備えて、リストアできるようストレージにバックアップする」などの対策をとっているという。

 市川氏は、同社のこうした取り組みについて「コード化と自動化を徹底的に実施し、小さい単位でリリースを重ねることで、開発のスピードと品質、また金融機関としては当たり前のセキュリティレベルを担保している。こうした取り組みを、今後も地道に推進していきたい」とまとめた。

参考リンク:マネーフォワードが実践する「DevSecOps」(当日のスライド資料)

 今回のセミナーでは、複数のプロジェクトチームで開発資産を共有する、コード化するなど、「標準化」「自動化」が大きなキーワードとなった。開発に一層のスピードと品質が求められている今、属人性を極力排除してミスをなくし、スピーディに開発・品質担保のプロセスを流せる“仕組み”がもはや不可欠といえるのではないだろうか。

前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。