Upgrade to Pro — share decks privately, control downloads, hide ads and more …

マネーフォワードが実践する「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. 前半のAgenda © Money Forward,Inc. 2 1 マネーフォワードのサービスの紹介 2 システム構成の紹介 開発体制

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

     2000年 マネックス証券株式会社入社、調理業界で の知識を活かし、株式取引システムインフラの開発・ 運用・PM業務を担当。  2008年 マネックスグループに転籍。子会社のシス テム統合などを担当。  2010年 大手金融システム開発会社にて、オンライ ン為替証拠金取引サイトの新規構築にインフラ担当の 責任者として参画。  2012年 株式会社マネーフォワードでシステムイン フラ・セキュリティ部門を担当(CISO)現在に至る。 © Money Forward,Inc.
  3. 設立: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.
  4. システム構成(説明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.
  5. システム構成(説明2 アカウントアグリゲーション) 21 自動で、定期的にデータを連携先サイトから取得 することで、ユーザーの利便性を向上 自動家計簿サービス、会計サービスの自動仕訳機 能などに関連する、重要な処理 • 自動かつ、定期的に実行することが、サービス上非常に 重要

    • 2,580を超える金融関連サービスと連携 • 350万ユーザーのデータを蓄積。約50億レコード、圧縮 済みデータで数TBの連携関連情報をDBに保存 • 『MFクラウド会計・確定申告』では、『MFクラウド電子 証明書連携ソフト』として特許出願中 出願番号:特願 2015-026999 1 2 © Money Forward,Inc.
  6. 開発体制(各チーム数名) 23 PFM MF クラウド • MFクラウドシリーズ  会計、請求書、消込、給与、マイナンバー、経費 

    法人向けサービスで、より品質が求められる • 業務アプリケーションの為、PCをメインで利用  Web(Ruby on Rails)での実装 が多い  会計、経費などはスマホアプリもあり • 中長期的な課題や、組織横断課題に取り組む  全プロダクトが利用するエンジン、認証機能など  半年後、1年後に深刻な課題になるものの設計見直し • アカウントアグリゲーション  Java • フロントエンド  UI(HTML / CSS / JS) 組織横断 • 自動家計簿、広告、マネトクメディア  スマホ(iOS / Android)  Web (Ruby on Rails) © Money Forward,Inc.
  7. 品質 25 意味が薄い職人的チェックリスト運用は出来るだ けやらない。コード化して自動化する • 「ヒヤリハット」や「障害」がチェックリスト を生み出す • それ自体は悪いことではないが •

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

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

    • 「それって、本当に必要なのか」 • 複雑なものがバグに繋がりやすい • 後から辛くなる。特に後のほうが辛くなる • 分かりづらい 3 © Money Forward,Inc.
  10. スピード 29 1 判断をチーム内で完結させ、決裁(フロー)に時 間はかけない。権限を委譲し、リーダーが責任を 持って進める。 • 責任者(自由と責任、権限)とは • 決裁フローを可能な限り簡素化する

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

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

    • 「これは遅いかも」と感じたら指摘し、変える • そしてそれを実行し続ける • アカウントアグリゲーション連携先サイト数実績 • 350万ユーザー約50億件の連携関連情報を預かる • Rubyコミッターの採用、Rubyを「速く」する 3 © Money Forward,Inc.
  13. セキュリティ 35 1 保存データは重要度に応じて、データを扱うネッ トワークを分割し、複数個所に分散保存 • ネットワークを複数階層に分けFireWallを挟み、 重要なデータはより深い場所に永続化 • プロセスの責務と取り扱うデータを明確に

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

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

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

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

    「 単に減速するだけでは、勝てない 」 © Money Forward,Inc.
  18. 環境・ツール・文化 41 CI GitHub • とにかく自動でテストが完結するように  開発はテストコードまでを範囲とする  テストがこけたら、すぐ直す

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

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