継続的インテグレーションと継続的デリバリーと継続的展開


366

これら3つの用語の違いは何ですか?私の大学では、次の定義を提供しています。

継続的インテグレーションとは、基本的には、開発者の作業コピーが1日に数回共有メインラインと同期されることを意味します。

継続的デリバリーは、継続的インテグレーションの論理的進化として説明されています。製品を常に生産に投入できるようにしてください!

継続的デプロイメントは、継続的デリバリー後の論理的な次のステップとして説明されています。製品がQAに合格すると、製品が自動的に本番環境にデプロイされます。

また、警告も表示されます。テストシステムに継続的に展開できる場合は、「継続的展開」という用語が使用されることもあります。

これらすべては私を混乱させます。もう少し詳細な(または例が付いている)説明は高く評価されます!


1
ビジネス上の理由から、一部のビジネスドメインでは、企業が継続的な展開モデルを採用できない場合があると思います。そのように、それは「論理的な次のステップ」ではありません。
ジョーダンスチュワート

2
@lambdarookie-最高の説明!!! 短くて要点:)
AlikElzin-kilaka


回答:


353

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

私はあなたの大学の定義に同意します。継続的インテグレーションは、開発者がコードをメインラインに継続的に統合する方法です。頻繁ではありません。

これはバージョン管理システムの分岐戦略に過ぎないと主張するかもしれません。

開発者に割り当てるタスクのサイズに関係しています。タスクに4〜5人日かかると見積もられた場合、開発者はまだ何もしていないため、次の4〜5日間は何も提供する意欲がありません。

したがって、サイズが重要です:

small task = continuous integration
big task   = frequent integration

理想的なタスクサイズは、1日の作業よりも大きくありません。このようにして、開発者は当然、1日あたり少なくとも1つの統合を行います。

継続的デリバリー

継続的デリバリーには基本的に3つの学校があります。

継続的デリバリーは継続的統合の自然な拡張です

この学校では、Addison-Wesleyの「Martin Fowler」シグネチャーシリーズを調べ、2007年のリリースは「継続的インテグレーション」と呼ばれ、2011年以降は「継続的デリバリー」と呼ばれていたため、おそらくボリューム1 + 2であると想定しています。継続的な何かに関係しているのと同じ概念的なアイデアの。

継続的デリバリーはアジャイルソフトウェア開発と関係があります

この学校は、継続的デリバリーとはアジャイルムーブメントの原則をサポートすることであり、概念的なアイデア意向の手紙としてだけでなく、現実の生活においても成り立ちます。

「継続的デリバリー」という用語が実際に初めて使用されるアジャイル宣言の最初の原則でオフセットを取る:

私たちの最優先事項は、貴重なソフトウェアの早期かつ継続的な提供を通じて顧客を満足させることです。

この学校は、「継続的デリバリー」は「完了の定義」の自動検証を実装するために必要なすべてを包含するパラダイムであると主張しています。

この学校は、「継続的デリバリー」と流行語またはメガトレンド「DevOps」は、技術だけでなく、この新しいパラダイムまたはアプローチを採用またはカプセル化しようとするという意味で、同じコインの裏返しであることを受け入れます。

継続的デリバリーは継続的デプロイメントの同義語です

3番目の学校は、継続的導入継続的デリバリーを同じ意味で使用することができることを主張しています。

何かが開発者の手に届くと、すぐにエンドユーザーに配信されます。これは、ほとんどの場合、本番環境に展開する必要があることを意味します。したがって、「デプロイ」と「配信」は同じ意味です。

参加する学校

あなたの大学は明らかに最初の学校に参加しており、同じ出版物シリーズのボリューム1 + 2を指していると主張しています。私の意見では、これは継続的デリバリーという用語の誤用です。

私は個人的に、継続的デリバリーはアジャイル運動によって述べられたアイデアと概念に対する実際のサポートの実装に関連しているという理解を主張しています。それで、私はこの用語が「DevOps」のようなパラダイム全体を包含すると言う学校に参加しました。

展開の同義語として配信を使用する学校は、展開コンソールを作成するツールベンダーが主に提唱しており、継続的配信という用語のより広範な使用から少し誇大宣伝を得ようとしています。

継続的な展開

継続的な展開への焦点は、ソフトウェア更新へのエンドユーザーのアクセスがこの情報の一部の集中ソースの更新に依存し、この集中ソースがモノリシックであるか、または(あまりに)一貫性が高いため、常に更新が容易ではないドメインに関連します。本質的に(ウェブ、SOA、データベースなど)。

一元化された情報ソース(デバイス、コンシューマー製品、クライアントインストールなど)がない、または情報の一元化されたソースを簡単に更新できる(アプリストアアーティファクト管理システム、オープンソースリポジトリなど)ソフトウェアを生成する多くのドメイン向け。 )、継続的展開という言葉については誇大宣伝はほとんどありません。彼らはただ展開します。それは大きなことではありません-それは特別な焦点を必要とする痛みではありません。

継続的な展開が一般的に誰にとっても興味深いものではないという事実は、「配信」と「展開」は同義語であると主張する学校がすべて間違っているとする議論でもあります。継続的デリバリーは、デバイスに埋め込まれたソフトウェアを実行している場合や、フレームワーク用のオープンソースプラグインをリリースしている場合でも、実際には誰にとっても完全に理にかなっているためです。

継続的導入が継続的デリバリーの自然な次のステップであるというあなたの大学の定義は、QAされたすべてのデリバリーがエンドユーザーにすぐに利用可能になるはずであることを暗黙的に想定しており、部族が「継続的リリース」は、一般的に誰にとっても意味のないもう1つの概念です。

リリースは非常に戦略的または政治的なものになる可能性があり、誰もが常にこれをしたいと思う理由はありません(彼らがオンライン書店であり、ストリーミングサービスの会社である場合を除きます)。それにもかかわらず、常にすべてを盲目的にリリースしない企業は、とにかくデプロイメントのマスターになりたいと思う理由がいくつもある可能性があるため、継続的デプロイメントも行います。実稼働へのリリースではなく、実稼働のような環境へのリリース候補です。

もう一度私はあなたの大学がそれを間違っていると思います。彼らは「継続的デプロイメント」を「継続的リリース」と間違えています。

継続的な展開とは、機能テストをフルスケールで実行できる本番環境のような環境に開発プロセスの結果を継続的に移行できるようにするための規律です。

継続的デリバリーのストーリー

写真ではそれがすべて生きています:

ここに画像の説明を入力してください

継続的統合プロセスは、状態遷移図の最初の2つのアクションです。成功すると、done定義を実装する継続的デリバリーパイプラインが開始さます。デプロイは、このパイプラインで継続的に実行する必要がある多くのアクションの1つにすぎません。理想的には、開発者がVCSにコミットした時点から、有効なリリース候補があることをパイプラインが確認した時点まで、プロセスは自動化されています。


3
誰かがソフトウェアテストについて真に理解している場合、継続的インテグレーション/デリバリー/デプロイメント/リリース間のすべての「仮想」の違いはもはや意味がありません。
CuongHuyTo 2016

6
画像が壊れています。他にありますか?
ウェストン

、これは行方不明画像?同じファイル名で別の場所で見つけました。
c24w

4
「あなたの大学の定義に同意します」で始まり、「あなたの大学は間違っていると私は信じている」と言ってこの回答に多くの人々が投票した理由がわかりません。私はこの答えを見つけましたが、長くて複雑で、混乱し、過度に分析しています。以下のスレッドで、Amazonの定義とNoIceの発言を調べてください。また、「理想的には」のような用語でパラダイムや戦略を定義するのをやめてください。「理想的には、各開発タスクは1日の長さである必要があります。実生活で機能する戦略とパラダイムを定義しましょう。
Ovi 2017年

3
@ Ovi-WanKenobi彼が継続的統合の定義について話している大学に同意していると言う部分と、大学が継続的導入について言っているのが間違っていると彼が言っている部分は、一方が他方を無効にするわけではなく、相互に排他的ではありません。また、Nolceの回答は非常に混乱します。回答の形式は、良い情報が含まれていても、人々がそれを読むのに魅力的ではありません(回答を読む前に、その形式で回答を判断することがよくあります)。
Alisson 2018年

84

質問も回答も、私の単純な考え方には合いません。私はコンサルタントであり、これらの定義を多くのDevチームやDevOpsの人々と同期させていますが、業界全体とどのように一致するのか知りたいです。

基本的に、私は連続体のような継続的デリバリーのアジャイルな実践について考えます:

継続的ではない(すべて手動)0%----> 100%価値の継続的提供(すべて自動化)

継続的デリバリーへのステップ:

ゼロ。開発者がコードをチェックインするときに何も自動化されません...彼らがチェックイン前にコンパイル、実行、またはテストを実行した場合、幸運です。

  1. 継続的ビルド:すべてのチェックインでの自動ビルド。これは最初のステップですが、新しいコードの機能的な統合を証明するものではありません。

  2. 継続的インテグレーション(CI):新しいコードと既存のコードの統合を証明するための少なくとも単体テストの自動ビルドおよび実行、ただしできれば統合テスト(エンドツーエンド)。

  3. 継続的デプロイメント(CD):コードが少なくともテスト環境にCIを渡すときの自動デプロイメント。できれば、CIを介して、または手動テストの後に低環境を合格としてマークすることによって品質が証明された高環境に。IEでは、テストが手動で行われる場合がありますが、次の環境への昇格は自動です。

  4. 継続的デリバリー:自動化されたシステムの公開とシステムへのリリース。これは、製品化されたCDに加えて、A / Bテストのセットアップ、ユーザーへの新機能の通知、新しいバージョンのサポートの通知、変更ノートなど、その他の構成変更です。

編集:私は、アジャイルマニフェストの最初の原則(http://agilemanifesto.org/principles.html)で言及されている「継続的デリバリー」の概念と継続的デリバリーの実践との間に違いがあることを指摘したいと思います。質問の文脈から参照されているようです。継続的デリバリーの原則は、リーンの考え方(http://www.miconleansixsigma.com/8-wastes.html)で説明されているように、在庫の無駄を減らす努力です。アジャイルチームによる継続的デリバリー(CD)の実践は、アジャイルマニフェストが2001年に作成されてから長年に渡って出現しました。このアジャイルプラクティスは、原則に直接対応しますが、それらは異なるものであり、明らかに混乱します。


5
優れたコンサルタント回答。私はあなたと同じ船に乗っていますが、もっと現実的な答えがあるはずです。典型的なカレッジや企業のウィッシュリストの答えではありません。
Suamere 2017年

62

アマゾンの定義はストレートで理解しやすいと思います。

継続的デリバリーは、リリースプロセスが自動化されるソフトウェア開発方法です。すべてのソフトウェアの変更は自動的に構築、テストされ、本番環境にデプロイされます。本番環境への最終的なプッシュの前に、人、自動テスト、またはビジネスルールがいつ成功したソフトウェアの変更はすべて、継続的なデリバリーにより本番環境にすぐにリリースできますが、すべての変更をすぐにリリースする必要はありません。

継続的インテグレーションは、チームメンバーがバージョン管理システムを使用して、マスターブランチなどの同じ場所に頻繁に作業を統合するソフトウェア開発のプラクティスです。各変更は、統合エラーを可能な限り迅速に検出するために、テストおよびその他の検証によって構築および検証されます。継続的インテグレーションは、ソフトウェアのリリースプロセス全体を本番まで自動化する継続的デリバリーと比較して、コードの自動構築とテストに重点を置いています。」

http://docs.aws.amazon.com/codepipeline/latest/userguide/concepts.htmlを確認してください。


3
この答えはこの質問の正解として受け入れられるべきだと思います!
V. Kovpak 2017

1
うん、この答えは理解するのが最も簡単です。
アマングプタ-ShOoTeR 2017年

46

Atlassianは、継続的インテグレーションと継続的デリバリーと継続的展開についての良い説明を投稿しました。

ci-vs-ci-vs-cd

手短に:

継続的インテグレーション -新しいコミットがブランチにプッシュされるたびにアプリケーションを構築およびテストするための自動化です。

継続的デリバリー - 「ボタンをクリックする」ことで継続的インテグレーション +アプリケーションを本番環境にデプロイします(顧客へのリリースは多くの場合、オンデマンドです)。

継続的デプロイメント - 継続的デリバリーですが、人間の介入はありません(顧客へのリリースは進行中です)。


35

継続的インテグレーションとは、基本的には、開発者の作業コピーが共有メインラインと1日に数回同期されることを意味します。

または1日に数回以上。与えられた個別のタスクが完了するのと同じくらい頻繁に、基本的に。たとえば、単一のビジネスアプリケーションに取り組んでいる開発者のチームを考えてみましょう。多くの環境では、次のことが発生する可能性があります。

  • 「まだ準備ができていない」ため、1〜2人の開発者がローカルでの変更を数日間保持します。
  • 1人または2人の開発者がソース管理にブランチを作成して、「他の人の変更に煩わされることなく」機能を開発できるようにします。

これらは問題を引き起こす可能性があります。不十分なコード/タスク構成は分岐につながり、分岐はマージにつながり、マージ...苦しみにつながります。実践としての継続的インテグレーションは、全員に同じ共有ソースから作業することを奨励することによってこれに対処します。個々の作業項目は、短時間(最大で数時間)で完了するのに十分なほど離れている必要があります。

基本的に、一般的な考え方は、小さな変更を少量の作業に統合することです。大きな変更を統合することは、不釣り合いに大量の作業です。一定の小さなステップで行うと、統合作業の総計は小さくなります。これにより、開発者は、開発プロセスのオーバーヘッドではなく、ビジネスに表示される機能の開発により多くの時間を費やすことができます。

継続的デリバリーは、継続的インテグレーションの論理的進化として説明されています。製品を常に生産に投入できるようにしてください!

これは、個別の明確に定義された作業項目と同じ考え方に従います。完全な、テスト済みの既知の動作する機能によって少しずつしか調整されない単一のマスターコードベースがある場合、そのコードベースは常に安定しています。自動テストは、ボタンを押すだけでその安定性を証明できるようにするための鍵となります。

実行する必要がある安定化作業が少ないほど(これも開発プロセスのオーバーヘッドであり、削除する必要があります)、コードベースを特定の環境にプッシュできる頻度が高くなります。多くの企業では、展開は非常に困難なプロセスになる可能性があります。1週間のオールハンズオンデッキ操作でも。これは高価であり、ビジネス価値を生み出しません。適切なワークアイテム定義、効果的な自動テスト、継続的な統合を採用することで、チームは、特定の環境へのコードベースの配信を自動化することができます。

継続的導入は、継続的デリバリー後の論理的な次のステップとして説明されています。製品がQAに合格すると、製品が自動的に本番環境に導入されます。

これがビジネス環境で発生することはめったにありませんが、遭遇したときは非常に喜びです。コードベースを自動的にテストし、任意の環境に自動的にデプロイできる場合、実稼働環境は他の環境と同じです。したがって、チームがこの時点までに構築していれば、常に更新を運用環境に展開できるため、ビジネスに大きな価値をもたらす可能性があります。

不具合の修正はお客様に迅速に送信され、新機能はより早く市場に届きます。新しいアイデアは、優先度のリダイレクトなどを可能にするために、小さな増分で市場に対してテストされます。

たとえば、企業がソフトウェアベースの製品またはサービスの新機能について大きなアイデアを持っているとしましょう。彼らはいくつかの調査を行い、市場を知っており、彼らはこのアイデアが強力な新しい収益ラインをもたらすと信じています。次に、その機能を提供するための2つのオプションを検討します。

  1. 何ヶ月もかけて、すべてを1回限りのブランチで開発します。それをメインのコードベースに統合するのに数週間かかります。テストに何日も費やす。それを展開する1日を過ごします。そして、唯一その後、生産システムにおける実際の収益の追跡を開始。
  2. 機能の小さな部分を1つずつ実装します。毎週、その新しい部分をリリースします。毎週、実際の収益に関するより多くのデータを取得します。

最初のシナリオでは、機能が望ましい市場効果をもたらさない場合、顧客が実際には望まないものに多くのお金が浪費されます。2番目のシナリオでは、顧客がそれを望まないという事実ははるかに早期に決定され、残りの作業は優先順位が解除されます。


結局のところ、これらの「継続的なもの」はすべて、開発プロセスのオーバーヘッドを取り除くことに関するものです。会社の収益ラインが特定のサービス提供である場合、理想的には、すべてのコストがその提供に費やされる必要があります。開発プロセスのオーバーヘッド(コードのマージ、マージ後の同じ機能の再テスト、手動のデプロイメントタスクなど)は実際にはサービスの価値に貢献しないため、これらの概念はこれらのコストをプロセスから取り除くことを目的としています。


2
この答えは、12人程度の開発者がいて、アジャイルスタンドアップが適切に実装されており、ジョブが時間単位の作業のチャンクで渡される場合に適用されます。そうは言っても、仕事が常に大きくなるとは限らない環境で働いていなくて、定義を理想的なものにし、実際に達成したことはありません。スタンドアップで、委任されたタスクに割り当てられた予想時間は不当に短いという不満を言わずに、アジャイルチームが実際にこの段階に到達したかどうかを本当に知りたいです。
MagicLAMP

22

1つのグラフで多くの単語を置き換えることができます。

ここに画像の説明を入力してください

楽しい!:-)

正しい画像を更新しました...


5
写真は少し間違っています...継続的デリバリーは手動で生産を開始するものです。継続的デプロイメントは、本番
環境

1
@amiroucheはい、私はしました:)
simhumileco '15 / 07/15

2
わかりました、私は絵を間違って読んでいました。実際、継続的デリバリーと継続的展開の違いは、矢印の色だけです... IMO継続的デリバリーで実動円が長方形の外にあった場合、両方の違いがより明白になります。
amirouche 2017

1
これらの画像の受け入れテストと統合テストの違いは何ですか?
ジョナ


4

私たちは分析しすぎていると思いますし、多分「連続的な」一連の単語を複雑にしています。このコンテキストでは、継続とは自動化を意味します。「継続的」に付随する他の単語については、英語を翻訳ガイドとして使用してください。複雑にしないでください!「継続的ビルド」では、特定のプラットフォーム/コンテナ/ランタイム/ etcで実行可能なものにアプリケーションを自動的にビルド(書き込み/コンパイル/リンク/ etc)します。「継続的インテグレーション」とは、新しい機能が別のエンティティとのやり取り時に意図したとおりにテストおよび実行されることを意味します。明らかに、統合が行われる前に、ビルドが行われる必要があり、完全なテストも統合の検証に使用されます。したがって、「継続的統合」では 1つは、自動化を使用して既存の機能のバケットに値を追加し、既存の機能に悪影響を与えずにうまく統合して、全体に知覚される値を追加します。統合は、単なる英語の定義によって、物事が調和して機能することを意味するので、コードトークでは、コンパイル、リンク、テストを追加し、全体で完全に実行します。最終製品に失敗した場合、統合されたものを呼び出さないでしょう。私たちのコンテキストでは、「継続的デプロイメント」は「継続的デリバリー」と同義です。というのも、1日の終わりに私たちはお客様に機能を提供してきたからです。ただし、これを過度に分析することにより、何かをデプロイしても必ずしも配信されたとは限らないため、デプロイは配信のサブセットであると主張できます。コードをデプロイしましたが、利害関係者に効果的に伝えられなかったため、ビジネスの観点から提供できませんでした。部隊を配備しましたが、約束された水と食料を近くの町に届けていません。「継続的移行」という用語を追加するとどうなりますか?結局のところ、環境からのコードの移動を説明する方が適しているのかもしれません。なぜなら、展開や配信よりも「from / to」の意味合いが長く、1つの場所だけを意味する可能性があるためです。これは、常識を適用しない場合に得られるものです。それには独自のメリットがありますか?結局のところ、環境からのコードの移動を説明する方が適しているのかもしれません。なぜなら、展開や配信よりも「from / to」の意味合いが長く、1つの場所だけを意味する可能性があるためです。これは、常識を適用しない場合に得られるものです。それには独自のメリットがありますか?結局のところ、環境からのコードの移動を説明する方が適しているのかもしれません。なぜなら、展開や配信よりも「from / to」の意味合いが長く、1つの場所だけを意味する可能性があるためです。これは、常識を適用しない場合に得られるものです。

結論として、これは説明するのが簡単なものです(行うと、少し複雑になります)。常識に従ってください。英語を使用すれば、大丈夫です。


3
回答方法をご覧ください。
xenteros 2016年

3

継続的インテグレーション:開発作業をメインブランチと常にマージすることで、コードをできるだけ頻繁にテストして問題を早期に発見できるようにします。

継続的デリバリー:コードの出荷準備が整ったら、環境へのコードの継続的デリバリー。これは、ステージングまたは実稼働である可能性があります。アイデアは、製品がユーザーベースに配信されることです。ユーザーベースは、QAまたは顧客であり、レビューと検査を受けることができます。

継続的インテグレーションフェーズ中の単体テストでは、すべてのバグとビジネスロジック、特にテストのQAまたはステージング環境が必要な設計上の問題を把握することはできません。

継続的デプロイメント:準備ができ次第、コードのデプロイメントまたはリリース。継続的デプロイメントには継続的インテグレーションと継続的デリバリーが必要です。それ以外の場合、コード品質はリリースで保証されません。

継続的展開~~継続的インテグレーション+継続的デリバリー


2

CI / CDダイアグラム

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

  • 自動化(チェックインのビルド+単体テスト)

継続的デリバリー

  • 継続的インテグレーション
  • 自動化(テスト環境への展開+負荷テスト+統合テスト)
  • マニュアル(本番への展開)

継続的な展開

  • 継続的デリバリーだが自動化(本番へのデプロイメント)

CI / CDは旅です。目的地ではありません。

これらの段階は提案です。ビジネスニーズに基づいてステージを調整できます。一部のステージは、複数のタイプのテスト、セキュリティ、およびパフォーマンスについて繰り返すことができます。プロジェクトの複雑さとチームの構造に応じて、いくつかの段階は異なるレベルで数回繰り返すことができます。たとえば、あるチームの最終製品が次のチームのプロジェクトの依存関係になる可能性があります。つまり、最初のチームの最終製品は、次のチームのプロジェクトでアーティファクトとしてステージングされます。

脚注:

AWSで継続的インテグレーションと継続的デリバリーを実践する


2

出典:https//thenucleargeeks.com/2020/01/21/continuous-integration-vs-continuous-delivery-vs-continuous-deployment/

継続的インテグレーションとは継続 的インテグレーションは、自動ビルドと自動テストのプロセスまたは開発プラクティスです。つまり、開発者は、各ビルドが自動ビルドとテストによって検証される共有リポジトリにコードを複数回コミットする必要があります。

ビルドが失敗または成功した場合、開発者に通知され、関連するアクションを実行できます。

継続的デリバリーとは継続 的デリバリーとは、すべてのテストに合格し、コードを本番環境にプッシュするために必要なすべての構成を備えているが、まだデプロイされていない任意の時点でコードをデプロイ可能な状態に保つことです。

継続的デプロイメントとは CIの助けを借りて、アプリケーションのビルドを作成し、本番環境にプッシュする準備が整いました。このステップでビルドの準備が整い、CDを使用してアプリケーションを直接QA環境にデプロイできます。すべてがうまくいけば、同じビルドを本番環境にデプロイできます。

したがって、基本的に、継続的デプロイメントは継続的デリバリーよりも1ステップ進んでいます。この方法により、本番パイプラインのすべての段階を通過するすべての変更が顧客にリリースされます。

継続的デプロイメントは、構成管理とコンテナ化の組み合わせです。

構成管理: CMは、アプリケーションの要件と互換性のあるサーバーの構成を維持するためのものです。

コンテナ化:コンテナ化は、環境全体の一貫性を維持する一連の料金です。

Imgソース:https://www.atlassian.com/

Imgソース:https : //www.atlassian.com/


1

DevOpsは、継続的コミュニケーションコラボレーションの3Cの組み合わせであり、これがさまざまな業界での主な焦点となっています。

IoT接続デバイスの世界では、製品所有者、Web、モバイル、QAなどの複数のスクラム機能が、スクラムサイクルのスクラムで機敏に機能し、製品をエンドカスタマーに提供します。

継続的統合:複数のエンドポイントで同時に動作する複数のスクラム機能

継続的デリバリー:統合およびデプロイメントにより、複数の顧客への製品のデリバリーは同時に処理されます。

継続的な展開:複数のプラットフォームで複数の顧客に複数の製品を展開します。

これを見て、DevOpsがどのようにIoT接続された世界を実現するかを確認してくださいhttps : //youtu.be/nAfZt2t4HqA


0

コース継続的デリバリーとDevOpsでアレックス・コーワンと私が学んだことから、CIとCDは、観察からリリースされた製品に至るまでの時間で構成される製品パイプラインの一部です。

Alex Cowanの製品パイプライン、2018年

観察から設計までの目標は、高品質でテスト可能なアイデアを得ることです。プロセスのこの部分は考慮されます継続的設計ます。

コードから先に進むと、アイデアを実行して顧客にすばやくリリースすることを目的とした継続的デリバリー機能と見なされます(Jez Humbleの著書「継続的デリバリー:ビルド、テストによる信頼性の高いソフトウェアリリース」を読むことができます詳細については、展開の自動化)。次のパイプラインは、継続的インテグレーション(CI)と継続的デリバリー(CD)の構成手順を説明しています。

Alex CowanのCI / CD

継続的インテグレーションMattias Petter Johanssonが説明するように

ソフトウェアチームが1日に複数のマージを行う習慣があり、それらのマージに問題がないかチェックするための自動検証システムを導入している場合です。

(CircleCI-CircleCIの使用開始-継続的インテグレーションP2およびプルリクエストでCircleCI実行して、より実用的な概要については、次の2つのビデオをご覧ください。)。

新しいコードからリリースされた製品に至る、CI / CDパイプラインを次のように指定できます。

Alex Cowanの継続的デリバリーパイプライン、2018年

最初の3つのステップはテストと関係があり、テスト対象の境界を拡張します。

継続的な展開一方、は、デプロイメントを自動的に処理することです。したがって、自動テストフェーズを通過したコードコミットはすべて自動的に本番環境にリリースされます。

:これは必ずしもパイプラインの外観とは限りませんが、参照として使用できます。


0

短くしましょう:

CI: チームのメンバーが作業を少なくとも毎日統合するソフトウェア開発の実践。各統合は、自動ビルド(テストを含む)によって検証され、エラーを可能な限り迅速に検出します。 CD: CIでのCDビルド。ソフトウェアをいつでも本番環境にリリースできるようにソフトウェアをビルドします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.