在这里插入图片描述

一、星链简介

在业务研发的过程当中去有很多业务需求,简单来概括来说就是一个“多快好省”,多就是丰富变化的业务需求,快速的实现、稳定性、可靠性、高性能,节省资源的成本。

二、那么研发挑战有哪些挑战?

  1. 复杂的领域模型
  2. 复杂的业务场景
  3. 复杂的业务依赖
  4. 变化的业务需求
  5. 复用的困难:大量类似重复工作
  6. 沟通协作的低效:不一致的语言
  7. 大量与业务无关的、手工易错的服务器运维管理工作

对于这些固有的不可约化的复杂,通过业务体系化进行治理。

主要借鉴的是业界流行的DDD领域驱动的设计,还有一些中台化的思想,对我们的业务进行抽象、沉淀、复用,然后来去进行治理,达到这样一个可持续的发展。

另一方面我们通过星链去进行快速的交付,面向各种类型场景去进行快速交付,同时使得研发人员不需要去关注很多的底层的基础设施。

星链为什么叫一个函数服务?因为它使得用户聚焦在一个函数上,用户函数就是一个业务的逻辑。

星链是可视化的,组件化的并通过低代码开发的函数服务,它的目标是提升场景化的微服务研发效能。

领域微服务是指那些沉淀下来的原子性的微服务;
而场景化的微服务,比如说是面向的人群,它是各种各样的,比如说可能有客服有运营,有产品,有各种各样的这种人群,还有这种介质,比如说有各种的渠道介质,包括比如说我们有APP,可能有小程序有h5,这种渠道的来源可能也有很多;

那么这些各种类型的这种场景我们称之为这种场景化的这种需求,这种场景化的需求非常的多,非常的变化,而且要求非常的快,很多是这种临时性的。那么这些服务更多的它是对已有原子服务的一种组装编排或者是定制,那么去怎么样去快速的来交互这些服务,那么是训练所需要去解决的这样的一个问题。那么我们的方式是一种可视化的组建编排的方式来去开发这些场景化的微服务。

三、星链目标

将“场景化微服务”的研发效能提升一个数量级。
以可视化、组件编排方式开发微服务,以声明式进行Serverless部署,实现“快速建场”,满足行业长尾需求。

1、设计原则

提升研发工作的抽象层次,可视化、组件化、声明式编程与部署。

2、关键技术

  1. VMS:可视化微服务(Visual MicroService),编程模型 & 低代码Cloud IDE;
  2. Serverless:无服务器计算(Serverless Computing),声明式部署;

3、业务价值

提升研发效能、赋能业务创新与增长。

四、VMS:简单灵活的编程模型

VMS是一个微服务开发和编排的领域模型,内外依赖组件化、配置化,聚焦业务逻辑。
在这里插入图片描述

五、Serverless:计算资源模型

统一的计算模型,既支持传统虚机,也支持K8s。
每个环境(测试、预发、生产)有不同的部署配置,每个环境下可以有多个部署配置,以入口加以区分。
每个入口配置可能包括多个条目,每个条目声明在指定集群分组、部署指定版本、指定实例个数;同一个集群分组可以部署多个不同版本。
在这里插入图片描述

六、星链典型应用场景

1、业务流程编排,授信流程、放款申请等

2、BFF:Backend for Frontend,接口数据聚合、接口数据适配等

3、异步消息处理,维护缓存、同步状态、转换格式等

微服务架构中很多组件就是为了实现异步,比如Mq,Mq中有很多简单的消息可以放在星链上来做。

4、定时批处理任务,扫表、执行任务、更新状态

一些定时类的微服务只需要在某个时间内执行,那么Serverless的部署可以去节省计算的资源,同时通过配置化的方式开发也比较简单。

5、后台管理服务,运营后台、客服后台服务

6、工作流自动化,日常工作流程自动

除了开发项目,我们还会有一些日常工作要做,比如查看现场运行程序的日志,统计异常原因等,都是可以通过星链来实现自动化排查的。

7、临时性业务需求,运营活动、临时数据处理等

临时性的业务有很多,比如618备战或者是双11备战,在备战过程当中要做一些数据的大屏展示,这些临时性的通过星链来做。

七、星链的优势

1、不用建应用

2、开发快

3、秒级部署

传统的部署方式,经常要有几百上千台服务器,部署一次就需要几个小时,但是如果在星链上部署基本上是秒级的。因为VMS相对于传统的微服务,它的力度比较小,就是说修改了传统微服务的代码,即使是改了很少的一部分代码,也很有可能对其他的业务产生影响,就是说测试的范围不好把控,但是在星链上因为它的力度比较小,所以是不用担心对其他业务的影响的。

4、产品、研发、测试统一视图协作

一般的开发流程都是产品和研发讨论需求,研发设计项目,再次讨论需求与设计的契合程度,然后根据需求去实际开发,开发完项目进行测试式样书编写,编写测试项,开会讨论开发进度,等等等等。非常繁琐,如果通过星链来进行统一化视图协作,可以节省很多开会的时间。

5、不用管理服务器

比如项目中的一些第三方组件的管理,当进行代码升级的时候,只需一个按键就可以完成组件的升级改造。

6、流程可视化

7、独立部署、不担心影响其他业务逻辑

8、前端也能开发后端服务

星链提供了可视化的界面,支持JavaScript,那么就可以让前端同学去开发后端服务。

八、星链产品功能

1、一个简化的微服务编程模型

触发器、函数、连接器、VMS、环境变量。

2、Studio:低代码Cloud Web IDE

  1. 可视化BPMN函数编排
  2. 表达式编辑器
  3. 在线开发代码函数
  4. 在线函数Debug
  5. 可视化触发器配置
  6. 自定义各种连接器
  7. 多Tab页编辑
  8. 实时保存和校验

3、自定义业务组件库

  1. 公共组件库
  2. 团队组件库

4、支持本地IDE开发

  1. 源代码完全可见且与Git集成
  2. 支持引入第三方包

5、集成构建发布流程

  1. 一键在线构建打包
  2. 集成上线审批流程

6、企业级Serverless

  1. 部署环境隔离
  2. 声明式部署
  3. 热加载、部署快
  4. 跨集群分组统一部署
  5. 支持灰度发布
  6. 便捷扩缩容
  7. 部署态加密环境变量

7、私有化Serverless

  1. 支持部署至私有云和其他公有云
  2. 计算资源管理
  3. 支持K8s和传统虚机

8、稳定高性能的执行引擎

  1. 稳定可靠
  2. 高性能低延时
  3. 高性能多语言(Java/JavaScript/Groovy)

9、可观测性

  1. 部署状态一目了然
  2. 集成日志 & 监控

10、团队协作与管理

  1. 团队与成员管理
  2. VMS管理

九、DB连接器

这是一个触发器的配置的页面,就是说这是一个HTTP例子,自动生成一个测试,配置上生产环境的链接,部署之后,通过链接就可以直接进行访问,那么其他的像定时任务消息都是通过可视化配置来进行生成的,这是一个DB的连接器,通过可视化的定义一个DB的访问,比如说定义数据源,然后关联数据源,然后定义DB的一些方法,有一个连接器主要是包括一些配置,还有一些方法,这些方法是可以去进行自定义的,那么可以去写一个语句去定义输入和输出。
在这里插入图片描述

十、HTTP连接器

  1. 自定义方法列表
  2. 支持GET/POST/PUT/DELETE
  3. 请求参数支持URL查询参数、URL路径参数、请求头参数、Cookie参数、请求体
  4. 请求体支持JSON、Text、Form格式
  5. 参数定义支持YML、CSV源码模式,方便复用
  6. 支持基于示例值推断参数定义

十一、星链小结

1、星链是什么?微服务低代码Serverless平台。

用户通过统一的Web界面完成可视化微服务(VMS)的开发、调试、构建、测试、部署完整流程,以可视化、组件编排方式开发微服务,以声明式进行Serverless部署,实现“快速建场”,即快速交付BFF、FaaS、服务编排、事件处理等场景化、定制化业务研发需求,降本增效。

2、星链产品特色

  1. 面向微服务
  2. 满足高并发低延时C端服务要求
  3. Web IDE
  4. 低代码但不牺牲灵活性&可控性
  5. 企业级Serverless
  6. 计算资源利用率高、成本低

上一篇:Java学习路线总结,搬砖工逆袭Java架构师

下一篇:Java基础教程系列

本内容为合法授权发布,文章内容为作者独立观点,不代表开发云立场,未经允许不得转载。

CSDN开发云