$30 off During Our Annual Pro Sale. View Details »

マネーフォワードが実践する「DevSecOps」

 マネーフォワードが実践する「DevSecOps」

アイティメディア様で登壇させていただいた資料です
https://itmedia.smartseminar.jp/public/seminar/view/866
#インフラ #セキュリティ #品質 #スピード #セキュリティ #Fintech #フィンテック #マネーフォワード

Ichikawa Takashi

June 15, 2016
Tweet

More Decks by Ichikawa Takashi

Other Decks in Technology

Transcript

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

  2. 前半のAgenda © Money Forward,Inc. 2 1 マネーフォワードのサービスの紹介 2 システム構成の紹介 開発体制

    3 4 5 「品質」「スピード」「セキュリティ」 環境・ツール・文化
  3. 自己紹介 3 市川貴志(いちかわたかし) 執行役員 CISO最高情報セキュリティ責任者 https://www.wantedly.com/users/995  辻調グループ・フランス校卒業。西洋料理の本場でフ ランス料理を学び、Lyon郊外の二つ星レストランに て研修を受ける。

     2000年 マネックス証券株式会社入社、調理業界で の知識を活かし、株式取引システムインフラの開発・ 運用・PM業務を担当。  2008年 マネックスグループに転籍。子会社のシス テム統合などを担当。  2010年 大手金融システム開発会社にて、オンライ ン為替証拠金取引サイトの新規構築にインフラ担当の 責任者として参画。  2012年 株式会社マネーフォワードでシステムイン フラ・セキュリティ部門を担当(CISO)現在に至る。 © Money Forward,Inc.
  4. 自己紹介(フランス料理人から、社内給食当番へ転職) 4 © Money Forward,Inc.

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

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

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

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

    Money Forward,Inc.
  9. 設立: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.
  10. PFM事業 個人向け

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

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

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

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

  15. オフィス向け

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

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

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

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

  20. システム構成(説明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.
  21. システム構成(説明2 アカウントアグリゲーション) 21 自動で、定期的にデータを連携先サイトから取得 することで、ユーザーの利便性を向上 自動家計簿サービス、会計サービスの自動仕訳機 能などに関連する、重要な処理 • 自動かつ、定期的に実行することが、サービス上非常に 重要

    • 2,580を超える金融関連サービスと連携 • 350万ユーザーのデータを蓄積。約50億レコード、圧縮 済みデータで数TBの連携関連情報をDBに保存 • 『MFクラウド会計・確定申告』では、『MFクラウド電子 証明書連携ソフト』として特許出願中 出願番号:特願 2015-026999 1 2 © Money Forward,Inc.
  22. 開発体制

  23. 開発体制(各チーム数名) 23 PFM MF クラウド • MFクラウドシリーズ  会計、請求書、消込、給与、マイナンバー、経費 

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

  25. 品質 25 意味が薄い職人的チェックリスト運用は出来るだ けやらない。コード化して自動化する • 「ヒヤリハット」や「障害」がチェックリスト を生み出す • それ自体は悪いことではないが •

    可能な限りコード化する • コード化したら、機械に任せる • 人間は人間にしかできないことをやる • 再発防止策 • 防止策の塗り重ねはしない • その原因の更に上の原因を探し当て潰す 1 © Money Forward,Inc.
  26. 品質 26 開発は内製化する。外部の協力会社に頼らずに、 ナレッジは社内に貯めて活用する • 外部委託と内製の差 • 自社で全部やるのは全然違う • 「基本的に見えない」⇒「基本的に見える」

    • 手の届く範囲でいろいろなことができる • PMに求められる役割も違う • ただし、採用には • とても苦労します 2 © Money Forward,Inc.
  27. 品質 27 複雑なことはできるだけやらない。作りたい機能 は我慢する。 • 「だれのための機能か」 • 「複雑にしてもやるべきことか」 • 「基本機能でも97%のニーズは満たせるかも」

    • 「それって、本当に必要なのか」 • 複雑なものがバグに繋がりやすい • 後から辛くなる。特に後のほうが辛くなる • 分かりづらい 3 © Money Forward,Inc.
  28. スピード

  29. スピード 29 1 判断をチーム内で完結させ、決裁(フロー)に時 間はかけない。権限を委譲し、リーダーが責任を 持って進める。 • 責任者(自由と責任、権限)とは • 決裁フローを可能な限り簡素化する

    • 開発仕様において • リリース前判断において • 小さなチーム(3名~4名)が重要 • 付加価値の高いことに集中する • どれをやると(やらないと)一番速いか © Money Forward,Inc.
  30. スピード 30 2 リリース物は小さな単位で公開し、ユーザーの動 きを見ながら計画を調整する • 本番サービスリリース実績は209回 • 直近1か月の、Railsビルドログから取得 •

    新機能は作りきる前に一部でも使って頂く • 仮説、KPIを立てて、課題解決を • その機能、思った通り使ってもらえていますか • (規模により、当然適さない場合もある) • 想定外の結果になった場合 • 進まずに考え直すラインを予め決めておく • 引き返しても痛くない単位で進める © Money Forward,Inc.
  31. スピード 31 自分たちは「速い」と初めに決めてしまう • 「最速で意思決定を行い、 誰よりも早く行動に移す」 • MF-WAY(行動指針)の1つ • 決めてしまえば迷わない

    • 「これは遅いかも」と感じたら指摘し、変える • そしてそれを実行し続ける • アカウントアグリゲーション連携先サイト数実績 • 350万ユーザー約50億件の連携関連情報を預かる • Rubyコミッターの採用、Rubyを「速く」する 3 © Money Forward,Inc.
  32. スピード(完璧か、最速か) 32 引用:Facebook CEO セリフ一覧: http://serif.hatelabo.jp/2b0a04a1636b501e0ad202e672039491b05690d9/list 完璧を目指すことは本当に難しい。小さな変更を素早く重ね、 ユーザーの立場に立ってプロダクトを考える 完璧を目指すより まず終わらせよう

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

    」 である © Money Forward,Inc.
  34. セキュリティ

  35. セキュリティ 35 1 保存データは重要度に応じて、データを扱うネッ トワークを分割し、複数個所に分散保存 • ネットワークを複数階層に分けFireWallを挟み、 重要なデータはより深い場所に永続化 • プロセスの責務と取り扱うデータを明確に

    • 様々なことを想定し、多重のセーフティーネットを • セキュリティアラート発報の仕組み • 1か所にすべてのデータを置かない • 円滑な開発や運用に多少支障が出ても、データの保存 場所をあるルールで分ける(詳細は説明できません) © Money Forward,Inc.
  36. セキュリティ 36 2 データは暗号化して保存。復号鍵をシステム内に は配置しない • DBの暗号化(透過的暗号化ではない) • 重要データは暗号化した上で取り扱う •

    暗号化しただけで満足してはダメ • 鍵管理システムから動的に鍵をセキュアに読み込みプ ロセスが起動するなど、復号鍵の取り扱いが重要 • システム内通信、プロセス間通信も暗号化 • データの保存時以外も、プロセス間通信も暗号化 • これも、当たり前と言えば当たり前 © Money Forward,Inc.
  37. セキュリティ 37 地味で当たり前なことを、当たり前にやる。実は これが一番大事 • ミドルウェア脆弱性にいち早く対応する • ミドルウェアの脆弱性が発見された場合、速やか(早 ければ翌日)に全システムに適用を実施し、完了した ことをサイトで公開

    • 内部からのアクセス制限、管理 • BIG-IP APM PWS プロテクテッドワークスペース • データを持ち出せないシステム、持ち出さない運用 • アクセス権限は最小限に、そして定期的見直し • 操作端末の記録取りや、監査等の実施 3 © Money Forward,Inc.
  38. セキュリティ(主なパートナー企業様 金融機関様) 38 Yahoo!ファイナンス 公式アプリへ 「資産管理」機能提供 公式家計簿としてID連携 支出データもAPI連携 NTTドコモ、auに 家計簿アプリを提供

    ヤフー様 クレディセゾン様 ソースネクスト様 はぴeみる電に 「ポイント通帳」機能提供 LOHACOユーザー向けに LOHACOアプリと シームレスに連携可能な 家計簿アプリを提供 /API連携・相互送客 関西電力様 住信SBIネット銀行様 山口フィナンシャルグループ様 静岡銀行様 群馬銀行様 滋賀銀行様 東海東京証券様 (アスクル様) © Money Forward,Inc.
  39. セキュリティ 39 「 CISO とは 」 「 自社サービスに特化したブレーキそのもの 」 である

    「 単に減速するだけでは、勝てない 」 © Money Forward,Inc.
  40. 環境・ツール・文化

  41. 環境・ツール・文化 41 CI GitHub • とにかく自動でテストが完結するように  開発はテストコードまでを範囲とする  テストがこけたら、すぐ直す

     PR毎に自動でCIを実行し、パスした場合のみマージ • ツール  Jenkins > CircleCI > Jenkins (戻ってきた)  チャットツールの連携 • インフラデプロイもインフラテストもコードで管理  Itamae + Serverspec へ徐々に移行中  CI環境は動的に夜間減り、日中に増える構成 インフラ • セキュリティ  TOTP等で2段階認証  コードの中にセキュアな情報は入れない • 開発者、開発環境の中心に  仕様から、リリース判定まで  CI / チャット等エコシステム連携で有効活用 © Money Forward,Inc.
  42. 環境・ツール・文化 42 品質担保 リリース 期間 • 仕様判断、実装方法判断、品質判断  アプリケーション変更スタンダードを基に運用 

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

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

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

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

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