Open fenixsoft opened 4 years ago
成年人全都要
不仅增加了架构者的要求,同时也增加了“螺丝钉”升级的难度。
自由的气息
@xiaoming688 成年人全都要
绿帽好拼
技术架构者的第一职责就是做决策权衡,有利有弊才需要决策,有取有舍才需要权衡,如果架构者本身的知识面不足以覆盖所需要决策的内容,不清楚其中利弊,恐怕也就无可避免地陷入选择困难症的困境之中。
微服务时代充满着自由的气息,微服务时代充斥着迷茫的选择。 这句话总结到位!
微服务时代充满着自由的气息,微服务时代充斥着迷茫的选择。这个写的太好了吧,深有体会呀!
如果是一些基础服务,比如用户账号信息查询、商户账号信息查询,这类应该是期望永久存在的?
一个设计良好的服务,应该是能够报废的,而不是期望得到长存永生。假如系统中出现不可更改、无可替代的服务,这并不能说明这个服务是多么的优秀、多么的重要
阿里的中间件也因微服务而起,中间件带来巨大好处的同时,也带来巨大的依赖痛苦
@qlzx 微服务时代充满着自由的气息,微服务时代充斥着迷茫的选择。这个写的太好了吧,深有体会呀!
都是这么过来的呀。。。。贼惨,又迷茫 又向往。。。。
发展历史:
《Microservices: A Definition of This New Architectural Term》列举了微服务的九个核心的业务与技术特征:
微服务 VS SOA:
微服务丢掉了 SOA 的强标准,换来了自由。自由的代价是工程师需根据业务情况选择适合的技术,过程中会犯错。微服务带来自由,也带来迷茫。 微服务只是一种思想,它丢掉了 SOA 的包袱,却没带来什么具体的东西。RPC 等分布式的问题重新出现,交由社区解决;一时间,百花齐放,百家争鸣。
有利弊才要权衡,有取舍才要决策。
联想:全家桶式框架 (Spring Cloud) VS 无主见框架 (Koa.js)。
@perrychann 发展历史:
- 起初,微服务是作为 SOA 的一种补救方案被提出的;该阶段的微服务并不起眼;
- 2012-2014 年,开始有人独立定义微服务(抛开 SOA)。
《Microservices: A Definition of This New Architectural Term》列举了微服务的九个核心的业务与技术特征:
- 围绕业务能力构建:强调技术架构为业务服务,与业务发展阶段匹配;
- 分散治理:允许技术异构。对应团队为其服务的质量负责,同时允许该团队根据自身情况选择语言/框架等异构技术;
- 通过服务来实现独立自治的组件:“服务”而非“组件/类库”,因前者隔离和自治能力好;
- 产品化思维:把“服务”看成“产品”,关注服务的整个生命周期;
- 数据去中心化:不同服务关注同个数据的重点/视角不同,使用统一的数据容易耦合或相互限制;
- 强终端弱管道:管道指通信机制;管道提供基本的通信机制即可,特殊的能力需求由终端/业务服务定制化解决;
- 容错性设计:承认“出错无法避免”,做好自动化备案机制(健康检查、熔断、隔离、自动恢复等);
- 演进式设计:无永生,承认会报废淘汰;做好生命周期管理,各自独立、自治,能更好地反脆弱;
- 基础设施自动化:更多的服务,更频繁的构建、发布、运维;用 CI、CD 等自动化来支持。
微服务 VS SOA:
- 相同:面向服务;
- 不同:强约束 VS 软指导;强一致 VS 自由;规范标准 VS实践标准。
微服务丢掉了 SOA 的强标准,换来了自由。自由的代价是工程师需根据业务情况选择适合的技术,过程中会犯错。微服务带来自由,也带来迷茫。 微服务只是一种思想,它丢掉了 SOA 的包袱,却没带来什么具体的东西。RPC 等分布式的问题重新出现,交由社区解决;一时间,百花齐放,百家争鸣。
有利弊才要权衡,有取舍才要决策。
联想:全家桶式框架 (Spring Cloud) VS 无主见框架 (Koa.js)。
课代表👍🏻
@cooljacket 如果是一些基础服务,比如用户账号信息查询、商户账号信息查询,这类应该是期望永久存在的?
一个设计良好的服务,应该是能够报废的,而不是期望得到长存永生。假如系统中出现不可更改、无可替代的服务,这并不能说明这个服务是多么的优秀、多么的重要
“账号信息查询”、“商户信息查询”等等都是功能性需求,不是服务。同一个功能可以有不同的实现方案,实现方案对应的才是服务。账号查询功能必不可少,不代表账户查询服务不可更改,随着业务和技术的发展,完全有可能使用新的技术开发新的服务重新实现这个功能。
我不再害怕生病,我也一定会生病,但我完全可以自愈
总结:和SOA比起来微服务非常的灵活,没有复杂的标准,但是对于架构者来说,将架构能力要求提升到了史无前例的程度,架构者需要做权衡,做取舍。微服务有以下特点: 1、围绕业务能力构建,有什么样的规模、结构、能力的团队就会产生什么样规模、结构、能力的架构。 2、分散治理:各个团队负责自己的服务。 3、通过服务实现独立自治的组件。 4、产品化思维:产品不但迭代 4、数据去中心化:数据不在保存在一起 5、强终端弱管道:通过restfule实现通信 6、容错性设计:正视服务总会出错,做好服务的检测、熔断、恢复和重新联通。 7、渐进式设计:承认服务会被淘汰 8、基础设施自动化
把微服务写的生动形象
https://icyfenix.cn/architecture/architect-history/microservices.html