写点什么

用户实例:DubDubDeploy

  • 2013-04-22
  • 本文字数:2786 字

    阅读完需:约 9 分钟

编辑按:最初 DonteOrmsby 联系我们的时候,仅仅是写了一封友好的信,说他发现一个非常棒的工具能简化 ASP.Net 的网站部署,并认为我们的读者可能感兴趣。经过进一步交谈,我们认为介绍 DubDub 部署最好的办法就是让 Donte 来给读者讲述他亲身所经历的故事。

如果你知道某个产品对你非常有帮助而且愿意分享你的经验,请务必通知我们。不论是正式还是非正式的用户实例,我们都欢迎。 JonathanAllen ,NetQueue,主编。

我们的故事始于 2010 年下半年,本地一家金融机构的软件开发部门。作为项目组的软件工程师,我当时不仅负责我们各个应用的编码,同时也管理应用服务器和部署网站。我们当时的系统环境还很不成熟,因此很难通过源代码控制来追踪所有的应用,以及部署到不同的服务器上。

我们拥有相当多的互联网应用,从内部应用,到公开网页,再到面向客户的门户。而理所当然,每个应用又有多个环境和服务器,通常来说生产、测试和开发都会有一到两个环境,有时多些,有时少些。应用部署是我们的主要困难之一,除了如此多的环境,同时还要处理基础设施问题。

每个开发人员都有 9 个登录窗口–4 个不同的域帐户(涵盖 3 个域),和 5 个独立服务器的非域帐户。部署到服务器意味着使用一个账户登录到编译服务器,然后用另一个账户登录到目的服务器。永久映射磁盘在当时并不可行,因为有太多事情需要处理–几十个应用程序位于不同位置,其中许多明显没有基于服务器名或目录。

还有并不是每一个人都愿意去记住这数十个应用的位置,因而这些任务就落到了我们几个被选中的人身上。由于采用敏捷模式,代码总是快速更新,并被部署到不同的环境中,即便是生产环境也经常被更新。每天我都得不断放下手里的工作去部署某一应用,这意味着我要记住这个应用的所在地,登录到 UNC 共享或者映射新磁盘,然后手动备份文件,手动部署新代码。而我发现当我不在办公室时,大家都害怕部署应用,或是记不住密码,又或者根本不知道他们应该往哪里放文件或取文件,总之,完不成部署这件事。

在不间断打扰,延迟部署代码到测试环境上,以及人为将代码发布到错误路径所带来的生产力的丢失之间,我们每星期都浪费了好几十个小时,这很容易就造成每年数百个小时宝贵开发时间的浪费。

在认识到问题后,我的第一个尝试是建立一系列批处理文件,它们可以自动根据给定的应用和环境映射磁盘。但这仍意味着要记住 9 个密码,并保证所有用户账户状态良好(因为某些原因,在我们这不总是成立)。这个方案帮了点小忙,但是我们迫切需要一个更持久的解决方案,一个让所有人都放心使用的方案。

后来我们就发现了当时仍处于预览版的 DubDubDeploy。这个产品保证在网间通过 HTTP 而不是以文件系统的方式来部署文件。这也意味着我们的所有网络访问和用户权限问题都不复存在了。我们当时就决定一试。哪怕我们只能节省出一小部分浪费掉的时间和精力,其免费性质也让它物超所值。

DubDubDeploy 只需要在编译以及目标 web 服务器上做一个小型安装,配置也非常简单。我们只需要定义应用可以拷贝到哪里,及哪个用户可以运行它即可。在完成配置之后,备份和部署就从痛苦的多步流程转变成一次轻松点击。

并且它本身还包括了一个 Nant 脚本生成器以及 CruiseControl.NET 项目配置生成器。我们当时已经在使用这两个产品了,但生成的样本给我们一些启示以如何提高我们脚本的质量。对于任一正式的项目都必须要有一个坚固的编译流程。任何能帮助提高编译策略的东西,我都欢迎。

算上所有的应用及环境,我们项目组要处理 40 多个常用应用部署位置。现在 DubDubDeploy 把一切都按应用程序和相应环境记录起来,而不用每次都去回忆或查找。如果你想部署内部应用到 QA,只要打开面板,下拉到 Intranet,点击 QA 服务器下的部署按钮。几秒钟之后,你的应用就部署完成,你就可以继续你的工作了。正因它如此简单,现在每个人都能负责自己的部署,而无须依赖别人。

使用过程中我们还发现了其他的优点。自从部署变成服务器到服务器,以前从家使用 VPN 部署代码所要忍受痛苦而漫长的过程,现在变成了和在办公室一样简单。DubDubDeploy 整合了 CruiseControl.NET,我们可以在部署之前实时监视编译状态。在编译完成时,应用状态将变成绿色,这就说明我们可以安全部署了。

就在一瞬间发生如此之大的变化,现在人人都能部署了。无需任何工作,甚至不需要知道文件实际位置。发布一个应用的耗时从几分钟缩短到 10 秒以内。而在 DubDubDeploy 中增加一个分支也只需几分钟,甚至比手动部署一个应用还快。我们知道了我们在往正确的轨道上发展。

不幸的是,我们不允许在生产环境上运用 DubDubDeploy。它必须要通过 HTTP 和目标服务器建立一个新的通信链路,但我们公司不允许在服务器上这样操作。即使这样,我们还是节省出大量浪费在开发和测试上的时间,而这也恰恰是我们浪费的绝大部分时间。

现在,我们不再浪费时间处理许可和服务器相关问题,我们有了更多从事实际的开发工作的时间。随着生产力的飙升,开发者的心情也有了改善。而作为一个开发者,我总是倾向于编码或创造一些酷的新玩意,而非重复性工作或是维护。拥有更多编写代码的机会对每个人都是一种胜利。

由于这个产品当时还是预览版,功能仍就比较少。我们向他们提出增加一些新功能,其中有一些很快就被实现了。现在 DubDubDeploy 可以快速找出源目录和目标目录间的不同,并且只更新有变化的文件,把部署时间从 10 秒减少到 2 秒。同时我们也需要让创建用户更为简单:用户无须自己去设立安全限制,只须配置一个 AD 组,也不再为用户安全而费心。

尽管该产品还很新,其 UI 也比较粗糙,但它却作出了很大的帮助。我认为当它拥有更多新特性后,它将会更有帮助。除了更好的用户体验,DubDubDeploy 团队也正在策划新的功能,比如,脚本化部署,FTP 部署,通过集成源代码控制来部署分支的代码,和 IIS 的整合。该团队对于意见和建议的反应非常灵敏,针对 DubDubDeploy,我们已就发现的更多潜在用途,与开发团队进行了沟通,我们希望能够在下一个主要版本中看到这些改进。

在使用 DubDubDeploy 来管理我们的部署几个月后,我们知道我们已经不可能回头。手动部署,即使是在简单的环境,也已经不合潮流。

关于作者

我叫Donte Ormsby,毕业于亚利桑那大学,主修经典这门学科。对于那些不熟悉该课程的学习的人,该专业是一门从古埃及,罗马和希腊的建筑,文学,艺术立场来研究他们文化的学科。

当时我完全不知道我的学业将会对我目前职业造成如此之大的影响。学习经典其本质是研究人的本性。而 Web 开发,其核心是研究人的行为。创建一个网站并不只是创造好看的界面和代码。

作为一个 Web 开发者,如果你的任务是为企业和非营利组织以互联网为媒介来创造更多的机会,那你应该更多地关注你的创造将会给最终用户带来怎么样的效果。我个人来说,目标很简单,设计简单漂亮的网站,最终把消费者带到客户的门前。

查看英文原文: A User’s Story: DubDubDeploy

2013-04-22 09:372214
用户头像

发布了 39 篇内容, 共 13.5 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

Create 2024 分论坛:百度大模型安全解决方案护航开发者一起创造未来

百度安全

企业im即时通讯工具推荐,企业内部即时通讯软件工具怎么选?

WorkPlus

GreatSQL 死锁案例分析

GreatSQL

【论文速读】| GPTFUZZER:利用自动生成的越狱提示对大型语言模型进行红队测试

云起无垠

对话阿里云佘俊泉:边缘云的持续突破和创新

MasterInTech

阿里云 边缘云

一个埋藏9年的底层bug发现历程

阿里技术

故障 bug 故障排查 故障排查/诊断

全球AI音乐会,第一次听见中国声音

脑极体

AI

WorkPlus企业即时通讯国密加固-为企业信息安全保障

WorkPlus

NL2SQL实践系列(2):2024最新模型实战效果(Chat2DB-GLM、书生·浦语2、InternLM2-SQL等)以及工业级案例教学

汀丶人工智能

text2sql NL2SQL

HAS2024:华为云以系统性创新加速千行万业智能化升级

华为云开发者联盟

云计算 华为云 华为云开发者联盟 企业号2024年4月PK榜 HAS2024

区块链的原理、技术、应用领域

天津汇柏科技有限公司

区块链

我们开源啦!一键部署免费使用!Kubernetes上直接运行大数据平台!

智领云科技

开源 大数据平台 K8s 多集群管理

Serial for Mac :全能串口调试工具

iMac小白

Serial下载 Serial破解版 Serial mac

碳实践|手把手教你开展组织碳核算

AMT企源

数字化转型 双碳 碳核算

Python与数据库交互的最佳实践

技术冰糖葫芦

api 货币化 API 接口 pinduoduo API

GPT-5发布时间确定!全面训练、更强推理能力!

蓉蓉

人工智能 openai ChatGPT

如何基于香橙派AIpro对视频/图像数据进行预处理

华为云开发者联盟

华为云 数据预处理 昇腾CANN 华为云开发者联盟 企业号2024年4月PK榜

JetBrains WebStorm 2024:卓越的前端开发工具mac/win

iMac小白

WebStorm 2024下载 WebStorm 2024 mac WebStorm 2024破解版

好用的即时通讯系统,如何选择适合政企即时沟通软件?

WorkPlus

BizDevOps全局建设思路:横向串联,纵向深化

嘉为蓝鲸

DevOps Dev Ops BizDevOps

一个游戏服务器多少钱?价格与配置的完美指南

一只扑棱蛾子

服务器

展出规模超50万平米“2024第26届深圳高交会”招商工作全面启动

AIOTE智博会

高交会 高新技术展 深圳高交会

NL2SQL技术方案系列(1):NL2API、NL2SQL技术路径选择;LLM选型与Prompt工程技巧,揭秘项目落地优化之道

汀丶人工智能

自然语言处理 text2sql NL2SQL

调试 WebSocket API 教程实践

Apifox

程序员 前端 后端 websocket WebSocket API

IM即时通讯软件,WorkPlus私有化部署全面支持信创环境

WorkPlus

Ghost Buster Pro for Mac:轻松优化与维护系统新选择

iMac小白

Ghost Buster Pro下载 Ghost Buster Pro mac Ghost Buster Pro破解

旅游电商的智能化升级:携程景点详情API引领新潮流

技术冰糖葫芦

API 接口 API 测试 pinduoduo API

腾讯的面试,强度拉满!

王中阳Go

Java Go 后端 面试题 面经

用户实例:DubDubDeploy_DevOps & 平台工程_Donte Ormsby_InfoQ精选文章