Amazon Web Services ブログ
自動化によりモダナイゼーションを加速する
はじめに
組織がクラウド上でワークロードのモダナイゼーションを進めるにあたり、そのジャーニーを成功に導くためには重要となる「能力」の習得を必要とします。その能力には、組織構造、モダナイゼーション戦略、自動化、チームの成熟度合い、利害関係者のスポンサーシップなどが含まれます。このなかで、自動化は、特にアジリティ、スケーラビリティ、運用効率といったモダナイゼーションのメリットを実現する上での非常に大きな役割を果たします。
しかし、「自動化」は人によってさまざまな解釈があるでしょう。この記事における自動化とは、特定の成果を達成するために手作業に代わってコードと構成を用いて作業を行うツールとプロセスを指すということを、はじめにあわせておきましょう。
この記事では、特定の問題に対する早急な解決策ではなく、戦略的な実現手段としてクラウドの自動化を認識し、活用する効率的なデリバリー・モデルを構築するためのガイダンスをIT リーダーに提供していきます。
導入フェーズにおける自動化の目標
一般的に、モダナイゼーションプログラムの導入フェーズでは、ビジネス目標、スコープ、予算、組織構造、テスト戦略の定義に重点が置かれます。自動化戦略は、戦略的な計画の要素というよりは戦術的な活動とみなされるため、導入フェーズでは見落とされがちであり、含まれないことが頻繁にあります。その結果、モダナイゼーション戦略の大きな文脈において、自動化を推進するのに必要な注意が払われず、それにより、自動化が、計画や実装の段階で後回しにされることになります。自動化戦略は、モダナイゼーションプログラムの導入フェーズにおける重要なアウトプットであるべきであり、明確な自動化の目標が定義され、モダナイゼーションプログラムの目標に対して合致しているべきです。計画フェーズでは、自動化戦略からもっと拡げ、自動化のアプローチ、予算、および実装計画(設計、開発、テスト、デプロイメント、および運用を含む)を含めます。自動化計画は、重要なマイルストーンに対する主要な相互依存関係を組み込んだ上で、モダナイゼーションプログラム(図1 参照)と並行して進めるべきです。
運用モデル
アプリケーション開発チームのミッションは、ビジネス機能を迅速に提供することに集中することであり、自動化は必ずしも優先事項ではありません。開発ライフサイクルを加速させるため、自動化機能を構築することを最優先する、別のチームの創設を検討しましょう。自動化チームと開発チームは、共通のビジネス目標を達成するために、プログラム全体のタイムラインと整合する相互依存の機能として運営されます。
組織のアジャイルと DevOps の実践は、図2 に示すように、開発ライフサイクル全体を通じて、モダナイゼーションの成果に対して共有オーナーシップを持つ開発チームと自動化アジャイルチーム間の機能横断的なコラボレーションを促進する必要があります。このアプローチは、より迅速なフィードバック・ループと継続的なインテグレーションを促し、チーム・メンバー間で共有の責務として、モダナイゼーションの成果を重視することになります。
開発チームと自動化チームの間で職務を分離することで、利害の衝突を防ぎ、チームが定義された自動化プロセス以外のタスクを実行する可能性を減らすことができます。明確なポリシーを確立し、期待事項を伝え、定期的にアクセス制御を見直し、更新することが極めて重要になります。一般的なガイドラインとして、すべての環境構築、デプロイメント、コンフィギュレーション、データロードは、自動化プロセスによって実行されるべきでしょう。
自動化チームを編成するには、2 つの方法があります。1 /共通チーム: このアプローチでは、一元化された自動化チームが、組織全体の自動化ニーズに対応します。このアプローチは、組織が集中型DevOps 戦略をとっている場合に採用されます。これには、統一された自動化ツールとプロセスによる集中化したデプロイメントパイプラインが含まれます。2 /専任チーム: このアプローチでは、特定のモダナイゼーションのイニシアチブまたはプログラムの自動化を構築するために、専任の自動化チームが編成されます。このチームは、イニシアチブないしプログラムのための自動化の実装が完了後、最終的に集中型DevOps チームに統合されます。
自動化戦略 – エンド・ツー・エンドの自動化
組織は、開発ライフサイクル全体にわたるエンド・ツー・エンドの視点から自動化戦略を定義する必要があります。自動化ツールチェーン(ツールとプロセスを含む)をソフトウェアライフサイクル全体で構築します。ツールチェーンには、環境構築、開発、バージョン管理、継続的インテグレーション、コード品質、継続的デプロイメント、コンテナ化、モニタリング、コラボレーション、テストを含めます。
クラウド・セキュリティの自動化は、クラウド環境の動的な性質がもたらす課題に対処するために非常に重要です。自動化は、セキュリティ・ギャップのプロアクティブな特定と解決、パッチ管理、脅威の検出、インシデント対応によって、セキュリティとコンプライアンスを迅速かつ大規模に維持するのに役立ちます。
高度なアクセスを必要とせずに、アプリケーションとインフラストラクチャのパフォーマンス、信頼性、セキュリティを監視し、最適化するための自動化された可観測性ソリューションを構築します。これにより、チームは各環境を可視化し、プロアクティブな監視によって問題を軽減し、運用効率を向上させることができます。
効率的かつ効果的なワークフローを構築するには、適切なツールの組み合わせを選択することが重要です。ツールチェーンに選択するツールは、相互運用性に優れ、ライフサイクルを通じて統合されたユニットとして機能する必要があります。図3 は、統合されたエンド・ツー・エンドのツールを提供するAWS サービスを利用したツールチェーンのサンプルを示しています。
自動化の効果測定
自動化の目的は多様であり、主要な指標を測定することが可能であるため、自動化の効果を測定することは複雑な作業になります。しかし、自動化の成果を測定することは不可欠といえます。適切な測定基準を追跡し、データに基づいた意思決定を行うことで、組織は自動化の効果を改善し、望ましい結果を得ることができます。以下は、自動化の効果を測定するために使用される一般的な測定基準です:
コスト削減: 手動オペレーションの削減、生産性の向上、リソース利用の最適化によるコスト削減を測定します。人件費、インフラストラクチャー費用、運用経費などの要素を含めます。
時間の削減: 環境のプロビジョニング、コード開発、テスト、デプロイメントなど、特定のタスクやプロセスを完了するために、短縮できた時間を測定します。
欠陥率: 人的介入の最小化による精度の向上を指します。 手作業によるプロセスで発生していた不具合の削減を測定します。
生産性: 自動化により改善した生産性の向上を測定します。特定の時間内に完了したタスク、トランザクション、オペレーション数を評価します。
品質: 自動化によって達成されたアウトプットの品質向上を評価します。標準への準拠、コンプライアンス、顧客満足度などの要素を測定します。
プロセス・サイクル・タイム:自動化によるプロセス・サイクル・タイムの短縮を測定します。特定のプロセスやワークフローの開始から終了までにかかる時間を計算します。
投資利益率(ROI): 発生したコストと得られた利益を比較することにより、自動化の取り組みにおけるROI を計算します。コスト削減、生産性の向上、効率性の向上、市場投入までの時間などの要素を考慮します。
さらに、DevOps メトリクスを使用して自動化の有効性を測定することができます。
成熟度モデル
多くの組織では、成熟度モデルを用いて自動化の現状を評価するのが一般的です。成熟度モデルは、自動化のゴールを設定し、自動化に向けたロードマップを策定し、自動化における投資の優先順位を決めるための良いガイドとなります。一般的に、組織は、それぞれのニーズに合わせて成熟度モデルをカスタマイズするのが良いでしょう。
以下は、クラウドにおける自動化の成熟度を評価するために使用できるモデル(図4 )になります。
自動化メトリクスと成熟度モデルは、互いに連携して使用されます。成熟度レベルごとに、定量的なしきい値の範囲とともに、使用する具体的なメトリクスを定義します。自動化の成熟度レベルを検証するために、定期的な監査を実施します。これにより、チームは自動化の全体的な有効性を測定することができ、その結果、改善点を特定し、自動化のゴールの優先順位を決定することができます。
自動化におけるAI
AI とML ツールが成熟し、生成AI が登場したことで、自動化に関するあらゆる可能性が広がりました。AI 機能は、インテリジェントな洞察、予知保全、自動インシデント対応、自己修復を提供する自動化システムの提供を可能にします。
生成AI により、意思決定にインテリジェンスと柔軟性を加えることで、自動化を次のレベルに引き上げ、以前は自動化には複雑すぎると考えられていたプロセスを変革することができます。生成AI が自動化に適用される例としては、文書化、スクリプトとコードの生成、コンプライアンス・レポート、セキュリティ・ギャップの特定と修正、自動化されたインシデント対応などがあります。
自動化におけるAI は進化する能力であり、新しいユースケースやチャンスが定期的に発見されます。AI を使用することで、組織は成熟度モデルを加速度的に通過し、ビジネス価値をより迅速に推進することができるようになるでしょう。
リスクと課題
自動化には多大なメリットがある一方で、リスクや課題もあります。自動化に過度に依存すると、人による監視が低下し、障害や意図しない結果を引き起こす可能性があります。複雑な自動化の実装は、保守が困難でIT 予算を浪費する扱いにくいソリューションの原因ともなります。
これらのリスクを軽減するために、組織は、計画的かつ十分に考え抜かれたアプローチに基づいて、自動化戦略を定義する必要があります。モニタリングやテストなど、自動化プロセスの定期的な監査を実施します。状況の変化に基づき、自動化プロセスを常に最新に保ちます。最後に、自動化に失敗した場合は、手動プロセスを導入します。自動化から必要な利益を得るためには、自動化とそれに伴うリスクのバランスを保つことが重要となります。
最後に
自動化は、開発ライフサイクルの生産性、効率性、信頼性を大幅に向上させ、それにより、チームはイノベーションと価値提供に集中することができます。自動化は、重要なマイルストーンを定義し、成熟度モデルに照らして測定することで、戦略的なアウトプットとして考えることができます。自動化は、プロジェクトの導入フェーズから実装まで注意を払う必要があるジャーニーです。自動化はそれ自体がアウトプットであり、重要なイネーブラー(成功要因)であることを念頭におき、モダナイゼーションに取り組みましょう。
参考文献
AWS CaseStudy – Botprise Reduces Time to Remediation by 86% on Average Using Automation and AWS Security Hub https://aws.amazon.com/solutions/case-studies/botprise-case-study/?did=cr_card&trk=cr_card
Customer CaseStudy – On-Demand Infrastructure on AWS Helps Capital One DevOps Teams Move Faster Than Ever https://aws.amazon.com/solutions/case-studies/capital-one-devops/
AWS. DevOps practices and tool and use cases. https://aws.amazon.com/devops/
AWS. (10 Jul 2023 ) Automated Code Review on Pull Requests using AWS CodeCommit and AWS CodeBuild https://aws.amazon.com/blogs/devops/automated-code-review-on-pull-requests-using-aws-codecommit-and-aws-codebuild/
AWS. (30 May 2023) Optimize software development with Amazon CodeWhisperer https://aws.amazon.com/blogs/devops/optimize-software-development-with-amazon-codewhisperer/
AWS. (04 May 2023) The history and future roadmap of the AWS CloudFormation Registry
https://aws.amazon.com/blogs/devops/cloudformation-coverage/
AWS. (22 Dec 2022) Multi-branch pipeline management and infrastructure deployment using AWS CDK Pipelines https://aws.amazon.com/blogs/devops/multi-branch-pipeline-management-and-infrastructure-deployment-using-aws-cdk-pipelines/
AWS. (13 Dec 2022) Using Workflows to Build, Test, and Deploy with Amazon CodeCatalyst
https://aws.amazon.com/blogs/devops/using-workflows-to-build-test-and-deploy-with-amazon-codecatalyst/
著者について
この記事は、ソリューションアーキテクトの平岩梨果が翻訳を担当しました。原文はこちらです。