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
サイボウズData Centerを支えるインフラQAの挑戦
Search
Cybozu
PRO
August 19, 2020
Technology
0
630
サイボウズData Centerを支えるインフラQAの挑戦
Cybozu Tech Meetup #5 活動領域を広げるQA
https://cybozu.connpass.com/event/183559/
でお話した資料です
Cybozu
PRO
August 19, 2020
Tweet
Share
More Decks by Cybozu
See All by Cybozu
サイボウズフロントエンドエキスパートチームについて / FrontendExpert Team
cybozuinsideout
PRO
5
39k
2024/11/25 ReDesigner Online Meetup 会社紹介
cybozuinsideout
PRO
0
330
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
9
47k
テクニカルライティング
cybozuinsideout
PRO
4
480
サイボウズのアジャイルクオリティ2024
cybozuinsideout
PRO
3
400
モブに早く慣れたい人のためのガイド2024
cybozuinsideout
PRO
3
530
モバイル
cybozuinsideout
PRO
3
280
ソフトウェアライセンス
cybozuinsideout
PRO
4
260
ソフトウェアテスト
cybozuinsideout
PRO
3
410
Other Decks in Technology
See All in Technology
ドメイン駆動設計の実践により事業の成長スピードと保守性を両立するショッピングクーポン
lycorptech_jp
PRO
3
610
「完全に理解したTalk」完全に理解した
segavvy
1
300
embedパッケージを深掘りする / Deep Dive into embed Package in Go
task4233
0
140
プロダクトの寿命を延ばすためにエンジニアが考えるべきこと 〜バージョンアップってなんのためにやるのか〜 / Strategies for product longevity
kaonavi
0
100
「隙間家具OSS」に至る道/Fujiwara Tech Conference 2025
fujiwara3
6
2.5k
【令和最新版】ロボットシミュレータ Genesis x ROS 2で始める快適AIロボット開発
hakuturu583
2
1.5k
Fabric 移行時の躓きポイントと対応策
ohata_ds
1
140
30分でわかる「リスクから学ぶKubernetesコンテナセキュリティ」/30min-k8s-container-sec
mochizuki875
3
400
商品レコメンドでのexplicit negative feedbackの活用
alpicola
1
200
Unsafe.BitCast のすゝめ。
nenonaninu
0
170
20250116_JAWS_Osaka
takuyay0ne
2
160
SpiderPlus & Co. エンジニア向け会社紹介資料
spiderplus_cb
0
680
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.1k
Documentation Writing (for coders)
carmenintech
67
4.5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
230
52k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
3
340
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Music & Morning Musume
bryan
46
6.3k
Designing for humans not robots
tammielis
250
25k
GraphQLとの向き合い方2022年版
quramy
44
13k
The Language of Interfaces
destraynor
155
24k
Transcript
サイボウズ Data Center を⽀える インフラ QA の挑戦 サイボウズ株式会社 運⽤本部 ⼭⽥
⾼⼤ 1
⾃⼰紹介 n 2019年 1⽉ 中途⼊社 l 現在 1年 8ヶ⽉⽬ l
前職: B to B パッケージ製品の保守コンサルタント n 運⽤本部 SRE-QA チーム n その他経歴など l ⼤学まで離島で⽣まれ育ちました l 学⽣時代は認知・教育⼼理学やっていました 2
SRE-QA? 3
インフラ QA? 4
検索しても国内ではほぼヒットなし 5
検索しても国内ではほぼヒットなし 6
検索しても国内ではほぼヒットなし 7 検索結果上位に弊社関連ページ ※ 呼称 (検索ワード) が特殊・不適切という説はあります QA の定義にも議論はあるけどここでは社内通称 =
SRE-QA を使います
ü ⾃社 Data Center (DC) を運営 ü 開発から運⽤まで ⾃社で実施 ü
150万 を超えるクラウドユーザー 8 特殊な環境だから必要な QA
本発表の⽬的 サイボウズ SRE-QA の取り組みの紹介を通して ü SRE-QA という職種を知ってもらう Ø 珍しい領域なので QA
の世界の広がりの⼀助になれば ü SRE-QA における 開発スピード・品質を上げる取り組み の共有 ü そしてサイボウズ SRE-QA に興味を持っていただければ 9
サイボウズ SRE-QA とは 10
n SRE と連携 する QA • SRE は 24/365 でサービス稼働を⽀える
• 設計 ~ 開発完了までの 開発スパンが短い n DC 管理・運⽤プログラム の QA • CMDB, VM/LV 操作プログラム • MW セットアッププログラム n DC を⽀えるアーキテクチャの QA • ログ収集/解析基盤 • Backup, Failover, Monitoring システム n 開発・検証環境の管理 (今回はあまり触れず) 11
n 2020/8/19 現在 8名 • 兼務 3名 • Software Engineer
in Test 1名 n 求められる知識・スキル • Linux 操作 (基本的に試験は Command Line Interface) • Web アプリの基本, ストレージ, ネットワーク, セキュリティ, パフォーマンス, SLO (Service Level Objective) 観点, etc. • 様々な Middleware, サービス, ツールの知識 12
13
こんなに多くの範囲を ⼀⼈⼀⼈が全部カバー︖ (これでもまだ⼀部) 14
そういうわけではありません 15
16 ü 開発スパンが 短い ü 扱うサービス・ツールが 広範 ü Web アプリからストレージ・NWまで
レイヤの⾼低も幅広い
17 こうした業務領域・環境下での 品質を⾼める取り組み を紹介します
取り組み 1: Buddy 制度 18
Buddy 制度: SRE と QA のチーム ü 広範な領域をカバーするため, SRE 数名と
QA 1, 2名で Buddy を組み 専⾨領域 を作っている • その上で重要領域の QA をできる⼈が 2名以上になるよう調整 • Buddy 例: ログ基盤 Buddy, ストレージ Buddy, MySQL Buddy, NW Buddy, etc. 19
Buddy 制度: SRE と QA のチーム ü 広範な領域をカバーするため, SRE 数名と
QA 1, 2名で Buddy を組み 専⾨領域 を作っている Ø 領域の 分担・専⾨化 Ø SRE – QA 間の コミュニケーション促進 20
取り組み 2: ⼯程を問わない QA 21
サイボウズ SRE の開発プロセスと⽂化 In Design Design Review In Development Development
Review Testing 22 n サイボウズ SRE の主な開発物と開発期間 • 既存コードの改修 と 新規開発 がだいたい 半々 • 期間は 数時間 ~ 数ヶ⽉, ⼤半は数⽇
サイボウズ SRE の開発プロセスと⽂化 23 SRE が主に担当 SRE-QA が主に担当 In Design
Design Review In Development Development Review Testing
サイボウズ SRE の開発プロセスと⽂化 24 In Design Design Review In Development
Development Review Testing ⼯程問わず コミュニケーション
サイボウズ SRE の開発プロセスと⽂化 n 発表者の印象的な経験例 Ø あるコマンドラインオプションの 必要性を本試験前に確認 ü 機能削減
につながり保守性向上 Ø Pull Request を⾒て 本試験前にユニットテスト追加依頼 ü ユニットテストが追加され ⼿動試験範囲削減 25
サイボウズ SRE の開発プロセスと⽂化 n 発表者の印象的な経験例 Ø あるコマンドラインオプションの 必要性を本試験前に確認 ü 機能削減
につながり保守性向上 Ø Pull Request を⾒て 本試験前にユニットテスト追加依頼 ü ユニットテストが追加され ⼿動試験範囲削減 Ø ⼯程を問わないやり取り が許容される ⽂化 Ø Buddy プロジェクトでは 最初期 から関わることも 26
取り組み 3: Whole Team で品質保証 27
SRE・SRE-QA 共に品質に責任 28 n 品質への姿勢 ü SRE が 開発物の正常系試験をまず実施する •
その後に QA 試験 ü バグ発⽣時も SRE ←→ QA で 他責にせず⽣産的な振り返り ü Buddy を組んでいると質問などしやすく 知識の共有 が起きる
SRE・SRE-QA 共に品質に責任 29 n 品質への姿勢 ü SRE が 開発物の正常系試験をまず実施する •
その後に QA 試験 ü バグ発⽣時も SRE ←→ QA で 他責にせず⽣産的な振り返り ü Buddy を組んでいると質問などしやすく 知識の共有 が起きる Ø Whole Team として品質に責任
品質向上の取り組みまとめ 開発スパンが短い・広範な知識が必要 な開発物に対し 1. Buddy 制度 ü 専⾨化と知識共有 2. ⼯程を問わない
QA ü Test になるまで待たずにコミュニケーション 3. Whole Team で品質保証 ü SRE, QA 共に⾃分事で品質保証に責任 30
SRE-QA はサイボウズ DC の 品質保証を担っている 31
そして Neco/Maneki プロジェクト 32
33
34
35
今後の展望・挑戦 n Neco, Maneki ü Neco で Kubernetes ベースの DC
にインフラを刷新中 ü インフラ移⾏プロジェクトとして Maneki が進⾏中 • すでにいくつかのサービス (機能) は Neco 基盤で 本稼働 • 今年は Maneki チームと⼀緒に試験実施 n 現⾏基盤の改善 • 当然すぐに完全移⾏できるわけではない • ユーザーもどんどん増えてるのでこちらも 並⾏改善 36
※おまけ: その他の取り組み n 積極的に 試験⾃動化 ü CLI なので相性が良い ü ShellScript
がほとんど (⼀部 Python) n 開発/試験環境管理 ü 全社の開発/試験効率化のため 開発 DC 管理の効率化ツール も作成 n ⽉次定期メンテナンス QA ü Python, Selenium, kintone を組み合わせた メンテナンス確認⼀部⾃動化 など昨年実現 37
SRE-QA に⼀緒に挑戦しませんか ü ⾃社 DC, クラウドサービスを⽀える インフラの品質保証 ü ここ数年は DC
インフラ基盤刷新 という 稀有 なタイミング • 国内で経験できるのは稀 ü ⽇々勉強だがそれだけ 広範な経験/知識 も⾝につけられる ü 他チームの開発/品質保証効率化のための 開発環境改善も担当 → SET 的経験も • カジュアル⾯談からでもぜひ (Twitter: @tyamada248 へ DM など) 38
画像引⽤元 • https://www.oreilly.co.jp/books/images/picture_large978-4-87311-791-1.jpeg • https://design.ubuntu.com/brand/ubuntu-logo/ • https://apache.org/logos/ • https://www.mysql.com/common/logos/logo-mysql-170x115.png •
https://www.elastic.co/jp/brand • https://www.graylog.org/ • https://discuss.redash.io/ • https://www.nginx.com/ • https://staging.python.org/community/logos/ • https://blog.golang.org/go-brand • https://www.docker.com/company/newsroom/media-resources • https://www.eclipse.org/jetty/powered/ • https://www.datadoghq.com/ja/about/latest-news/resources/ • https://www.freepik.com/vectors/work • https://github.com/kubernetes/kubernetes/blob/master/logo/logo.svg 39