Save 37% off PRO during our Black Friday Sale! »

リクルート流SRE インフラ運用がサービスを変える世界

リクルート流SRE インフラ運用がサービスを変える世界

2018年6月8日 @IT主催『「SRE」のエンタープライズ適用を考える ~AI※は、運用管理をどう進化させるのか~』での、河村の講演資料です。

Eea9a05e6e222a3d50c73f54a49fadf4?s=128

Recruit Technologies

June 06, 2018
Tweet

Transcript

  1. リクルートテクノロジーズ ITエンジニアリング本部 サイトリラアビリティエンジニアリング部 河村 聖悟 リクルート流SRE インフラ運用がサービスを変える世界

  2. (C) Recruit Technologies Co.,Ltd. All rights reserved. 2 Recruit Technologies

    Site Reliability Engineering リクルートテクノロジーズ紹介
  3. (C) Recruit Technologies Co.,Ltd. All rights reserved. 3 Recruit Technologies

    Site Reliability Engineering リクルートグループについて リクルートは2012年10月に分社化、2014年10月に上場しています。 創立 1960年3月31日 「大学新聞広告社」としてスタート グループ 従業員数 45,688名 (2017年3月31日時点) 連結売上高 18,399億87百万円 (2016年4月1日~2017年3月31日) 連結経常利益 1,317億18百万円 (2016年4月1日~2017年3月31日) グループ 関連企業数 357社 (連結対象子会社、2017年3月31日時点) 目指す世界観 「あなた」を支える存在でありたい
  4. (C) Recruit Technologies Co.,Ltd. All rights reserved. 4 Recruit Technologies

    Site Reliability Engineering (株)リクルートの事業内容について 選択・意思決定を支援する情報サービスを提供し、 「まだ、ここにない、出会い。」を実現する。 旅行 ビジネス支援 生活/地域情報 グルメ・美容 ライフスタイル領域 ライフイベント領域 進学 就職 結婚 転職 住宅購入 車購入 出産/育児
  5. (C) Recruit Technologies Co.,Ltd. All rights reserved. 5 Recruit Technologies

    Site Reliability Engineering リクルートのビジネスモデルについて ユーザーとクライアントを新しい接点で結び、 「まだ、ここにない、出会い。」の場を創造する。 リクルートには、ユーザーとクライアントという2つのお客様が存在します 企業と人(B to C)、企業と企業(B to B)、人と人(C to C)、 すべての間に立ち、双方にとって最適なマッチングを図る「場」を提供しています
  6. (C) Recruit Technologies Co.,Ltd. All rights reserved. 6 Recruit Technologies

    Site Reliability Engineering リクルートグループにおけるリクルートテクノロジーズについて リクルートテクノロジーズは、リクルートグループの IT・ネットマーケティング領域のテクノロジー開発を担う会社です リクルート ホールディングス リクルートキャリア リクルート住まいカンパニー リクルートライフスタイル リクルートジョブズ リクルートマーケティングパートナーズ リクルートテクノロジーズ リクルートスタッフィング スタッフサービス・ホールディングス リクルートコミュニケーションズ メディア & ソリューション事業 (株)リクルート 人材派遣事業 Recruit Global Staffing B.V. HRテクノロジ― 事業 RGF OHR USA, Inc. その他海外派遣グループ会社 Indeed,Inc.
  7. (C) Recruit Technologies Co.,Ltd. All rights reserved. 7 Recruit Technologies

    Site Reliability Engineering リクルートテクノロジーズの役割について 技術・ソリューションを磨き続け、リクルートの各サービスがもつ価値を最大限に発揮できる ようビジネスへ実装。ITの側面からサービスを進化させることを通じて、世の中に新しい価値 を提供していきます。
  8. (C) Recruit Technologies Co.,Ltd. All rights reserved. 8 Recruit Technologies

    Site Reliability Engineering リクルートテクノロジーズの事業内容について 将来のニーズを見据え、新しい技術のR&D・ソリューションの開拓を実現。検証を続け、い ち早く活用できるレベルに引きあげることで、中長期的なビジネス競争優位を構築していき ます。
  9. (C) Recruit Technologies Co.,Ltd. All rights reserved. 9 Recruit Technologies

    Site Reliability Engineering リクルートテクノロジーズの組織構成について リクルートテクノロジーズは5つの統括本部で構成されています。 各統括本部の下に、さらに部・グループが続きます。 企画統括本部 ITマネジメント本部 リクルートテクノロジーズ ITマーケティング本部 ITソリューション本部 経営企画、広報、経理/人事/総務ほか いわゆるスタッフ部隊 事業と一体となり、開発ディレクションやエンハンス、 大規模開発プロジェクトの推進を担う UXデザイン、ウェブマーケティング基盤の開発、 サービスデザインの検討から実装を担う サービスプロダクトの開発、サービスインフラやAP基 盤の開発、運用を担う ITエンジニアリング本部 リクルート全社の基幹システムや共通インフラ、セ キュリティ等のソリューションを提供する
  10. (C) Recruit Technologies Co.,Ltd. All rights reserved. 10 Recruit Technologies

    Site Reliability Engineering SREとは
  11. (C) Recruit Technologies Co.,Ltd. All rights reserved. 11 Recruit Technologies

    Site Reliability Engineering そもそもSREとは? • 「サイト信頼性の向上」を命題におく • 運用オペレーションにソフトウェアの「知識」を持ち込む
  12. (C) Recruit Technologies Co.,Ltd. All rights reserved. 12 Recruit Technologies

    Site Reliability Engineering ソフトウェアの「知識」を持ち込む事とは • 自動化実装・OSS導入が全てではない • ソフトウェア開発工程の全てが運用に活きる • 全てをS/W化せずいらないものは捨てる
  13. (C) Recruit Technologies Co.,Ltd. All rights reserved. 13 Recruit Technologies

    Site Reliability Engineering 今日の話のポイント
  14. (C) Recruit Technologies Co.,Ltd. All rights reserved. 14 Recruit Technologies

    Site Reliability Engineering 今日話したいこと • SREを通じてやってきた事と、それを通じて学んだ事をシェア • 「運用はクリエイティブなもの」 • どんな環境でも運用は改善できる
  15. (C) Recruit Technologies Co.,Ltd. All rights reserved. 15 Recruit Technologies

    Site Reliability Engineering 話したいけど細かく話さないので検索を! • 「リクルート SRE」 • 「RAFTEL Fleet」 • 「リクルートテクノロジーズ kubernetes」 • 「リクルートテクノロジーズ rancher」
  16. (C) Recruit Technologies Co.,Ltd. All rights reserved. 16 Recruit Technologies

    Site Reliability Engineering やってきた事を説明する前に、背景
  17. (C) Recruit Technologies Co.,Ltd. All rights reserved. 17 Recruit Technologies

    Site Reliability Engineering そもそもなんで改善施策を行おうとしたのか? • 贔屓目にみてもうまくいってなかった • どう見ても大人数で全員サッカー • コミュニケーション大変そう • 何営業日もかかる • その作業、手動でやる必要あるのか? • トリプルチェック
  18. (C) Recruit Technologies Co.,Ltd. All rights reserved. 18 Recruit Technologies

    Site Reliability Engineering リクルートだから改善やりやすいとかは特にない • リクルート流といいつつ他の会社と特に変わった背景はない • エンタープライズ環境あるある • だれしもが先進的かというとそうでもない • 古い技術・慣れた仕組みはそれで大事
  19. (C) Recruit Technologies Co.,Ltd. All rights reserved. 19 Recruit Technologies

    Site Reliability Engineering リクルートのシステムは新旧入り混じっている • 大規模サイトは変わらずオンプレミス上 • 仮想化はVMWare、一部NSX導入してS/W化 • 基幹インフラは物理一曲集中 • ゲストOSはRedhat、まれにUbuntu • クラウド利用は増加傾向 • AWS/GCP/Azure • k8s + dockerなんて構成もある
  20. (C) Recruit Technologies Co.,Ltd. All rights reserved. 20 Recruit Technologies

    Site Reliability Engineering やりやすさも他の会社と同じ • はじまりは一人から • 常に準備して機会を狙う • 唯一のリクルートらしさは「なぜやるの?」を聞かれる
  21. (C) Recruit Technologies Co.,Ltd. All rights reserved. 21 Recruit Technologies

    Site Reliability Engineering ここからの話は • 遠い世界の出来事ではない • やろうと思えばできる話も多数あります!
  22. (C) Recruit Technologies Co.,Ltd. All rights reserved. 22 Recruit Technologies

    Site Reliability Engineering リクルートのSREはどんな事をやってきたか
  23. (C) Recruit Technologies Co.,Ltd. All rights reserved. 23 Recruit Technologies

    Site Reliability Engineering 現状を知る • まずは現状を知りつくす • 自分の担当範囲を越えて知ろうとする
  24. (C) Recruit Technologies Co.,Ltd. All rights reserved. 24 Recruit Technologies

    Site Reliability Engineering 仕組み化を考える • 情報が揃ったら、仕組み化(フロー化)を考える • できるだけシンプル化する • その過程で、現フローの無駄や課題を見つける
  25. (C) Recruit Technologies Co.,Ltd. All rights reserved. 25 Recruit Technologies

    Site Reliability Engineering 仕組み化の前に考えた事 • システムの運用やメンテナンスを見据えて自動化する • 無理な自動化は負荷を生む(メンテナンスコストもかかる)
  26. (C) Recruit Technologies Co.,Ltd. All rights reserved. 26 Recruit Technologies

    Site Reliability Engineering 自動化は「時間を作り出せるか?」で考える • なんでもかんでも自動化で解決するわけではない • ポイントは「その自動化が(他に使える)時間を作り出すか」 • 自動化が余計な仕事を作り出していないか? • ひとりよがり(俺すごい)はよくない
  27. (C) Recruit Technologies Co.,Ltd. All rights reserved. 27 Recruit Technologies

    Site Reliability Engineering 自動化が効果的でない例 部分的な自動化は作業を作り出したり、トータル時間が変わらなかったりする 手作業A レビュー 手作業B レビュー 引き継ぎ 記録 自 動 化 A レビュー 自 動 化 B レビュー 引き継ぎ 記録 結果 の 変換 実施 結果 の 調査 time time 自動化で 短縮 自動化Bに渡すため 変換作業が増加 自動化実施した結果 を目視で転記 トータルでかかる時 間は同じ
  28. (C) Recruit Technologies Co.,Ltd. All rights reserved. 28 Recruit Technologies

    Site Reliability Engineering 自動化で時間を作り出す例 手作業A レビュー 手作業B レビュー 引き継ぎ 記録 time 自 動 化 A 自 動 化 B time 自 動 記 録 自動化で 短縮 次の自動化に そのまま連携 ルールにそっ て値をバリ デーション 記録できるツールに API連携で書き込み 「時間を作り出した」と言える
  29. (C) Recruit Technologies Co.,Ltd. All rights reserved. 29 Recruit Technologies

    Site Reliability Engineering どんな自動化を実施したかの例 • どんな自動化かに取り組んだか、は本題ではないので飛ばす • サーバ構築のAnsible化 • ドキュメントのGoogle Spread Sheet化 • 申請自動化 • Excel申請のJira化による集計自動化 • Confluence記載フォームからのJiraチケット作成 • WebGUI経由の自動化(独自実装) • ストレージサイズ拡縮自動化 • DNS申請自動化 • FW設定棚卸し • WebGUI経由の構築フル自動化(Fleet) • サーバ構築・NW構築・FW設定迄含めた自動化・払い出し • NW仮想化:VMWare NSX + F5 VA • Rancher + Dockerによるマイクロシステム化された部分実装可能なオーケストレータ • Slackボット(議事ページ自動作成・空調・Mac/Win CIFS変換・PDF印刷)
  30. (C) Recruit Technologies Co.,Ltd. All rights reserved. 30 Recruit Technologies

    Site Reliability Engineering 抵抗にあらがう • 改善・改革は、なにかしらの抵抗にあうが、とにかく話に行く • 運用は「変えない事」で短期的には安定する • 運用は減点方式で採点されることが多いので、余計な事はしたくない • ネゴが大変だったら実行してしまう • 運用フローのInとOutを変えずに、中身だけ入替える • 便利(高速・手間いらず)になってれば人は後からついてくる
  31. (C) Recruit Technologies Co.,Ltd. All rights reserved. 31 Recruit Technologies

    Site Reliability Engineering あきらめずにしっかり説明する • 中長期でみると「変えない事」により品質が下がる • システムが変わらなくても、人は変わってしまう • 自動化より手動のほうが安心というのは都市伝説
  32. (C) Recruit Technologies Co.,Ltd. All rights reserved. 32 Recruit Technologies

    Site Reliability Engineering 属人性を剥がす • 属人性は品質を下げる • 仕組み化を考える「過程」は、属人性はがしに有効に働く • 背水の陣(多少つらくても配置を変えてしまう) • さじ加減大切
  33. (C) Recruit Technologies Co.,Ltd. All rights reserved. 33 Recruit Technologies

    Site Reliability Engineering いらないアラートを潰す • アラートを潰す • メンバが考えてくれた、べたでもっとも有効な運用効率化 • 障害発生してもほっといてもいいシステムなら記録だけ残す
  34. (C) Recruit Technologies Co.,Ltd. All rights reserved. 34 Recruit Technologies

    Site Reliability Engineering コミュニケーションをオープンに • インフラだけに閉じず、広く関係者に話す • インフラ(OPS)に対してフランクに相談できる環境を作る • 閉鎖的なコミュニケーションのコストは尋常じゃない • チームにとじたツールは全廃する
  35. (C) Recruit Technologies Co.,Ltd. All rights reserved. 35 Recruit Technologies

    Site Reliability Engineering 部署をわけてもっとサービスに寄せた • サービスに寄り添って会話できる組織体制をつくった • 温度感とかすごく伝わるので距離(ロケーション)は重要 • ただ反省として役割定義は明確にしておく必要がある
  36. (C) Recruit Technologies Co.,Ltd. All rights reserved. 36 Recruit Technologies

    Site Reliability Engineering 「インフラ作業申請」の形を変える • (インフラ部署が開発部隊と別れている人向けの話) • 申請内容の人間のチェックとか大半は不要 • 複雑な暗黙ルール(フリーフォーマット)を減らす • ロケーションを近くして、会話して、記録を残す
  37. (C) Recruit Technologies Co.,Ltd. All rights reserved. 37 Recruit Technologies

    Site Reliability Engineering 監視・モニタリングを変える • (監視用コールセンター利用中の方向け) • ログを目視確認して人手で電話という状況は全体障害に弱い • 監視はASPで自動化(Datadog / Pagerduty) • メトリクスはあらかじめ絞り込まず最初は全部とってから絞る
  38. (C) Recruit Technologies Co.,Ltd. All rights reserved. 38 Recruit Technologies

    Site Reliability Engineering 組織として振り返る • 失敗したら減点、失敗した人を怒る風土をやめる • 失敗のカバーは「その作業をやらなくていい仕組み」で • 振り返る・個人ではなくチームでどう立ち向かうか? • 前向きに振り返る
  39. (C) Recruit Technologies Co.,Ltd. All rights reserved. 39 Recruit Technologies

    Site Reliability Engineering 技術的な物差しを世の中にあわせる • 自社独自の世界観だけに詳しいのはアンチパターン • 技術の物差しを世の中にあわせる(古くても良い) • 対外活動を積極的に推奨する • 外部エンジニアが当たり前に持っている環境を与える • macbook / GitHub / Container Repository / slack / hubot / jira / confluence ...
  40. (C) Recruit Technologies Co.,Ltd. All rights reserved. 40 Recruit Technologies

    Site Reliability Engineering リクルートのインフラ運用はどう変わったか
  41. (C) Recruit Technologies Co.,Ltd. All rights reserved. 41 Recruit Technologies

    Site Reliability Engineering 結果、リクルートの運用は、どのぐらい変わったか? • 定常運用人数は1年で50人減 • オンプレミスの運用サーバ数は右肩あがり • 対応チケット数は2年前の約3倍 • 内部・外部への発信回数・連載記事も1年前の数倍に
  42. (C) Recruit Technologies Co.,Ltd. All rights reserved. 42 Recruit Technologies

    Site Reliability Engineering 得た気づきを共有します
  43. (C) Recruit Technologies Co.,Ltd. All rights reserved. 43 Recruit Technologies

    Site Reliability Engineering べたな改善の積み重ねで運用は変えられる! • 自動化は本質ではなく、べたな改善の積み重ねが重要 • 「作業フロー」のほうが実は改善しどころ • アイデア次第で改善はどうとでもなる • 本当に解決したかった事は何か? • 自動化をやるなら、バランス感覚が大切
  44. (C) Recruit Technologies Co.,Ltd. All rights reserved. 44 Recruit Technologies

    Site Reliability Engineering 自動化をすすめてわかった事 • 部分的な自動化は、全体でみると実はあまり手間が減らない • 自動処理よりも「今の設定を表示する見える化」が効果的 • ルール判定の自動化は人の判断よりも正確でミスがない • メンテナンスコストかかるが手動作業失敗時より手間は少ない
  45. (C) Recruit Technologies Co.,Ltd. All rights reserved. 45 Recruit Technologies

    Site Reliability Engineering トイル(不要な雑用)を見抜いて変える • 作業はとりあえず全部把握する • 改善する作業の全量・頻度をただしく把握する • 自動化=トイル撲滅ではない、要は無くせばいい • 冷静に見抜く
  46. (C) Recruit Technologies Co.,Ltd. All rights reserved. 46 Recruit Technologies

    Site Reliability Engineering 運用改善をやるには王道なし • リソースを何も変えずに改善するのは「無理」 人 定 常 作 業 改 善 人 定 常 作 業 改 善 人 定 常 作 業 人 定 常 作 業 改 善 増 員 仕事量 通常 ダメ 難易度高い 良い 人を増やして 改善施策 定常作業を減らして 改善施策 改善施策を そのまま押し込む
  47. (C) Recruit Technologies Co.,Ltd. All rights reserved. 47 Recruit Technologies

    Site Reliability Engineering 疑う • 本当にその作業、必要? • 今いらないものは勇気をもって捨てる • なんとなく納得して実行し続けてることは山ほどある • いるかいらないかは広い視野で捉える
  48. (C) Recruit Technologies Co.,Ltd. All rights reserved. 48 Recruit Technologies

    Site Reliability Engineering 運用で守るべきものをもう一度考える • インフラ機材を全部正常に動かすことが運用ではない • インフラ機材だけが動いてたってあまり意味がない • 障害時に捨てられる設計がとれるか? • サービスレベルにあわせたリスクマネジメント • 24/365の全員サッカーにならないようにする
  49. (C) Recruit Technologies Co.,Ltd. All rights reserved. 49 Recruit Technologies

    Site Reliability Engineering サービスは良くなったのかを考える • 大事なのは、サイトが快適に動作し続けられるかどうか • サイトリライアビリティというからにはサイト信頼性重要 • 今やろうとしてる改善、工夫は、誰にとってよくなる事か? • 安定的にかつ、サイトを効率的に保てるかの視点を持ち続ける
  50. (C) Recruit Technologies Co.,Ltd. All rights reserved. 50 Recruit Technologies

    Site Reliability Engineering やってみる • その改善は慎重に対応しなといけない事か? • 守るところと攻めるところをはっきりする • 守る:本番インフラ環境で「とりあえずやってみる」なんて愚策 • 攻める:単に作業フローを変える事を「慎重に検討」してたらもったいない! • 検討だけだと全部白紙撤回しがち(進まない) • 攻めるポイントでは、「やってみる」を積み上げる
  51. (C) Recruit Technologies Co.,Ltd. All rights reserved. 51 Recruit Technologies

    Site Reliability Engineering 満点を目指さない • インフラ運用は減点方式なので満点から始まりたい人が多い • 改善できるなら、やってみられることはやってみる • 100点とれないからやらないなら、何も変えられない • ただ、何かあった時に「元に戻せるか?」は考えておく
  52. (C) Recruit Technologies Co.,Ltd. All rights reserved. 52 Recruit Technologies

    Site Reliability Engineering 挑戦できる土壌を作る • 個人の失敗を責めない • 失敗を振り返り、前をむける部署は、改善を提案しやすい • 減点方式にしない • 挑戦しないでミスするようなら考え直したほうがいい • 変えないからこそ、問題がおきやすいという考え方は大事
  53. (C) Recruit Technologies Co.,Ltd. All rights reserved. 53 Recruit Technologies

    Site Reliability Engineering ちゃんと振り返る • 失敗/障害は振り返りのミーティングに時間をかける • ひたすら事象や構造を振り返り、仕組みをなんとかする • チームとして今後どうしたら防げるのか?もっとよくなるのか • 運用改善の芽が見つかる重要な行動 • 次に活かす(その分だけ改善は進む)
  54. (C) Recruit Technologies Co.,Ltd. All rights reserved. 54 Recruit Technologies

    Site Reliability Engineering リクルートのSREは これから何をやっていくのか?
  55. (C) Recruit Technologies Co.,Ltd. All rights reserved. 55 Recruit Technologies

    Site Reliability Engineering サービスを構成する機能要件と非機能要件 • サービスは機能要件と非機能要件から成り立つ • 機能要件: WEBアプリの機能 • 非機能要件: 性能・速度・快適さ • ユーザがサービス利用する時、2側面のどちらも大切
  56. (C) Recruit Technologies Co.,Ltd. All rights reserved. 56 Recruit Technologies

    Site Reliability Engineering リクルートは「機能要件」でビジネスがなりたっている 機能を追加、効果をBIツールでチェックし改善を測るサイクル サービス クライアント・カスタマ 横断インフラ (オンプレ・クラウド) 事業・開発 & 事業インフラ(M/W以上) BI モニタリング 機能分析 機能開発
  57. (C) Recruit Technologies Co.,Ltd. All rights reserved. 57 Recruit Technologies

    Site Reliability Engineering リクルートSREがこれからやりたいこと 「非機能要件」から状態を見える化して改善サイクルを作る サービス クライアント・カスタマ 横断インフラ (オンプレ・クラウド) 事業・開発 & 事業インフラ(M/W以上) 非機能 モニタリング 非機能 性能改善 ・非機能性能分析 ・基盤インフラ改善 ・SRE機能
  58. (C) Recruit Technologies Co.,Ltd. All rights reserved. 58 Recruit Technologies

    Site Reliability Engineering 一旦全部見える化した先には • おかしなところは全部見えるようにしてから「気づく」 • 最初から予想とか勘で、問題点を絞ってしまわない • 意外なところにあるボトルネックを見つけて解消していく
  59. (C) Recruit Technologies Co.,Ltd. All rights reserved. 59 Recruit Technologies

    Site Reliability Engineering 非機能要件の見える化によって見つかる簡単な問題の例 • 多段にリダイレクトがかかり表示が遅くなっていたが機能は動作していた • 特定のページのリンクから大量に404リクエスト • 大量に5xxが起きているマイナな機能があった • 一見問題なくうごいているが定期的にサーバエラーが増える時間があった • 特定の曜日の特定の時間にグラフでならされると気づかない突発のスパイクが発生していた • 軽いからといって見過ごしていたSQLクエリが想定以上に大量に発行されていて重い • time_waitが溢れていた • 無駄なリクエストがリクエストのトップ10に入っていた • 専用線の通信が特定の時間に限界を迎えパケットロスしていた • いずれも使い手から見ると「サービス」の快適さに影響するもの
  60. (C) Recruit Technologies Co.,Ltd. All rights reserved. 60 Recruit Technologies

    Site Reliability Engineering これからなにをやろうとしているか? • 運用から非機能の状態を徹底的に見える化 • インフラからサービス全体をみた改善サイクルを作り出す • インフラ運用がサービスを変えるというクリエイティブな世界
  61. (C) Recruit Technologies Co.,Ltd. All rights reserved. 61 Recruit Technologies

    Site Reliability Engineering 終わりに
  62. (C) Recruit Technologies Co.,Ltd. All rights reserved. 62 Recruit Technologies

    Site Reliability Engineering 終わりに • 運用はアイデアで変えられる「クリエイティブなもの」です • 技術を取り入れるも良し、フローを変えるも良し、選択肢は多い • インフラがサービスを変えていく世界が目の前にあります • どんな環境にも変えていくチャンスはあります