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

Technology to support Eight, Infrastructure part

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for Yutaro Sugai Yutaro Sugai
February 24, 2017

Technology to support Eight, Infrastructure part

2017/2/24に開催したEightを支える技術という勉強会のインフラ編での発表資料です。

Avatar for Yutaro Sugai

Yutaro Sugai

February 24, 2017
Tweet

More Decks by Yutaro Sugai

Other Decks in Technology

Transcript

  1. Copyright © 2014 Sansan, Inc. All rights reserved. 2 >

    ⾃⼰紹介 l Sansan株式会社 Eight事業部 l インフラエンジニア l 活動(現在) l ⼀般社団法⼈LOCAL理事 l 活動(以前) l Chef実践⼊⾨ l Asakusa.rb l るびま(Rubyist向けWeb Magazine)編集 l 最近、Go⾔語の勉強をはじめました。 l 趣味は電⾞、⾶⾏機、⾳楽、料理、お酒、読書、ゲーム(最近 はPC)、インターネット
  2. Copyright © 2014 Sansan, Inc. All rights reserved. 3 >

    ⾃⼰紹介 l ⼀般社団法⼈LOCAL理事 l ⽬的: 北海道の技術者コミュニティの活動を⽀援し、盛り上 げる l 活動 l オープンソースカンファレンス北海道の運営 l LOCALが⾏うイベントの企画運営 l イベント⽀援 l 学⽣交通費⽀援制度 l 会場確保やスタッフなどイベント運営の補佐
  3. Copyright © 2014 Sansan, Inc. All rights reserved. 4 >

    アジェンダ l 監視システムの⼊れ替え l サーバーレスを⽀える権限管理と監視 l デプロイの改善 l ログの改善 l インフラの⽇常 l PRやSlackへのコメント l Infra as Code(Chef, Terraform) l 脆弱性への対応
  4. Copyright © 2014 Sansan, Inc. All rights reserved. 6 >

    監視システムの⼊れ替え これまではNagiosを使っていましたが 2017年1⽉中にMackerelへ完全移⾏しました
  5. Copyright © 2014 Sansan, Inc. All rights reserved. 7 >

    EightとMackerel l Eightでは、監視サービスにMackerelを使⽤しています l 機能追加早いし、ブログ読みやすいし、Meetupも活発 l はてなによる安⼼感ある
  6. Copyright © 2014 Sansan, Inc. All rights reserved. 8 >

    EightとMackerel l 監視対象 Amazon EC2 Elastic Load Balancing Amazon Lambda DynamoDB Amazon RDS ElastiCache Amazon Redshift Amazon CloudSearch Amazon SQS Amazon Kinesis
  7. Copyright © 2014 Sansan, Inc. All rights reserved. 9 >

    サーバーレス化 Eightでのリコメンドアーキテクチャを バッチからサーバーレス化することで 刷新しリアルタイムに処理できるようにしました
  8. Copyright © 2014 Sansan, Inc. All rights reserved. 11 >

    サーバーレス化 旧:⽇次バッチ 新:リアルタイム・ストリーミング・アーキテクチャ データ加⼯ データ収集 レーティング データ キャッシュ リコメンド ⽣成 配信 ユーザ⾏動 24時間 リアルタイム データ加⼯ ⾏動ログ ユーザ⾏動 レーティング データ リコメンド ⽣成 キャッシュ 配信
  9. Copyright © 2014 Sansan, Inc. All rights reserved. 12 >

    サーバーレスを⽀える権限管理と監視 Eightでのリコメンドアーキテクチャを バッチからサーバーレス化することで 刷新しリアルタイムに処理できるようにしました 権限管理や監視はどのようにしたか紹介します
  10. Copyright © 2014 Sansan, Inc. All rights reserved. 13 >

    サーバーレスなシステムの管理 l ピタゴラ装置の監視をどうやるか l 各サービスが連携して動作する l 全体像を⾒た上でどこがつまるとまずいのかアプリケーションエ ンジニアと認識を合わせる必要があった l 監視項⽬を出してもらって実際の設定を調整した l 権限管理がわりと⼤変 l どこにロールを挟み込めるのか確認 l どのようなアクションをしたいのかアプリケーションエンジニア からヒアリング
  11. Copyright © 2014 Sansan, Inc. All rights reserved. 14 >

    サーバーレスと権限管理 l 権限 l 何のサービスが l 何のアクションを l どのリソースに対して⾏いたいのか設定する 14 新:リアルタイム・ストリーミング・アーキテクチャ データ加⼯ データ収集 レーティング データ キャッシュ リコメンド ⽣成 配信 ユーザ⾏動 リアルタイム
  12. Copyright © 2014 Sansan, Inc. All rights reserved. 15 >

    サーバーレスと権限管理 l 権限(例) l Lambdaが l DynamoDBのDescribeStream, GetItemなどなどを l ◦◦テーブルたちに⾏いたい 15 新:リアルタイム・ストリーミング・アーキテクチャ データ加⼯ データ収集 レーティング データ キャッシュ リコメンド ⽣成 配信 ユーザ⾏動 リアルタイム
  13. Copyright © 2014 Sansan, Inc. All rights reserved. 16 >

    サーバーレスと権限管理 l 権限管理 l つまりは、⼈やグループだけでなく l アプリケーション動作に必要なロールを管理するということ l Eightでは、Terraformを使って権限を管理している 16
  14. Copyright © 2014 Sansan, Inc. All rights reserved. 17 >

    サーバーレスを⽀える権限管理と監視 l サーバーレスなものたちの管理⽅法はまだ決まってない 感じが強い l デプロイ系 l 監視など l ⼿探り感はあったが必要な監視やデプロイツールを考える過程 でのチーム内ディスカッションはいい経験だった l ほかチームでのアーキテクチャ選定時に、⾃分たちのチームで の知⾒を広めることができてよかった l ほかチームもサーバーレス化の検討をしていていい影響を与え られた l Serverless Confで発表してもらおうと思っています 17
  15. Copyright © 2014 Sansan, Inc. All rights reserved. 18 >

    デプロイの改善 l デプロイの問題点 l 拘束時間が⻑い l 安全でない部分がある l ⼿間がかかる l 良くしていけるところがたくさんあった
  16. Copyright © 2014 Sansan, Inc. All rights reserved. 19 >

    デプロイの改善 l 改善のための施策 l asset_sync+S3+Cloudfrontの導⼊ l 進⾏中 l デプロイ時間 12分→4分(ステージ) l Blue-Green Deploymentの導⼊ l 進⾏中 l ⾃動PR作成botの導⼊ l 運⽤開始済み l 設定ファイルのメンテコスト削減 l KMSの利⽤促進
  17. Copyright © 2014 Sansan, Inc. All rights reserved. 20 >

    デプロイの改善 l 改善のための施策 l asset_sync+S3+Cloudfrontの導⼊ Amazon S3 CloudFront Instances Client Mobile Client
  18. Copyright © 2014 Sansan, Inc. All rights reserved. 21 >

    デプロイの改善 l 改善のための施策 l blue-green deployment l 我らが⽗、Martin Fowlerが提唱(March 2010) l https://martinfowler.com/bliki/BlueGreenDeployment.html
  19. Copyright © 2014 Sansan, Inc. All rights reserved. 22 >

    ログの改善 l ログの問題点 l 出⼒される量が多い l ログレベルが統⼀されていない l 良くしていけるところがたくさんあった
  20. Copyright © 2014 Sansan, Inc. All rights reserved. 23 >

    ログの改善 l 改善のための施策 l 事前調査 l 第⼀弾の削減 l ⼈海戦術 l 統⼀フォーマットの決定とLTSV化 l 実際に1台で収集してみる l Elasticsearch+Kibanaに投⼊ l やっぱりまだ多い… l 第⼆弾の削減 l 分類中
  21. Copyright © 2014 Sansan, Inc. All rights reserved. 24 >

    インフラの⽇常 l Infra as Code(Chef, Terraform) l 脆弱性への対応 l PRやSlackへのコメント
  22. Copyright © 2014 Sansan, Inc. All rights reserved. 25 >

    Infra as Code(Chef, Terraform) l インフラに関連するコード l Chef: EC2のミドルウェアまわりや設定など l Terraform: AWS(VPC, IAM, Cloudfront等) l Lambda: CloudWatchのAPIを叩いてMackerelへPOST l PRでレビューしてもらって本番適⽤
  23. Copyright © 2014 Sansan, Inc. All rights reserved. 26 >

    脆弱性への対応 l 対応の⽅針はCSIRTから出ている l vulsで週次スキャン l CVSSスコアに応じて発⾒⽇から数⽇〜⼀ヶ⽉程度で適⽤ l 再起動が伴うパッチの場合は、深夜メンテと同時に対応
  24. Copyright © 2014 Sansan, Inc. All rights reserved. 27 >

    PRやSlackへのコメント l ⼀応PRはほぼすべて⽬を通しています l その上で、パフォーマンス的に気になる点や不思議なコミッ トについてはコメントと絵⽂字 をつけています
  25. Copyright © 2014 Sansan, Inc. All rights reserved. 28 >

    PRやSlackへのコメント l 最近気になること l チーム間にあると思われている壁の存在(⼼理的) l 個⼈的にはそんなものないと⾔ってしまいたい l ⼼理的安全性と組織学習 l 「チームの能⼒は個々⼈の総和を超える」 l 「早く成功するために、頻繁に失敗しよう」 l 学習する組織を⽀えるもの: ⾃らを動かす⼒、複雑性を理解す る⼒、共創的な対話する⼒ l 「神よ 願わくばわたしに、変えることのできない物事を受け⼊ れる落ち着きと、変えることのできる物事を変える勇気と、そ の違いを常に⾒分ける知恵とをさずけたまえ」
  26. Copyright © 2014 Sansan, Inc. All rights reserved. 29 >

    PRやSlackへのコメント l 何を考えてコメントしているか l ポジティブにコメントをする。良いことは良いと⾔う。 l 「今のプロセスが不完全であると理解し、よりよい⽅法をみ んなと協⼒して⾒つけたいと思うこと」 l →これらの⼀部は、「チームが機能するとはどういうこと か」に書いてある l http://hokkai7go.hatenablog.jp/entry/2017/02/07/090 655
  27. Copyright © 2014 Sansan, Inc. All rights reserved. 30 >

    まとめ l インフラは⼆名しかいないので⾃分たちで理想を描いて やっていくしかない l ディスカッションして、よりよくしていけるのは楽しい l 他社事例があるものから学びつつ、初の事例も楽しく深 掘りできている
  28. Copyright © 2014 Sansan, Inc. All rights reserved. 31 >

    まとめ と、まあ若⼲脱線し始めたあたりで発表はおわりです
  29. Copyright © 2014 Sansan, Inc. All rights reserved. 32 >

    Sansanでは ⼀緒に働いてくれる⼈を募集中です!
  30. Copyright © 2014 Sansan, Inc. All rights reserved. 33 >

    最後にエンジニアとデザイナーの話 .NET Ruby infra iOS Android R&D Data Analyst エンジニアの勢⼒図こんな感じです。 各開発部⾨及び他1部署にデザイナーはいます。
  31. Copyright © 2014 Sansan, Inc. All rights reserved. 34 >

    エンジニア・デザイナー補助制度 書籍購⼊ 環境整備補助 ソフトウェア購⼊補助 端末購⼊補助 勉強会参加補助 有料カンファレンス 参加補助