Rundeck是一个DevOps常用的工具,是PagerDuty公司开发的产品,能够很好的和PagerDuty进行集成。
但是平常我们听得或用得更多的是Jenkins,一个非常流行的CI工具,具有很好的可扩展性。
可是为什么那家公司会用Rundeck而不是Jenkins呢,在这里做一下对比。
简单来讲,Rundeck主要用于运维团队直接操作已存在的工具,服务,系统,它能够安全的访问每种重要的业务流程。
Jenkins则是一个持续集成(Continuous integration)工具,它的首要目标就是构建服务,比如用Maven插件构建jar包,用Docker构建镜像等。
Rundeck的特性
从安全方面来讲,需要通过Web GUI或者API安全访问的服务,可以存储到Rundeck,因为Rundeck并不关注产品构建,更加注重安全。Rundeck jobs能够帮助执行变更,更新网络或者基础设施等几乎所有业务流程。
Rundeck不限制开发或者专家使用,因为从一开始,它就被设计来让运维团队为公司的所有人提供自助服务入口的,Rundeck的ACL可以确保敏感数据能够分级的给不同的人员。
Rundeck基于运维集中化的诸多特性保证了它能够更好的了解到环境的细节。Node作为Rundeck的重要概念,它可以用来描述技术设施和环境,让你能够更好的组织主机和服务。Rundeck可以整合多种数据源(如AWS EC2, Puppet, Ansible),不用重复制造轮子。
Rundeck能够跨多个远程节点或者服务器执行多种类型的工作流。
Jenkins特性
Jenkins主要用于构建代码,是非常流行的CI工具;Jenkins有很好的扩展性,有很多的Plugin,能够基于Script实现很多自定义功能;Jenkins的社区活跃
集成Rundeck以及Jenkins
Jenkins管理软件构建,Rundeck用于管理其他的运维任务。Jenkins可以触发Rundeck进行持续部署(不推荐Jenkins直接操作生产环境),
虽然Jenkins有Input功能,但是没有Code Gate,Approval Gate这种自动化的工具,所以专业工具做专业的事,Jenkins最好用于CI,用于构建项目,
利用强大的pipeline执行,Unit Test和Integration Test,执行的结果是构建应用程序包或者镜像,放入远程仓库,关于CD(Continuous Deployment)用其他的CD工具来完成。
目前来看这种集成方案可以应用于实践,Jenkins作为CI工具,Rundeck用作CD工具。