The present application provides a generation method and a device and a storage medium based on a microservice deployment deliverable. The method can include: a number of modules, each module provides at least one service according to the predefined service requirement split service; a separate implementation package is compiled for each module and published to the implementation package set. When there is a practical business requirement, the implementation package corresponding to the various modules contained in the actual business requirements is obtained from the set of implementation packages; the achieved implementation package is gathered to produce a composite deployment package to generate the deployment deliverables corresponding to the actual business requirements. Through the technical scheme of this application, a specified number of deployment deliverables can be freely aggregated according to the business requirements without the limited granularity of the service separation. At the same time, the implementation package of the same module can be reused under different business scenarios.
【技术实现步骤摘要】
基于微服务的部署交付件的生成方法及装置、存储介质
本申请涉及微服务系统
,尤其涉及一种基于微服务的部署交付件的生成方法及装置、存储介质。
技术介绍
在构建微服务系统时,服务拆分是设计阶段重要的部分。在开发阶段,可以按功能来拆分服务至相应的模块(每个模块提供特定的服务),并由开发人员编译出各个模块的部署包。服务拆分的粒度越细,每个模块实现的功能就越简单,从而使得开发的复杂程度越低,可以充分体现微服务开发的优势。而在部署运维阶段,将部署包作为部署交付件进行部署和运维。当服务拆分的粒度较细时,大量的部署交付件将导致部署和运维的难度较大。因此,从部署运维的角度来看,应尽量减少部署交付件的数量。综上,服务拆分面临着一个矛盾:开发时服务拆分的粒度越细越好;而在部署运维时部署交付件的数量越少越好。在相关技术中,为了降低部署运维的压力,通过平衡拆分和交付的利弊,将服务拆分的粒度控制在一定的合理范围内。然而,对服务拆分粒度的妥协提高了开发的复杂程度,导致并不能发挥出微服务系统在开发过程中的优势,降低了开发效率。同时,服务之间的组合不够灵活自由,难以在不同的业务场景下复用基础模块代码。
技术实现思路
有鉴于此,本申请提供一种基于微服务的部署交付件的生成方法及装置、计算机可读存储介质,可以在服务拆分的粒度不受限制的情况下,按业务需求自由聚合出指定数量的部署交付件。为实现上述目的,本申请提供技术方案如下:根据本申请的第一方面,提出了一种基于微服务的部署交付件的生成方法,包括:根据预定义的业务需求拆分服务得到若干模块,每个模块提供至少一个服务;针对每个模块编译独立的实现包,并发布 ...
【技术保护点】
1.一种基于微服务的部署交付件的生成方法,其特征在于,包括:根据预定义的业务需求拆分服务得到若干模块,每个模块提供至少一个服务;针对每个模块编译独立的实现包,并发布至实现包集合中;当有实际业务需求时,从所述实现包集合中获取所述实际业务需求包含的各个模块对应的实现包;将获取到的实现包聚合成部署包,以生成对应于所述实际业务需求的部署交付件。
【技术特征摘要】
1.一种基于微服务的部署交付件的生成方法,其特征在于,包括:根据预定义的业务需求拆分服务得到若干模块,每个模块提供至少一个服务;针对每个模块编译独立的实现包,并发布至实现包集合中;当有实际业务需求时,从所述实现包集合中获取所述实际业务需求包含的各个模块对应的实现包;将获取到的实现包聚合成部署包,以生成对应于所述实际业务需求的部署交付件。2.根据权利要求1所述的方法,其特征在于,所述实现包集合中的实现包被发布至本地私有仓库中。3.根据权利要求1所述的方法,其特征在于,针对每一模块配置有相应的数据库,数据库用于相应的模块读写相关数据,由代理类配置各模块的包名与数据库的对应关系;所述方法还包括:当任一业务发起数据库操作时,确定所述任一业务包含的各个模块的包名;根据确定出的包名和所述对应关系确定相应的数据库;对确定出的数据库进行数据访问。4.根据权利要求1所述的方法,其特征在于,不同的模块所依赖的相同第三方数据包的版本相同;所有第三方数据包的统一版本由顶层数据包来声明;通过以下方式描述任一模块依赖的第三方数据包的版本:声明采用的顶层数据包的版本,以及所述任一模块所依赖的数据包。5.根据权利要求1所述的方法,其特征在于,还包括:在执行聚合操作之前,确定对应于所述实际业务需求的业务调用来自内部模块的内部调用服务,以及调用来自外部模块的外部调用服务;其中,在所述部署交付件运行时,所述内部调用服务被采取本地调用流程调用,所述外部调用服务被采取远程调用流程调用。6.根据权利要求5所述的方法,其特征在于,所述确定对应于所述实际业务需求的业务调用来自内部模块的内部调用服务,以及调用来自外部模块的外部调用服务,包括:合并各个模块的提供服务子列表以生成聚合后的提供服务列表,提供服务子列表用于记录相应的模块提供的服务,所述提供服务列表用于记录所述待聚合业务提供的服务;合并各个模块的调用服务子列表以生成聚合后的调用服务列表,调用服务子列表用于记录相应的模块调用的服务,所述调用服务列表用于记录所述待聚合业务调用的服务;确定所述提供服务列表与所述调用服务列表中相同的重复服务,并将所述重复服务作为所述内部调用服务,以及将所述调用服务列表中区别于所述重复服务的其他服务作为所述外部调用服务。7.一种基于微服务的部署交付件的生成装置,其特征在于,包括:拆分单元,...
【专利技术属性】
技术研发人员:陈军,罗国兵,张红,
申请(专利权)人:杭州数梦工场科技有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。