Google开源能够解决分布式应用程序开发复杂性的框架Service Weaver,让用户能够以编写模块化单体程序的方法,开发微服务应用程序,而且Service Weaver高可移植性设计,使得应用程序可灵活地部署在本机或是云计算。
官方提到,在编写微服务应用程序时,开发者需要花费大量的心力,维护多个微服务二进制文件,这些文件具有个别的配置文件、网络端点和串行化资料格式,而这些额外的工作会大幅降低开发速度,而且因为微服务架构的限制,也降低开发者改进应用程序的灵活度。
相较于微服务应用程序,单体二进制文件更容易编写,不仅能使用程序语言原生类型和方法调用,而且只要编辑程序代码并且重新部署就能够进行更新。Service Weaver框架想要完成的目标,便是让开发者能够以单体应用程序开发方法,创建微服务应用程序。
Service Weaver中的重要概念便是模块化单体开发模型,开发者仅使用程序语言的原生本机数据结构和方法调用,编写单体二进制文件,再将二进制文件组织成一组模块。在Service Weaver中,用户可以选择将模块和main分离,如此Service Weaver便会自动将模块调用翻译成跨机器的RPC。
Service Weaver框架解决微服务应用程序开发的繁琐工作,因此即便开发者后续要更改应用程序,像是调整方法中的参数,便只要更改方法的签章以及调用的地方,接着重新部署应用程序,便完成更改的动作,Service Weaver会确保新版本的main,只会和新版本的方法通信。
Google提到,Service Weaver的好处在于,开发者可以完全专注在应用程序逻辑开发上,而不需要理会拓扑结构和服务间的通信。Service Weaver还提供灵活的可移植性,让用户可以不需要修改程序代码,应用程序就能够在本机桌面或是云计算等环境运行。
Service Weaver有两个主要核心部分,一个是程序开发函数库,供开发者将应用程序编写成单体模块化二进制文件,另一个则为部署器,可配置应用程序执行时的拓扑,并将其部署成一组微服务。目前Service Weaver仍在初期阶段,提供Go语言程序开发函数库,以及可部署到本地和GKE的部署器,以及一组API,供开发者自己编写其他平台的部署器。
领取专属 10元无门槛券
私享最新 技术干货