目标及内容
Goal and Content
本文的目标根据符合证券行业规范和证券行业自身需求的通用模块组件和业务组件,利用编排对集中交易等业务系统实现服务化封装,通过服务目录提供金融云平台软硬件服务的一站式运营,实现ITaaS。
1、基于国产SDN方案建立云网联动架构,使得网络和安全策略可以随业务自动化下发与配置。实现面向应用的网络编排,基于不同业务组的定义,研究不同业务组间的策略编排,当计算资源发生变更时,网络策略自动迁移,减少网络人工介入。
2、构建TOSCA模型和蓝图编排引擎,将SDN组件(例如VPC、安全组、EIP、防火墙策略等组件)、通用应用组件、SaaS应用模块之间的安装顺序、依赖关系、参数传递,固化到蓝图编排引擎,将SaaS部署环境标准化,减少不同环境的差异。
3、研发自动化代理,用于接收编排引擎调用实现应用的一键部署。
关键技术及创新点
Key Technologies and Innovation Points
技术架构
如图所示,云管理平台(CMP)主要由前端、业务服务、监控服务、Agent几大部分组成,各部分的描述如下:
在前端部分,我们的JS框架采用Vue,UI框架使用Element-Plus,可视化工具采用的是AntV和DataV,并利用Grafana来呈现监控仪表。
在业务服务部分,我们的微服务框架主要使用的是Spring Cloud Alibaba,ORM框架使用MyBatis-Plus,流程引擎采用Flowable,数据收集引擎采用Logstash,任务调度引擎采用Celery,中间件使用了Redis和RocketMQ,数据库采用的是MySQL。微服务部分包括资源管理系统、运营管理系统、自动化运维中心、云编排引擎、身份认证系统、任务中心、监控管理系统等服务。其中,云编排引擎基于Celery框架,任务的执行在Central Worker和VM Worker之间协调。
监控服务部分,我们使用Prometheus作为监控框架,AlertManager作为告警工具,
Consul作为Prometheus集群的注册中心,RabbitMQ作为事件消息队列。
Agent部分,我们采用Celery worker构建自动化Agent,Prometheus Exporter构建监控Agent,Agent通过RabbitMQ与云管服务进行通信。
关键技术模块介绍
Introduction to Key Technical Modules
SDN虚拟网络技术
其设计理念是把网络的控制平台和数据转发平台进行分离,并实现可编程的集中化管理。同时应用纯软SDN和硬件SDN集成两种云网联动方案,统一通过云枢纽层驱动,实现对于网元的增、删、改、查。纯软SDN架构以VLAN承载业务流量,通过物理的网络分区实现业务的隔离;集成硬件SDN架构中以VxLAN取代VLAN,通过Server-Leaf offload VxLAN的封装和解封装,并以逻辑的方式实现隔离。
云编排引擎
云编排引擎主要用到的技术有基于TOSCA的领域描述语言、SpringCloud微服务框架、Python的Flask框架、Elastic Search、Logstash、RabbitMq等,具备python程序包的热插拔能力。对任意基础设施、应用、云资源、中间件等对象以及它们之间的关系进行建模;再将建模后的计算、存储、网络、软件等云资源在内的整体应用通过可视化画布进行蓝图设计和编排、规范、指定各种资源的依赖关系,将一个或多个资源进行组合,创建标准化的服务,为企业从现有基础设施过渡到混合云和云原生架构提供有力的保障。
1、TOSCA
本文采用业界主流的TOSCA云服务建模标准来对任意云服务进行抽象和建模。
云应用拓扑和编排规范(Topology and Orchestration Specification for Cloud Applications,简称TOSCA)是一种用于描述在云计算平台上的服务和应用程序以及它们之间的关系和依赖性的语言规范。TOSCA可以描述云计算服务及其组件,并记录这些组件的组织方式以及使用或修改这些组件和服务所需的编排流程。这为管理员提供了一种管理云应用程序和服务的通用方法,从而使这些应用程序和服务可以跨不同云供应商的平台进行移植。
对于云和网络行业,TOSCA的真正意图是提出一种可以在各种管理和业务流程技术中使用的通用信息模型。关于统一信息模型的设计往往非常有挑战,具体原因包括:模型的开发设计不希望与传统设计有太大的差异;不同的标准开发组织(SDO)使用不同的建模理念;各自平台都希望采用自己专有模型来描述。由此,TOSCA应运而生来面对以上挑战。
1)TOSCA构建了一套通用的编排和管理工具,以相似的方式处理各种模型。( 尽管这不会立即产生统一的模型,但会产生统一的建模抽象,并在此基础上重构现有模型,并且使用通用工具也可能会更容易从特定领域的模型中提取这些共同特征。)
2)TOSCA对象模型具有足够的通用性,可以在各种建模领域中使用。同时,它强制执行少量非常强大的抽象,这些抽象可以提供对日益增长的云服务类型和组合的建模基础。
作为业界标准的云服务描述语言,TOSCA对象模型具有非常强大的以下几个特点。
1)建模结构图形化
2)采用组件模式
实现模型编排、系统运行和组件设计,在时间上的统一。
2、Cloudify
云平台借助开源软件Cloudify实现编排、部署、资源优化、灾难恢复等功能。
Cloudify以基于TOSCA规范的领域建模语言对应用、云资源、中间件等对象以及它们之间的关系进行建模;
编排工具的编排工具:内置了对AWS Cloud formation,Azure ARM,Ansible,Terraform等编排工具的支持,用户可以根据需要自由选用;
Kubernates管理:内置对OpenShift,GKE,EKS,AKS和KubeSpray等容器平台的支持,能够对其上的Kubernates集群进行编排;
支持CI/CD:内置对Jenkins及其他CI/CD平台的支持;
对基础设施进行统一的工作流建模:对于任意基础设施中的资源,Cloudify都会自动生成部署、卸除、恢复、扩容等工作流,同时支持用户将day2操作的组合自定义为新的工作流,并提供对Fabric, Ansible等脚本工具的支持;
蓝图设计:支持用户以文本和图形界面两种方式设计应用的蓝图;
可插拔性:Cloudify内置了主流云平台、配置管理工具、SDN组件、NFV组件的plugin,用户可以开箱即用,也可以选择制作自己的plugin。以python语言编写一个新的云平台plugin为例,开发人员只需要关注正确调用云平台的api并获取到需要的数据,其余的数据存储、状态更新、执行顺序、日志记录、agent安装、脚本下发等工作均可以交给Cloudify来完成。
文章作者:龙兆小仝
手绘插画:岳 媛
原创文章,作者:EBCloud,如若转载,请注明出处:https://www.sudun.com/ask/33529.html