j-tokumori / cicd_training_doc

0 stars 0 forks source link

コンテンツ作成 #1

Open j-tokumori opened 2 years ago

j-tokumori commented 2 years ago

コンテンツ作成にあたって記録する

参考

j-tokumori commented 2 years ago

代表的なツール

オンプレミス型

クラウド型

j-tokumori commented 2 years ago

テストの必要性

j-tokumori commented 2 years ago

パイプライン

j-tokumori commented 2 years ago

アジャイル

CI/CD

DevOps

j-tokumori commented 2 years ago

支払い確認

j-tokumori commented 2 years ago

デリバリパイプライン

開発

テスト

ビルド

デプロイ

j-tokumori commented 2 years ago

継続的インテグレーション

継続的インテグレーション (CI) とは、開発者が定期的にコードに対する変更をセントラルリポ ジトリにマージし、その後自動化されたビルドとテストが実行されるソフトウェア開発手法で す。CI は、ほとんどの場合ソフトウェアリリースプロセスのビルドまたはインテグレーションステージ を差し、自動化コンポーネント (CI やビルドサービスなど) およびカルチャー的要素 (例えば、 頻繁に統合することを学ぶこと) などを必要とします。CI の主な目標は、バグを早期に発見 して対処し、ソフトウェアの品質を向上し、新しいソフトウェアアップデートの検証とリリースにか かる時間を短縮することです。 継続的インテグレーションでは、より小さなコミットと、統合するためのより小さなコードの変更 に焦点を当てます。開発者は、定期的な間隔で、少なくとも 1 日に 1 回コードをコミットしま す。開発者は、コードリポジトリからコードをプルし、ビルドサーバーにプッシュする前に、ローカ ルホスト上でコードがマージできることを確認します。このステージでは、ビルドサーバーで様々 なテストを実行し、コードのコミットを許可または拒否します。 CI を実装する際の基本的な課題には、共通のコードベースへのより頻繁なコミット、単一の ソースコードリポジトリの維持、ビルドの自動化、テストの自動化などがあります。さらに、本番 環境に類似した環境でのテスト、チームへのプロセスの可視性の提供、開発者がアプリケー ションのすべてのバージョンを容易に取得できるようにすることなどの課題があります。

継続的デリバリーおよびデプロイ

継続的デリバリー (CD) とは、コードの変更によって自動的なビルド、テスト、本番環境へのリ リースの準備を実施するソフトウェア開発のプラクティスです。ビルドステージが完了した後でテ スト環境または本番環境、あるいはその両方にすべてのコード変更をデプロイすることで、継 続的インテグレーションを拡張します。継続的デリバリーは、ワークフロープロセスを使用して完 全に自動化するか、重要なポイントで手動ステップを使用して部分的に自動化することがで きます。継続的デリバリーが適切に実装されている場合、開発者は、標準化されたテストプ ロセスをパスしたデプロイ可能なビルドアーティファクトを常に手元に持つことになります。 継続的デプロイを使用すると、開発者からの明示的な承認なしでリビジョンが本番環境にデ プロイされ、ソフトウェアリリースプロセス全体が自動化されます。これにより、製品ライフサイク ルの早い段階で継続的なフィードバックループを実現することができます。 継続的デリバリーは継続的デプロイとは異なる 継続的デリバリーに関する誤解の 1 つとして、コミットされたすべての変更が自動テストをパス した直後に本番環境に適用されるということがあります。しかし、継続的デリバリーの主眼は、 すべての変更を即座に本番環境に適用することではなく、すべての変更を本番環境に適用 する準備が整った状態にすることです。 本番環境に変更をデプロイする前に、本番デプロイを承認し、監査することを保証する意思 決定プロセスを実装します。この決定は人が行い、その後ツールを使用して実行することがで きます。 継続的デリバリーを使用することで、稼働の決定はビジネス上の決定となり、技術的な決定 ではなくなります。技術的な検証はコミットごとに行われます。 本番環境への変更のロールアウトは、破壊的なイベントではありません。デプロイは、技術チ ームに次の変更セットに対する作業の中断を要求することはなく、プロジェクト計画、引き渡 しドキュメント、またはメンテナンスウィンドウも必要としません。デプロイは、テスト環境で複数 回実行されることで検証された反復可能なプロセスになります。

参考