技术文章|如何更好地使用容器技术实现不可变基础设施

来源:互联网 发布:腾讯域名购买流程 编辑:程序博客网 时间:2024/05/17 09:03

本文来源于阿里云-云栖社区,原文点击这里。


如果需要修改或升级某些实例,唯一的方式就是创建一批新的实例以替换。这种思想与不可变对象的概念是完全相同的。

实现这种模式的好处是显而易见的,这意味着配置工作可实现重复性,减少了配置管理工作的负担,让持续集成与持续部署过程变得更流畅。同时它也更易于应对部署环境间的差异及版本管理,包括在部署出错时可进行快速回滚 ——只要旧版本的镜像文件还有备份,就可以快速地生成旧版本的实例进行替换。否则的话,就只能老老实实地重新构建旧版本的实例,并且祈祷能够赶在老板掀桌之前完成回滚。

实现这一模式需要满足两点基本需求,首先应用程序必须是无状态的,不可依赖于本地的文件上传、会话与缓存。基本上,如果应用程序要实现负载均衡,都必须满足这一点。而更重要的一点是,能够通过某种模板(或指令)将实例快速地部署到生产环境中。后一点无疑是关键所在,也是这一模式的最大挑战。

虽然这种模式能够带来很大的好处,但实现它的难度也是很高的,传统的虚拟化技术在应对这一模式时显得有些力不从心。幸运的是,DevOps社区发现Docker(或者说容器)正是实现这一模式的优秀选择。

使用容器实现不可变基础设施

来自Tutum的Fernando Mayo近期在一篇博客中详细地论述了使用容器技术实现不可变基础设施的优点。他首先指出,容器并不是实现这一模式的唯一选择,使用虚拟机模板、或者通过Chef与Puppet这样的配置管理工具同样可以实现这一目的。

>>展开全文

原创粉丝点击