2016-01-21 7 views
5

私はこれらの用語を一緒に聞いて、違いは何ですか?それらは継続的なビルドと継続的な展開にどのように関係していますか?継続的インテグレーション、継続的デリバリと開発運用の違いは何ですか?

+0

FWIW、これは次のようになりますあなたが参加することに興味がある場合に備えて、Area51の 'DevOps' SE提案の良い候補の質問です:http://area51.stackexchange.com/proposals/85819/devops?referrer=Ourlo91--YgyR6VmaIeuwQ2 –

+0

https: //stackoverflow.com/a/40502250/3612353 –

答えて

4

Continuous integration/continuous buildsは、開発者がソースコードリポジトリにコードをコミットするのを少ししかせず(リポジトリから最新のバージョンを取得するので、それ以上の変更は他の開発者の最近の変更に基づいています)。この場合、マージが容易になるので、マージの解決に費やされる時間が短縮されます。

このプロセスは、ユニットテストを実行できるビルドサーバを使用するのが最適です。ビルド/テストの失敗の場合、開発者にフィードバックが提供されるため、問題をすばやく修正できます。

ビルドプロセスからビルドアーチファクトをテスト環境および本番環境に自動的に展開する作業が継続的に行われます。これに伴うリスクを軽減するために、人々はしばしばfeature togglesを使用して、配布を配布から(制御された方法で)分離します。

継続的な配信はテクノロジについてのことではなく、組織によるソフトウェア配信のアプローチについては(オートメーションを大いに活用していますが)、それほど多くはありません。

DevOpsは、開発者と運用チームの間の障壁を解消し、スキルを組み合わせて利益を得る方法でコラボレーションすることを重視する、はるかに広い分野です。環境プロビジョニングの自動化、展開の構築、監視(そして問題とスケーラビリティへの自動対応)、場合によってはソフトウェアで定義されたネットワークが企業内でこれから出てくるでしょう。一部の組織では、専用の開発チームが作成されています。

1

連続したxxxフレーズがどのように異なる人々によって使用されているかに多少の曖昧さがありますが、このブログ記事ではかなりうまくまとめられていると思います。

http://blog.assembla.com/assemblablog/tabid/12618/bid/92411/Continuous-Delivery-vs-Continuous-Deployment-vs-Continuous-Integration-Wait-huh.aspx

DevOpsチームが特定の練習より包括的思想の多い、アジャイルのようなビットは考えており、ユニットテストが行​​われています。

1

継続配信(CD)は、ThoughtWorksのJez HumbleとDavid Farleyが共著した2010年の書籍で最初に説明された概念です。

継続的インテグレーションと連続配信しばしばお互いに混乱してしまいますが、いくつかの重要な違いがあります。

  • CIは、CDが
  • CDはCIなしに行うことができないチームコラボレーションを必要とするものDEVによって行うことができます
  • CDは、CIが前方に継続的なフィードバック(ビルド)ループ動いCD CD付き
  • あなたは常に
  • CIができますprodにプッシュする準備ができているが、線形旅ですあなたがここに

に早くあなたの問題を検出することができますので、あなたはレポに複数回あなたのコードをチェックするMartin Fowlerから引用されています。「継続的インテグレーションは、チームの メンバーソフトウェア開発の実践

です彼らの仕事を頻繁に統合します。通常、各個人 は少なくとも1日に統合され、1日に複数の統合につながります。 各統合は、自動ビルド(テストを含む)によって確認され、 は可能な限り迅速に統合エラーを検出します。多くのチームは、このアプローチは大幅に統合の問題を軽減するためにつながり、 がより迅速に凝集ソフトウェアを開発するチームを可能 ことがわかります。」

連続配信と継続的デプロイとの主な違いは、自動化である。あなたは、展開面を自動化

DevOpsに関しては、これは他のワックスの球です。多くの場合、DevOpsは役割やツールだと思うことがよくあります。あなたはDevOpsをやっていません。Mike Kavisの言葉が私はかなり好きです:

は「DevOpsチームは、文化シフトまたはより確実に、より迅速に 、より良い品質のソフトウェアを構築育成する(チームワーク別名)偉大 コミュニケーションとコラボレーションを促す運動である。」