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

来源:InfoQ 作者:徐涵
  

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

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

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

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

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

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

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

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

转自 http://www.infoq.com/cn/news/2015/02/Immutability?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global


时间:2015-02-06 21:32 来源:InfoQ 作者:徐涵 原文链接

好文,顶一下
(0)
0%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量