BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

不变性改变一切,包括微服务

| 作者 Han Xu 关注 0 他的粉丝 ,译者 徐涵 关注 3 他的粉丝 发布于 2015年2月7日. 估计阅读时间: 2 分钟 | 都知道硅谷人工智能做的好,你知道 硅谷的运维技术 也值得参考吗?QCon上海带你探索其中的奥义

现任Salesforce软件架构师的Pat Helland在他的CIDR 2015文章里回顾了不变性(immutability)架构设计的优点。Pat认为,今天的计算与存储成本已大大降低,为大规模数据保存不变副本(immutable copies)在经济上变得可行,这样做有助于缓解协调方面的挑战。

Pat对比了内部数据(inside data)与外部数据(outside data)的特性(见下表),并指出了采纳不变性架构的几点技术影响(注:Pat将数据集定义为一个固定的、不可变的表的集合):

  • 尽管数据集在物理上可以被改变,但在语义上是不变的(immutable)。
  • 通过观测和监控数据集的读取量,可以发现新的优化点(如新增索引等)。
  • 不变性是大数据(Big Data)的支柱。采用不变输入的函数式计算是幂等的,所以就算出错或重启也不要紧。
  • 规范化在需要更新的数据库里是十分重要的;但对于不变的数据集,规范化不是必需的。
  • 日志结构化文件系统(Log Structured File Systems)给不变性数据块带来高可用性(availability)。

Inside Data vs. Outside Data
表:对比内部数据与外部数据(出处:Pat Helland的CIDR 2015文章

与此同时,Jay Vyas在Red Hat开发者博客上发文展示了如何用Apache Spark和Cassandra来创建不变的微服务(immutable microservices)。Jay也谈到了构建不变微服务的好处:

本质上,不变微服务不需借助于任何重量级的安装器或配置管理就能部署,而且令负载平衡、高可用性和动态资源分享等成为可能。(.…) 不变微服务可以在任何环境下测试,因为他们对启动自己的编排层(orchestration layer)依赖很小。

不变性架构的优势在FacebookLambda架构新型数据库Datomic中均已有所体现,你做好迎接一趋势的准备了吗?

查看英文原文:Immutability Changes Everything Including Microservices

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT