eBayアプリケーションプラットフォームチームは、組織のソフトウェア品質を確保するために、Kubernetesオペレーター、Helm Charts、Jenkinsの使用を開始した。関連するコンテナと環境内で安全な変更を実行するために、チームはセルフサービスの「認証」ソリューションを開発した。
フレームワークのリリース、ランタイムの更新、オペレーティングシステムの更新などの変更には、認定が必要となる。不正なリリースを防ぐために、認定ソリューションでは、複雑な認定リクエストを処理するための自動化テンプレートが提供されている。eBayのアプリケーションプラットフォームチームのメンバーであるZhong Shen氏、Rocky Sheng氏、Ramit Bedi氏から、ソリューションアーキテクチャの詳細なウォークスルーが提供された。
このソリューションは、アプリケーションテストケース、パフォーマンステスト、テストアプリ、パイプライン、トラフィックミラーで構成されるスタンドアロンの「認証ユニット」で構成されている。特定の認証カテゴリについて、認証ユニットと認証インスタンスのテンプレートを含むHelmチャートがある。
Helmチャートとユーザ入力パラメーターは、認証インスタンスとチャートカスタムリソース定義(CRD)インスタンスを作成するために使われる。認定インスタンスによって、Jenkinsパイプラインのgitリポジトリとパイプラインパラメータが明記されている。チャートCRDインスタンスは、標準パラメータ、認証ユニットグループ、およびそれぞれの依存関係を定義している。
認定サービスを使って、認定コントローラーはJenkinsパイプラインジョブを管理する。要件に基づいて、Jenkinsジョブが作成、削除される。アプリケーションプラットフォームチームは、個々の認証タイプに従って、モジュール化されたJenkinsパイプラインスクリプトを再利用する。
アプリケーションプラットフォームチームは続いて、eBayでサービスを使うすべてのコミュニティに、厳選されたプラットフォームエクスペリエンスの構築、保守、提供を行おうとしているようである。このチームは、ソフトウェア品質認証の完全自動化と、認証ソリューションとの自動テスト比較を実現した。チームメンバーは認証ジョブをトリガーでき、構成可能な通知メカニズムにより迅速なトラブルシューティングが可能になる。その結果、認証時間が数日から数時間に短縮される。
プラットフォームチームは、開発チームの認知的負荷を軽減し、共通のプラットフォームを最も障壁の少ないパスとして利用できるようにすることで、使いやすい「舗装された道」を提供する。この考え方に沿って、eBayのアプリケーションプラットフォームチームは、ソフトウェア品質認証の将来の機能強化に取り組んでいる。チームは、CI/CDシステムを作成するためのオープンソースフレームワークであるTektonを使い、機械学習を活用して障害の分類、根本原因分析、将来の障害予測を行うことを計画している。