このアドバンストコースでは、テストとセキュリティを継続的インテグレーション (CI)、継続的デリバリー (CD)、および継続的デプロイ (CD) パイプラインに統合する方法を説明します。アプリケーションの更新をより安全で信頼性の高い方法で提供するために、アプリケーションライフサイクルのさまざまな段階で高度な方法でテストを行う方法を学びます。高度な方法でテストを行うために、AWS CodeCommit、AWS CodeBuild、AWS CodeDeploy、AWS CodePipeline などの AWS DevOps ツールの使用方法を学習します。
また、開発の初期段階で問題を特定するために、レビュー機能を設定する方法と静的コード分析を行う方法についても学習します。AWS Lambda と Amazon CloudWatch を使用して、セキュリティテスト、模擬テスト、ロードテストなどの各種テストについて説明します。
• コースレベル: 上級
• 所要時間: 2 時間 30 分
*このコースの中の動画の音声は日本語の吹き替えとなっています。日本語の字幕を表示することもできますが、字幕の表示と音声とにタイミングずれがあります。字幕を表示する場合は、音声をミュートにすることをお薦めします。
アクティビティ
このコースには、動画によるプレゼンテーション、デモンストレーション、リソースへのリンク、ナレッジチェックが含まれています。
コースの目標
このコースでは、次の内容について学習します。
• CI/CD パイプラインでのテストの自動化の利点
• アプリケーションの変更をコードリポジトリに反映させる方法およびプルリクエストのプロセス
• 単体テスト、セキュリティテスト、コードリンティングなど、CI テスト用の buildspec.yaml を作成する
• 静的コード分析を使用してセキュリティまたはコードの問題を特定する
• 継続的デリバリー中に、インテグレーション、ロード、パフォーマンステストなどの各種テストを行う方法
• AWS Lambda および Amazon CloudWatch アラームを使用して継続的なサービスの可用性を分析する模擬テストを行う
• 継続的デプロイ中に canary テストを適用して、デプロイのヘルスステータスをチェックする
• パイプラインの承認をトリガーするテストを行い、アプリケーションの状態をチェックする
• 継続的なデプロイ中にサービスエラーが発生した場合のパイプラインフローを管理する
対象受講者
このコースは以下の方を対象としています。
• DevOps エンジニア
• DevOps 開発者
前提条件
このコースを受講するにあたっては、次の内容を身につけておくことをお勧めします。
• AWS でのシステムオペレーション、または DevOps Engineering on AWS コースを修了
• 1 つ以上の高級プログラム言語 (C、Java、PHP、Ruby、Python など) の実務的知識
• コマンドラインインターフェース で Linux または Windows システムが管理できる中級レベルの知識
• AWS マネジメントコンソールと、AWS Command Line Interface (AWS CLI) を使用した AWS の実務経験
• DevOps の方法論に関するアドバンストレベルの知識と実践的経験
コース概要
モジュール 1: テストについての概要
• 開発におけるテスト戦略の利点
• テストピラミッドを使用したテストのさまざまな段階
• テストカバレッジを使用した効果的なテスト計画の設計
• 開発ライフサイクルにおけるテストの自動化の利点
モジュール 2: DevOps レビュー
• より高速なアプリケーションリビジョンを提供する DevOps プラクティス
• AWS CodeCommit、AWS CodeDeploy、AWS CodeBuild、AWS CodePipeline などの AWS ツールの知識を適用した CI/CD パイプラインの構築と自動化
• CI/CD パイプラインの各段階での AWS サーバーレスオプションとサードパーティーツールの使用
モジュール 3: 継続的インテグレーション
• 開発プラクティスの要件としてのコードのスタンダードを確立する
• CI の段階でさまざまな方法でのテストを行う
• 単体テストと静的コード分析の利点を活用する
• テスト駆動開発 (TDD) と振る舞い駆動開発 (BDD) を適用して、効果的なテスト戦略を構築する
• Amazon CodeGuru を使用してコードを確認し、品質向上を図る
• デモ: 静的コード解析
• デモ: プルリクエストの実行
モジュール 4: 継続的デリバリー
• 継続的デリバリーの段階で必要に応じてテスト方法を適用する
• 機能テスト、回帰テスト、パフォーマンステストの利点を認識する
• サードパーティーのツールまたはサーバーレスオプションを使用して各種テストを行う
• サービスの継続性を確保する模擬テストを行う
• セキュリティ監査ルールを適用するセキュリティテストを自動化する
• デモ: 模擬テスト
モジュール 5: 継続的デプロイ
• 継続的デプロイの段階で必要に応じて各種テストを行う
• ヘルスチェックを戦略的に活用して、デプロイの障害を回避する
• 承認をトリガーするテストを行い、継続的デプロイを自動化する
• AWS Lambda を使用して承認プロセスを自動化する
• AWS CodeDeploy で利用可能なデプロイオプションを適用する
• セグメント化されたデプロイメントと canary デプロイメントなどのデプロイを行う
• 段階間のトランジションを無効化し、再度有効化して、パイプラインのフローを制御する
• デモ: Amazon CloudWatch Synthetics
• デモ: デプロイの停止
モジュール 6: コースのまとめ
• コースのトピックからさまざまなリソースを復習して識別する
• (オプション) 自分の AWS アカウントでサンプルコードを使用してサンドボックス環境を作成し、知識を試す