前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >微服务如何划分

微服务如何划分

作者头像
方丈的寺院
发布于 2022-04-12 05:56:34
发布于 2022-04-12 05:56:34
1.3K0
举报
文章被收录于专栏:方丈的寺院方丈的寺院

摘要

作为团队架构师/技术负责人你该如何进行微服务的划分呢?在以前的文章中讨论过这个话题,可落地的DDD(4)-如何利用DDD进行微服务的划分(2)[1],最近结合在不同的开发团队实践,又有了新的思考,相比较之前的基于DDD会更加全面可落地,也欢迎大家留言讨论。

为何要划分微服务

微服务架构被广泛用于互联网公司,其优势在于每个服务足够小,相互之间具备隔离性。配合一些基础设施,能够使得需求快速迭代上线。但是每个服务的粒度应该多大呢,服务之间的关系应该是怎样的呢?

首先我们来探讨一下微服务划分的目标。微服务划分涉及到两个对象,一个是微服务,一个是开发人员。所以目标是高效有序将微服务及开发人员组织起来。

如何衡量有序呢?

1.职责清晰2.相互间的依赖关系清晰 一个无序的微服务调用,会陷入混乱地狱。

因此制定一些标准

横向:按照业务流程拆,业务流程反映的是数据流程,数据从上游流下下游。上游需要和下游解耦,上游不可通过服务间调用下游。下游可以。

纵向:按照技术拆分,由上到下分为4层,上层可以调用下层,同级可以相互调用,下层强制不能调用上层。

1.应用系统 面向各个端,比如pc端,面向用户的,面向小二的。app端。属于前端应用。

2.核心领域 整个系统的核心业务,与业务紧密相连。支撑业务发展。

3.基础能力 从核心领域中下沉抽象出来的更通用的服务,不只是服务当前业务。也服务于公司其他业务。

4.依赖系统 一些通用的公共模块以及与其他兄弟部门的服务依赖。

如此调用关系比较清晰了。

如何衡量高效呢?

对于服务是性能高且稳定 对于开发人员是效率高且有技术成长空间

业务量上来一个,后端的很多工作就是围绕着性能和稳定,微服务的划分也深深影响着。因此服务划分还会按照

1.基于迭代频次 变更是引发故障的主要原因,因此如果一个服务是稳定的,我们可以把他单独拆分为一个微服务,这样在项目快速迭代时,不会影响已有功能。不需要投入太多回归测试时间。

2. 基于可靠性 核心服务需要重点保障,流量高的应用和流量低的应用稳定性要求也不一样。可以将核心服务,流量高的应用单独拆出来,这样使得核心服务功能逻辑简单,依赖减少,存储独立。稳定性得到极大保障。

3.基于开发人员 架构活动不仅要关心机器,还要关心人。开发人员的工作效率极大影响了业务的交付速度和质量。一个微服务需要一个唯一owner和2-3个开发人员(owner也参与开发)。owner是第一责任人,负责整个应用的代码质量,服务稳定性。2-3个人负责开发一个系统,不会有单点,在人员流动的情况能够进行相互补位,同时相互之间可以进行技术方案深度讨论,能够应对一定级别的复杂需求。人数不宜超过4个人,人太多,在同一个应用中开发不同的需求,可能每天都要处理不同的分支之间冲突,多套环境进行测试,效率比较低。同时人数太多,讨论效率也比较低。此外需要尽量保证每个中高级别的开发者都是一个微服务的owner,有自己的一块自留地,在需求承接之外,能够在做一些技术相关的开发工作。

当然高效和有序并不总是统一的,有时候我们需要去做架构取舍。

如何划分

举个例子,比如你公司是做在线教育的,你入职负责开发公司的客户管理系统(CRM,下面统一用CRM代替)业务。首先你需要从全局分析CRM这块业务。

流程

CRM按照流程划分主要是获客-跟进-转化-签约-服务。按照领域进行抽象,可以分为售前,售中,售后。

服务

按照服务来划分,主要有投放服务、营销活动服务、呼叫服务、客户管理、日程管理、消息提醒、订单、合同、工单、销售效果分析。

功能

每个服务有更细粒度的功能。比如 投放服务:提供多渠道投放方式,百度,头条,微信等,投放分析。营销活动服务:营销落地页,开学季优惠活动,抽奖活动,优惠券活动。客户管理服务:客户档案,销售机会,销售看板。其他不再赘述。

人员

目前业务还是在初级阶段,负责这块的开发总共有6人,3个后端,2个前端,一个测试。

服务划分

基于以上考虑,服务划分为以下6个服务。

考虑到只需要一个pc工作台,市场人员、销售人员都用同一个工作台,应用系统这一层不需要。然后核心领域分为售前(市场人员)、售中(客服,销售)、售后(客服,财务)三个服务,每个开发负责一个服务。同时抽象出3个通用基础能力服务,每个开发负责一个。

1. 公司内部的账号系统 提供统一的账号管理能力,组织架构能力,权限管理能力。

2. 服务系统 通用的一些工具能力,比如隐私号、坐席呼叫、待办、消息提醒等能力。这些并不属于同一个领域,但是考虑到当前阶段,服务不宜拆分的过细。所以都放在同一个服务中。

3.数据分析 各个模块都需要数据分析,所以抽象出一个单独能力,统一处理。

演进

经过半年的发展,业务蒸蒸日上,需求越来越多。人员也在逐步扩展。后端人员扩大到了10人。原有的微服务架构逐渐不太适应。因此需要进行适当调整。经过分析,当前业务重点是

  1. 售前 两个核心指标一个是有效线索量,一个是单个线索成本

2. 售中 售中决定了线索能否转化为订单。目前对应的运营人员最多,客服100人,销售300人。提高运营人员效率是重点。

3. 售后 工单响应时长

售前这块基本系统功能已搭建完毕,通用的营销工具已经有了,市场人员可以进行组件组合,搭建不同营销页,然后根据投放效果进行适当调整。服务比较稳定了,所以这块有2个开发即可。主要负责营销工具开发。

售后相对也比较稳定了,2个开发。售中是重点,需求迭代也比较多,6个开发。之前只有一个微服务,开发效率比较低了。需要进行适当拆分。增加3个服务

1.应用系统增加一个移动工作台 因为销售人员经常在外部,所以需要移动端,而移动端通常是销售管理活动中的操作类功能。pc端则是查看分析。

2.核心领域层增加一个售中服务域

售中拆成2个服务,一个是线索域,主要围绕着公海、私海,线索推荐。另外一个是服务域,是面向销售日常活动的。如活动,拜访,小记,客户标签等。

3 .基础能力层增加一个流程引擎服务 各个角色人员需要经常发起审批,流程编排,所以新构建一个基础能力,流程引擎。能够服务于整个crm业务,同时如果公司其他业务需要,可以提供给其他业务使用。

参考文章

http://www.woshipm.com/pd/3983693.html

[1] 可落地的DDD(4)-如何利用DDD进行微服务的划分(2): https://blog.csdn.net/FS1360472174/article/details/90738148?spm=1001.2014.3001.5501

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 方丈的寺院 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
干货 | 用户画像在携程商旅的实践
用户画像这一概念最早源于交互设计领域,由交互设计之父Alan Cooper提出。其指出用户画像是真实用户的虚拟代表,是建立在真实数据之上的目标用户模型。具体而言,在互联网用户分析领域,用户画像可以简单描述为用户信息标签化,即通过收集并分析用户的社会属性、生活习惯、消费偏好等各维度的数据,从而抽象出用户的全方位多视角的特征全貌,最终就是让用户画像比用户更了解自己。
携程技术
2020/07/20
2.6K0
干货 | 携程高可用架构的演变和迭代——应用开发者视角
作者简介 周源,携程技术中心基础业务研发部高级研发经理,从事软件开发10余年。2012年加入携程,先后参与支付、营销、客服、用户中心的设计和研发。 前言 携程的架构经历了长期的演变和迭代,其中多个产品已经历了5次以上更新换代。每次迭代都有其背景和出发点,都解决了前一个版本的痛点又不可避免地带来一些新的问题或遗漏一些问题。这种迭代过去、现在,以及将来将一直持续,其中经历可圈可点,值得技术人细细品味。 本文会首先从总体介绍携程架构的组成,然后以发布系统、配置管理和SOA三个实际案例,详细介绍架构迭代,最后以Us
携程技术
2018/03/16
1.2K0
干货 | 携程高可用架构的演变和迭代——应用开发者视角
干货 | 携程实时用户行为系统实践
作者简介 陈清渠,毕业于武汉大学,多年软件及互联网行业开发经验。14年加入携程,先后负责了订单查询服务重构,实时用户行为服务搭建等项目的架构和研发工作,目前负责携程技术中心基础业务研发部订单中心团队。 携程实时用户行为服务作为基础服务,目前普遍应用在多个场景中,比如猜你喜欢(携程的推荐系统),动态广告,用户画像,浏览历史等等。 以猜你喜欢为例,猜你喜欢为应用内用户提供潜在选项,提高成交效率。旅行是一项综合性的需求,用户往往需要不止一个产品。作为一站式的旅游服务平台,跨业务线的推荐,特别是实时推荐,能实际满足
携程技术
2018/03/16
1.6K0
干货 | 携程实时用户行为系统实践
携程:日处理20亿数据,实时用户行为架构实践
携程实时用户行为服务作为基础服务,目前普遍应用在多个场景中,比如猜你喜欢(携程的推荐系统)、动态广告、用户画像、浏览历史等等。
搜云库技术团队
2019/10/18
7690
干货 | 每天TB级数据处理,携程大数据高并发应用架构涅槃
互联网二次革命的移动互联网时代,如何吸引用户、留住用户并深入挖掘用户价值,在激烈的竞争中脱颖而出,是各大电商的重要课题。通过各类大数据对用户进行研究,以数据驱动产品是解决这个课题的主要手段,携程的大数据团队也由此应运而生;经过几年的努力,大数据的相关技术为业务带来了惊人的提升与帮助。 以基础大数据的用户意图服务为例,通过将广告和栏位的“千人一面”变为“千人千面”,在提升用户便捷性,可用性,降低费力度的同时,其转化率也得到了数倍的提升,体现了大数据服务的真正价值。 在新形势下,传统应用架构不得不变为大数据及新
携程技术
2018/03/16
3.2K0
干货 | 每天TB级数据处理,携程大数据高并发应用架构涅槃
干货 | 携程实时大数据平台实践分享
编者:本文作者为携程大数据平台负责人张翼。张翼浙江大学硕士毕业,2015年初加入携程,主导了携程实时数据计算平台的建设,以及携程大数据平台整合和平台技术的演进。进入互联网行业近10年,从事大数据平台和架构的工作超过6年。 今天给大家分享的是携程在实时数据平台的一些实践,按照时间顺序来分享我们是怎么一步一步构建起这个实时数据平台的,目前有一些什么新的尝试,未来的方向是怎么样的,希望对需要构建实时数据平台的公司和同学有所借鉴。 为什么要做数据平台 首先先介绍一下背景,为什么我们要做这个数据平台?其实了解携程的
携程技术
2018/03/16
2.5K0
干货 | 携程实时大数据平台实践分享
用户画像--《美团机器学习实践》笔记
用户模型和用户画像的区别。用户模型是指真实用户的虚拟代表,在真实数据的基础上抽象处理的一个用户模型,是产品在描述用户需求时使用的概念。用户画像是从海量的用户数据中,建模抽象出每个用户的属性标签体系,这些属性通常要具有一定的商业价值。
languageX
2023/02/01
5.8K0
日处理20亿数据,实时用户行为服务系统架构实践
携程实时用户行为服务作为基础服务,目前普遍应用在多个场景中,比如猜你喜欢(携程的推荐系统)、动态广告、用户画像、浏览历史等等。 以猜你喜欢为例,猜你喜欢为应用内用户提供潜在选项,提高成交效率。旅行是一项综合性的需求,用户往往需要不止一个产品。作为一站式的旅游服务平台,跨业务线的推荐,特别是实时推荐,能实际满足用户的需求,因此在上游提供打通各业务线之间的用户行为数据有很大的必要性。 携程原有的实时用户行为系统存在一些问题,包括:1)数据覆盖不全;2)数据输出没有统一格式,对众多使用方提高了接入成本;3)日志处理模块是web service,比较难支持多种数据处理策略和实现方便扩容应对流量洪峰的需求等。 而近几年旅游市场高速增长,数据量越来越大,并且会持续快速增长。有越来越多的使用需求,对系统的实时性,稳定性也提出了更高的要求。总的来说,当前需求对系统的实时性/可用性/性能/扩展性方面都有很高的要求。 一、架构 这样的背景下,我们按照如下结构重新设计了系统:
Java高级架构
2018/09/29
8620
日处理20亿数据,实时用户行为服务系统架构实践
干货 | 携程平台化常态化数据治理之路
瑞强,携程高级大数据开发工程师,负责集团客户数据平台、数据资产管理平台的开发和数据治理的推进。
携程技术
2021/06/24
7080
干货 | 携程平台化常态化数据治理之路
用户画像系统架构——从零开始搭建实时用户画像(二)
​ 在《什么的是用户画像》一文中,我们已经知道用户画像对于企业的巨大意义,当然也有着非常大实时难度。那么在用户画像的系统架构中都有哪些难度和重点要考虑的问题呢?
大数据流动
2020/05/26
4.8K0
日处理20亿数据,实时用户行为服务系统架构实践
携程实时用户行为服务作为基础服务,目前普遍应用在多个场景中,比如猜你喜欢(携程的推荐系统)、动态广告、用户画像、浏览历史等等。 以猜你喜欢为例,猜你喜欢为应用内用户提供潜在选项,提高成交效率。旅行是一项综合性的需求,用户往往需要不止一个产品。作为一站式的旅游服务平台,跨业务线的推荐,特别是实时推荐,能实际满足用户的需求,因此在上游提供打通各业务线之间的用户行为数据有很大的必要性。 携程原有的实时用户行为系统存在一些问题,包括:1)数据覆盖不全;2)数据输出没有统一格式,对众多使用方提高了接入成本;3)日志处
CSDN技术头条
2018/02/12
1.4K0
日处理20亿数据,实时用户行为服务系统架构实践
用户画像基础
导读:在互联网步入大数据时代后,用户行为给企业的产品和服务带来了一系列的改变和重塑,其中最大的变化在于,用户的一切行为在企业面前是可“追溯”“分析”的。企业内保存了大量的原始数据和各种业务数据,这是企业经营活动的真实记录,如何更加有效地利用这些数据进行分析和评估,成为企业基于更大数据量背景的问题所在。随着大数据技术的深入研究与应用,企业的关注点日益聚焦在如何利用大数据来为精细化运营和精准营销服务,而要做精细化运营,首先要建立本企业的用户画像。
架构师修炼
2020/08/06
4.3K0
用户画像基础
干货 | 携程数据血缘构建及应用
cxzl25,携程软件技术专家,关注大数据领域生态建设,对分布式计算和存储、调度等方面有浓厚兴趣。
携程技术
2021/09/14
5.2K0
干货 | 携程数据血缘构建及应用
干货 | 携程酒店AWS实践
随着携程海外酒店业务的发展,遍布全球的海外供应商与携程总部IDC之间的数据传输量快速增长。技术上,这种日益增长的数据量对跨境网络专线的带宽、延迟等提出了更高的要求;业务上,由于当前有限的跨境网络专线资源对业务处理效率及用户体验也造成了一定的影响;成本上,跨境网络专线作为一种昂贵的资源,通过单纯的专线扩容又会给IT成本造成巨大压力。所以我们开始思考是否可以通过公有云结合酒店直连的业务特性来解决日益增长的带宽压力和供应商接口延迟的问题。
携程技术
2021/09/10
1.3K1
干货 | 携程酒店AWS实践
微分享回放 | 携程是如何保障业务安全的
作者简介 王润辉,携程技术中心信息安全部高级经理。2015年加入携程,负责携程业务安全。个人专注在:安全漏洞,数据分析建模,业务安全,风控系统整体架构等。 *视频时长约1小时11分钟,请在WiFi环境下观看* 作为国内第一大OTA企业,业务安全一直是携程所面临的重要安全风险之一。 在面对各类从散兵作战到越来越专业化的黑产,以及技术从单一到持续自动化的工具化下的攻击时,我们也根据不同的业务安全风险,建立了相应的系统进行防护,并和黑产进行持续的技术和思维上的攻防。 其中经历了从业务驱动技术(被动式防御),到
携程技术
2018/03/16
1.3K0
微分享回放 | 携程是如何保障业务安全的
如何构建基于知识图谱的用户画像
这篇文章是瓜子内部Tech Talk的笔记,主要介绍如何构建基于知识图谱的用户画像,感谢家帅分享。
普通程序员
2019/10/23
5.9K0
如何构建基于知识图谱的用户画像
【用户画像】从0到1掌握用户画像知识体系
随着用户的一切行为数据可以被企业追踪到,企业的关注点日益聚焦在如何利用大数据为经营分析和精准营销服务,而要做精细化运营,首先要建立本企业的用户画像。
全栈程序员站长
2022/09/01
2.2K0
【用户画像】从0到1掌握用户画像知识体系
用户画像
开发画像后的标签数据,如果只是“躺在”数据仓库中,并不能发挥更大的业务价值。只有将画像数据产品化后才能更便于业务方使用。在本文中,Web端展示的数据都读取自MySQL这类的关系型数据库,MySQL中存储的数据源自Hive加工后,通过Sqoop同步的结果集。
朱小五
2020/11/04
4.9K0
用户画像
微分享回放 | 携程是如何把大数据用于实时风控的
作者简介 郁伟,携程技术中心风险控制部高级开发经理。2010加入携程,参与了携程结算平台、风控系统的开发,对系统架构、流式数据处理等有比较深入的研究。 *视频时长约1小时19分钟,请在WiFi环境下观看* 携程作为国内OTA领头羊,每天都遭受着严酷的欺诈风险,个人银行卡被盗刷、账号被盗用、营销活动被恶意刷单、恶意抢占资源等。 目前携程利用自主研发的风控系统有效识别、防范这些风险。携程风控系统从零起步,经过五年的不断探索与创新,已经可以有效覆盖事前、事中、事后各个环节。也从原来基于“简单规则+DB”,发展到
携程技术
2018/03/16
1.2K0
微分享回放 | 携程是如何把大数据用于实时风控的
《用户画像:方法论与工程化解决方案》读书笔记第3章
在画像系统搭建的过程中,数据存储的技术选型是非常重要的一项内容,不同的存储方式适用于不同的应用场景。本章主要介绍使用Hive、MySQL、HBase、Elasticsearch存储画像相关数据的应用场景及对应的解决方案。
辉哥
2022/05/13
8480
《用户画像:方法论与工程化解决方案》读书笔记第3章
推荐阅读
相关推荐
干货 | 用户画像在携程商旅的实践
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档