作者:阿里云弹性计算技术专家 闲炎
泛微成立于2001 年,总部设立于上海,专注于协同管理OA软件领域,并致力于以协同OA为核心帮助企业构建全新的移动办公平台。在移动办公领域,打造了上海医药、复星集团、绿地集团等多个业界标杆。
近年来,随着云办公的兴起,一些集团性企业(企业用户量在几万、十几万人)也开始尝试私有云部署模式。泛微借助阿里云的底层优势,将部分客户的服务迁移到云上,从硬件和网络上保证用户能够高效访问 OA 系统,包括:
• 应用端采用高可用、可扩展性的集群架构。针对集团型大型客户人员快速增长具有“无缝式”快速扩容资源,可以满足客户不同场景需求。
• 数据端支持阿里云RDS数据源,能够保障用户高并发下业务支撑的稳定性,同时可以提升单机的承载能力,提升数据库端承载压力,并对容灾性具有很大的提升。
• 用户数据自动备份,采用 ECS 自动快照备份策略,应用附件通过 OSS“加密”存储,数据库采用物理备份+整库闪回策略。
• 安全方面使用阿里云盾可以针对WEB、APP、网络业务等进行整体防护, 保护用户数据安全 。
泛微在阿里云上的基本部署架构
一直以来,这种上云架构都是专门的运维人员通过手动部署的方式进行。针对不同体量的客户,部署架构也有所区别。随着泛微 OA 客户的云上客户增多,为每个客户手动部署所产生的问题日益凸显。
一、痛点:手动部署困境
1、效率低下、失误率高
泛微 OA 软件的部署分为两个部分:
• 所依赖的云服务资源部署,如专有网络、交换机、安全组、ECS 实例、RDS 实例、SLB 实例、Redis 实例、NAS 等
• 应用软件部署,如 JDK、泛微 OA 服务端,以及启动前的各种配置
所有云资源都需要通过手动方式一个个创建,其之间的关系也需要人工自行配置。在所有云资源就绪之后,还要手动安装软件包并配置各种参数。完整流程下来要耗费数个小时。这个过程还可能遇到配置错误的问题,失误率高,使得整体部署时间可能变得更长。
2、非标准化
由于是人工部署,就意味着哪怕是同一个运维人员,每一次部署的结果都有可能是不同的。比如错配了一个端口、安装错了某个版本。而由于部署文档的不完善,集群化部署方法更多地是有经验的部署同学自己掌握,新人往往会有学习成本和试错成本。
如果不能标准化整个部署流程,那么中间环节出现错误的可能性就会大大增加,也会增加整个公司的成本。
3、管理困难
手动创建好云服务资源后,管理各云服务需要去对应控制台,我们很难对整体资源进行管理。而在面对扩缩容集群场景时,无法轻易地了解全局部署情况,扩缩容也会变得困难和复杂。
二、自动化部署利器:资源编排服务ROS
面对手动部署的痛点,泛微亟需自动化部署的方式降低部署成本、提升部署体验。最终,泛微通过阿里云的资源编排 ROS 完成了手动到自动化的转型,实现了10倍以上的提效。
什么是资源编排服务?
资源编排服务 ROS(Resource Orchestration Service)是一款帮助阿里云用户简化云资源管理的自动化服务。通过编写 JSON/YAML 格式的模板,在模板中定义所需的云服务资源(如 ECS 实例、数据库实例等)以及资源依赖关系等,根据此模板在 ROS 中创建资源栈,ROS 服务端将根据模板自动完成所有资源的创建和配置,实现自动化部署及运维。而资源栈则管理着模板中定义的所有资源,并可通过新模板来更新资源栈,在资源栈中新增、更新或删除部分或所有资源。
三、ROS的特点:IaC和标准化部署
借助阿里云的资源编排服务,用户可以向基础设施即代码这个未来趋势转型,实现标准化部署。
1、基础设施即代码
基础设施即代码(Infrastructureas Code,IaC)的理念是将基础设施配置视为软件编程。使用 ROS 可以帮助最快速地实践 DevOps 中关于 IaC 的理念,通过模板来定义和管理基础设施。在 DevOps 实践中,资源编排可以轻松地克隆开发、测试、线上环境;同时,也可以更容易实现应用的整体迁移和扩容。
2、标准化部署
在实践中,不同环境的细微差异往往带来非常复杂的管理成本,延长了问题诊断的时间,从而影响了业务的正常运转。通过使用 ROS 模板可以将部署环境标准化,减少不同环境的差异,将环境的配置沉淀到模板中。再通过版本管理、CodeReview 等流程,保证部署的标准性。
四、ROS 如何助力泛微自动化部署
使用ROS实现自动化部署,用户需要经过下面几步:
1、定义模板
基于泛微的部署架构,根据 ROS 的模板语法,在模板中声明所需要的阿里云资源(如 ECS 实例、数据库实例等)、参数、描述、条件等内容。模板的基本内容如下:
ROS 还提供了可视化编辑器能力,可在编辑器中拖拽资源来生成模板,也可通过现有模板查看架构图。
2、模板解析与执行
通过 ROS 控制台可使用定义好的模板来创建资源栈,以创建出所定义的云资源并进行应用软件安装、配置。
当 ROS 接收到用户创建资源栈的请求时,会对模板进行解析。解析包括语法检查、参数校验、依赖分析等。依赖分析就是分析出资源间的依赖关系,目的有两个:
• 确保创建顺序的正确性:被依赖资源创建完成后才会创建依赖资源。
• 资源并行创建能力:无依赖关系的资源可以并行创建。
模板解析完成后,就会开始创建资源。每个资源在创建开始、创建完成、创建失败均会有事件通知,可在控制台查看。资源创建完成后也可看到资源的 ID,并点击跳转到对应产品的控制台。
通过模板可以快速地重复部署,尤其多地域、多可用区部署的情况;同时也可以减少环境之间的偏差,将部署过程和结果标准化,减少因为环境偏差引入的系统问题。
五、收获价值:效率提升10倍
泛微使用资源编排服务 ROS之后,部署一个OA系统从原来的手动部署一天,到现在只需要1小时,效率提升了10倍以上,整个部署过程变得顺滑和标准,极大提升了部署人员的幸福感。
云计算时代,部署和管理云服务资源是最基础的操作,资源编排服务 ROS 作为阿里云上原生的自动化编排部署服务,让自动化部署的过程发挥到了极致,为泛微提供了强有力的支持,让泛微在云上的体验畅通无阻。