効率を高める自動化
反復的な手動タスクをソフトウェア自動化に置き換えます。これにより、一貫性と正確性が向上し、リスクが軽減されます。 |
---|
ワークロードには、チーム メンバーが人間の知性を実際に必要としない日常的で反復的で時間のかかるタスクを行うプロセスが含まれるワークフローがある場合があります。 頻度によっては、これらの作業にかなりの時間を費やし、ワークロードの増加に合わせてより多くの時間を費やす場合があります。 また、これらのプロセスは、多くの場合、人間の入力によってエラーが発生しやすくなります。
自動化により、時間、労力、コストを節約し、間違いを回避できます。
サンプル シナリオ
Contoso University は、Contoso の学生と教職員にオンライン教育サービスを提供する現在運用中の Web アプリケーションを開発しており、Azure でホストされています。
このテクノロジ ソリューションは、Azure App Service、Azure SQL Database、Azure Active Directory、Azure Key Vault、Azure DevOps 上に構築されています。
フローの自動化
複雑さ、労力、頻度、精度、タイムライン、有効期間の適切なレベルにある条件に対して、すべてのワークフローを評価します。 その評価に基づいてワークフローを自動化し、期待されるリターンが最も高いワークフローを優先度付けします。 冗長なワークフローを削除するか、人の労力を正当化する価値を追加します。
このアプローチを採用することで、チームの能力を価値の高い作業に再投資し、生産性と一貫性を向上させることができます。
ワークフローのインベントリを作成すると、確実に適切なタスクを自動化できます。 冗長タスクを削除すると、複雑さとエラーが軽減されます。
"Contoso の課題"
- Contoso University のチームは、反復的で、時間がかかり、エラーが発生しやすい、または価値の低い手動タスクを自動化することで、運用プロセスを改善する方法を探しています。 これにより、より戦略的な作業のためにチームの時間とリソースの一部が解放され、サービスの品質と信頼性が向上し、コストが削減される可能性があります。
"アプローチの適用と結果"
- この作業を開始するために、チームは自動化される可能性のある手動操作タスクのリストを作成しました。 次に、チームは、適切なレベルの複雑さ、労力、頻度、正確性、タイムライン、有効期間など、推奨事項で提案された条件を使用してタスクのリストを分析し、自動化の上位候補を決定しました。 同時に、チームは、自動化ツールを取得するか、社内で自動化をカスタムビルドする方が長期的に優れているかどうかを評価しました。
- 分析の結果、ユーザー アカウント管理に関連するアクティビティの自動化に重点を置くことにしました。 ユーザー アカウント (学生、教職員) の管理は一般的なタスクであり、学生の登録時の新規アカウントの作成、パスワードのリセット、個人が大学を離れたときのアカウントの削除などが含まれます。
- ユーザー アカウント管理に関連するタスクの多くを自動化すると、チームは、以前に遅れていた他のオペレーショナル エクセレンスの改善から始めるのに十分な時間を確保しました。
自動化のための設計
自動化機能をサポートするようにワークロード コンポーネントを設計します。
システム設計での自動化の欠如により、反復的なタスクのアンチパターンが促進され、成長が鈍化し、技術的負債が蓄積し始める、という状況を避けてください。
"Contoso の課題"
- アプリケーションには、多くの対話型の要素とアニメーションを使用する豊富で動的な UI があります。 アプリケーションが最初に開発され、手動テストのみに依存していたため、開発チームは自動化された UI テスト ツールを使用したことがありません。
- 最近、チームは UI テストの自動化に取り組んでいますが、多くの課題に直面しています。 一部の UI ページは非常に動的で予測不可能であり、テスト ケースが操作する必要があるフィールドの一部を特定する一貫した方法はありません。
"アプローチの適用と結果"
- チームは、UI の実装を改善して、テストしやすく、アクセスしやすくすることにしました。 テスト ケースを作成する際にページを修正して、段階的に改善を行います。
- 各ページに取り組む際に、すべてのフィールドに、テスト自動化ツールで使用できる一意識別子があることを確認します。 また、セマンティック HTML、適切なラベル、キーボード ナビゲーションの使用など、ユーザー補助ガイドラインと標準にも従います。 これにより、UI がユーザー フレンドリーになり、テストしやすくなります。
- 自動テストが完了すると、毎日のビルド中に実行されるテスト スイートに組み込まれ、新しいビルドを運用環境にリリースするのに要する時間が大幅に短縮され、製品の品質が向上し、開発時のコスト削減が実現します。
自動化は well-architected である必要がある
すべての自動化をワークロードの重要な依存関係として扱います。 ワークロードの予想される成長に適応します。 自動化ツールはワークロードの不可欠な部分であり、Well-Architected フレームワークの 5 つの柱に従う必要があります。
セキュリティ上の脅威などのリスクに耐えられるように自動化コンポーネントを設計します。 適用されたベスト プラクティスを使用すると、実装のスプロールを回避できます。
この依存関係が機能し、安全な状態に保たれている場合、ワークロードは引き続き高いレベルで保証され動作し続けます。
"Contoso の課題"
- ワークロードには、負荷およびパフォーマンス テスト専用の環境があり、運用環境を厳密に模倣した構成があります。 環境内の運用環境のような状態をより厳密にシミュレートするために、すべてのユーザーの機密データを匿名化してマスクした運用データベースの新しいコピーが、その環境がリセットされると、毎週月曜日にテスト環境に読み込まれます。
- データベースの読み込みスクリプトは、ドキュメントを適切に文書化しなかった、または他のベスト プラクティスに従わなかった前の開発者によって記述されました。 スクリプトの実行速度が遅く、エラーや失敗を適切に処理しません。
- 最近では、運用データベースが拡大するにつれて、スクリプトの実行時間が長くなり、頻繁に失敗します。 これらの遅延と失敗は、チームのテストの実行の能力に影響し、開発スケジュールの遅延を引き起こしています。
"アプローチの適用と結果"
- チームは、コア アプリケーション コードベースの開発に使用される標準的な開発手法と同等になるように、このツールを書き換える時が来たと判断しました。 チームは、適切なセキュリティと適切なエラー処理など、業界で受け入れられているベスト開発プラクティスに従います。
- パフォーマンスが向上し、運用データセットのサイズに関係なく、予測可能な実行時間が生成されるように機能が再設計されました。
- コア アプリケーション コードベースと同じ厳格さで自動化を扱い、WAF の原則と推奨事項を適用して、チームはこれを信頼性、セキュリティ、パフォーマンス、コスト、運用向けに最適化しました。