现在工程师的人力成本越来越高,靠工程师手动通过 SSH 或类似的第三方工具来远程部署服务的方式,枯燥乏味,容易出错,部署时间长。仅仅为了部署服务,工程师就免不了加班,而且整个过程都要守候在工作机器旁边,片刻也不能离开。老板不愿看到员工既加班又不能保证服务质量,工程师也不期望这样重复而紧张的部署过程,希望能够找到一种快捷安全的部署服务的方式。

如果你也经历过以上描述的场景,那么也许你可以思考如何换一种工作方式,让自己既能提高技能,也能节省时间,更重要的是,让服务更加稳定可靠。即将成为趋势的 ChatOps(即一种会话驱动型开发的做法)的工作方式不失为一种好选择。

BearyChat 旨在提高团队的沟通和工作效率,为使用团队打通了各种第三方服务。在沟通的同时完成线上服务的部署,BearyChat + Hubot + Jenkins + GitHub 的工作模式可以助你们团队一臂之力。

更好的使用这一套组合,有一个基本的前提:能够通过一条命令来部署服务。Jenkins 要做的事情是执行这条命令,至于执行时需要的权限,参数等都可以在 Jenkins 中配置。如果团队的服务还没有达到一条命令完成部署的话,这个组合模式也很难更好的发挥它的作用。 可以参考 fabfile

我们可以使用到以下工具:

- BearyChat 是一款团队内部的 IM 沟通工具,旨在为团队提供一种崭新的工作方式,打通团队内部使用的众多第三方服务,提高沟通效率。

- Hubot 是 GitHub 开源的聊天机器人,提供了一种崭新的运维工作方式:配置,部署,报表,监控等。这些通过指令实现的交互方式,可以大大帮我们减少一些重复的劳作,提高工作效率,也使得工作方式一步步自动化,让工作者找到一种更愉悦的操作方式,当然这不能影响服务的稳定性。

- Jenkins CI 是一个开源的可私有部署的持续集成服务,众多的第三方插件使得它能够适应大多数公司的持续集成需求,不仅能够验证代码的正确性,而且能够快速稳定的帮助我们完成部署、服务回滚等工作。

- GitHub 是一个利用 Git 进行版本控制、专门用于存放软件代码与内容的工具, GitHub 已经成为了管理软件开发以及发现已有代码的首选方法。

## GitHub 管理代码

为了团队工程师编写代码时能有一个愉快开心的体验, Git 工作流和 GitHub 的代码托管服务无论在服务稳定性还是便捷性上都肯定是首选。

对于还在使用 SVN 来托管代码的团队,这里只能说:放下屠刀,回头是岸啊。实在不行,私有部署的 GitLab 也是一个不错的选择。

## 部署 Hubot 机器人

Hubot 机器人需要团队部署在自己的服务器上,用来跟团队内部的其他服务通信。

- 按照 hubot-bearychat 安装 Hubot 机器人以及 hubot-bearychat 的 adapter

- 按照 hubot-jenkins 安装 hubot-jenkins 插件。记得在 external-scripts.json 中添加 hubot-jenkins

- 按照上面两个文档的说明,配置 HUBOT_BEARYCHAT_TOKENS HUBOT_JENKINS_AUTH 和 HUBOT_JENKINS_URL 环境变量并启动 Hubot

## 安装并使用 Jenkins

- 按照 Install Jenkins 文档安装对应系统的 Jenkins 服务。当然如果选择 docker 的话,可以参考 Jenkins Docker Image

- 为了使得 Jenkins 能够跟 GitHub 和 BearyChat 通信,需要安装 GitHub 和 BearyChat 的插件

- 配置插件的具体方式,可以参考 Jenkins in BearyChat

## BearyChat 连接服务

- 首先要注册使用 BearyChat 服务,创建一个团队并新建一个 Hubot 机器人,并将 Hubot 机器人加入到某个讨论组内

- Hubot 机器人的 Token 会作为私有部署的 Hubot 机器人的启动变量

- 剩下的就是在讨论组中跟 Hubot 通信来部署你的服务

当然为了保证安全性,我们还可以做一些自定义的验证工作,来避免团队内部他人不小心部署我们的服务,剩下的事情,就是花精力来把这套组合流程打通,造福于团队了。

ChatOps 代表着「透明」和「效率」的趋势,无疑是团队沟通和合作发展的一种主流方向。首次打通这种工作流程可能需要一定的工作量,但一旦打通并走上正轨,将会为整个团队培养出一种更加简单高效的工作文化。

转载于:https://my.oschina.net/u/2426334/blog/646136

如何用 BearyChat 将 ChatOps 带到你的日常工作中相关推荐

  1. python 在日常工作中_每天在工作和生活中做的事,我如何用 Python 让它们变得更轻松?...

    原标题:每天在工作和生活中做的事,我如何用 Python 让它们变得更轻松? 在生活和工作中,往往充斥着一些枯燥且乏味的事情.所以要让自己从机械地重复性劳动中解放出来,才是解放身心的正确姿势. 本文列 ...

  2. python在工作中怎么用_如何用python在工作中“偷懒”

    原标题:如何用python在工作中"偷懒" "偷懒还能干完活,才是本事 " 有些朋友在工作中会有这样的困惑:明明我从早忙到晚,为什么得到的评价还不高? 要知道, ...

  3. 如何用ARKit把太阳系装在你的iPhone中

    转载请注明原作者 第二篇文章链接:如何用ARKit把太阳系装在你的iPhone中(二) 关注AR/VR也有一段时间了,从一开始微软的HoloLens,谷歌眼镜,到苹果上次在WWDC上向开发者们展示他们 ...

  4. 基于bearychat的chatops

    参考文章: http://www.361way.com/bearychat-hubot/5663.html 需要用到nodejs .bearychat注册账号.bearychat的操作,可以参考我上面 ...

  5. 如何用matlab画烧杯,MATLAB在动力学实验数据处理中的应用

    · 68· 化 学 教 育(http://www.hxjy.org) 2015年第 2期 MATLAB在动力学实验数 据处理 中的应用 高锦红 (渭南 师范学 院化学与生命科学学院 陕西渭南 7140 ...

  6. 如何用你最熟悉的 SQL 来查询 Elasticsearch 中的数据?

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! Elasticsearch 是一个全文搜索引擎,具有您期 ...

  7. 如何用pip指令将python包安装到虚拟环境中

    1说明 在创建虚拟环境后,要想安装python包,需要指定装入哪个虚拟环境(路径),否则安装不成.这里以虚拟环境安装一个opencv为例,说明正确安装过程. 2 常规安装的误区 如果直接安装,如:&q ...

  8. 如何用mysql运行程序_如何在MySQL工作台中创建和执行程序

    我在 MySQL工作台中使用SQL编辑器创建了一个Spatial表.要填写此表, 以下是我正在使用的代码. CREATE PROCEDURE fill_points( IN size INT(10) ...

  9. 如何使用python效率办公_日常office工作中如何用python提升效率014

    今天讲一下: 如何将数据分析结果存放于同一Excel文件中的不同Sheet页 先回顾一下: 学习笔记的第一篇,就讲过了如何利用Pandas的read_excel和to_excel方法从excel文件中 ...

最新文章

  1. 华农保险 × 神策数据 OpenDay:保险如何从 0 到 1 落地数字化转型?
  2. idea中Terminal终端无法执行GIT命令
  3. p沟道mos管导通条件_打开知识大门的捷径!MOS管基本认识
  4. 计算机窗口设计java实验,Java银行取款异常处理计算器设计图形用户界面设计实验报告.doc...
  5. 【Machine Learning 五】Coursera无法观看课程解决方案
  6. Java SE 6 中实现 Cookie 功能
  7. Inpaint 强大的去水印、改图软体,轻鬆把不要的物件从相片中移除
  8. 饿了么自动登录解决方案(手机短信登录)
  9. windows无法开启网络发现问题解决办法(详细)
  10. 在线图片处理api接口
  11. 不同走法的象棋能否走完整个棋盘问题
  12. 【目标检测】英雄联盟能用YOLOv5实时目标检测了 支持onnx推理
  13. 文档印刷体中字符类符号
  14. R语言当前文件工作路径
  15. 蓝桥杯 青少年创意编程大赛 scratch组 (三)
  16. 相对基址加变址寻址方式
  17. Excel2010分成两个或者多个独立窗口
  18. 开发一个短信推送工具需要怎么做
  19. ElasticSearch支持根据英文或者数字进行模糊查询
  20. Swift 语言指南

热门文章

  1. ps4怎么用html,ps4新手入门怎么用 ps4新手入门教程简介-游侠网
  2. php实时股票,php中curl实现的股票信息查询的实例详解
  3. 科学院量子计算机,中科院研究员丁洪:量子计算机前景可期,算力翻亿倍并非天方夜谭...
  4. STM32按键的检测IO口上拉下拉电阻
  5. 音创a55怎么安装系统_怎么直接从硬盘装系统|直接从硬盘安装系统教程
  6. anaconda安装tensorflow
  7. cadence allegro 的一些经验,小白们大家一起学习上岸(界面基础操作)
  8. 草料二维码如何在多行业实现管理和自动化工作
  9. 视图渲染、CPU和GPU卡顿原因及其优化方案
  10. 怎么彻底卸载html5播放器,爱奇艺万能播放器卸载不了怎么办? 彻底删除爱奇艺万能播放器的教程...