如何落地业务建模
徐昊
Thoughtworks 中国区 CTO
24830 人已学习
新⼈⾸单¥68
登录后,你可以任选2讲全文学习
课程目录
已完结/共 32 讲
如何落地业务建模
15
15
1.0x
00:00/00:00
登录|注册

19|如何将模型实现为微服务?

产品化的服务带来的挑战
将8X Flow模型实现为微服务
使用RESTful API描述微服务API
微服务还是伪微服务
什么是微服务
思考题
微服务架构风格

该思维导图由 AI 生成,仅供参考

你好,我是徐昊。今天我们来聊聊如何将 8X Flow 模型映射为微服务。
经过 14-16 节的学习,我们已经可以使用合同上下文、履约上下文和领域上下文对业务进行建模了。那么当我们希望在云平台上将业务模型实现为软件系统时,就需要将合同上下文、履约上下文和领域上下文作为系统天然的边界,并将它们放置到不同的弹性边界中,从而在满足业务扩展与需求变化的前提下,尽可能地降低成本。
有了弹性边界,我们自然很容易地想到可以将不同弹性边界内的内容,实现成微服务架构风格(Microservices)。那么今天我们就来讲一讲,如何将 8X Flow 的模型实现为微服务架构风格。

微服务还是伪微服务?

在开始讨论这个问题之前,我们首先要重申一下什么是微服务。关于微服务,现在有诸多迷思,以及很多看起来像是微服务,但实则南辕北辙的伪微服务风格。
在 James Lewis 和 Martin Fowler 的名作《微服务》中,将微服务定义为一种架构风格,并总结了它的九种特质:
通过服务实现组件化;
服务按照业务能力划分组织;
服务以产品而不是项目研发;
逻辑集中在服务中,编排简单;
每个服务自主决策(技术栈、语言等等);
每个服务自主管理数据(不强制使用统一数据源);
基础设施自动化;
将服务失败当作常态纳入设计考量;
演进式设计(不求一步到位)。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

将8X Flow模型映射为微服务的方法是本文的核心内容。文章强调了在云平台上实现业务模型为软件系统时的重要性,并提出了将不同弹性边界内的内容实现成微服务架构风格的想法。作者介绍了微服务的九种特质,包括通过服务实现组件化、服务按照业务能力划分组织、以产品而不是项目研发等。此外,文章详细探讨了如何使用RESTful API描述微服务API,以及将8X Flow的模型实现为微服务架构风格的方法。通过分布式超媒体描述由微服务构成的企业内生态,以及将8X Flow的模型转化为微服务,为读者提供了有价值的技术指南。文章最后提出了思考题,引发读者对产品化服务带来的挑战进行深入思考。整体而言,本文对于想要了解如何将业务模型实现为微服务的读者来说是一份有价值的技术指南。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《如何落地业务建模》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(13)

  • 最新
  • 精选
  • Jxin
    回答课后题: 产品化意味着要有打磨产品的意识,从以下角度展开yy。 1.从需求角度。做产品化就得去思考和挖掘产品背后的目标用户是谁,以及他的真实诉求是什么。想明白解决谁的什么问题,对自己的产品做合理的定位。拒绝平均化,不做满足一切的产品。(讲人话就是主动去定义自己的产品,发现支点找准边界) 2.从服务的角度。服务是产品重要的组成部分,产品化意味着我们也需要具备与之匹配的服务能力。比如,成立答疑小组,制定和监管答疑考评制度与指标。将经验变成流程,流程变成工具,沉淀知识库,让服务质量从依赖个人英雄转向依赖团队沉淀。 3.从运营角度。现在的软件服务相对以往有个很大的转变,从交付式产品(卖软件)向运营式产品转型。而运营式产品,交付只是开始,随后需要一天不停的成长直至死亡。这就需要我们的软件产品具备快速支持迭代的扩展性(1~10),我们的开发团队具备抽血重构的能力与魄力(10~1)。 4.从定价角度。一个产品怎么可以没有定价(哪怕你是内部产品也要有)。而且我们不仅要给产品设定价格,还要赋予它价格歧视的特性。以内部产品为例,任何需求不管是使用已有能力的调用还是需要新特性支持的迭代,都需要需求方证明能带来达标的价值(价格)才允许接入/排期。对于核心系统与旁支系统,提供不同限流阀值(价格歧视,同等价格买到的量不同)。对于战略目标提供优先排期的特权(价格歧视,同等价格支持的优先级不一样)。

    作者回复: nice

    2021-08-15
    2
    13
  • keep_curiosity
    产品化要更多考虑不同版本之间的兼容性

    作者回复: 因为会对版本并行 所以不太需要

    2021-08-14
    3
    2
  • 马若飞
    服务间通信是否可以认为grpc之流的IDL比REST是更好选择?毕竟也跨语言且有一定性能优势。如果说不如REST的就是离be the web 远点

    作者回复: 效率vs开放 rpc渐进消费不是太容易

    2021-09-29
  • 云师兄
    行业内做伪微服务的人多,而做真微服务的人少。很多问题不值得去解决,因为没有将问题定义清楚。而一旦明白什么是真微服务,大多问题都变得不言自明。👍
    2021-08-17
    2
  • aoe
    原来我一直在傻微服务里
    2022-09-19归属地:浙江
    1
  • jumpfox
    产品化的服务意味着要先有产品。在有追求的人心目中,产品相当于自己的事业或孩子,找到生态位,定义它的价值、边界,形成可行的发展规划(包括版本计划),配置合适的资源在有效的管理之下逐步发展。用内部通俗的一句话来说,就是要管杀还要管埋,不是做一阵子就甩手给运维团队或他人(传统行业企业内部这种情况尤其严重)。
    2022-12-02归属地:中国香港
  • 邓志国
    微服务产品化后。如果前端应用需要某些特性,可能就需要这个服务的团队去做修改、发布后才能继续。这样增加了交付周期,降低团队敏捷性。
    2022-07-20
  • 邓志国
    产品化的服务带来的挑战。需要服务保留旧版本特性,这样如果设计不合理重构的时候,可能需要保留很久旧逻辑,需要有一个逐步淘汰旧版本的机制。
    2022-07-20
  • Halo
    傻服务,不太明白。 我们是物流服务,对接不同的第三方物流供应商。 而我们正在做的就是把所有对接流程都标准化、数据化,然后通过编排来自动对接。 这种是傻服务吗?
    2022-04-25
    1
  • 周建勇
    通过本篇文章,我有个一个疑问想问一下老师: 微服务是以服务为边界,可以自行选择自己的语言,独立维护自己的数据源。有个问题,就是产品的需求当涉及到多个微服务团队来支撑产品实现的时候,什么样的方式能高效的完成一次次的需求评审和产品迭代呢?
    2022-03-10
收起评论
显示
设置
留言
13
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部