写点什么

配置管理在容器化世界中的角色

  • 2015-12-10
  • 本文字数:1587 字

    阅读完需:约 5 分钟

Docker 已经作为基础自动化工具被广泛使用,越来越多的开发者开始争论 Docker 是否将最终替代配置管理工具这一问题。随着多数配置管理工具为 Docker提供支持,以上争论的结论似乎是二者将在使用中共存,而不是其中一个代替另一个。

配置管理工具需要确保一组服务器全部成员的初始状态与其所发生的结构变化都是一致的。配置管理所解决的问题还包括结构变化,即运行中的服务器结构变得与初始状态不一致。但前提条件是,每一项变化都必须通过配置管理工具实现。现代应用拥有成百上千的服务器,配置管理工具使得批量管理变得更便捷。

然而,在最近几年,开发者的工作变得更加灵活,应用结构中也引入了 API 主导服务导向架构。服务配置从整体到局部转化、及时发现实时的服务需求、规模变化速度加快等特性,使得开发者开始面对一个新问题,即配置管理的边界问题

容器技术使得根据配置需求建立稳定服务器的过程更加快捷,同时使得每次更改中放弃旧版本、重建一个新版本的过程更加方便。对比配置管理,容器看上去更贴近工作实际需求

——只需要将镜像与需求中的依赖关系相结合,输出服务节点。Netflix 早在其Amazon EC2 系统的AMI 中就应用了这个模型,其中, AMI 系统(Amazon 机器镜像)是一个可以启动服务器的镜像,通常被称作“金色镜像”。

容器技术使得子服务的体系架构工作更为便捷。任何服务导向的应用架构都将包含内部的服务依赖关系——多服务的复杂依赖关系。在这些服务的业务流程的设计中,拓扑结构与依赖关系同样重要。Docker 就能够很方便地对这种服务进行建模 Ernest Mueller ,DevOps 运动的长期成员、敏捷管理博客的合著者,说:

在服务依赖关系建立完成后,随之出现的是对子服务进行调整的需求。一些工具,如 Etcd Docker ,是通过将子服务紧密整合在容器环境中,来实现对其动态性的调整。在这些工具中,你可以定义一个多服务的环境,进而注册并通过编程来控制那些正在运行中的服务。

这是与纯配置管理相比较而言的,他还补充道:

你只需要改变软件程序,其余大部分工作就可以通过推动完成了,不需要直接建模。

那么金色镜像是否是一种“万金油”?容器是否将最终代替配置管理?

Ben Schwartz ,BancVue 的设计师、博客主,并没有认为这是个值得争辩的问题。他认为配置管理与容器所解决的根本问题是不同的。

对“容器与配置管理”的不休争论本质上就是错误的。我们从没有试图只通过使用一种技术就能解决全部的问题(你不会为了使用 Puppet 而放弃全部的 Java 库,也不会将负载平衡器设置在 Maven Central 中)。那么为什么我们要讨论容器与配置管理的问题呢?我建议我们应该集中精力去做我们经常做的事:选择正确的工具去做正确的事。

配置管理的目的是部署和变化管理。容器是虚拟机的轻量版,相比虚拟机,容器能更容易地连接现代应用中松散的子服务结构。这是容器的一个很明确的优势,但那并不意味着配置管理在这样的架构中没有价值。

配置管理能够用于集成环境下的很多工作:

Diego Zamboni 2014 年 UNIX 用户协会配置管理峰会发言中总结了二者的共存性:

在容器的时代,配置管理未来将是在那些小碎片中进行配置管理。

这里的“小碎片”指的是在容器化的系统中所构建的模块——应用、容器镜像与容器本身。他也提出警示,我们应该跳出“不变的基础服务”这个思维定式。他希望容器中配置管理系统的属性列表包括轻量化、分布式和弹性化,并牢记容器生命的短暂性。

查看英文原文: The Role of Configuration Management in a Containerized World


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群InfoQ 好读者(已满),InfoQ 读者交流群(#2)InfoQ 好读者)。

2015-12-10 18:002151

评论

发布
暂无评论
发现更多内容

坚持写作靠什么?

石君

输入 输出 28天写作

创业失败启示录|校园微生活之留学生面对面

阿萌

28天写作 创业失败启示录 青城

28天瞎写的第二百一九天:包辆三轮车上班的日子

树上

28天写作

早上听了一场关于财富的线上专题分享

熊斌

财富自由 28天写作

【计算机内功修炼】六:10张图让你彻底理解回调函数

码农的荒岛求生

异步 同步 异步IO 回调函数 异步编程

Java 程序经验小结:接口只用于定义类型

后台技术汇

28天写作

读书笔记:《激荡三十年》下

lidaobing

28天写作 激荡三十年

从硅谷到小米,崔宝秋的25年开源人生

李忠良

28天写作

想象力,科幻与其他「关于科幻 8/28」

道伟

28天写作

项目管理系列(3)-如何开好一个项目启动会

Ian哥

项目管理 28天写作

低代码是在炒概念,炒得不错

Justin

低代码 28天写作

生产环境全链路压测建设历程 29:FAQ 之 评估方法论、改造、痛点

数列科技杨德华

28天写作

Soul 网关实践 03|http 请求接入网关

哼干嘛

Java 探索与实践 Soul网关

智能building之 园区

张老蔫

28天写作

日语复习 Day02【~あっての】

IT蜗壳-Tango

程序员 七日更 日语语法

CMS系统——登录功能

程序员的时光

程序员 七日更 28天写作

如何通过即构小程序组件实现直播带货功能?

ZEGO即构

小程序 直播带货

区块链介绍

v16629866266

区块链

[6/28]产品业务数据分析的质量实践

L3C老司机

JavaScript05 - JavaScript数据类型

Mr.Cactus

JavaScript

【CSS】文字特效(text-shadow)

德育处主任

CSS css3 html/css CSS小技巧 28天写作

精选算法面试-数组III

李孟聊AI

面试 算法 数组 28天写作

聚焦目标,团队工作不再一盘散沙(下)

一笑

管理 目标管理 复盘 28天写作

【Mysql-InnoDB 系列】事务提交过程

程序员架构进阶

MySQL 架构 innodb 事务 28天写作

Soul 网关实践 02|选择器&规则介绍

哼干嘛

Java 探索与实践 Soul网关

重学JS | 箭头函数为什么不能用做构造函数?

梁龙先森

面试 大前端 编程语言 28天写作

五种IO模型

懒AI患者

io nio AIo bio IO多路复用

正则表达式匹配ini文件的section

老王同学

胆大无险,脚踏实地

.

28天写作

像用户一样测试:别掉链子

QualityFocus

软件测试 用户体验 回归测试

短视频+直播=最自然的表达方式?| 视频号 28 天 (09)

赵新龙

28天写作

配置管理在容器化世界中的角色_DevOps & 平台工程_Hrishikesh Barua_InfoQ精选文章