Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
横断組織から見たリクルートのインフラの歴史と目指すべきクラウド活用像
Search
Recruit
PRO
March 25, 2024
Technology
1
530
横断組織から見たリクルートのインフラの歴史と目指すべきクラウド活用像
2024/02/21に、RECRUIT TECH CONFERENCE 2024で発表した、宮地の資料です。
Recruit
PRO
March 25, 2024
Tweet
Share
More Decks by Recruit
See All by Recruit
Browser
recruitengineers
PRO
9
2.8k
JavaScript 研修
recruitengineers
PRO
8
1.7k
TypeScript入門
recruitengineers
PRO
36
12k
モダンフロントエンド 開発研修
recruitengineers
PRO
12
6.8k
Webアクセシビリティ入門
recruitengineers
PRO
4
1.8k
攻撃と防御で実践するプロダクトセキュリティ演習~導入パート~
recruitengineers
PRO
4
2.2k
モバイルアプリ研修
recruitengineers
PRO
6
1.9k
事業価値と Engineering
recruitengineers
PRO
10
6.1k
制約理論(ToC)入門
recruitengineers
PRO
10
4.3k
Other Decks in Technology
See All in Technology
Function Body Macros で、SwiftUI の View に Accessibility Identifier を自動付与する/Function Body Macros: Autogenerate accessibility identifiers for SwiftUI Views
miichan
2
180
まずはマネコンでちゃちゃっと作ってから、それをCDKにしてみよか。
yamada_r
2
110
企業の生成AIガバナンスにおけるエージェントとセキュリティ
lycorptech_jp
PRO
2
170
💡Ruby 川辺で灯すPicoRubyからの光
bash0c7
0
120
会社紹介資料 / Sansan Company Profile
sansan33
PRO
6
380k
Agile PBL at New Grads Trainings
kawaguti
PRO
1
430
下手な強制、ダメ!絶対! 「ガードレール」を「檻」にさせない"ガバナンス"の取り方とは?
tsukaman
2
450
エラーとアクセシビリティ
schktjm
1
1.3k
EncryptedSharedPreferences が deprecated になっちゃった!どうしよう! / Oh no! EncryptedSharedPreferences has been deprecated! What should I do?
yanzm
0
390
Rustから学ぶ 非同期処理の仕組み
skanehira
1
140
Practical Agentic AI in Software Engineering
uzyn
0
110
TS-S205_昨年対比2倍以上の機能追加を実現するデータ基盤プロジェクトでのAI活用について
kaz3284
1
170
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
How GitHub (no longer) Works
holman
315
140k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
Code Review Best Practice
trishagee
70
19k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
112
20k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Making Projects Easy
brettharned
117
6.4k
Transcript
横断組織から見たリクルートの インフラの歴史と目指すべきクラウド活用像 プロダクトディベロップメント室 インフラソリューションユニット 宮地 克弥
宮地 克弥 🎮💻📷🚗🐶🏕が好き 経歴 / Career 2017年リクルートホールディングス(現リクルート)新 卒入社。『Airシフト』『Airワーク』『ゼクシィ縁結び』 『社内基盤システム』『レジュメ』などの複数のプロダ クトにてインフラエンジニアとして開発に携わる。
現在はCCoEとして複数のプロダクトの開発/運用支援に 携わりつつクラウド利活用における横断施策の模索と推 進を行っている 趣味 / Hobbies 株式会社リクルート プロダクトディベロップメント室 インフラソリューションユニット サイトリライアビリティエンジニアリング部 クラウドアーキテクトグループ 自己紹介
目次 • 自己紹介 • リクルートの開発体制とインフラの歴史 • リクルートにおけるインフラ選定とクラウドを使う理由 • CCoEの取り組み
リクルートの歴史 リクルート公式サイトより 約60年の歴史がある会社であり、紙メディアを始め、メディア形態や業務領域を変革し、現在では SaaSやマッチングプラットフォームの展開を行なっている
リクルートにおける開発体制の多様さ プロダクトの種類や開発体制は様々な形が存在する https://speakerdeck.com/rtechkouhou/duo-yang-nabizinesudomein-sabisuhuezuga-hun-zai-suruzhong- defalsezu-zhi-zhan-lue-toji-shu-zhan-lue?slide=14 より
開発組織の体制 主に事業側組織と横断組織に分かれており、自身の所属する組織は 横断組織に位置している 事業組織A 事業組織B 事業組織C 事業組織D 横断組織 クラウドアーキテクト グループ
リクルートにおけるインフラの選択肢
リクルートにおけるインフラの選択肢 Private Cloud上で動くPaaS環境 パブリッククラウド
リクルートにおけるインフラの選択肢 Private Cloud上で動くPaaS環境 ->標準化されたアーキテクチャを採用したい パブリッククラウド ->標準化の枠に収まらないアーキテクチャや、個別最適化を行いたい
事業組織から見た時の責任分界点 DC ネットワーク ストレージ HW 仮想化 データ アプリ Private PaaS
事業組織 コスト/ガバナンス 横断組織 OS* ミドルウェア* DC ストレージ HW 仮想化 データ アプリ Public Cloud クラウド ベンダー 事業組織 コスト/ガバナンス 横断組織 ネットワーク OS ミドルウェア 責任分界点
事業組織から見た時の責任分界点 責任分界点 DC ネットワーク ストレージ HW 仮想化 データ アプリ Private
PaaS 事業組織 コスト/ガバナンス 横断組織 OS* ミドルウェア* Private PaaS • 標準化されたアーキテクチャに 乗っかることで、 最小の責任範囲になる • 標準化されていないものを選ぶ 際の難易度がとても高い Public Cloud • 広い権限を持つことで、 個別最適化を行いやすい • 責任を持つべき範囲が広くなる DC ストレージ HW 仮想化 データ アプリ Public Cloud クラウド ベンダー 事業組織 コスト/ガバナンス 横断組織 ネットワーク OS ミドルウェア
Public Cloudを選択する上で重要なこと 責任 広い権限には責任が伴う PaaSが担ってくれた部分は自分たちで守る必要がある 責任を果たすための体制 責任を果たす為に様々なスキルを持つメンバーが必要 これらを持つ覚悟を持ったプロダクトを CCoEが全力で支援する
CCoEの取り組み
CCoEの取り組み CCoEとして、大きく二つの活動を実施 • プロダクト開発支援 • 横断活動
SREチームの 立ち上げ 最適なプロダクト 構築 事業にとって最適なプロダクト構築と SREチームの立ち上げの実施 構築後も安定してプロダクト運用が出来る 体制を目指す プロダクト開発支援
技術だけじゃなく多様な観点から選定と実装を担う 最適なプロダクト構築に必要な要素 プロダクトの要件 チームのスキルセット 社内ルール準拠 事業としてのチャレンジ
技術力 SRE文化 チーム運営 将来的な運用を担うチームをプロダクト構築を通して立ち上げる SREチームの立ち上げの実施 https://www.oreilly.co.jp/books/9784873117911/
SREチーム立ち上げと最適なプロダクト構築をプロジェクトを通して実現する 時間 インフラの関与度 カットオーバー CAGプロダクト支援 事業側開発メンバー リリースに向けて徐々に開発メンバーに役割移管を行い、 プロダクト側で自立出来るよう徐々に移行する 難しい問題には、CAGがスポット支援 アドバイスや解決をする
設計/構築/運用設計を開発メンバーと協業し、技 術力の向上とチーム運営のナレッジを伝授する Step 2:CAG+事業側開発T伴走での移管 Step 3:事業側開発主導DevOps Step 1:CAG +事業側開発Tでの構築 取り組み 方針 狙い 新規プロダクトの構築支援方針 *CAG: クラウドアーキテクトグループの略称
横断的な活動
利用可能なナレッジ 個々のナレッジ 蓄積 人に依存した支援は持続性・質・スケールに課題がある ナレッジを蓄積し、利用可能な状態へ変換することで持続可能なエコシステムを 構築する 横断組織としての課題 展開 複数組織でのナレッジ活用 派生
ナレッジの利用には大きく3パターンがある 形式化による知識移転 必要なタイミングで手に入れる 体験による知識移転 手を動かしながら学ぶ 新規プロダクト構築を通した育成 ex: Policy as Code,
モブ/ペアプロ 暗黙化による知識移転 裏側を知らずとも利用出来る 共通パーツ ex: メールGW, ウィルススキャン これらを使い分け、クラウド利活用に必要なナレッジを獲得するための 高速道路を構築する ドキュメント化 ex: プロジェクトの進め方, チーム運営, SRE文化,アセスメント 利用可能なナレッジの蓄積
体験による知識移転 プロダクトチーム 暗黙化による知識移転 スキルの底上げ 最適なアーキテクチャ 形式化による知識移転 必要なタイミングで獲得 プロダクトごとに機能差異が無い ものは再利用 ナレッジ活用のイメージ
事例: IaCによる共通テンプレートの導入と学び IaCを使えば誰でもProduction Readyな構築を出来るようTerraformの moduleをテンプレートとして提供
事例: IaCによる共通テンプレートの導入と学び 効果 • 1から作るよりも少ない知識で構築を進められた • テンプレートを呼び出すだけなので、素早く構築できる • 有識者のレビューコストの低下 課題
• 利用が増えると個別要件が増え、土管化してしまう • 一定の有識者はmoduleのキャッチアップにコストがかか る • EOSLや新規機能追加によるメンテナンスコストが高い • 良くも悪くも裏側を知らずに使えるので、障害等が発生し た時に対応が難しい。 aurora用の変数の一部 Trivyを利用したPolicy as codeの検証
事例: TrivyによるPolicy as Code 効果 • CICDとルールの導入のみのため、入れやすく外しやすい • PRを通した自動レビューが出来るため、学習しながら Productionに向けたコードが書ける
• カスタムルールによって社内ルールもチェックできる • 対応不要なルールもコメントにWhyを残せるので管理が容易 課題 • ルールの整備のため、いつかTrivy側での対応が必要だった • PRは積極的に受けて入れてもらえるのでとても助かった • 強制力が薄いため運用とセットで広める必要がある。
定期的なイベント実施や情報提供によって、布教活動とクラウドを利 用する人たちの横の繋がりを構築していく AWS Gameday 勉強会 利用可能なナレッジ (インナーソース活動) ナレッジの蓄積/活用を支えるコミュニティ活動 情報発信
基盤チームとの協業 プロダクトへの支援の中でクラウド利活用を支えるために全体に適用す べきものをフィードバックし、実現に向けて協業を行う セキュリティ ガバナンス レピュテーション リスク
取り組みの全体像 プロダクトA プロダクトB プロダクト C 中央レポジトリ クラウド コミュニティ 利用 FB(issue報告/PR)
・ナレッジ共有 ・取り組み共有 ・アップデート情報 Gamedayや勉強会で 繋がりを構築 クラウドアーキテクト グループ 蓄積 クラウド基盤チーム 協業 プロダクト構築 チーム立ち上げ 蓄積 利用可能なナレッジ (インナーソース)