ビルド - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ビルド

DevOps 戦略の構築フェーズでは、技術インフラストラクチャを構築し、コラボレーション、自動化、継続的な改善に向けた文化的な移行を育みます。この重要なフェーズでは、ツールとパイプラインの実用的なオーケストレーションを行います。これには、以下が含まれます。

  • DevOps ツールチェーンのセットアップ

  • 接続の確立

  • アプリケーションのデプロイを通じてコード開発をガイドするパイプラインの作成

これには、ソフトウェア構築の技術的な側面だけでなく、コラボレーション、自動化、継続的な改善に向けた開発文化の移行も含まれます。継続的インテグレーションと継続的デリバリー (CI/CD) の原則に従うことで、ビルドフェーズは、開発とデプロイプロセスを合理化し、ソフトウェア品質を向上させ、モダナイズされたメインフレームアプリケーションの へのデプロイを加速することを目指しています AWS。

次の図は、デプロイパイプラインのさまざまなステージを示しています。各ステージには、モダナイズされたメインフレームワークロードのデプロイジャーニーで実装するために必要なステップと推奨されるステップが含まれています。

各ステージの列を含むグラフ。

モダナイズされたメインフレームワークロードデプロイパイプラインステージには、次のものが含まれます。

  • ソースステージ – 必要なステップは、設定、依存関係マニフェスト、静的アセット、インフラストラクチャソース、テストソース、アプリケーションソースです。推奨されるステップはデータベースソースです。

  • ビルドステージ – 必要なステップは、パッケージアーティファクト、静的アプリケーションセキュリティテスト、シークレット検出、コード品質、ユニットテスト、ビルドコードです。推奨されるステップは、ソフトウェア部品表とソフトウェア構成分析です。

  • テスト (ベータ) ステージ – 必要なステップは、受け入れテストと統合テストです。推奨されるステップは、ソフトウェアのデプロイ、データベースのデプロイ、起動環境です。

  • テスト (ガンマ) ステージ – 必要なステップは、合成テスト、モニタリングとログ記録、ソフトウェアのデプロイ、起動環境です。推奨される設定は、動的アプリケーションセキュリティテスト (DAST)、耐障害性テスト、パフォーマンステスト、データベースのデプロイです。

  • 製品ステージ – 必要なステップは、合成テストとプログレッシブデプロイです。推奨されるステップは、データベースのデプロイと手動承認です。

継続的な統合

継続的インテグレーション (CI) は、デベロッパーがコードを定期的に小さな変更し、コードリポジトリのリリース可能なブランチに統合するソフトウェア開発プラクティスです。新しく統合されたコードは、一貫性のある反復可能な方法で自律的に構築、テスト、検証されます。CI を使用すると、開発者はフィードバックを迅速に受け取り、開発ライフサイクルの初期段階で潜在的な問題を特定し、複雑さとコストが増大する前にそれらに対処できます。

継続的な統合により、AWS でのメインフレームのモダナイゼーションプロセスを大幅に高速化および合理化できます。CI の原則は、次の領域に適用されます。

  • 頻繁なコード統合 – CI パイプラインでは、コードの変更は頻繁に共有リポジトリに統合され、多くの場合、1 日に複数回統合されます。これにより、コラボレーションが促進され、開発チーム全体がup-to-dateコードベースで作業できるようになります。CI は、コード変更の管理や変更履歴の追跡にも役立ちます。GitLab AWS CodeCommitや GitHub などの Git ベースのツールは、コードの頻繁な統合やコラボレーションに役立ちます。 GitLab これらの git リポジトリのコードは、OpenText Changeman ZMF 用の Git コネクタなどのコネクタを介してメインフレームに同期できます。

  • 自動テスト – CI は、メインフレームアプリケーション用の自動テストスイートの作成を推奨します。これにより、コードがクラウド用にリファクタリングされるため、機能し、エラーが発生しずに維持されます。自動テストには、ユニットテストと統合テストを含めることができます。メインフレームアプリケーションは、ZUnit などのフレームワークを使用してユニットテストできます。

  • 早期問題検出 – コードがコミットされるたびに自動テストと静的コード分析ツールを実行することで、CI システムは問題を迅速に検出してフラグ付けします。これにより、開発チームは開発サイクルの早い段階で問題に対処できるため、移行中の重大な挫折のリスクが軽減されます。SonarQube や Veracode などのツールは、メインフレーム COBOL コードとモダナイズされた Java コードの両方の問題の早期検出とコード品質に役立ちます。

  • 迅速なフィードバック – CI システムは、コードの品質に関する迅速なフィードバックを開発者に提供し、モダナイゼーションプロセスの継続的な改善につながる可能性があります。

継続的デリバリー

継続的デリバリー (CD) は、継続的インテグレーション (CI) の後に行われます。CD では、ビルド検証に合格するコード変更は、人間の介入を最小限に抑えながら、本番稼働環境を含む他の環境に自動的にデプロイされます。CD は、新機能、修正、および改善が迅速かつ信頼性の高い方法でデプロイされるようにするのに役立ちます。CD はリードタイムを短縮し、デプロイプロセスの全体的な効率を向上させます。CD を使用して配信プロセスを自動化すると、チームはコードの開発と改良に集中しながら、さまざまな環境に変更をデプロイする時間がかかり、エラーが発生しやすいプロセスがシステムによって処理されます。

CD は、デプロイプロセスを自動化 AWS することで、モダナイズされたメインフレームアプリケーションの への移行を容易にします。CD の原則は、次の領域に適用されます。

  • 自動デプロイ – 移行プロセス中の手動介入と人為的ミスの可能性を減らすために、CD はターゲット環境へのコード変更のデプロイを自動化します。Jenkins AWS CodeDeployや IBM Urban CodeDeploy などのツールは、さまざまな環境 (開発、テスト、Prod など) へのアーティファクトのプログレッシブデプロイに役立ちます。

  • 継続的デプロイ – 継続的デリバリーと継続的デプロイの違いは、本番稼働用への更新を手動で承認していることです。継続的なデプロイでは、本番環境は明示的な承認なしで自動的に行われます。

  • 迅速なフィードバックループ – 自動デプロイは、コードの変更をデプロイする準備ができているかどうかに関する迅速なフィードバックを提供します。このフィードバックループにより、徹底的にテストおよび検証されたコードのみがデプロイされます。

  • 頻繁なリリースサイクル – CD を使用すると、組織は新機能、機能強化、モダナイズされたコードをより頻繁にリリースできます。この俊敏性は、企業が変化する要件に適応し、競争力を維持するのに役立ちます。

  • ロールバック機能 – CD パイプラインにはロールバックメカニズムを含める必要があります。 AWS 環境で問題や予期しない動作が発生した場合、チームはメカニズムを使用してアプリケーションの以前のバージョンに戻すことができます。

  • Infrastructure as Code – CD は、 AWS CloudFormation や HashiCorp Terraform などのInfrastructure as Code (IaC) ツールと組み合わせて、インフラストラクチャを一貫して定義およびプロビジョニングできます。一貫したプロビジョニングは、 AWS 環境が必要な設定と一致するようにするのに役立ちます。