在进入 Cloud-Native 微服务的世界前, 我们必需要真正了解的一些事

我们总是从 Cloud-Native 微服务的文章中、演讲中, 看到、听到关于单体 (Monolithic) 的系统是如何的不易维护、不易快速的独立发布。Cloud-Native 微服务是如何的容易扩展、快速的独立发布、容易维护等等。

然而, 我想, 我们应从产品开发的视角, 认真且客观的看待 Cloud-Native 微服务与单体 (Monolithic) 的系统; 以避免我们从单体 (Monolithic) 系统的地狱走向 Cloud-Native 微服务的地狱。

  • Cloud-Native 微服务会不会取代单体 (Monolithic) 的系统?
    • 当然不会。
    • 而且是永远的不会。
  • 单体 (Monolithic) 的系统目前的问题,在 Cloud-Native 微服务会不会发生?
    • 当然会。
    • 太多的团队,转型到 Cloud-Native 微服务后,同时深陷单体 (Monolithic) 系统的地狱与 Cloud-Native 微服务地狱中。
  • Cloud-Native 微服务是为了解决单体上的问题?
    • 不能说不是,但当你这么想时,你就会有很大的概率做错事,而同时深陷 Cloud-Native 微服务地狱、单体 (Monolithic) 系统地狱中。

Cloud-Native 微服务最重要的思路是告诉我们:

软件可以不再只是 “系统”, 而是可以是 “服务”。

系统可以保证企业内的运作正常。

但,假如只是用系统的思维去构建直接为用户提供服务的系统,有时候是没问题的,但有的时候是, 版本的计划、开发,赶不上变化,变化赶不上ㄧ通电话的。

所以,我们要做些改变⋯

要做些改变, 并不是代表著我们要按着课本上的定义去做产品;去定义什么是单体 (Monolithic) 系统?什么是 Cloud-Native 微服务?

要做些改变, 我们应将架构区分出:

  • 不易变”、甚至是 “不可变”
  • “易变”、“常变”

根据架构上的 “变化” 的质量属性,将产品分成:

  • 那部分是 “系统”
  • 那部分又应该是 “服务”
图一

如图一所示, 产品团队先将产品识别出:

  • 核心 (Core) 的业务领域
  • 通用 (Generic) 类型的子业务领域
  • 支撑 (Support) 类型的子业务领域
图二

如图二所示, 产品团队与领域的业务专家, 再将各业务领域; 核心 (Core) 的业务领域、通用 (Generic) 类型的子业务领域、支撑 (Support) 类型的子业务领域; 中的 “不易变” 甚至是 “不可变” 与 “易变”、“常变” 的业务场景给区分出来。

  • 不易变” 甚至是 “不可变” 的业务场景, 将会构成产品的 “系统”
  • 易变”、“常变” 的业务场景, 将会构成产品的 “服务”

别忘了,有相当多的产品只要有 “系统” 就够了。

会不会有产品只有服务,微服务的实现?有的。但,相当、相当、相当的不建议这样的产品架构。

所以,Cloud-Native 微服务除了需关注团队的成员是否具备 Cloud-Native 微服务的关键技术外,更难的一点是:

  • 要花很多的时间识别 “系统”、 “服务”

然后,才能明白什么时候应该或不应该引入 Cloud-Native 微服务。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

所有人都说Python 简单易学,为何我觉得难?

记得刚学Python的时候,几乎所有人都说Python 简单易学,而对于编程零基础,只掌握Word和Excel的人来说,感觉真的好难。 学习之前网上的教材看了...

53670
来自专栏程序员互动联盟

白纸一张,如何玩转linux?

疑惑一 linux系列经典的书籍 入门篇 《LINUX权威指南》书不错,写的很全面也比较广,涉及的不深,做为入门书籍不错,可以比较全面的了解linux 。另外比...

37480
来自专栏从零开始学 Web 前端

简述C和C++的学习历程

总是被问到,如何学习C和C++才不茫然,才不是乱学,想了一下,这里给出一个总的回复。  一家之言,欢迎拍砖哈。 1、可以考虑先学习C. 大多数时候,我们...

13820
来自专栏二进制文集

《代码大全》读书笔记

早就听说过这本书,但是一直没有勇气读。一方面是因为书太厚,另一方面听说是十几年前的书就没有了兴趣。

25440
来自专栏云时之间

智能体结构

智能体的结构 迄今为止我们通过描述行为—在任何给定的感知序列下采取的行动—讨论了智能体,现在我们不得不将知难而进,去讨论智能体内部是如何工作的,AI的任务是设...

35270
来自专栏IT派

7 月编程语言指数榜:Python 与 Java 逐渐拉开差距

PYPL 已发布7月编程语言指数榜,Python 在今年5月首次超越 Java 拿下榜首位置后,保持上涨趋势,正逐渐与 Java 拉开差距。

8810
来自专栏编程

C和C加加的学习过程总结,内有实用学习路线

总是被同学们问到,如何学习C和C++才不茫然,才不是乱学,想了一下,这里给出一个总的回复。 一家之言,欢迎拍砖哈。 1、可以考虑先学习C. ? 大多数时候,我们...

24760
来自专栏瓜大三哥

HLS lesson1-软件工程师眼里的FPGA架构

Vivado HLS 国内目前也是正在兴起,就我所知目前比较好的两家是华为和展讯两家ESL部门了,这是一门加速硬件设计的神器! 1.Vivado HLS的设计...

27050
来自专栏腾讯大讲堂的专栏

Steve Boswell:The Future of Wearable Technologies

本期,讲堂君接着跟大家同步跟分享11月10日WE大会视频。 第十期分享青蛙设计亚太区的总经理Steve Boswell在WE大会上分享的关于《The Futur...

20060
来自专栏PPV课数据科学社区

数据科学中应该学习哪些语言?

? 简评:原始的数据科学是劳动密集型活动,但当你会用适合的语言进行工作时,数据科学应该是非常智能有趣的工作,会让你得到一些不容易看到的结论。 一般来说,数据科...

31260

扫码关注云+社区

领取腾讯云代金券