UrbanCode Deploy 和Chef的对比以及结合
对比: 在DevOps中, UrbanCode Deploy 和Chef 都是一个自动部署框架,但是Chef是一个面向底层的配置管理工具, 擅长中间件的部署;而UrbanCode Deploy 是一个应用自动化部署解决方案, 擅长组合部署多层的用户应用。 在自动化部署的发布层面, Chef使用的是pull-base, 也就是agent主动向服务器发起识别新的部署。采用这种方式, 执
对比:
在DevOps中, UrbanCode Deploy 和Chef 都是一个自动部署框架,但是Chef是一个面向底层的配置管理工具, 擅长中间件的部署;而UrbanCode Deploy 是一个应用自动化部署解决方案, 擅长组合部署多层的用户应用。
在自动化部署的发布层面, Chef使用的是pull-base, 也就是agent主动向服务器发起识别新的部署。采用这种方式, 执行更新的顺序是随机的,如果一个agent 离线, 那么会在稍后的上线后执行更新,这跟NoSQL 数据库的eventual consistence模型的优缺点是一样的。
UrbanCode Deploy的执行则是push-base, 由server向agent 发送更新, 因此可以监控agent的更新情况,在顺序方面也有更好的控制。
在部署的流程方面,Chef 有大量的用户组,以及很多预先配置好的‘cookbook’来安装infrastructure,中间件以及应用组件, 这些可以作为模板,但缺点在于对于应用的部署依赖很多设定(setup)以及大量的Ruby 脚本编写,这对于管理人员、审计人员等难易快速理解,UrbanCode Deploy 在这方面的优点是有着图形化的部署描述工具,可以通过拖拽的方式进行自动部署的流程设定。
UrbanCode有着更好的安全控制粒度。Chef 可以在脚本的变量中配置环境密码,但是过于琐屑和易于出错。
结合:
Chef 用于安置infrastructure和middle ware, 用UrbanCode Deploy 来安置用户的应用程序。
具体而言,一种方法是,UrbanCode Deploy通过第三方插件, 和Chef-solo 结合。 Chef-solo 是Chef的客户端,允许执行cookbook 而不和Chef Server 通讯。因此可以通过UrbanCode Deploy 来安装和执行chef-solo, 从而执行Chef automation。
更多推荐
所有评论(0)