2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

MicroXchg 柏林座谈会:微服务的成熟度

  • 2018-04-02
  • 本文字数:1781 字

    阅读完需:约 6 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

MicroXchg 2018 柏林微服务座谈会上,一个专家组探讨了微服务的现状,并分析了炒作期是否已经结束,微服务是否已经成为一项成熟的技术。座谈会由 Susanne Kaiser 主持,他在讨论开始时提了一个问题,使用微服务需要具备什么前提条件。由 Stefan Tilkov Chris Richardson Elisabeth Engel Daniel Bryant 组成的专家组指出,重要的是要知道为什么希望使用微服务架构风格。有迁移需求吗?微服务主要是为了解决问题,而不是一项高端的新技术。

  • Bryant 是一名独立顾问兼 InfoQ 编辑,对于更多的技术前提,他援引了 Martin Fowler Phil Calçado 的说法,但他重点强调了理解自己的领域模型的重要性。对于一家并不真正地知道自己在构建什么的初创企业,他会选择效率最高的技术,而这通常不是微服务。
  • Engel 是来自 Gutefrage 的 UX 和软件工程师,她指出,如果当前的架构没有让你觉得痛苦,那么也许你应该继续使用。
  • Richardson 是 Eventuate 的创始人,他指出,如果当前的架构拖了你的后腿,那么这是迁移到微服务架构的好时机。
  • Tilkov 是 INNOQ 的联合创始人,他指出,没有微服务也可以构建出优秀的系统,甚至,有时候使用单体可以构建出更好的软件。

接下来,Kaiser 问道,采用微服务的最大障碍是什么以及如何克服它们。

  • Tilkov 认为,一个主要的障碍是你把服务边界或规模弄错了。这改起来太难,团队往往会接受最初的实现,即使那不是很棒。
  • 在 Richardson 看来,采用微服务时的根本问题是如何分解成一个有意义的服务集。另一方面,当和有几百万行代码的单体应用程序打交道时,开发人员每天都要面对那种复杂的情况。而和单个服务打交道就简单多了。
  • Engel 认为复杂度是最难的部分。在她看来,成功的关键是要有东西让开发人员查阅、理解和使用。
  • Bryant 指出,我们一定不能忘记和微服务有关的所有技术,而且,设计和构建系统的方法和架构本身一样重要。

在探讨引入微服务后前端面临的挑战时,Engel 指出,应用程序的用户仍然将其视为一个东西,因此,你必须保证,当内容来自不同的后端服务时,显示要保持一致。一项挑战是,前端技术不是为微服务后端而构建的。通常,其解决方案使用像了 iframe framesets 这样的旧技术,为此,就需要一些基于 JavaScript 的新技术。Tilkov 则指出,架构师必须更多地关注前端,认识到它的重要性。在他看来,前端通常比后端更重要。

接下来的问题比较笼统,就是微服务是否已经成为构建企业级应用程序的首选方式?

  • Richardson 和 Tilkov 认为,微服务不应该成为第一选择,他们强调,架构必须取决于上下文。对于单个的小型团队,单体几乎总是更好。涉及多个团队时,你可能应该考虑下某种形式的服务分解。
  • Engel 喜欢先准备一个单体架构,然后留有接口,在需要的时候可以分解。
  • 在 Bryant 看来,演化架构非常有意义,有利于将来的架构迁移。

除了微服务外,Kaiser 还问,无服务器架构是否是构建系统的下一步方案以及它们如何与微服务搭配使用。

  • Richardson 认为,无服务器和微服务互不相关,在他看来,无服务器是一种微服务部署方式——是容器将来的替代方案。
  • 在 Tilkov 看来,无服务器是完美的部署选项;他认为,从今五年之后,我们将不再部署 Kubernetes 集群。不过,他有一个问题,就是他不清楚如何构建一个由其中 100 个函数组成的大型系统。他认为,我们需要某种东西把它们聚合成一个更大的单元,并和仅使用数据库触发器调用存储过程构建大型系统进行了比较。
  • Bryant 提到,类似 Camunda 这样的新技术是使用领域专属语言(DSL)描述函数交互的业务流程管理器(BPM)的下一次进化。它们允许业务函数组合成业务流程,可能是把简单的高度事件驱动的函数组装成工作流的一种方式。

当问到,微服务是否会退潮,并进化成其他东西时,专家组一致认为,我们总是需要缩小规模、降低复杂度。技术和平台会进化,但微服务中边界这个核心理念以及看问题的内外视角很长一段时间都不会变。Bryant 认为,更标准的函数会被放入平台里,让开发人员可以更多地关注业务——也许,在不远的将来,软件工程师将和业务人员一起参加这个大会。

在近日举行的 QCon 伦敦 2018 大会上,有一个座谈会讨论了微服务和分布式系统的未来

大会演讲已经录音;有的已经发布,后续还会有更多内容。

查看英文原文 The Maturity of Microservices: MicroXchg Berlin Panel Discussion

2018-04-02 19:001555
用户头像

发布了 1008 篇内容, 共 444.3 次阅读, 收获喜欢 346 次。

关注

评论

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

安全事件溯源分析场景

智维数据

大数据 数据可视化 智能运维 应用交付 流量分析系统

nCompass为医疗行业信息安全穿上“铠甲”

智维数据

大数据 数据可视化 智能运维 应用交付 流量分析系统

30+亮眼指标,看看2022年嘉为蓝鲸的逆势创新之路!

嘉为蓝鲸

自动化运维 嘉为蓝鲸 2022大事件

MySQL:如何给字符串加一个高效索引?

程序员拾山

MySQL

华为云发布冷启动加速解决方案:助力Serverless计算速度提升90%+

华为云开发者联盟

Serverless 华为云 冷启动 Cold Start 进程级快照

比Postman更懂中国程序员,Apipost真香!

不想敲代码

接口测试 API 研发管理工具

在Spring异步线程池中自动传递上下文,这样写轻松又方便

程序员拾山

Spring Boot #java

Lattice - 模式级复用的能力定义

原力在线

架构 lattice 高可扩展

如何让Java编译器帮你写代码

京东科技开发者

后端 编译器 java; 编译器原理 企业号 1 月 PK 榜

深入理解跨域和最佳实践分享

Crazy Urus

面试 前端 HTTP 跨域

嘉为蓝鲸IT服务管理解决方案入选2022广东省政务服务创新解决方案

嘉为蓝鲸

自动化运维 嘉为蓝鲸 IT服务管理中心

架构训练营第10期模块5作业

Geek_4db2d5

栉风沐雨 韧性前行 | 2022年九科大事件

九科Ninetech

RPA 超自动化 流程挖掘

从人工分析到智能分析,流量分析如何快速上手?

智维数据

智能运维 应用交付 可视化数据 流量分析系统

Golang如何优雅接入多个远程配置中心?

王中阳Go

golang 高效工作 学习方法 后端 viper

深度学习快速上手——基于 MegEngine 的 LeNet 快速训练与部署

MegEngineBot

深度学习 开源 MegEngine

谈谈enabled_shared_from_this

SkyFire

c++ 智能指针

“零信任”下的防火墙策略管理

智维数据

大数据 防火墙 数据可视化 智能运维 运维安全

树与二叉树深度剖析(二)

C++后台开发

数据结构 算法 二叉树 红黑树 Linux服务器开发

中国国际电子商务中心与易观分析联合发布:2022年3季度全国网络零售发展指数同比增长1.5%

易观分析

零售 电商

DAPP/去中心化系统开发流程解析方案(成熟理念)分析结果

I8O28578624

软件测试/测试开发 | 接口自动化测试中,文件上传该如何测试?

测试人

软件测试 自动化测试 接口测试 测试开发 文件上传

启科 QuTrunk+Runtime+QuSaaS+亚马逊云科技量子计算编程实战

亚马逊云科技 (Amazon Web Services)

Python 量子计算 Amazon EC2 Hero 专栏 Amazon Braket

设计模式之装饰者模式

程序员大彬

Java 设计模式

Databend 内幕大揭秘第二弹 - Data Source

Databend

流程的作用是服务于业务,所有不能被用来帮业务部门好好打粮食的流程,都不是好流程!

CTO技术共享

流程的价值一,固化业务的最佳实践!

CTO技术共享

人人都在聊的云原生数据库Serverless到底是什么?

华为云开发者联盟

数据库 Serverless 云原生 华为云 GaussDB

MicroXchg柏林座谈会:微服务的成熟度_语言 & 开发_Jan Stenberg_InfoQ精选文章