本文介绍了VSTS +章鱼部署?为什么我同时看到很多CI/CD设置?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是一名向Devops过渡的开发人员.通过观察,我注意到许多开发人员商店已经开始使用Octopus Deploy和Azure Devops Services(AzDo,以前称为VSTS),或者他们正在启动新项目来设置devops ci/cd管道,并且他们指定使用这两种工具.

I'm a developer whose transitioning into Devops. By observation, I've noticed that a lot of dev shops have started using Octopus Deploy and Azure Devops Services (AzDo, formerly VSTS), or they are starting new projects to setup devops ci/cd pipelines AND they spec to use both tools.

我已经对这两种工具进行了快速培训,尽管它们并不完全相同,但是AzDo似乎提供了与Octopus Deploy相同的所有功能.

I've been through some quick training for both tools and though they aren't perfectly the same, AzDo seems to offer all of the same features as Octopus Deploy.

所以,我的问题是,如果公司已经使用AzDo进行大部分版本控制,或者与CI/CD管道相关的任何事情,为什么要使用Octopus?使用章鱼构建并部署到AzDo有什么好处?

So, my question is if a company is already using AzDo for much of their version control, or anything CI/CD pipeline-related, why would you use Octopus? What benefit does it offer to use Octopus for your build and deploys to AzDo?

注意,我对Devops非常陌生.我只是问,因为在"10,000英尺视角"下,如果您已经在使用AzDo,似乎没有任何理由使用八达通.我之所以提到Octopus Deploy是因为它经常出现.但是,我认为可能还有其他工具可以达到与AzDo集成的相同的自动构建和部署目的.但是,AzDo提供内置构建和部署功能.为什么要分开工作?

Note, I am very, very new to Devops. I'm just asking because at the "10,000 feet view" there doesn't seem to be any reason for Octopus if you're already using AzDo. I mention Octopus Deploy by name because I see it come up frequently. However, I assume there could be other tools that serve the same purpose of automatic build and deploying that might also integrate with AzDo. However, AzDo offers build and deploy built in one. Why split out the work?

推荐答案

让我开始为什么我喜欢同时使用VSTS进行构建和部署:

Let me preface why I like to both build and deploy with VSTS:

  • 相同的许可端到端
  • 从端到端构建和部署的视线

与VSTS版本相比,我更喜欢Octopus Deploy:

Reasons I favor Octopus Deploy over VSTS Release:

  • 能够上传软件包/工件
    • 可能是一个软件包的外部软件包,可以针对特定版本进行部署
    • 创建要部署到的目标或服务器时,可以将目标添加到一个或多个环境中,并为目标分配标签/角色.这是什么意思?可以使用更灵活的服务器定义,而不是将严格的代理定义为池或将服务器定义为部署组,而可以允许目标跨越多个对象(即:一个跨越您的Dev和Test环境并且仅在针对以下条件定义的步骤上触发的测试服务器)该角色).我意识到您可以在VSTS中完成与此类似的操作,但我认为这要麻烦得多.
    • 可以在全局级别对变量进行分组,并可以通过特定的管道/流程(该部分与VSTS相似)进行分组.变量也可以按环境或角色(在上方)分组或 ,因此您可以为每个环境的每个角色使用不同的变量值.既超级颗粒又灵活.如果您有一个带有连接字符串的后端服务器,并且可能有2个内容传递节点(角色-内容传递),它们的值与后端的不同略有不同,则此方法很方便服务器.目前,我不知道(除了创建新的环境之外)在VSTS中如何实现相同的目的.
    • Variables can be grouped at a global level and grouped by a specific pipeline/process (that part is similar to VSTS). Variables can also be grouped or scoped by environments or roles (above) so you are able to have different variable values per role per environment; both super granular and flexible. Places this comes in handy is if you have a backend server with a connection string and maybe 2 content delivery nodes (role - content delivery) that get slightly different values than the backend server. At the moment, I do not know (other than creating new environments) how one would accomplish the same in VSTS.
    • 上述所有内容都包含在Octopus Deploy的流程定义中.超级灵活,精细的变量和目标定义使您可以专注于 actual 部署过程,而不必迷惑于UI的细微差别及其局限性.一个示例是定义一个过程,第一步是从中央服务器从负载均衡器中取出某些东西,第二步将代码部署到交付服务器一,第三步放回lb,第4步从lb取出节点2,称为从中央服务器开始,第5步将代码部署到节点2,最后一步,将其部署到负载均衡器中.我意识到这是一个非常简单的假设,但是在Octopus Deploy中,这是一个经过过滤以执行特定角色的稳定过程,在VSTS中,您必须将其分解为不同的代理阶段和可能的管道.
    • All of the above comes together in the process definition of Octopus Deploy. The super flexible and granular variables and target definition allows you to focus on the actual deployment process rather than getting hung up on the nuances of the UI and its limitations. One example would be defining a process where the first step would be taking something out of a load balancer from a central server, step two deploy code to delivery server one, step three put back in lb, step 4 take out node two from lb called from a central server, step 5 deploy code to node two, and last step, back into load balancer. I realize it's a very simple hypothetical, but within Octopus Deploy, it's one steady process filtered to execute on specific roles, within VSTS you would have to break that down into different agent phases and probably pipelines.

    以上是我在VSTS Release上使用Octopus Deploy的最大重点.现在,为什么有人要使用VSTS进行构建并使用OD进行发布/部署?涉及到许多不同的因素,其中一些是企业驱动程序,例如具有通过MSDN处理权限的企业git客户端.有时,这是项目管理的驱动力,它使工作项紧密地捆绑在一起以进行提交和构建,但是OD带来了额外的灵活性,从而使免费/最低成本成为可能.

    Above are really the biggest points I see to use Octopus Deploy over VSTS Release. Now why would someone use VSTS to build and OD to release/deploy? There are a lot of different factors that go into it, some are corporate drivers like having an enterprise git client that has permissions handled thru MSDN. Sometimes it's a project management driver of having work items tied tightly to commit and builds, but with the added flexibility that OD brings to the table for free/minimal cost.

    希望这可以帮助我们了解为什么有些人越过溪流并同时使用VSTS和OD.

    Hoping this help shine a little light into maybe why some people are crossing streams and using both VSTS and OD.

    这篇关于VSTS +章鱼部署?为什么我同时看到很多CI/CD设置?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-03 02:48