Cybozu Tech Meetup #5 活動領域を広げるQA https://cybozu.connpass.com/event/183559/
でお話した資料です
サイボウズ Data Center を⽀えるインフラ QA の挑戦サイボウズ株式会社 運⽤本部 ⼭⽥ ⾼⼤1
View Slide
⾃⼰紹介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:⼯程を問わない QA21
サイボウズ SRE の開発プロセスと⽂化In DesignDesignReviewInDevelopmentDevelopmentReviewTesting22n サイボウズ SRE の主な開発物と開発期間• 既存コードの改修 と 新規開発 がだいたい 半々• 期間は 数時間 ~ 数ヶ⽉, ⼤半は数⽇
サイボウズ SRE の開発プロセスと⽂化23SRE が主に担当SRE-QA が主に担当In DesignDesignReviewInDevelopmentDevelopmentReviewTesting
サイボウズ SRE の開発プロセスと⽂化24In DesignDesignReviewInDevelopmentDevelopmentReviewTesting⼯程問わずコミュニケーション
サイボウズ SRE の開発プロセスと⽂化n 発表者の印象的な経験例Ø あるコマンドラインオプションの 必要性を本試験前に確認ü 機能削減 につながり保守性向上Ø Pull Request を⾒て 本試験前にユニットテスト追加依頼ü ユニットテストが追加され ⼿動試験範囲削減25
サイボウズ SRE の開発プロセスと⽂化n 発表者の印象的な経験例Ø あるコマンドラインオプションの 必要性を本試験前に確認ü 機能削減 につながり保守性向上Ø Pull Request を⾒て 本試験前にユニットテスト追加依頼ü ユニットテストが追加され ⼿動試験範囲削減Ø ⼯程を問わないやり取り が許容される ⽂化Ø Buddy プロジェクトでは 最初期 から関わることも26
取り組み 3:Whole Team で品質保証27
SRE・SRE-QA 共に品質に責任28n 品質への姿勢ü SRE が 開発物の正常系試験をまず実施する• その後に QA 試験ü バグ発⽣時も SRE ←→ QA で他責にせず⽣産的な振り返りü Buddy を組んでいると質問などしやすく知識の共有 が起きる
SRE・SRE-QA 共に品質に責任29n 品質への姿勢ü 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.svg39