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

Technology to support Eight, Infrastructure part

Yutaro Sugai
February 24, 2017

Technology to support Eight, Infrastructure part

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

Yutaro Sugai

February 24, 2017
Tweet

More Decks by Yutaro Sugai

Other Decks in Technology

Transcript

  1.  > &JHIUΛࢧ͑Δٕज़ Πϯϑϥฤ Sansan株式会社 Eight事業部 インフラエンジニア 菅井祐太朗

  2. 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)、インターネット
  3. Copyright © 2014 Sansan, Inc. All rights reserved. 3 >

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

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

    インフラの体制 ⼆名
  6. Copyright © 2014 Sansan, Inc. All rights reserved. 6 >

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

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

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

    リコメンド
  11. Copyright © 2014 Sansan, Inc. All rights reserved. 11 >

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

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

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

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

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

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

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

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

    デプロイの改善 l 改善のための施策 l asset_sync+S3+Cloudfrontの導⼊ Amazon S3 CloudFront Instances Client Mobile Client
  21. 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
  22. Copyright © 2014 Sansan, Inc. All rights reserved. 22 >

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

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

    インフラの⽇常 l Infra as Code(Chef, Terraform) l 脆弱性への対応 l PRやSlackへのコメント
  25. 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でレビューしてもらって本番適⽤
  26. Copyright © 2014 Sansan, Inc. All rights reserved. 26 >

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

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

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

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

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

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

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

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