QCon San Franciscoのプレゼンテーションで、Ying Dai氏(ダイ氏)は2つの重要なソフトウェアエンジニアリングのマイグレーションストーリーを共有した。1つはプロダクションモニタリングに焦点を当てたもので、もう1つは自動検証を伴うプロダクションデプロイメントに関するものである。どちらの移行も、エンジニアリングの効率を向上させるという目標によって進められたが、それぞれに課題と教訓があった。
レガシー・テレメトリー・システムは、増大する需要に対応する拡張性に苦戦し、タイムリーで正確な情報を提供できないことが多かった、とダイ氏は言う。そのため、オンコールやトラブルシューティングに多大な時間を費やし、最終的にエンジニアリングの生産性を妨げていた、と彼女は追加した。
新しいシステムを構築するために、彼らは既存のシステムを徹底的に分析し、その欠点と社内のエンジニアが直面している課題を突き止めた、とダイ氏は言及した。彼らは利用可能な選択肢を検討し、戦略的な移行計画を立てて新システムを設計した。
私たちの最初の目的は、高い可用性と信頼性の両方を提供する新しいシステムを開発することでした。パフォーマンスと精度の重要性を認識し、厳格なテスト手法を導入しました。これには、既存のレガシー・システムと新システムに同時にデータを書き込む二重書き込みプロセスが含まれました。
この戦略により、新システムの完全性と機能性を徹底的に検証でき、同時に移行期間中も中断のないサービスとデータ保全を確保できた、とダイ氏は語った。
ダイ氏は、サービスデプロイに関する2つ目の移行ストーリーを共有した。以前のサービスデプロイプロセスは、すべて手作業に頼っており、必要なチェックや検証が欠けていたとダイ氏は言った。そのため、変更のデプロイは簡単だったが、インシデントの頻度も高くなった。
ロールアウト中、エンジニア経験の中で摩擦が生じて、それによって彼らは行動を取ることになった。エンジニアのフィードバックに基づき、よりスムーズでシームレスな移行を目指した改善を実装した。ダイ氏は次のように説明した。
この経験から、技術導入を成功させるためには、顧客中心主義と反復的な開発が重要であることが明確になりました。
研究の過程で、彼らは自動化されたカナリア分析を強化する可能性を見出した、とダイ氏は言った。本番環境にあるカナリア・インスタンスに対して分析を直接実行することで、ロールアウト・プロセスの信頼性を向上させることで、即座に具体的な価値を私たちエンジニアに提供できた。
彼らは、すべてのサービスに普遍的に適用できるようにするために、自動化されたカナリア分析のルールをデザインした。それによって、エンジニアの入力の必要性が除外された。この「導入にかかる労力をゼロにする」アプローチによって、使いやすさとシームレスな統合が実現した、とダイ氏は言った。
また、エンジニアが特定のニーズや好みに応じて検証ルールをカスタマイズするために必要な条項をシステムに組み込むことによる柔軟性の重要性も理解していた。ダイ氏が説明したように、この適応性により、エンジニアは独自の要件に完全に合致するように分析プロセスを調整する力を得ることができる。
要するに、我々の顧客中心のアプローチは、自動カナリア分析への戦略的な焦点、および、シンプルさと柔軟性の両方へのコミットメントと相まって、エンジニアリングの効率と全体的なユーザーの満足度を大幅に改善する道を切り開いたのです。
エンジニアのニーズを理解し、積極的に対応することが不可欠だ、とダイ氏は言った。そのためには、オープンなコミュニケーションを促進し、変更プロセスへの早期参加を促し、的を絞ったトレーニングを提供し、継続的なフィードバックを求める必要があると彼女は説明した。
エンジニアのニーズを優先することで、混乱を最小限に抑え、協力的な環境を育み、エンジニアに力を与え、最終的には組織全体に利益をもたらすような変更を実施することができるのです。
移行によって得られたメリットは、信頼性の向上、インシデント件数の減少、全体的な可用性の向上だった。これらのポジティブな結果は、システムのパフォーマンスを向上させるという彼らのアプローチの有効性を証明した、とダイ氏は締めくくった。
InfoQは、イン・ダイ(Ying Dai)氏に移行についてインタビューした。
InfoQ: 新しい遠隔測定システムへの移行はどうだったか?
イン・ダイ氏:新システムへの移行は複雑で困難な事業でした。私たち(新システムと旧システムの両方の所有者)だけでなく、関係する顧客(主に社内のエンジニア)にも、多大な時間、リソース、労力を投資する必要がありました。我々はエンジニアの意見に耳を傾け、彼らのフィードバックを継続的な改善に役立て、新旧システム間のユーザー・エクスペリエンスのギャップを効果的に埋めていきました。彼らの意見を注意深く考慮することで、新旧システム間で生じたユーザー・エクスペリエンスのギャップを特定し、対処することができました。この顧客中心のアプローチにより、スムーズでシームレスな移行を実現し、混乱を最小限に抑え、高いユーザー満足度を維持することができました。
InfoQ: 移行中、ソフトウェア・エンジニア達とはどのように関わったのか?
イン・ダイ氏:エンジニアの効率を高めるため、エンジニアの経験について包括的な調査を開始しました。社内のエンジニアとの綿密なインタビューを通じて、彼らの主な痛みや課題を突き止めることができました。たとえば、本番環境への移行プロジェクトでは、統合テストを実施し、さらに開発することに前向きな顧客もいる一方で、テスト環境と本番環境の不一致により、これらのテストが限られた価値しかもたらさないことが多いことに気がつきました。このようなインサイトは、改善を実施できる主要分野を特定し、戦略的で実行可能な計画を策定するための基盤となりました。