ViewCloud平台V1.5版本介绍

ViewCloudV1.5 云平台(云+端,软件定制)


1. ViewCloud云平台总体介绍

1.1 ViewCloud平台发展历史

广州视图信息科技有限公司(以下简称:我司)成立于2009年,专注于大型企业ERP系统(主要是用友高端ERP产品NC系列)的实施及二次开发,在项目交付过程中,遇到越来越多的企业都希望能与外部的各种往来单位(客户、渠道商、供应商)或终端用户保持及时沟通交流,快速获知市场一线的需求,指导企业的生产经营,同时这些企业一般都拥有除ERP系统外的众多业务部门使用的各成体系的信息系统,怎样来建设一个信息系统来将企业内部的信息系统有效融合,提高企业内部协同能力,同时将企业的信息系统向外部(客户)延伸。

为响应企业这种对信息化提出的新需求,我司从2014年开始探索将新的“云计算”技术应用到传统企业级应用开发中,在基于开源云计算项目的基础上,结合企业级应用的特性,并经过很多大型企业互联网项目的持续积累,我司于2018年发布了ViewCloud平台,并申请了“软件著作权”。

1.2 ViewCloud平台定位

采用 ViewCloud平台,搭建“企业中台”,按“⼤中台,⼩前台”的思想,实现企业数字化平台化战略。

从不同角度看中台的划分:

  • 技术中台 中台在技术上采用微服务开发框架、Devops平台、PaaS平台,容器云之类的技术;
  • 业务中台 中台提供用户中心,订单中心,各种微服务部署的业务处理服务给任意授权系统调用;
  • 组织中台 中台构建平台型组织,这类组织类似于企业内部资源调度中心和内部创新孵化组织;

1.3 ViewCloud平台构成示意图

1.4 ViewCloud平台技术遵循原则

  • 先进性:在整体设计和实现上,依托云计算、大数据领域的知名开源项目(如Docker、K8s、mysql,SequoiaDB,redis,RabbitMQ,Tomcat等)。兼容多种异构物理设备,避免厂商绑定。优先采用先进成熟的技术组件,搭建稳定并且高效的大数据云计算管理平台;
  • 可靠性:通过大数据云计算平台的分布式计算、存储架构,从整体系统上提高可靠性,降低系统对单设备可靠性的要求;应用设计方面采用明确的应用分层架构,实现上层数据应用与底层基础数据的依赖分离,实现应用架构上的解耦;采用相关的容错技术和故障处理技术,保证数据应用的安全可靠,保证数据分析平台可用性达到使用要求。
  • 安全性:采用统一的用户认证,统一的用户、权限管理和控制、密码控制等多种安全和保密措施。为保证信息的安全性,对内部网上的信息建立符合安全要求的防火墙、入侵检测、数字证书、防病毒、数据加密技术等,能够严格有效地防止外来非法用户入侵,能够避免遭受网络攻击,防止失密情况的发生,防止非法侵入带来的损失。
  • 拓展性:应用开发平台采用模块化建设和扩展模式。支持小规模起步,线性扩展,以满足不同场景,不同投资计划和规模的要求;随着数据规模的扩大、应用的完善,现在数据平台能够在不影响当前用户正常使用的情况下,灵活、方便地进行集群扩容。

1.5 ViewCloud平台分布式关键技术特点

  1. 微服务:  高内聚、低耦合。开闭原则。高效率。弹性计算。
    • 将系统功能划分为最小服务单元,完成单一功能,每个服务独立部署,服务间通过互相调用形成完整业务逻辑。
    • ViewCloud使用SpringCloud实现微服务。
  2. 分布式事物:消息队列。原子操作。回滚机制。
    • 通过消息机制和分布式锁实现分布式事务,在微服务架构中保证业务逻辑的完整性。
    • ViewCloud使用阿里基于商用GTS开源的FESCAR分布式框架。
    • FESCAR分布式框架:FESCAR(Fast & Easy Commit And Rollback) 是一个用于微服务架构的分布式事务解决方案,它的特点是高性能且易于使用,旨在实现简单并快速的事务提交与回滚
  3. 跨机器调用:多节点化。同步+异步。
    • 将任务分配在更多的节点上去运行,跨机器的调用取代原来单个节点内、进程内的调用。
    • ViewCloud采用RPC+RestFul实现。
  4.   伸缩与容错:一致性哈希。多副本。
    • 横向扩展代替纵向扩展,使得伸缩性变得更好,整体容错性大大提升。
    • ViewCloud使用K8s+Docker完成应用服务横向拓展,MySQL集群+SequoiaDB集群完成数据存储横向拓展。
  5. 分布式计算
    • 分布式计算将该应用分解成许多小的部分,分配给多台计算机进行处理。这样可以节约整体计算时间,大大提高计算效率。
    • ViewCloud分布式计算采用成熟的Hadoop MapReduce计算框架。Hadoop MapReduce由Google Lab在2007年开源,架构成熟稳定,社区完善,对JAVA支持友好,占用磁盘IO较少,集群节点支持数千个。适合低失效性大批量计算。

2. ViewCloud平台核心服务层

2.1 ViewCloud平台核心服务层组件(容器、数据库、缓存、队列)

  • Docker/K8s
    • Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎。
    • Docker实现了应用的隔离性,实现了硬件资源的可度量可配额,实现了实例复制移动和重建的移动性,提高了安全性将子进程在Kernel的namespase中隔离。
  • Mysql集群
    • MySQL 是最流行的关系型数据库管理系统之一,其体积小、速度快、总体拥有成本低。
    • MySQL同步集群具有对硬件要求低、数据放在多台服务器上冗余度好,拓展性强,可实现高可用性和负载均衡,配置和管理方便。可支持大型应用。
  • NoSQL集群
    • NOSQL是非关系型数据库,支持键值(key-value)存储,列存储,文档存储,图存储。
    • NOSQL集群的水平扩展性(horizontal scalability)指能够连接多个软硬件的特性,这样可以将多个服务器从逻辑上看成一个实体,是天然支持大数据的载体。
  • Redis集群
    • Redis是一种内存级别的Key-value数据库,可用来降低数据库访问压力和存储Session会话。
    • 其过期策略和淘汰机制可以方便的区分冷热数据,适合解决瞬间超高并发和实现过载阻断。
    • 其广播功能可用于大量客户端消息推送。
  • RabbitMQ集群
    • RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。
    • 其有erlang语言编写,天生具备高并发高可用性。
    • 适合对API服务请求进行削峰。
    • 其成熟度、稳定性、可靠性远胜现在最流行的kafka。

2.2  ViewCloud平台核心服务层组件(自动化测试、自动化部署、自动化运维)

  • Selenium
    • Selenium是一套完整的Web应用程序测试系统,它包含了测试的录制(Selenium IDE)、编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。
    • Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可运行于任何支持JavaScript的浏览器上。
  • TestNG/Sonar
    • TestNG是一个下一代的后端测试框架,对依赖测试、分组概念、能使自动化测试更加强大、更容易做到。
    • 其覆盖单元测试、功能测试、端到端测试、集成测试。 Sonar是一款静态代码审查工具,能有效的规范代码和使代码更加安全。
  • Jenkins
    • Jenkins是一个持续集成平台,其中有丰富的插件,其功能远远超过hudson。
    • Jenkins能让代码编译、打包、执行自动化测试、部署目标服务器、重启服务器、变得轻松而简单,并支持故障终端和报警。还能与slack有效集成,减轻沟通负担。
  • ELK
    • ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana。
    • Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。
    • Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。
    • KKibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
  • ZABBIX
    • Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
    • zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
    • zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能。

3.  API服务器

3.1  API服务器功能介绍

  • 为什么需要API服务器

开发人员在API文档服务器上编写API文档并使用Mock API进行对接,测试人员无需编写代码即可实现复杂的API场景化测试;

  • 功能1:API管理  API版本管理和分类
    • API可按照模块、功能进行分类。在线定义API数据字典,API错误状态码,API状态启用废止。API版本管理,API文档查看修改权限管理。
  • 功能2:API测试与在线调试  Mock API与在线调试
    • 支持生成Mock测试数据,方便开发对接。 支持在线传入变量调试API,并能模拟浏览器记录cookie身份信息。 支持测试环境和生产环境调试在线切换。
  • 功能:3:API知识分享  在线分享,导出文档
    • 支持在线API分享和API文档导出。导出格式标准,最大程度降低维护API文档工作量。 可发布文章对API进行讨论和讲解,增加API的互动,帮助API持续改进。

3.2 API服务器UI展示

4.  平台对外接口服务

4.1  平台对外接口设计规范

  1. 接口的相容性和统一性
    • 让API设计得是可预测的。
    • 按照这种方式写出所有接口和接口所需要的参数。就要确保命名是一致的,接口所需的参数顺序也是一致的。
  2. 接口返回明确的信息
    • 接口应该返回明确的成功或不成功的状态。
    • 如果不成功应有明确的错误消息或已经约定的错误状态码。
  3. 很容易完成一个请求:
    • 完成同类功能尽量减少请求次数;
    • 一个请求应该在15S内完成;
    • 接口返回的数据量应该可调整。
  4. 接口应该遵循稳健和可持续性的原则:
    • 接口应该具有基本的安全保障。如使用SSL的Basic Auth。Basic Auth(基本认证),Digest Auth(摘要认证 ),OAuth(开放认证也都是可以的);
    • 接口应该具备指定API版本。在上线新API时不影响旧的终端,需在在API接口中加入版本信息。 例如:GET /v1/product/id或者 GET /v2/product/id 或者 GET /product/id?v=1;
    • 使用JSON而不要使用XML。目的是减少接口传输数据量。

4.2 平台对外接口服务设计

4.3  平台对外接口服务能力

4.4  平台对外接口服务:详细的日志记录

4.5  平台对外接口服务:分析API调用情况、系统压力分析与调优、纠错

5. 云中台内置基础组件及主数据(针对企业特性可个性化定制)

5.1 ViewCloud云中台基础功能

ViewCloud平台对企业信息系统:建立、实施、上线、运维、持续迭代开发(二次开发)的各个阶段进行支撑,根据这些阶段的要求,内置开发了一系列的基础组件,使企业能快速搭建自己的云中台系统,并进行持续的迭代开发。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.2  ViewCloud云中台内置主数据管理(针对B2B2C互联网营销特性设计)

应用场景介绍:采用ViewCloud云平台,构建企业“云中台”,汇聚企业各种应用系统(主要是内部ERP后台)数据、管理政策后,再基于ViewCloud平台强大的云计算能力及其提供的快速开发组件,开发支撑各种终端(PC、Ipad、手机)运行的前端应用(Web、H5轻应用、微信小程序)。ViewCloud平台设计中台“主数据管理”主要是基于B2B2C的模式,提供了“厂家”B、“渠道商”B、“终端消费者—会员”C 这三层的数据容器,用来支持这么一种应用场景:厂家在ERP后台维护公司复杂的销售管理政策,中台抽取这些后台数据,开发面向渠道商、终端用户使用的前台应用系统,渠道商、终端用户在前台录入的数据提交到云中台后,按厂家ERP系统中制定的规则,中台加工后通过API服务器送回ERP系统。 中台主要任务:汇聚后台数据、支撑前端应用,把ERP系统中制定的销售政策,通过中台,贯彻到渠道商、终端用户使用的前端系统。

 

发表评论

邮箱地址不会被公开。 必填项已用*标注