东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

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

  • 2015-02-06
  • 本文字数:712 字

    阅读完需:约 2 分钟

现任 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)依赖很小。

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

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

2015-02-06 03:102297
用户头像

发布了 63 篇内容, 共 25.1 次阅读, 收获喜欢 11 次。

关注

评论

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

最近打算重新写一遍爬虫“指北”

IT蜗壳-Tango

IT蜗壳教学 6月日更

【Vue2.x 源码学习】第三篇 - 对象的单层劫持

Brave

源码 vue2 6月日更

傲腾持久内存如何为数据赋能,加速应用落地?

白玉兰开源

人工智能 英特尔 傲腾

Redis--哈希冲突

是老郭啊

redis hash

🐬【MySQL技术导航】带你认识一下数据库的锁

洛神灬殇

MySQL MySQL锁 6月日更

WebSocket 对象简介

编程三昧

大前端 websocket

5分钟速读之Rust权威指南(十六)

wzx

rust

Dubbo 线程池模型

青年IT男

dubbo

OpenYurt v0.4.0 新特性发布:高效地管理边缘存储资源

阿里巴巴云原生

云原生

“openEuler未来发展” 采访熊伟博士

容光

操作系统

MySQL 基础之一:基本命令使用

打工人!

MySQL 6月日更

权限与认证:JWT

程序员架构进阶

Token JWT 认证授权 28天写作 6月日更

速度,力度,广度:金融数智化中的华为“寻道”

脑极体

超超超超级详细的多边形游戏问题分析(动态规划)

若尘

算法 动态规划 6月日更

系统性思维 系统之美2

张老蔫

28天写作

Tapdata 数据库实时同步的技术要点

tapdata

数据库迁移 数据同步 实时数据分析

ARTS--week 10 补打卡

steve_lee

《开源 PassJava》1、项目介绍

悟空聊架构

开源 面试 刷题 spring cloud alibaba 6月日更

区块链在数据管理中有哪些价值?

CECBC

区块链:可持续发展的世界的有效工具?

CECBC

资产信息化、数字化和通证化—— 理解区块链世界新经济的优势

CECBC

网络攻防学习笔记 Day34

穿过生命散发芬芳

网络攻防 6月日更

PMP-项目管理标准

索隆

pmp 6月日更

Golang Testing 概览 - 基本篇

hedzr

Unit Test testing Go 语言

研发自动化,你准备好了么?

PingCode研发中心

研发管理 研发效能 研发工具 研发团队

腾讯云携手信通院启动“云原生开源白皮书”编写,深度解读云原生

CODING DevOps

腾讯云 DevOps 云原生

python——使用input()函数

在即

6月日更

记一次K8s排错实战

雪雷

k8s 6月日更

react源码解析5.jsx&核心api

全栈潇晨

React React Hooks

百度开发者中心全新升级 | 文末六一送福利

百度开发者中心

百度 福利

如何设置HashMap初始化大小

Hex

后端 hashmap

不变性改变一切,包括微服务_SOA_Han Xu_InfoQ精选文章