- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我使用 Octopus Deploy 已经有一段时间了,只是为了将 Web 应用程序部署到 AWS EC2 实例上。我知道 Octopus Deploy 是特定于 .NET 的,与 Docker 相比,学习曲线非常容易。我知道使用 Docker 的目的之一是创建容器,而不是使用管理程序运行来创建虚拟机。
但我的问题是使用 Docker 而不是 octopus deploy 的真正原因是什么?这更适合部署应用程序。他们做不同的事情吗?
最佳答案
好问题。他们做不同的事情并以不同的方式工作,但他们解决的问题有一些重叠。 Octopus 是关于交付构建的应用程序 - Docker 是关于将应用程序构建到一个独立的包中,您可以将其作为容器交付和运行。
免责声明:我是一名 Docker 队长 (Docker's community recognition program),我在 Docker 上投入了大量时间。我偏向于它,因为我认为它是一项了不起的技术 - Octopus 我们也很棒,但范围更小。如果您想更全面地了解 Docker,I talked about it recently on Channel 9 .
使用 Octopus,您可以获取已编译的 ASP.NET Web 应用程序并将其部署到您的服务器。使用 the Octopus Library您可以使用模板来设置您的应用平台作为部署的一部分、配置 IIS、运行 Windows 服务等。但是您的服务器需要已经设置的先决条件(.NET、IIS 等),它们需要安装 Octopus 代理为了能够运行部署,您需要 Octopus 服务器来协调它。
使用 Docker,您可以获取已编译的 ASP.NET Web 应用程序并将其构建到镜像中 - 这是包含整个应用程序堆栈的单个逻辑单元。该图像在一个单元中包含 IIS 和 ASP.NET、您的应用程序、应用程序的依赖项及其所有配置。您可以将镜像推送和拉取到 Docker 注册表(共享镜像存储),并在任何安装了 Docker 的 Windows 机器上运行您的应用程序。您的主机不需要安装 IIS 或 ASP.NET - 它们都在镜像中,并且您不需要额外的基础设施,Docker 只是在主机上作为 Windows 服务运行。
Docker 运行您的应用程序,以及构建和交付它们。应用程序在容器中运行,这些容器是主机上的轻量级隔离沙箱。您可以让容器运行具有不同版本的 .NET、不同版本的 IIS 甚至不同版本的 Windows 的应用程序——所有这些都在同一主机上运行而不会相互影响。
您可以将一个应用程序拆分为多个容器,它们都可以在虚拟网络中相互访问,并且您可以使用 Docker Compose 捕获复杂的分布式解决方案定义零件及其关系。您可以将多台主机聚集成一个 Docker Swarm这使您可以轻松扩展、故障转移和滚动升级。您可以使用商业 Docker Datacenter产品来管理您的所有图像、主机和容器,并安全地访问它们。
关于.net - Docker 和 Octopus Deploy 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39869607/
我们有一个项目可以使用特定 DLL 的两个不同版本。我们需要将其部署在两个不同的环境中。使用哪个版本的 DLL 应取决于环境。 一种建议的解决方案是复制整个代码库并基于这两个代码库创建 Octopus
我们正在测试 Octopus Deploy 2.0 (OD) 以部署 Web 服务、Windows 服务和 Citrix 应用程序。 快速提问:使用配置转换时,是否可以使用参数来指示应该使用哪个配置文
我看到一个范围为环境的编辑变量权限。但是,似乎谁负责设置项目,谁就会负责创建变量,而其他一些安全实体将只负责修改值,特别是安全值。这可能吗? 编辑:再补充一点,我想我是在根据项目变量集请求权限。只有拥
问题: 我有一个手动干预步骤,其中包含执行部署的人员要遵循的文本步骤。 我想传递目标服务器的名称,这样这个人就不需要查找目标服务器名称。 例如,如下所示,我需要将它们解压缩到目标服务器上的某个位置。
这是一个系统 Octopus 部署变量: #{Octopus.Action[Deploy To Server].Output.Package.InstallationDirectoryPath} 文本
我知道目前有一个 feature request对于这样的事情,但我希望使用当前版本(1.6)有某种解决方法 我们从 TFS 中的开发分支为我们的开发和测试环境构建,并从 TFS 中的发布分支为我们的
有时首选和/或需要在单个服务器上托管数十个应用程序。不是说这是“对”或“错”,我只是说它发生了。 此配置的缺点是出现错误消息Waiting for the script in task [TASK I
我们正在运行 OD 1.6。 我想使用 OD 变量来更改不在应用设置部分中的值,例如 session 状态提供程序。 我知道我可以为此使用转换,但作为一家公司,我们更喜欢使用 OD 变量而不是转换,因
我们目前正在尝试将部署新的 ASP.NET 项目与 Octopus 集成在一起,我想知道是否有人尝试过使用 Octopus 来部署经典的 ASP 站点? 我知道这是可能的,而且我知道理论上该怎么做,但
我试图在“运行脚本”步骤中为内置发行说明变量赋值。 $OctopusParameters["Octopus.Release.Notes"] = "Some release notes" 在下一步“发送
我正在使用 TeamCity 和 Octopus Deploy 来部署 Asp.Net 应用 我想显示部署应用程序时使用的版本号 在 teamcity 中,我使用 vcs 编号生成版本号 如何从 as
我想使用 Octopus Deploy 应用 web.config 转换,但仅限于生产环境。 我不想为我们所有的其他环境创建单独的配置。 目前我正在使用以下自定义表达式,但它不应用转换 最佳答案 您是
我正在使用 Octopus Deploy 根据本指南将 ASP.NET 5 网站部署到 Azure:https://gist.github.com/alfhenrik/ee08dbb1fb6e2bc7
我正在将 Web 应用程序部署到 DEV、TEST 和 PROD 环境中。 Octopus 服务器上的变量之一保存 appPool 用户和密码。 开发人员在 DEV 中编辑此值是有意义的,但他们不应该
有谁知道是否可以使用 Octopus Deploy 部署到 VPN 中的服务器? 如果触手在 VPN 中的服务器上,Octopus Deploy 有没有办法连接/断开连接到 VPN? 干杯 更新 我们
我们有 Octopus-2.0。 我们将服务凭证(它们是每台机器的)存储在 octopus 用户变量中。 我还需要在 SQL 服务器中创建这些登录名。 例如服务登录名“machine1_service
我有点失职,发现 Octopus 虽然很神奇,但在升级之前关闭你的网络应用程序并没有做任何可爱或聪明的事情。 在我们的解决方案中,我们有两个依赖同一个数据库的 Web 应用程序(一个网站和一个单独的
我想指定一个环境变量,以便我可以验证它是否是阶段/生产/开发环境(ASPNETCORE_Environment 或自定义环境)。八达通是默认这样做还是我必须手动设置? 最佳答案 在部署期间,变量#{O
您好,我是 Octopus 部署的新手。 我创建了一个 nupkg 并尝试将其部署到 IIS 服务器。 我遇到以下错误。 There was a problem with your request.
我定义了一个包含两个步骤的流程: 部署 IIS 网站 执行脚本文件 流程的第一步执行没有任何问题。我能够将 nuget 包上传到 Octopus Server 的内置包存储库并将其部署到我的 IIS
我是一名优秀的程序员,十分优秀!