継続的インテグレーションは、継続的な配信/展開とどのように関係していますか?


20

これは、現在の内容からの引用です:

...統合の問題を防止または最小化するために、開発者の作業コードのコピーを共有コードベースに頻繁にマージするプロセス。

わかった。しかし、その後、あり、それは私が継続的に少し迷子になるところです:

  • どのように継続的な統合はに関連し、連続配信および/または連続展開を経由して行(複数可)に沿ってどこかにいることを想定して、integrationあなたは結局deliveringすべてが可能になるターゲット環境でdeployed
  • 継続的デリバリー継続的デプロイメントの違いは何ですか?

昔、DevOpsがDevOpsと呼ばれる前に、次のような新しいDevOps用語を理解するのに役立つ用語を使用していました。

  • pre-prodターゲットに昇格(または降格)し、必要に応じて何らかのタイプの再生成プロセス(コンパイル、バインドなど)と組み合わせて、関連するすべてのコンポーネントを実行可能ファイルにまとめます。それは、継続的インテグレーションに似ている/近いはずなのか、そうでないのか?
  • FTPのようなものを使用してターゲット環境に配布します(標準のコピーがギャップを埋めることができない場合)が、ターゲットでまだアクティブにしないでください。それが連続配信に似ている/近いはずなのか、そうでないのか?
  • インストール(またはアクティベートそれは近い/類似していなければならないものだなど、)一部のターゲット環境では、バインド、停止/起動操作のようなものと組み合わせて連続展開、かどうか?

タグのマークダウンが多すぎると読みにくくなります。それは質問にそれ以上の文脈をもたらさないので、私はオードが読書を容易にするために下線 によって強調されることができると思います_markdown_
-Tensibai

1
I平均の編集は、回答のために痛み:)ヒントですblog.crisp.se/wp-content/uploads/2013/02/...
Tensibai


回答:


23

継続的デリバリと継続的デプロイメントはどちらも、プロセスに「プロダクションへのデプロイメント」ステップを追加することにより、さらに一歩進んだ継続的統合を行います。継続的な配信と展開の違いは、配信の場合、この手順は手動で行われ、展開の場合は自動で行われることです。

継続的インテグレーション、継続的デリバリー、継続的デプロイの違い

継続的インテグレーション、継続的デリバリー、継続的デプロイの違い。codeproject.comからコピーした画像

継続的な配信を行うか、継続的な展開を行うかは、実装の選択です。継続的な展開を行う場合、受け入れテストに合格すると、コードの変更が自動的に展開されます。これは、製品にとって望ましい場合と望ましくない場合があります。継続的デリバリーを使用すると、特定のコード変更がデプロイされるかどうか(および場合によっては正確にデプロイされる場所)を選択できます。

継続的な配信と展開の違いはわずかであり、多くの人は正確な違いに気付いていないため、2つの用語は時々交換可能に使用されます。


いいね!しかし...問題の解決(あなたの答え)(私の質問)、問題を変更するには... 続きを読む ...
Pierre.Vriens

4

継続的デリバリーと継続的展開(CD)は、ほぼ同じものです*。変更が「実行可能」(テスト/検証済み)と見なされるたびに、すぐにリリースする必要があります。これは、完了した作業がある限り、1日に何度でも実行できます。

継続的インテグレーション(CI)は、コードを頻繁にマージして、機能ブランチがメインの「マスター」ブランチから離れすぎないようにすることと、コードの問題があればすぐにわかるようにすることを指します。統合の観点-つまり、何かを変更しているときに機能を壊しましたか。

それらが相互にどのように関係するかについては、CIはコードを迅速にリリースできるように(CD)コードを検証するのに非常に役立ちます。それでもCIなしでCDを実現できます(逆も同様です)が、多くの場合、コードを早期に統合し、多くの場合、問題をより迅速に発見することがはるかに簡単になり、その結果、上記の問題をより迅速に修正でき、機能を迅速に提供します!

*編集:ここに違いを説明する記事があります。https://puppet.com/blog/continuous-delivery-vs-continuous-deployment-what-s-diff 継続的配信は、常に実際に運用環境に展開することを必ずしも意味するものではなく、運用環境のような環境への継続的な展開を意味します、ビジネスの準備が整うと、これらの変更がいつでも本番に移行できると確信しています。実際には、ほとんどの人がこれらの用語を混同しています。


メルシ!しかし、あなたの「多かれ少なかれ同じこと」によると、本当に?ニュアンスを説明する何かを考えることができますか?
Pierre.Vriens

違いについてのメモで投稿を更新しましたが、通常の会話ではほとんどの人がこれらの用語を同じ意味で使用していると思います。
-tayworm

2

ソフトウェア製品の特定のバージョンは、配信または展開する前に、まず統合段階を完了する必要があります。

以下のために連続配信/展開の連続統合は必須です。それ以外の場合、統合完了イベントが「連続」属性の資格を得るには距離が離れすぎている場合、可能な配信/展開も同様です(通常、統合バージョンのサブセットのみが配信/展開の対象となります)。

更新:私の答えは、CIと(両方の)CD間の依存関係(関係)だけを強調しています。用語はTHelperの答えでかなりよくカバーされています。

それに対して私がしなければならない唯一のコメントは、の(オーバーロードされた)使用に関するものdeploymentです。非実稼働環境での展開は現実のものです。それらは、十分な頻度で発生することもあります-たとえば、継続的な配信中のさまざまなテスト段階の一部として行われます。しかし、それはそのような展開を行いませんcontinuous deployments。継続的デプロイメントとは、特に本番環境でのデプロイメントを指します。


わかりました、それはすべて役立ちますが、配信と展開をどのように説明するかで答えを広げることができますか?
Pierre.Vriens

1

基本的に、継続的な統合は、リリースが自動的に行われることを除いて、継続的な配信と継続的な展開の両方の一部です。継続的デリバリは、継続的インテグレーションの論理的な次のステップと考えることもでき、すべての環境で機能します。継続的インテグレーションは、アーティファクト検証にも役立つため、より迅速に展開できます。ただし、継続的な統合なしに継続的な展開を行うことは不可能であり、継続的な統合でバグをキャッチするのは非常に簡単です。これらの「継続的なもの」はすべて、最終的には開発ワークフローで不要なアクションを削除することです。最も重要なことは、CI / CDは技術的およびビジネスの両方の観点から重要です。これらのDevOpsの原則を採用しない企業は、恐竜の道を行く危険を冒します。今日のペースの速いIT環境では、次のいずれかです。DevOpsまたはダイ。

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