Slide 1

Slide 1 text

ストレージチーム spin-off! 2021/03/18 サイボウズ株式会社 Cloud Storage Agency 深⾕ 敏邦

Slide 2

Slide 2 text

2 1. スケーラビリティがない 2. アプリチームの本番アクセス権限がない 今のcybozu.comのストレージに関する問題点

Slide 3

Slide 3 text

3 • 現在は顧客をシャーディングして管理 • 顧客環境が増えるに従い管理対象が増えて負担が増す • 顧客の活⽤度が⾼まると性能や容量が不⾜する スケーラビリティがない … 😢 😊 😊 😊 😊 😊 😊 😊 😊 😊 😊 😊 😊 管理 ストレージシャード テナント

Slide 4

Slide 4 text

4 • インフラを提供しているのはSREチーム • デプロイを含め本番に触れるのはSREチームのみ • アプリ開発者は障害時に⼀時的な対応や緩和策を実施できない • アプリ固有の監視を⾏うのが難しい アプリチームの本番アクセス権限がない

Slide 5

Slide 5 text

5 1. Rook/Cephによるスケーラブルなストレージ 2. Kubernetesによる管理者とユーザーの分離 Necoによって得られるもの

Slide 6

Slide 6 text

6 • CephはOSSによるスケーラブルなSDS • ディスクを追加することで性能・容量をスケーラブルに増やせる • CERNでは2017年当時で数百PBのクラスターを運⽤ • RookはCephをKubernetes上で管理するためのoperator • CRを通じて必要なデーモンを⾃動的にデプロイ • 故障したデーモンを⾃動的に再構築してくれる Rook/Cephによるスケーラブルなストレージ

Slide 7

Slide 7 text

7 • KubernetesはRBACによってユーザー権限を細かく設定可能 • ストレージに関するリソースが分離されている • 管理者がStorageClassによってストレージを提供 • ユーザーはPersistentVolumeClaimによってストレージを利⽤可能 • アプリ開発者に強い権限を渡すことなく、本番にアクセスさせ ることができる Kubernetesによる管理者とユーザーの分離

Slide 8

Slide 8 text

8 • Rook/Cephによるスケーラブルなストレージ Rook/Ceph⾃体が壊れたら? • Kubernetesによる管理者とユーザーの分離 管理者はユーザーのニーズを把握できるのか? ユーザーは道具をうまく使えるのか? 新たな課題

Slide 9

Slide 9 text

9 1. 使うものに責任を持つ 2. アプリチームとの協⼒ 専任チームの意義

Slide 10

Slide 10 text

10 • Rookはまだまだ若いソフトウェア • まだまだ不具合はたくさんある • ⾃分たちに必要な機能がないこともある • 必要ならupstreamにて対応 • Cephでさえ検証するとドキュメントと異なる挙動が⾒つかる 使うものに責任を持つ

Slide 11

Slide 11 text

11 • 利⽤者が必要としているものを提供する • 書き込みよりも読み込みが重要かもしれない • バーストできるよりもフェアネスが重要かもしれない • 利⽤者が正しい⽅向に⾏けるようにサポートする • パフォーマンスの出る使い⽅を案内する • これからのやっていき! アプリチームとの協⼒

Slide 12

Slide 12 text

12 • 現⾏ストレージの問題点 • スケーラビリティが低い • 開発者の本番アクセス権限がない • Necoでのストレージ • スケーラビリティの確保 • 権限の分離 • 専任チームの意義 • 提供物に責任を持つ • 協⼒体制の構築 まとめ