元型云平台介绍

  • 2024.01.22
  • 关键词: 元型云平台 平台介绍
  • 来源:元型云

一 关于元型

元型是基于模型驱动(MD)的aPaaS平台,引入三方服务商共同创建并积累优质业务模型及实现,建设基于模型库的生态平台。用户可基于平台快速开发、组装各类软件,从而快速搭建应用系统。

元型 = 模型驱动 + APaaS + 模型库 + 云原生

【核心业务场景】

  • 元型官方和开发者通过云IDE创建应用,存储到私有模型库中;
  • 使用者可以在公共模型库中购买适合自己产品的应用,使用后存储到自己的私有模型库;
  • 通过组合应用来构建产品,应用来源包括:自己开发沉淀的应用、平台提供的应用、其他用户发布的应用;
  • 归属自己的模型以及产品,通过用户提供的GIT仓库与元型平台交互,平台将所有源代码通过GIT提供给用户;
  • 通过流水线将产品部署到线上,供终端用户使用;
  • 可以将私有模型库中的应用发布到公共模型库(付费或免费)供其他用户使用。

【三种部署方式】

  • 公有云部署:云原生的部署方式,使用元型统一提供的云资源进行部署,用户需要支付IaaS云资源使用费;
  • 私有云部署:部署到用户提供的私有云环境中;
  • 本地私有化部署:用户通过GIT下载本地部署所需的所有文件,自行进行本地化部署。

 

我们的目标是:

  • 改变软件研发的方式
  • 培养优秀的业务架构师
  • 建立全球首个可组装软件的模型库

元型平台拥有如下价值:

  • 缩短80%以上的开发周期;
  • 提高软件质量,降低80%以上的BUG量;
  • 节约70%以上的软件综合成本(研发、维护、变更等);

通过元型平台,您可以实现以下目标:

  • 团队协同,快速开发复杂软件系统
  • 基于模型驱动,快速响应业务变化
  • 积累业务模型资产,降低软件整体成本
  • 使用模型库中海量的基于最佳实践的业务模型

二 平台架构

2.1 整体架构

元型平台主要由三大部分构成:设计期、流水线、运行期

【设计期】

平台提供了可视化的、基于纯WEB技术实现的建模云IDE,开发人员可以通过云IDE进行模型设计,使用自己属性的开发环境进行商业逻辑实现及扩展。

目前平台支持了业务模型设计,以后会逐步的增加其他的模型,比如:大数据、DDD、以及各种领域模型等。

【流水线】

平台集成了完整的DevOps流程,模型设计完成以后,可以通过执行流水线的操作,一键触发全流程自动化,核心的流程包括:产品校验、产品初始化、业务应用流水线(多个)、发布产品代码、同步GIIT、编译、构建镜像、发布及部署。

极限情况下(无需扩展商业逻辑),流水线执行完成后,即可看到运行的工作产品。

【运行期】

运行期提供基于Spring Cloud的微服务架构,应用服务由Spring Boot支持,同时无缝集成了云原生,可以由流水线自动拉取及管理所需的IaaS资源。

平台提供如下三种运行期部署方式:

  • 基于元型平台公共云资源部署,这是默认的部署方式;
  • 基于客户云资源的独立部署,需要客户提供相关云资源的账户及权限
  • 私有化独立部署,平台提供所需部署的物料,客户自行部署

2.2 设计期

设计期是指从创建模型容器开始,到产品或应用发布前的整个过程,由业务人员、需求人员、界面人员、开发人员共同协作完成,包括:

  • 创建模型容器:包括工作空间、产品、应用等组件模型容器;
  • 业务建模:云IDE提供模型设计器,可以设计以下模型:
    • 产品模型:定义产品、以及产品与应用的关系;
    • 应用模型:定义应用,每个应用是运行期微服务的一个服务
    • 组件模型:根据实际业务需求进行抽象,定义满足业务的模型,其中具体包含了;
      • 实体模型:定义实体、以及实体间关系,另外还有枚举、DTO、任务等业务辅助实体;
      • 服务模型:基于微服务的服务模型定义、商业逻辑定义,并对分布式事务做了支持;
  • 转换模型:将业务模型转换为UI模型和DB模型
    • UI模型:定义管理后台页面的UI模型,包括页面、视图、视图对象等。
    • DB模型:定义业务模型对应的数据库模型,用于创建、更新数据库,用户不能对DB模型进行修改;
  • 菜单装配:每个应用可支持菜单装配,也可以支持一个应用多组菜单;
  • 扩展实现:平台从模型、前端代码、后端代码都提供各种扩展机制,用户可以根据实际业务需求进行业务代码的实现,平均情况下,扩展实现代码占总代码量的比例低于10%。

2.3 流水线

流水线是自动化的一系列处理功能,采用管道模式,经由流水线可以将设计的模型部署为可执行的服务及产品。一个产品包含多个应用,一个产品流水线也包含多个应用流水线。

【产品流水线】

  • 产品校验:对产品及其包含的应用进行合法性校验,确保输入流水线的模型元数据、配置信息是合法有效的;
  • 产品初始化:从产品GIT中克隆项目,并构建产品管理后台的前端脚手架,每个产品对应于一个管理后台的前端项目;
  • 处理业务应用:一个产品包含多个应用,每个应用都要经历完整的应用流水线,由产品流水线进行协调;
  • 发布产品前端:构建产品的前端项目,并推送到产品的GIT下;
  • 编译、构建:对产品的前端项目、应用对应的微服务项目,进行编译,成功以后构建镜像;
  • 发布:将构建结果发布到相应的镜像服务器和文件服务器;
  • 部署:针对微服务和前端项目,进行运行期部署,部署成功以后即可访问。

【应用流水线】

  • 同步UI模型:根据设计的业务模型,首次则生成UI模型,否则进行同步,保留用户在UI模型上所做的扩展;
  • 转化DB模型:根据业务模型转化为DB模型;
  • 初始化应用:初始化应用的脚手架,应用基于Spring Boot框架,平台提供了完善的应用项目模板;
  • 生成代码:根据模型生成相应的代码,这里的代码包括:java源代码、sql脚本、api文档等等;
  • 发布应用:根据生成的工作产品,完成数据库发布、脚本执行、应用代码同步应用GIT等操作,以便于产品流水线中可进行编译;
  • 扩展实现:根据业务需求及模型定义,进行扩展实现。主要包括:商业逻辑实现、个性化页面实现等,如果模型不需要扩展,则此过程略过;

2.4 运行期架构

随着业务的快速发展和技术的进步,微服务已成为当今企业级应用的首选架构。本架构利用了一系列先进的中间件和工具,致力于构建一个灵活、可扩展、高可用的系统。

  • 基础开发框架:Spring Boot: 为开发者提供了快速开发、部署独立应用的能力,简化了许多配置,使得代码更为简洁,提高了开发效率;
  • 微服务网关:Spring Cloud Gateway: 统一入口,实现服务路由、负载均衡、权限验证等功能,为微服务提供保护;
  • 服务发现与配置:Nacos 作为服务注册与发现的中心,它确保所有服务在任何时候都是可发现、可访问的。同时,Nacos 还为微服务提供了动态配置服务;
  • 流量控制与系统保护:Sentinel: 确保系统的稳定性,通过流量控制、熔断降级等机制,防止系统过载;
  • 分布式事务管理:Seata: 在微服务环境中,保证事务的完整性和一致性,确保业务的正常运行;
  • 数据处理与存储:
    • Redis: 提供快速的数据缓存服务,增强应用性能;
    • Elasticsearch: 实现日志检索、分析和实时数据的可视化;
    • RokectMQ: 处理实时数据流,实现消息的发布与订阅。(可使用)
    • MySQL: 作为主要的关系型数据库,存储业务数据;
    • DFS: 分布式文件系统,保证文件的高可用性和可靠性。
  • 负载均衡与反向代理:Nginx: 分发进入应用的流量,确保系统的稳定性和高可用性;
  • 工作流任务调度:Azkaban: 确保所有的批处理任务按照预定的流程和时间运行;
  • 监控与告警:
    • Prometheus: 对整个系统进行深度监控,收集各项指标;
    • Grafana: 数据可视化工具,用于展示 Prometheus 收集的数据;
    • Alertmanager: 当系统出现问题时,能够及时发送告警,确保运维团队能够快速响应。
      通过结合上述技术和中间件,我们构建了一个强大、高效、可靠的微服务架构。这个架构不仅满足了当前的业务需求,同时还具有良好的扩展性,为未来的发展提供了坚实的基础

 

三 平台特性

本章介绍了元型平台涉及到的重要核心特性,以及相关的一些细节,更详细的内容,请参阅《平台使用手册》。

3.1 领域建模语言(DSL)

元型平台使用的建模语言,是以UML1.1规范为基础,这样有利于开发人员能更容易的上手,同时平台进行了有限扩展,从而使模型语言定义的模型可以驱动软件研发的全流程。其具有如下特点:

  • 建模语言是平台无关的;
  • 模型可作为沟通的基础,也是软件研发全流程的驱动者;
  • 可以通过使用模型的方式,在已有的成熟模型上增加自己的扩展,从而快速构建自己的业务模型;
  • 平台会不断的扩充建模语言,以满足更多样化软件的需求。

3.2 模型驱动(MD)

通过定义的业务模型,进行模型的逐层转换,从平台无关最终转换为平台相关,驱动软件开发的全流程。元型平台在模型驱动的基本定义上融入了自己的特点:

  • 模型的定义扩展:元型平台定义的模型,是泛指的模型,目前核心支持基于UML1.1规范的业务模型,后续会扩展到更多的专业模型及领域模型;
  • 全流程、设计期、运行期,都由模型驱动,90%的工作产品都是通过模型生成,大部分对模型的变更很容易的同步到所有的工作产品;
  • 模型的管理,可以方便于模型资产的最大限度复用。

比如:实体录入界面上某个属性的名称,来自于模型中定义的属性的显示名称,通过修改模型中属性的显示名称,可以全局变更相应的所有显示。

3.3 全流程自动化

通过产品流水线、应用流水线,将设计期到运行期的整个复杂过程全部自动化,在深度集成传统的DevOps能力之上,加入模型驱动的思想,让全流程自动化本身也基于模型来驱动,极大的提升了自动化的价值。

3.4 云IDE

平台提供基于纯WEB的云IDE,用户可以通过IDE设计模型、设置配置、执行流水线等,同时,为了更好的满足开发人员的需要,并没有提供代码开发环境,而是通过git让开发人员基于自己习惯的开发环境进行扩展实现,最大限度降低开发人员使用的门槛。

3.5 模型库

所有有价值的模型,都可以发布到模型库中供他人使用,平台也会持续的提供基于最佳实践的模型,随着模型库的不断增长,用户可以最大限度的重用模型,而非自己开发模型。

为了让模型贡献者能得到部分的回报,也激励更多优秀模型的出现,平台还提供了付费使用模型的方式。

3.6 云原生

平台从设计之初就是基于云进行设计的,所以可以无缝集成云,默认部署方式下,用户可以不用去管云的复杂性,平台已经为您做好了所有事情,用户仅需要关注自己的模型及运行期产品即可,只是在此过程中,用户需要支付因为使用云环境而产生的成本。

四 安全与版权

  • 三方框架:所有三方框架,都采用开源版本,遵从框架原有的开源协议。
  • 元型平台:元型平台的所有功能及代码,全是由公司独立开发,具有完整的知识产权,所有任何侵犯版权的行为,平台保留追究法律责任的权利。
  • 业务模型:用户对自己开发的模型拥有完整的知识产权,可以通过平台下载与其相关的所有工作产品;用户对购买的模型拥有完整的使用权,但是不能进行二次贩卖等。

五 我们的承诺

元型平台对个人开发者永久免费(不包含因为使用云产品等三方产品而产生的费用)

上一篇 
预约体验