この記事は、CYBOZU SUMMER BLOG FES '24 (クラウド基盤 Stage) DAY13の記事です。
サイボウズでは現在DevOpsを推進しています。この大きな変化にあわせて、クラウドプラットフォームの利用者を支援する「PDXチーム」と、クラウドプラットフォームの品質をマネジメントする「PQMチーム」を立ち上げました。本記事ではチーム立ち上げの経緯とチームのコンセプトや業務内容を紹介したいと思います。
新プラットフォームの登場
2018年から、次世代を見据えたクラウドプラットフォーム「Neco」の開発が行われてきました。 プラットフォームとしては2021年に完成し、現在は各種製品の開発チームが、旧プラットフォームから新プラットフォームへと移行作業を進めています。 新プラットフォームに乗り換えるにあたり、開発・運用スタイルも大きく変わることになりました。
新プラットフォームによる運用スタイルの変化
これまでは、製品チームが開発したアプリケーションの運用を、運用チームが一貫して担当するというスタイルでした。この運用スタイルでは、開発と運用が分断されており、様々な問題がありました。
例えばトラブル発生時。軽微なトラブルや、ミドルウエア側のトラブルであれば運用チーム側で対処することができましたが、製品仕様などに関わるトラブルが発生した場合、運用チームと製品チームが密に連携する必要があります。こういったケースで対応が遅れることがありました。また、各製品のリリースタイミングの調整が複雑になるケースも発生していました。
開発チームが運用まで責任を持つDevOps方式に移行できればよかったのですが、旧基盤では製品ごとに運用を切り離すことが難しい設計になっていることや独自プラットフォームの学習コストが高いことから実現が難しく、開発・運用双方に負担がかかることがありました。
この点を踏まえ開発された新プラットフォームは、Kubernetestをベースにすることで基盤構成や運用の複雑さを解消することができました。これにより新プラットフォームでは、製品チームも自身の製品の運用に携わることを前提とする運用スタイルが取れるようになりました。よりDevOps方式に近くなることで、従来ボトルネックとなっていた開発と運用の分断がなくなり、障害の対応などがスムーズに進むことが期待されます。 一方で、製品・運用の各チームには、運用スタイルの変化に対応していく負担が発生します。
SETからPlatform QAへ
このように、開発・運用側双方において運用スタイルの変化に対応するための負担が増加すると、開発スピードの遅れや、品質低下につながる恐れもあります。そのため、負担をできるたけ軽減するような対策が必要となります。そこで、クラウドプラットフォームに対するQA活動を行う「SET」を「PDX(Platform Developer experience)」「PQM(Platform Quality Management)」という2つのチームに分けて、負担を軽減する役割を担うことになりました。
この変化に合わせて、チーム名称も「Platform QA」に変更しています。CybozuのSETチームはテスト支援だけではなく様々な活動を行っており、一般的にイメージされるSETとは少し違った活動も含まれていたことに加え、新たな役割を加えたことにより、SETという名称では活動内容を表しきれなくなったためです。
※SETの活動に関する詳細は「 サイボウズ SET (Software Engineer in Test) の紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ 」 をご覧ください。
PDXチームの設立
PDX(Platform Developer experience)は、新プラットフォームを利用して開発・運用するチームの支援を行うことを目的としたチームです。
近年ではPlatform Engineeringという言葉が登場し、プラットフォームを抽象化して認知負荷を軽減する取り組みもおこなわれています。PDXチームは、Platform Engineeringの考え方を取り入れ、製品チームを支援していくことをミッションとしています。
Kubernetesをベースとした新プラットフォームでは、CI/CD、モニタリング、ロギング、アラート通知、トレーシング、ネットワーク、ストレージ、セキュリティ、認証、データベース、全文検索など、数多くの機能を提供しています。
製品チームは、新プラットフォームで一新されたこれらの機能を組み合わせてアプリケーションを開発するだけではなく、今まで運用チームが使っていた機能を使って自らのアプリケーションを運用することが求められます。
一新された機能の理解や、関わっていなかった運用面のノウハウや機能の認知は、製品チームの負荷が大きくなることが予想されます。PDXはこのような負担を軽減して、製品チームが新しいプラットフォームをスムーズに利用できるよう支援していきます。
例えば、各種機能のドキュメント整備、オンボーディング支援、各種ツールの整備やベストプラクティスの提供、トラブルシューティング支援などの業務を行っています。
PQMチームの設立
従来のSETチームが行っていた業務を行うチーム、PQM(Platform Quality Management)です。
具体的には、各製品が利用するミドルウエアに対する品質保証を行います。新プラットフォームとなり、このミドルウエアの開発体制にも若干の変化がありました。ミドルウエアの種類によるチーム細分化が行われ、DevOpsにより近い開発体制になっています。
チームにより若干の違いはありますが、チーム内でテストや自動テストへの取り組みが習熟してくると、直接的なテスト支援よりも、間接的な支援が求められることが多くなってきます。そのため、「どのようにテストを行い品質を保つか」だけではなく、「品質を維持・向上させるためにどのような活動を行うか」といった広い視点でのQA活動が求められます。 よって、PQMは、チーム活動全体を俯瞰して品質をマネージメントする活動を行うチームとなります。
SETとPlatform QAの違い
従来行っていた業務との比較は以下のようになります。
SET
- 旧プラットフォームを管理・運用するスクリプト・アーキテクチャの手動試験
- 新プラットフォームで稼働する、製品が共通で利用する一部サービスの品質保証
- 自動試験の作成・保守
- CI/CD 改善
- 開発本部・運用本部が利用する現行基盤の開発用データセンターの管理
Platform QA
PQM
- 旧プラットフォーム
- 管理・運用するスクリプト・アーキテクチャの手動試験
- 自動試験の作成・保守
- CI/CD 改善
- 開発用データセンター管理
- 新プラットフォーム
- 製品が共通で利用する一部サービスの品質保証
- ミドルウエア開発チーム支援
- 品質活動支援
- 性能検証
- 障害分析支援
PDX
- 新プラットフォームにおける開発・運用支援 (※一部、これから取り組む内容も含む)
- CI/CD 改善
- 運用環境の整備
- ドキュメント整備
- 開発チームからの新プラットフォームに関する相談・依頼受付
- プラットフォームの利便性向上のための機能追加
- Kubernetesクラスタのマルチテナント化・アクセスマネジメント
これからのPlatform QAチームが目指すところ
私たちPlatform QAは、クラウドプラットフォームに対する様々なQA活動を行っています。
「SET」から「Platform QA」への変化も、運用体制の変化に伴い発生した問題に対応し、より広い視点でCybozu.comのプラットフォーム品質を向上していくための変化です。
QA活動とは、単に開発された製品が問題なく動作することを保証するだけに留まりません。 開発や運用で発生する負担を排除し、よりよい開発・運用が行える状態にすることも、QA活動の一環です。開発・運用のリソースを確保することにより品質に対する活動が可能となり、お客様に品質の高い製品を早く届けることにつながると考えるからです。
Cybozu.comを継続的に安定した状態で運用できるインフラを提供するために、Platform QAは引き続き広い視点で更なる品質向上に取り組んでいきます。