写点什么

微服务的概念还是偏大

  • 2015-03-29
  • 本文字数:903 字

    阅读完需:约 3 分钟

微服务的概念有些偏大,它将对组织级别的因素进行的优化与对技术因素所做的优化概念合并在一起,但对于每种类型中所产生的问题,对应的解决方案未必能够适合另一种问题。 Phil Wills QCon 伦敦大会上所进行的一场演讲中,提倡了独立的服务和单一职责应用程序的思想,而不是微服务。

Wills 是 The Guardian 公司的高级软件架构师,他表示,选择使用微服务的最终目的是希望能够生产出更实用、更可靠的软件,并且能够更快地进行交付。或者借用 Dan North 在这次大会上刚刚做完的一场演讲中的话来说:要能够可持续地交付商业影响,同时将交付周期最小化。

在 2008 年,Wills 和他的团队完成了一个项目。这是一个全新的庞大系统,虽然这个系统在许多方面都获得了成功,但他们很快发现,要将一些实验性的特性发布到生产系统上的成本太高。部分原因在于,对系统进行任何变更都要面临着一些纯粹由组织的复杂性带来的问题。有一段时期,他们甚至专门设置了一个发布经理的职位,让他进行各种必需的沟通工作,以实现每两周一次发布。为了解决这一问题,他们在系统中加入了一些占位符,可以在其中插入一些他们称之为微应用的东西,以替换系统中的某些部分。但是这种实现无法做到将各个部分完全分解,让它们的故障不影响其它部分。这就意味着每个独立的部分仍然有可能造成整个系统的停机。

对于 Wills 想象中的正确方案来说,独立的产品是一个关键的因素。这种产品的特征包括:它们具有一种稳定的、定义良好的界面,它们能够进行独立部署,并且必需自行管理数据存储系统。但这只能实现他们的整体目标中的一部分。Wills 在将整体分解为小部分的过程中受益匪浅,他提出了单一职责应用这一术语,专注于让服务保持适应性,并且因为服务足够小而容易理解。这种应用的一个特征在于,它有一个关键指标,可以用以衡量该应用是否完成了预定的任务。另一个特征是它们必须彼此隔离,不允许影响其它应用程序的性能。

Wills 在结语中表示,他看到一个优秀的团队如何创建出一个庞大的整体系统,但也看到了一个优秀的团队如何创建出由大量微服务所组成的系统。而他的聪明之处在于他更倾向于后者,这一点也使他感到十分自信。

查看英文原文 Microservices Are Conceptually Too Big

2015-03-29 08:502523
用户头像

发布了 428 篇内容, 共 200.8 次阅读, 收获喜欢 39 次。

关注

评论

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

【YashanDB知识库】如何限制用户session连接数

YashanDB

数据库 yashandb

【教程】第十一章 子任务 & 工时——化繁为简

NocoBase

开源 项目管理 低代码 教程 任务管理

Taro小程序开发性能优化实践

京东零售技术

taro

京东零售数据可视化平台产品实践与思考

京东零售技术

数据可视化

Python for 和 while 循环:掌握循环控制的基本操作

敲代码不忘补水

Python 科技 while循环 for in 计算机科学与技术

打造两轮差速机器人fishbot:从零开始构建移动机器人

芯动大师

ROS imu joint

华为云Flexus X实例部署安装HivisionIDPhoto一个轻量级的AI证件照制作算法

平平无奇爱好科技

华为云Flexus X实例部署安装HivisionIDPhoto一个轻量级的AI证件照制作算法

平平无奇爱好科技

基于华为云Flexus云服务器X实例搭建Linux学习环境

平平无奇爱好科技

华为云Flexus X实例MySQL性能加速评测及对比

平平无奇爱好科技

【双喜】矩阵起源子公司荣膺“2024上海市高成长百家”第一、 荣获上海市技术创新资金立项资助

MatrixOrigin

AI 技术创新 MatrixOrigin 矩阵起源 GenAI

云交易技术对接全景

京东零售技术

云交易

“慢”增长时代的企业数据体系建设:超越数据中台

京东零售技术

大数据

《计算机组成及汇编语言原理》阅读笔记:p82-p85

codists

华为云Flexus X实例云服务器详细操作教程

平平无奇爱好科技

直击面试!阿里技术官手码12W字面试小册在Github上爆火

Summer

Java 程序员 面试 架构师 大厂

Elasticsearch filter context 的实践案例

极限实验室

elasticsearch filter practice

Flexus X实例C#/.Net Core 结合(git代码管理、docker自定义镜像)快速发布部署-让你的项目飞起来~

平平无奇爱好科技

【YashanDB知识库】如何处理报错"UDT column batch insert" has not been implemented yet

YashanDB

数据库 yashandb

【YashanDB知识库】如何排查YMP报错:”OCI版本为空或OCI的架构和本地系统的架构不符“

YashanDB

数据库 yashandb

最新2025整理Java面试八股文,大厂必备神器

Summer

Java 程序员 面试 架构师 大厂

Python 数据类型详解:列表、字典、元组与集合的操作指南

敲代码不忘补水

Python 科技 数据类型 tuple 计算机科学与技术

多推理几步,生成式AI会变得更聪明吗?

JustYan

人工智能 大模型 生成式AI

ByConity实战指南:ELT测试深度解析

三掌柜

字节跳动

微服务的概念还是偏大_架构_Jan Stenberg_InfoQ精选文章