Slide 1

Slide 1 text

株式会社マネーフォワード 2016年06月15日 マネーフォワードが実践する 「DevSecOps」 17:40~18:15 「品質」「スピード」「セキュリティ」

Slide 2

Slide 2 text

前半のAgenda © Money Forward,Inc. 2 1 マネーフォワードのサービスの紹介 2 システム構成の紹介 開発体制 3 4 5 「品質」「スピード」「セキュリティ」 環境・ツール・文化

Slide 3

Slide 3 text

自己紹介 3 市川貴志(いちかわたかし) 執行役員 CISO最高情報セキュリティ責任者 https://www.wantedly.com/users/995  辻調グループ・フランス校卒業。西洋料理の本場でフ ランス料理を学び、Lyon郊外の二つ星レストランに て研修を受ける。  2000年 マネックス証券株式会社入社、調理業界で の知識を活かし、株式取引システムインフラの開発・ 運用・PM業務を担当。  2008年 マネックスグループに転籍。子会社のシス テム統合などを担当。  2010年 大手金融システム開発会社にて、オンライ ン為替証拠金取引サイトの新規構築にインフラ担当の 責任者として参画。  2012年 株式会社マネーフォワードでシステムイン フラ・セキュリティ部門を担当(CISO)現在に至る。 © Money Forward,Inc.

Slide 4

Slide 4 text

自己紹介(フランス料理人から、社内給食当番へ転職) 4 © Money Forward,Inc.

Slide 5

Slide 5 text

自己紹介 5 給食の時間帯以外は CISOとしてセキュリティを インフラの安定化とスケールを アプリケーションの品質と価値の最大化を いつも考えて、仕事をしています © Money Forward,Inc.

Slide 6

Slide 6 text

マネーフォワードのご紹介

Slide 7

Slide 7 text

「お金を前へ。人生をもっと前へ。」 我々のサービスを通して、個々人のお金に対する悩みや不安が 軽減し、日々の暮らしの改善や夢が実現する。 そして、日本国内の「お金の流れ」が変わり、 より世の中が活性化し、新たなチャレンジを生み出しやすい 環境作りに貢献することが、我々が当事業を行う最大の目的である。 マネーフォワードのMission 7 © Money Forward,Inc.

Slide 8

Slide 8 text

提供サービス PFM(Personal Financial Management) 事業 自動家計簿・資産管理サービス ビジネス向けクラウドサービス 8 MFクラウド事業 © Money Forward,Inc.

Slide 9

Slide 9 text

設立:2012年5月 累計資金調達額 :約37億円 9 創業(東京都新宿区高田馬場) 自動家計簿・資産管理サービス『マネーフォワード』公開 マネックスベンチャーズ株式会社より資金調達。IVS Launch Pad 入賞。 ジャフコより5億円調達 クラウド型会計ソフト『マネーフォワード For BUSINESS』β版公開 TBSイノベーション・パートナーズ、三菱UFJキャピタルより資金調達 クラウド型請求書一括管理サービス『MFクラウド請求書』β版公開 ジャフコ、クレディセゾン、ソースネクスト等から約15億円調達。 クラウド型給与計算ソフト『MFクラウド給与』公開 森川亮氏、小林孝雄氏が社外取締役に就任。1,000名規模の法人向け無料イベント『MFクラウドExpo2015』開催 『マネーフォワード』テレビCM開始 『マネーフォワードFintech研究所』設立。 住信SBIネット銀行および静岡銀行との業務提携契約を締結。SBIホールディングス、静岡銀行、ジャフコから10億円の資金調達 マイナンバー管理システム『MFクラウドマイナンバー』正式版公開。関西電力と業務提携。10月末よりポイント一括管理機能の提 供決定。中部電力と業務提携。クラウド会計と電力サービスとのパッケージプランを共同開発 山口フィナンシャルグループおよび東邦銀行との資本業務提携。三井物産、Fenox Venture Capital、三菱UFJ信託銀行から約6億 円の資金調達 情報セキュリティに関する国際規格『ISO 27001』(ISMS)を取得 2012年05月 2012年12月 2013年05月 2013年10月 2013年11月 2014年02月 2014年03月 2014年12月 2015年03月 2015年04月 2015年06月 2015年07月 2015年08月 2015年09月 2015年10月 沿革 © Money Forward,Inc.

Slide 10

Slide 10 text

PFM事業 個人向け

Slide 11

Slide 11 text

11 2,580以上の金融関連サービス連携。 お金の流れが自動で見える化。 平均月11,642円の収支改善に寄与。 個人向け

Slide 12

Slide 12 text

利用者数は350万人を突破! 個人向け

Slide 13

Slide 13 text

お客様に選ばれる家計簿アプリ (出所)調査委託先:マクロミル、調査手法:インターネット調査、 調査日:2016年2月5日~2016年2月6日、調査対象者:30~40代家計簿アプリ利用経験者412名 個人向け

Slide 14

Slide 14 text

MFクラウド事業 オフィス向け

Slide 15

Slide 15 text

オフィス向け

Slide 16

Slide 16 text

リリースからわずか2年で ユーザー数 50万を突破 (出所)マネーフォワードユーザーへのインターネット調査(当社調べ、調査期間:2014年7月) オフィス向け

Slide 17

Slide 17 text

幅広い業種へ利用が広がっています オフィス向け 飲食 理美容 製造 教育 農業 IT コンサル デザイン

Slide 18

Slide 18 text

サービスを構成するシステムのご紹介

Slide 19

Slide 19 text

システム構成(概要図) 19 © Money Forward,Inc.

Slide 20

Slide 20 text

システム構成(説明1 インフラ基盤) 20 1 AWSや物理サーバーのハイブリッド構成。台数は 約350台。物理や仮想は様々 2 SLAでシステム稼働率を99.95%と定義。インフラ 障害等で下回った実績はない堅牢な運用 • 稼働率 99.99614% (直近1年の実績) • AWSと物理、コストと性能のバランス、適材適所 • 動的に増減させる機会が多いWebインスタンス • 数十コア、数百Gメモリと、fusion-io 等の PCIeバス直接 接続型の超高速ストレージを搭載した物理DBサーバー • 10,000 – 20,000 IOPS程度のデータの読み書き • 1回、100万通以上送信するメールサーバー © Money Forward,Inc.

Slide 21

Slide 21 text

システム構成(説明2 アカウントアグリゲーション) 21 自動で、定期的にデータを連携先サイトから取得 することで、ユーザーの利便性を向上 自動家計簿サービス、会計サービスの自動仕訳機 能などに関連する、重要な処理 • 自動かつ、定期的に実行することが、サービス上非常に 重要 • 2,580を超える金融関連サービスと連携 • 350万ユーザーのデータを蓄積。約50億レコード、圧縮 済みデータで数TBの連携関連情報をDBに保存 • 『MFクラウド会計・確定申告』では、『MFクラウド電子 証明書連携ソフト』として特許出願中 出願番号:特願 2015-026999 1 2 © Money Forward,Inc.

Slide 22

Slide 22 text

開発体制

Slide 23

Slide 23 text

開発体制(各チーム数名) 23 PFM MF クラウド • MFクラウドシリーズ  会計、請求書、消込、給与、マイナンバー、経費  法人向けサービスで、より品質が求められる • 業務アプリケーションの為、PCをメインで利用  Web(Ruby on Rails)での実装 が多い  会計、経費などはスマホアプリもあり • 中長期的な課題や、組織横断課題に取り組む  全プロダクトが利用するエンジン、認証機能など  半年後、1年後に深刻な課題になるものの設計見直し • アカウントアグリゲーション  Java • フロントエンド  UI(HTML / CSS / JS) 組織横断 • 自動家計簿、広告、マネトクメディア  スマホ(iOS / Android)  Web (Ruby on Rails) © Money Forward,Inc.

Slide 24

Slide 24 text

品質

Slide 25

Slide 25 text

品質 25 意味が薄い職人的チェックリスト運用は出来るだ けやらない。コード化して自動化する • 「ヒヤリハット」や「障害」がチェックリスト を生み出す • それ自体は悪いことではないが • 可能な限りコード化する • コード化したら、機械に任せる • 人間は人間にしかできないことをやる • 再発防止策 • 防止策の塗り重ねはしない • その原因の更に上の原因を探し当て潰す 1 © Money Forward,Inc.

Slide 26

Slide 26 text

品質 26 開発は内製化する。外部の協力会社に頼らずに、 ナレッジは社内に貯めて活用する • 外部委託と内製の差 • 自社で全部やるのは全然違う • 「基本的に見えない」⇒「基本的に見える」 • 手の届く範囲でいろいろなことができる • PMに求められる役割も違う • ただし、採用には • とても苦労します 2 © Money Forward,Inc.

Slide 27

Slide 27 text

品質 27 複雑なことはできるだけやらない。作りたい機能 は我慢する。 • 「だれのための機能か」 • 「複雑にしてもやるべきことか」 • 「基本機能でも97%のニーズは満たせるかも」 • 「それって、本当に必要なのか」 • 複雑なものがバグに繋がりやすい • 後から辛くなる。特に後のほうが辛くなる • 分かりづらい 3 © Money Forward,Inc.

Slide 28

Slide 28 text

スピード

Slide 29

Slide 29 text

スピード 29 1 判断をチーム内で完結させ、決裁(フロー)に時 間はかけない。権限を委譲し、リーダーが責任を 持って進める。 • 責任者(自由と責任、権限)とは • 決裁フローを可能な限り簡素化する • 開発仕様において • リリース前判断において • 小さなチーム(3名~4名)が重要 • 付加価値の高いことに集中する • どれをやると(やらないと)一番速いか © Money Forward,Inc.

Slide 30

Slide 30 text

スピード 30 2 リリース物は小さな単位で公開し、ユーザーの動 きを見ながら計画を調整する • 本番サービスリリース実績は209回 • 直近1か月の、Railsビルドログから取得 • 新機能は作りきる前に一部でも使って頂く • 仮説、KPIを立てて、課題解決を • その機能、思った通り使ってもらえていますか • (規模により、当然適さない場合もある) • 想定外の結果になった場合 • 進まずに考え直すラインを予め決めておく • 引き返しても痛くない単位で進める © Money Forward,Inc.

Slide 31

Slide 31 text

スピード 31 自分たちは「速い」と初めに決めてしまう • 「最速で意思決定を行い、 誰よりも早く行動に移す」 • MF-WAY(行動指針)の1つ • 決めてしまえば迷わない • 「これは遅いかも」と感じたら指摘し、変える • そしてそれを実行し続ける • アカウントアグリゲーション連携先サイト数実績 • 350万ユーザー約50億件の連携関連情報を預かる • Rubyコミッターの採用、Rubyを「速く」する 3 © Money Forward,Inc.

Slide 32

Slide 32 text

スピード(完璧か、最速か) 32 引用:Facebook CEO セリフ一覧: http://serif.hatelabo.jp/2b0a04a1636b501e0ad202e672039491b05690d9/list 完璧を目指すことは本当に難しい。小さな変更を素早く重ね、 ユーザーの立場に立ってプロダクトを考える 完璧を目指すより まず終わらせよう © Money Forward,Inc.

Slide 33

Slide 33 text

品質とスピード 33 「 スピードを重視する 」 とは 品質やスコープを調整して急ぐことでは無い 「 スピードを3倍に上げても、品質・スコープを ほぼ同等に保つ方法を工夫して実施すること 」 である © Money Forward,Inc.

Slide 34

Slide 34 text

セキュリティ

Slide 35

Slide 35 text

セキュリティ 35 1 保存データは重要度に応じて、データを扱うネッ トワークを分割し、複数個所に分散保存 • ネットワークを複数階層に分けFireWallを挟み、 重要なデータはより深い場所に永続化 • プロセスの責務と取り扱うデータを明確に • 様々なことを想定し、多重のセーフティーネットを • セキュリティアラート発報の仕組み • 1か所にすべてのデータを置かない • 円滑な開発や運用に多少支障が出ても、データの保存 場所をあるルールで分ける(詳細は説明できません) © Money Forward,Inc.

Slide 36

Slide 36 text

セキュリティ 36 2 データは暗号化して保存。復号鍵をシステム内に は配置しない • DBの暗号化(透過的暗号化ではない) • 重要データは暗号化した上で取り扱う • 暗号化しただけで満足してはダメ • 鍵管理システムから動的に鍵をセキュアに読み込みプ ロセスが起動するなど、復号鍵の取り扱いが重要 • システム内通信、プロセス間通信も暗号化 • データの保存時以外も、プロセス間通信も暗号化 • これも、当たり前と言えば当たり前 © Money Forward,Inc.

Slide 37

Slide 37 text

セキュリティ 37 地味で当たり前なことを、当たり前にやる。実は これが一番大事 • ミドルウェア脆弱性にいち早く対応する • ミドルウェアの脆弱性が発見された場合、速やか(早 ければ翌日)に全システムに適用を実施し、完了した ことをサイトで公開 • 内部からのアクセス制限、管理 • BIG-IP APM PWS プロテクテッドワークスペース • データを持ち出せないシステム、持ち出さない運用 • アクセス権限は最小限に、そして定期的見直し • 操作端末の記録取りや、監査等の実施 3 © Money Forward,Inc.

Slide 38

Slide 38 text

セキュリティ(主なパートナー企業様 金融機関様) 38 Yahoo!ファイナンス 公式アプリへ 「資産管理」機能提供 公式家計簿としてID連携 支出データもAPI連携 NTTドコモ、auに 家計簿アプリを提供 ヤフー様 クレディセゾン様 ソースネクスト様 はぴeみる電に 「ポイント通帳」機能提供 LOHACOユーザー向けに LOHACOアプリと シームレスに連携可能な 家計簿アプリを提供 /API連携・相互送客 関西電力様 住信SBIネット銀行様 山口フィナンシャルグループ様 静岡銀行様 群馬銀行様 滋賀銀行様 東海東京証券様 (アスクル様) © Money Forward,Inc.

Slide 39

Slide 39 text

セキュリティ 39 「 CISO とは 」 「 自社サービスに特化したブレーキそのもの 」 である 「 単に減速するだけでは、勝てない 」 © Money Forward,Inc.

Slide 40

Slide 40 text

環境・ツール・文化

Slide 41

Slide 41 text

環境・ツール・文化 41 CI GitHub • とにかく自動でテストが完結するように  開発はテストコードまでを範囲とする  テストがこけたら、すぐ直す  PR毎に自動でCIを実行し、パスした場合のみマージ • ツール  Jenkins > CircleCI > Jenkins (戻ってきた)  チャットツールの連携 • インフラデプロイもインフラテストもコードで管理  Itamae + Serverspec へ徐々に移行中  CI環境は動的に夜間減り、日中に増える構成 インフラ • セキュリティ  TOTP等で2段階認証  コードの中にセキュアな情報は入れない • 開発者、開発環境の中心に  仕様から、リリース判定まで  CI / チャット等エコシステム連携で有効活用 © Money Forward,Inc.

Slide 42

Slide 42 text

環境・ツール・文化 42 品質担保 リリース 期間 • 仕様判断、実装方法判断、品質判断  アプリケーション変更スタンダードを基に運用  GitHub の Issue や コードレビューで実施  LGTMで承認とみなす • 品質管理担当の専任者はいない  自部門内のクロスチェックで品質を担保する意識作り  障害を発生させないことで、自由を維持  品質をコントローラブルに • 高い商用製品ではなくOSSを利用  Oracleではなく、MySQL、JP1ではなく・・・  OSSへ還元する文化を大事に ミドル ウェア • 以前の当たり前  コード凍結期間2週間でテスト。月にリリースは2回  とにかくフローに時間がかかり、リリースも一苦労 • 今の当たり前  品質担保を自動で行い、リリースも半自動  でも、金融機関の品質を常に意識している © Money Forward,Inc.

Slide 43

Slide 43 text

GitHub上でのコミュニケーション 43 仕様決めからリリース判断「LGTM」までをGitHub上で © Money Forward,Inc.

Slide 44

Slide 44 text

CI 継続的インテグレーション 44 自動テスト失敗(赤)の例 数十のRails や スマホリポジトリがあり、1テスト7分程度で並列 自動実行。「LGTM」前後に自動でテストが実行される © Money Forward,Inc.

Slide 45

Slide 45 text

チャットツール 45 CIの結果通知や、Trello や bot連携等でSlackを活用 © Money Forward,Inc.

Slide 46

Slide 46 text

全体を通して 46 品質 とことんテストをコード化し自動化することで、品質の担保を行う スピード 小さい組織に権限移譲し、「早くて速い組織」にする セキュリティ 「金融機関の当たり前レベル」を、我々も地道にしっかりとやる © Money Forward,Inc.

Slide 47

Slide 47 text

Fintech インフラ・セキュリティに 興味があったらこちらまで 気軽にご連絡ください インフラ https://www.wantedly.com/projects/7727 セキュリティ https://www.wantedly.com/projects/58908