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
610
サイボウズ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
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
9
45k
テクニカルライティング
cybozuinsideout
PRO
4
300
サイボウズのアジャイルクオリティ2024
cybozuinsideout
PRO
3
270
モブに早く慣れたい人のためのガイド2024
cybozuinsideout
PRO
3
370
モバイル
cybozuinsideout
PRO
3
190
ソフトウェアライセンス
cybozuinsideout
PRO
4
160
ソフトウェアテスト
cybozuinsideout
PRO
3
260
自動テスト
cybozuinsideout
PRO
3
270
Docker入門2024
cybozuinsideout
PRO
3
460
Other Decks in Technology
See All in Technology
VideoMamba: State Space Model for Efficient Video Understanding
chou500
0
190
100 名超が参加した日経グループ横断の競技型 AWS 学習イベント「Nikkei Group AWS GameDay」の紹介/mediajaws202411
nikkei_engineer_recruiting
1
170
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
200
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
2
1.7k
iOS/Androidで同じUI体験をネ イティブで作成する際に気をつ けたい落とし穴
fumiyasac0921
1
110
日経電子版のStoreKit2フルリニューアル
shimastripe
1
150
ドメインの本質を掴む / Get the essence of the domain
sinsoku
2
160
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
kitsuya0828
3
390
DynamoDB でスロットリングが発生したとき/when_throttling_occurs_in_dynamodb_short
emiki
0
260
複雑なState管理からの脱却
sansantech
PRO
1
160
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
130
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
A designer walks into a library…
pauljervisheath
204
24k
Fireside Chat
paigeccino
34
3k
Producing Creativity
orderedlist
PRO
341
39k
A Tale of Four Properties
chriscoyier
156
23k
We Have a Design System, Now What?
morganepeng
50
7.2k
4 Signs Your Business is Dying
shpigford
180
21k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
10 Git Anti Patterns You Should be Aware of
lemiorhan
655
59k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
93
16k
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