Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Product Meetup #1 Quipper における SRE チームの紹介 ~僕が SRE になった理由~ @yuya-takeyama
Slide 2
Slide 2 text
#sapurimeetup
Slide 3
Slide 3 text
01 02 03 Agenda | 自己紹介 SRE チームの紹介 僕が SRE になった理由
Slide 4
Slide 4 text
01 自己紹介
Slide 5
Slide 5 text
@yuya-takeyama 2009 年新卒で音楽系事業を行う IT ベンチャーに入社 エンジニア 10 年目
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
@yuya-takeyama 2015 年 9 月 Quipper に転職 Web Developer として Rails, Backbone.js, React.js, React Native など 2018 年 4 月 SRE チームに異動 絶賛弱くてニューゲーム中
Slide 8
Slide 8 text
02 SRE チームの紹介
Slide 9
Slide 9 text
➔ サイトの信頼性に責任を持つ ◆ 可用性、パフォーマンス、キャパシティプランニング... ➔ インフラの構築、運用 ➔ そのためにソフトウェアによる自動化を行う ◆ Infrastructure as Code, GitOps Site Reliability Engineering
Slide 10
Slide 10 text
➔ Kubernetes による Microservices 基盤の構築 ◆ Kubernetes クラスタの構築・運用・デプロイ自動化 ◆ 旧環境からのアプリケーションの移行 SRE チームの最近の取り組み
Slide 11
Slide 11 text
03 僕が SRE になった理由
Slide 12
Slide 12 text
Kubernetes やりたかった
Slide 13
Slide 13 text
Kubernetes とは?
Slide 14
Slide 14 text
コンテナ オーケストレーション システム
Slide 15
Slide 15 text
コンテナ オーケストレーション システム とは?
Slide 16
Slide 16 text
たくさんのコンテナを いい感じに 動かし続ける
Slide 17
Slide 17 text
たくさんのコンテナを いい感じに 動かし続ける
Slide 18
Slide 18 text
➔ アプリケーションのあるべき状態を YAML で宣言的に定義 ◆ 使用するイメージ、必要なリソース、コンテナ数... ➔ 障害が起きても、「あるべき状態」に自動的に復旧 ➔ 使用リソースに応じて、複数サーバに均等に配置 (スケジューリング) ➔ 更新時にはコンテナを少しずつサーバを入れ替えて行く いい感じとは?
Slide 19
Slide 19 text
Kubernetes は Microservices に最適
Slide 20
Slide 20 text
Kubernetes 楽しいよ!
Slide 21
Slide 21 text
でももっと 大事なのは...
Slide 22
Slide 22 text
Quipperの プロダクト開発を 最高にしたい
Slide 23
Slide 23 text
Quipperの プロダクト開発を 最高にしたい
Slide 24
Slide 24 text
最高の プロダクト開発 とは?
Slide 25
Slide 25 text
➔ Ownership ➔ Borderless ➔ Agility ➔ Reliability 僕が思う最高のプロダクト開発
Slide 26
Slide 26 text
➔ 現状: 1 つのソースを数十人のエンジニアで開発している ◆ 境界が曖昧だと空気の読み合い・お見合いになりがち ● それでは Ownership を持つのは難しい ➔ 各 Service Unit が個別の Service を所有し、責任を持つようにしたい ➔ サービス間のインターフェイスだけ決めて、あとはよろしくやる ◆ 制約があるからこそ自由になれる ➔ それ、Microservices じゃん Ownership
Slide 27
Slide 27 text
➔ なんでもやりたい人はなんでもできるように ➔ 権限の制限をできる限り取り払う ◆ アプリケーションエンジニアだってインフラをいじりたい ◆ ネイティブエンジニアも API を作りたい ➔ Monorepo にすることで複数領域を一気にガッとやれる状態 ◆ 依存関係のある複数サービスを 1 Pull Request でまとめて変更 Borderless
Slide 28
Slide 28 text
No content
Slide 29
Slide 29 text
➔ 仮説検証のサイクルを高速に回せる ◆ 個別アプリでなく、サービス群全体でのステージングデプロイ ◆ 本番へのデプロイも各 Service Unit の裁量で ➔ 本番環境で、柔軟に少しずつ検証するための仕組みが必要 ◆ Feature Flag, Canary Release ◆ ダメだったらすぐに戻せる ➔ ユーザーに高速に価値を届け続ける Agility
Slide 30
Slide 30 text
➔ 基本的にはアプリケーションの開発に集中してほしい ➔ サービスは安定稼働させなければならない ➔ そのためにはあらゆる自動化が必要 ◆ メトリクス、アラート、オートスケール... ➔ オンコール対応の移譲 ◆ 障害からの復旧時間の最小化 ◆ Dev も SRE も同じメトリクスを見て、同じテーブルで会話する Reliability
Slide 31
Slide 31 text
Quipperの プロダクト開発を 最高にしたい
Slide 32
Slide 32 text
Quipperの プロダクトを 最高にしたい
Slide 33
Slide 33 text
ユーザーに 最高の教育を 届けたい
Slide 34
Slide 34 text
最高の技術で 最高の教育を
Slide 35
Slide 35 text
Thank you For Listening!