65.9K
CodeProject 正在变化。 阅读更多。
Home

我们的开发者投票:Skype 0,HipChat 14

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2015年1月16日

CPOL

5分钟阅读

viewsIcon

13665

使用 HipChat 控制 CodeProject::Workspace 部署

引言

在这篇文章中,我将描述我们的团队如何从Skype切换到HipChat,以及为什么这对我们来说是一件大事。

背景

HipChat是一款功能齐全的团队聊天工具,非常适合开发人员。它是免费使用的,但他们为付费用户提供额外功能,每月2美元/用户(提供更多的消息和附件存储,视频聊天,屏幕共享等)。

故事

不久前,我领导着一个小型但不断发展的开发团队,当时我们大量使用Skype进行团队沟通。它并不差,但随着时间的推移,让我烦恼的事情越来越多。群组对话似乎是事后才考虑的功能,而不是核心功能。

我想尝试一些替代方案,所以我注册了HipChat的免费试用版,并让我的团队进行测试。我的目的是测试一到两周,然后决定继续使用HipChat还是尝试其他产品。但仅仅使用HipChat一天后,团队的反应是压倒性的:14票赞成继续使用HipChat(包括我),0票赞成Skype。

图1:完整UI示例

一切都始于一些小细节。我的团队使用多种操作系统(包括移动设备),而Skype给我们带来了很多麻烦 - 通知在Linux上不显示等。HipChat被证明更可靠、更有用 - 后来我们开始欣赏的一个主要优点是,消息是富文本格式,而不仅仅是纯文本(稍后详述)。如果您在旅行中只能收发邮件 - HipChat也能满足您。如果消息无法发送到在线客户端,HipChat还会向您发送一封包含该消息的电子邮件 - 我发现这非常有用。

从第一天起,我们就迅速意识到HipChat拥有Skype所缺乏的杀手级功能。HipChat允许您复制和粘贴图像,并直接在对话中显示图像。这似乎是一件很小的事情,但它是一个极其有用的功能。我仍然不明白为什么Skype没有添加这个功能。使用Skype,当您想向朋友展示图片时,您需要从本地计算机选择文件,上传它,对方需要接受它,然后在自己的机器上找到它,并在外部程序中打开 - 这对于分享照片这样简单的操作来说,需要点击很多次。与HipChat不同,通过Skype收到的文件会存储在该机器上,如果您更换机器,这些文件将不会在新机器上。

thanks to these features we were ready to switch to HipChat from day one. Later on, we found a much more profound feature - the HipChat API. Their API allows you to post a message to a person or group conversation (room) from an external program. This might not seem impressive at first, but it completely improved our team’s workflow. (得益于这些功能,我们从第一天起就准备好切换到HipChat。之后,我们发现了一个更深层次的功能 - HipChat API。他们的API允许您从外部程序向个人或群组对话(房间)发送消息。这起初可能不那么令人印象深刻,但它彻底改善了我们的团队工作流程。)

We started with setting up Hubot and hooking it up to HipChat. Hubot is a small robot who can execute various commands when you talk to it (or react to normal discussions between humans). It comes with a bunch of predefined functionality and allows you to add your own scripts to it. In the beginning, we just played with its built-in functionality - sending pug bombs to other team members, getting random pictures with added mustaches and displaying google maps (inside the conversation window). Then we decided to get serious and hook up our devops tools to HipChat. We installed ErrBit so that when a server error occurs on any application we’ve been developing, an error report is sent to ErrBit (with stack trace, request metainfo, etc.) which then sends a notification to the relevant room in HipChat (so rich text formatting on HipChat was extremely useful here). Everyone online is made aware of the problem in real time, even if the relevant developer wasn’t online at the moment. (我们开始设置Hubot并将其连接到HipChat。Hubot是一个小型机器人,可以在您与其交谈时(或响应人类之间的正常讨论)执行各种命令。它附带了许多预定义的函数,并允许您添加自己的脚本。起初,我们只是玩弄它的内置功能 - 向其他团队成员发送“pug炸弹”,获取带有胡子的随机图片,以及显示谷歌地图(在对话窗口中)。然后我们决定认真起来,将我们的DevOps工具连接到HipChat。我们安装了ErrBit,这样当我们在开发的任何应用程序上发生服务器错误时,错误报告就会发送到ErrBit(包含堆栈跟踪,请求元信息等),然后ErrBit会向HipChat中的相关房间发送通知(因此HipChat上的富文本格式在这里非常有用)。在线的每个人都能实时了解问题,即使相关开发人员当时不在线。)

图2:Errbit消息在普通对话中的示例

Since the ErrBit-HipChat integration worked well for us, we hooked up other services like Zabbix or Monit. However, the most life-changing integration was adding our deployment scripts to Hubot. We've been using Rails deployments with Capistrano, so a developer had to set up his own machine and install all the dependent tools on it, then with command like cap deploy production he could do the actual deployment. It worked fine, and moving that bit to Hubot didn't seem huge at first. Yet over time the whole team started to love it. For example, Hubot could ensure that only one deployment was happening at any given moment. If something went wrong and a rollback had to be done, any team member (even project managers) could trigger a rollback, even without having their machine setup for development. I was switching between a few machines at the time and it was extremely convenient to be sure that my deployment environment was set up correctly (since it was Hubot's environment). Most importantly, the whole team could see that the deployment was in progress. Thanks to the integration it became simple to verify if there was anything deployed around/before/after that time. There are many times that I’ve really appreciated having easily accessible deployment logs. And remember that ErrBit integration? (由于ErrBit-HipChat集成对我们来说效果很好,我们还连接了Zabbix或Monit等其他服务。然而,最改变生活的功能是将我们的部署脚本添加到Hubot。我们一直在使用Capistrano进行Rails部署,所以开发人员需要设置自己的机器并安装所有依赖工具,然后通过类似`cap deploy production`的命令进行实际部署。它运行良好,起初将这部分转移到Hubot似乎并不算大。但随着时间的推移,整个团队都开始喜欢它。例如,Hubot可以确保在任何给定时刻只有一个部署正在进行。如果出现问题需要回滚,任何团队成员(包括项目经理)都可以触发回滚,即使他们的机器没有为开发做好准备。当时我经常在几台机器之间切换,能够确定我的部署环境设置正确(因为它是Hubot的环境)非常方便。最重要的是,整个团队都能看到部署正在进行。得益于集成,可以轻松验证在那之前/之后是否有任何部署。我曾多次非常感激能够轻松访问部署日志。还记得ErrBit集成吗?)

When somebody pushes some invalid code (yeah, it happens, what a shocker, typically we've seen this on HipChat: hubot cap deploy app_name production, and a few minutes later Hubot says that the deployment is finished. Seconds later, the HipChat room is filled with bloody red messages from ErrBit, so the developer quickly tells Hubot to rollback and can proceed to investigate what the heck happened. (当有人推送了无效的代码时(是的,这种情况会发生,真令人震惊,通常我们在HipChat上看到:`hubot cap deploy app_name production`,几分钟后Hubot说部署已完成。几秒钟后,HipChat房间里就会充斥着ErrBit发来的鲜红色消息,所以开发人员会迅速告诉Hubot回滚,然后可以继续调查究竟发生了什么。)

图3:Hubot向3台服务器执行的部署过程示例

As you can see, switching from Skype to HipChat worked extremely well for us. I give HipChat an A+ and recommend anyone on Skype to make the switch. With a few small (but important) features like inline picture display, and bigger ones like API access or file storage (so it is possible to send Word document to the room and have everyone download or fetch from HipChat at anytime), HipChat proved to be invaluable for our team. I hope that this article will allow you to boost your team's productivity with HipChat as well. (如您所见,从Skype切换到HipChat对我们来说效果非常好。我给HipChat A+,并推荐所有使用Skype的人进行切换。HipChat拥有一些小型(但重要)的功能,如内联图片显示,以及更大的功能,如API访问或文件存储(因此可以将Word文档发送到房间,随时供大家下载或从HipChat获取),这些都证明了HipChat对我们的团队来说是无价的。希望这篇文章能帮助您通过HipChat提升团队的生产力。)

I hope that this article will allow you to boost your team's productivity with HipChat as well. Learn more about it: www.hipchat.com (希望这篇文章能帮助您通过HipChat提升团队的生产力。了解更多信息:www.hipchat.com)

© . All rights reserved.