サイボウズ SET (Software Engineer in Test) の紹介

こんにちは、運用本部サービス運用部、SET(cybozu.com)所属の山田です。
この記事では、外部発信をしていなかったためあまり存在を知られていなかったであろう、サイボウズの SET チームについて紹介します。

サイボウズ SET は何をするチームなのか

ざっくり言うと、募集要項 にもある通り、クラウドサービスの基盤の品質保証エンジニアのチームです。

これが何を意味しているかを、順番にお伝えします。

組織図上の立ち位置

SET の役割を紹介するために、まず組織図上の位置を確認します。
図の文字が小さいのですが、SET は次のような階層に位置する組織です1

組織図。運用本部 > サービス運用部 > SET (cybozu.com) という階層。同階層には、Cloud Platform、Datastore、Neco などがある
サイボウズ組織図における SET の位置付け

一部を文字でも書き起こすと、以下のようになります:

運用本部
├── サービス運用部
│   ├── SET (cybozu.com)  # ここ
│   ├── Cloud Platform (cybozu.com)
│   ├── Datastore (cybozu.com)
│   ├── Neco
│   └── Network
├── 情報システム
└── 開運アシスタント

この図から、いくつか大事な点が分かります。

  • SET は 開発本部ではなく運用本部 所属
  • SET と同じ階層の組織・チームとして、Cloud PlatformDatastoreNeco など クラウドインフラに関わるチーム がある

少し飛躍しますが、つまり SET は、以下の特徴を持つチームです。

  • kintone、Garoon、Office、Mailwise などの 製品の品質保証は担当しない
  • Cloud Platform、Datastore などの SRE チームと協力して、クラウドインフラに関る活動をしている (Neco との関りは後述)

SET が関わる「クラウドインフラ」とは

上で「クラウドインフラ」というワードが出てきましたが、イメージしづらいと思うので説明します。

サイボウズでは、kintone、Garoon、Office、Mailwise などの SaaS 製品をクラウドでお客様に提供しています2。 一般的に SaaS 製品の多くは、AWS や Azure、GCP などのパブリッククラウドをインフラとして利用し、物理的なインフラの管理はクラウド事業者に任せることが多いと思います。

しかし、サイボウズではクラウドサービスを始めた 2012年から自社でデータセンターを契約し、そこに購入したサーバーを設置して、クラウドサービスの基盤を築いています。 このため、パブリッククラウドであれば UI からボタンをクリックするだけで完了するような、VM の作成、バックアップの取得なども、自前で実装したスクリプト群で管理しています。 ごく簡単な例ですが、このようなインフラを管理・運用するためのプログラムや、製品が共通して依存するようなアーキテクチャの一部を開発・運用している主体が運用本部であり、これらの品質保証を主として担うチームが SET です

なお、サイボウズのクラウドインフラは現在移行中であり、2023年2月 現在では 2012年から稼働している VM ベースの現行基盤と、Kubernetes を利用したコンテナベースの新基盤 Neco が並行稼働しています。 今は製品チームもクラウド基盤チームも、どんどん Neco にサービスを移行している最中です。

「Neco がどういうものか」については、Neco プロジェクト完了したので人材募集します! の記事などもぜひご覧ください。

チームのミッション

クラウド基盤の品質保証を行う SET ですが、2022年4月にチームでのミッションを定めました。

  • ミッション: 障害が少なく、障害に強いクラウド基盤を創る
  • ミッション達成のために: 最適なコストでテストを実施し、Production での致命的なバグの発現を防ぐ

この下に「そのために具体的に何をするか」が続くのですが、ここでは簡単な紹介にとどめます。

チームの業務内容

これまでで SET が何を目的とするチームかがなんとなく伝わったかなと思いますが、具体的な業務内容の想像がつかないと思いますので、ここで紹介します。 品質保証のためならやれる範囲では基本なんでもやりますが、2023年2月 現在では以下が典型的な業務内容です。

  • 現行クラウド基盤を管理・運用するスクリプト・アーキテクチャの手動試験
    • 例: 物理サーバー操作スクリプトの試験、バックアップ管理スクリプトの試験
  • 新クラウド基盤 (Neco) で稼働する、製品が共通で利用する一部サービスの品質保証
    • Neco で稼働しており、現行クラウド基盤から利用されるサービスの試験
    • 現行クラウド基盤から Neco への移行の試験
    • Neco で稼働する一部サービスのユニットテストのレビュー・追加
  • 自動試験の作成・保守
  • CI/CD 改善
    • linter、formatter の最適化
    • 一部サービスのリリース最適化ツール開発・保守
  • 開発本部・運用本部が利用する現行基盤の開発用データセンター3 の管理
    • 例: 開発本部からの問い合わせ対応、管理ツールの作成

SET で必要なスキル・知識

上記のような業務を担当するために SET で必要なスキル・知識については、募集要項 をご覧ください。
基本的に、試験中はブラウザではなく、ターミナル画面やエディタ (IDE) を開いて、Linux コマンドを実行したりコードを読み書きしています。

SET がしていないこと

また、SET が していない ことも紹介します。

  • スコープ外
    • 製品の品質保証: 製品 QA が担当しています。
    • Neco の品質保証: Neco そのものの品質保証は Neco チームが担当しています4。ただし、Cloud Platform チームと Datastore チームが Neco の上で運用しているサービスの一部は、SET が品質保証を担当しています。
  • やりたいがやれていない
    • 性能検証: SET でもやれると良いのですが、リソースの関係でできていません。性能検証を専門で担当する TE (Test Engineer) チームが別に存在します。

このようにやりたいがやれていないこともまだまだあるので、性能検証などで活躍してくれる方もお待ちしています。

なぜ SET に変わったか

ところで、私たちのチームが SET という名称に変わったのは 2021年末のことで、それまでは SRE-QA というチーム名でした5
チーム名称を変えた主な理由としては、新クラウド基盤である Neco への移行の本格化に伴い、よりスピード感のある QA 活動が必要になってくると感じたからでした。

現行クラウド基盤のコードベースは、2012年から始まった歴史のあるものです。
このため、レガシーであることは避けられず、新しく入ったメンバーからすると気になってしまう部分などもありますし、容易に手を加えられる状況にないものもあります。
もちろん工夫はしていますが、いわゆる技術的負債に阻まれて、スピードが落ちている部分があります。

しかし、Neco 移行が始まったことで、順次インフラ側のコードも刷新されています。
新規に書かれたコードは十分なユニットテストを含み、設計なども現代の基準をベースに行われているものが多いです。
このため、現行基盤の開発・改修に比べて開発側のスピードが上がっており、品質保証もそれに合わせてボトルネック化を避ける工夫をしなければならないと感じました。

そこで、設計や開発されたソースコードにより近づき、ユニットテスト・システムテストなどの自動試験の作成・レビューなどを中心に開発スピードを高めるべく、SET を名乗ることにしました。
SRE-QA の頃から業務内容が大きく変わったわけではないのですが、このマインドセットをちゃんと持てるようにしたい、という思いがありました。
また、採用面でも社内用語である「SRE-QA」や、開発本部の QA と差別化しづらい「クラウド基盤エンジニア(QA)」から、SET と改めることでよりマッチした方に興味を持ってもらえるのでは、という打算もありました。

これから SET が頑張っていくこと

そんな サイボウズ SET ですが、これから主に以下に注力していきます!

  • Neco 基盤を利用したサービスのユニットテストのレビュー・実装
  • Neco / 現行基盤共にシステムテストなどの自動試験作成
  • CI / CD の充実化による開発者体験の向上・リードタイム短縮への寄与

名前も改め心機一転しましたが、まだまだ目標に追いついているとは言えません。
自社でのクラウド基盤運用に必要なサービス・コードの品質保証、自動試験や CI/CD による品質保証にご興味がある方は、ぜひご応募ください。
お待ちしています!


  1. 2022年12月21日現在
  2. サイボウズのクラウドサービスの紹介ページは こちら。正確に言えば Garoon, Office, Mailwise はオンプレ製品も存在します
  3. 開発物をまず適用する、開発・試験用のデータセンターです。適用でバグやエラーが起きた場合まず SET に問い合わせが来ます
  4. Neco では "Test Everything" の原則で、基本的に全てのテストを自動化しています。Neco のテストに興味がある方は Flaky テストとの戦い をご覧ください。
  5. 2020年と古いですが、SRE-QA の頃の発表資料もありますのでご興味があればご覧ください (見返していて気づきましたが、この頃にも SET という単語は出していましたね)。サイボウズData Centerを支えるインフラQAの挑戦