从人工到自动,泛微云上自动化部署实践

 

凌云时刻 · 故事

导读:面对手动部署的痛点,泛微亟需自动化部署的方式降低部署成本、提升部署体验。最终,泛微通过阿里云的资源编排 ROS 完成了手动到自动化的转型,实现了 10 倍以上的提效。

作者|闲炎

来源|凌云时刻(微信号:linuxpk)

前言

泛微成立于 2001 年,总部设立于上海,专注于协同管理 OA 软件领域,并致力于以协同 OA 为核心帮助企业构建全新的移动办公平台。在移动办公领域,打造了上海医药、复星集团、绿地集团等多个业界标杆。

近年来,随着云办公的兴起,一些集团性企业(企业用户量在几万、十几万人)也开始尝试私有云部署模式。泛微借助阿里云的底层优势,将部分客户的服务迁移到云上,从硬件和网络上保证用户能够高效访问 OA 系统,包括:

  • 应用端采用高可用、可扩展性的集群架构。针对集团型大型客户人员快速增长具有“无缝式”快速扩容资源,可以满足客户不同场景需求。

  • 数据端支持阿里云 RDS 数据源,能够保障用户高并发下业务支撑的稳定性,同时可以提升单机的承载能力,提升数据库端承载压力,并对容灾性具有很大的提升。

  • 用户数据自动备份,采用 ECS 自动快照备份策略,应用附件通过 OSS“加密”存储,数据库采用物理备份+整库闪回策略。

  • 安全方面使用阿里云盾可以针对WEB、APP、网络业务等进行整体防护, 保护用户数据安全 。

泛微在阿里云上的基本部署架构

一直以来,这种上云架构都是专门的运维人员通过手动部署的方式进行。针对不同体量的客户,部署架构也有所区别。随着泛微 OA 客户的云上客户增多,为每个客户手动部署所产生的问题日益凸显。

痛点:手动部署困境

 效率低下、失误率高

泛微 OA 软件的部署分为两个部分:

  • 所依赖的云服务资源部署,如专有网络、交换机、安全组、ECS 实例、RDS 实例、SLB 实例、Redis 实例、NAS 等

  • 应用软件部署,如 JDK、泛微 OA 服务端,以及启动前的各种配置

所有云资源都需要通过手动方式一个个创建,其之间的关系也需要人工自行配置。在所有云资源就绪之后,还要手动安装软件包并配置各种参数。完整流程下来要耗费数个小时。这个过程还可能遇到配置错误的问题,失误率高,使得整体部署时间可能变得更长。

 非标准化

由于是人工部署,就意味着哪怕是同一个运维人员,每一次部署的结果都有可能是不同的。比如错配了一个端口、安装错了某个版本。而由于部署文档的不完善,集群化部署方法更多地是有经验的部署同学自己掌握,新人往往会有学习成本和试错成本。

如果不能标准化整个部署流程,那么中间环节出现错误的可能性就会大大增加,也会增加整个公司的成本。

 管理困难

手动创建好云服务资源后,管理各云服务需要去对应控制台,我们很难对整体资源进行管理。而在面对扩缩容集群场景时,无法轻易地了解全局部署情况,扩缩容也会变得困难和复杂。

自动化部署利器:资源编排服务 ROS

面对手动部署的痛点,泛微亟需自动化部署的方式降低部署成本、提升部署体验。最终,泛微通过阿里云的资源编排 ROS 完成了手动到自动化的转型,实现了 10 倍以上的提效。

 什么是资源编排服务?

资源编排服务 ROS(Resource Orchestration Service)是一款帮助阿里云用户简化云资源管理的自动化服务。通过编写 JSON/YAML 格式的模板,在模板中定义所需的云服务资源(如 ECS 实例、数据库实例等)以及资源依赖关系等,根据此模板在 ROS 中创建资源栈,ROS 服务端将根据模板自动完成所有资源的创建和配置,实现自动化部署及运维。而资源栈则管理着模板中定义的所有资源,并可通过新模板来更新资源栈,在资源栈中新增、更新或删除部分或所有资源。

ROS 的特点:IaC 和标准化部署

借助阿里云的资源编排服务,用户可以向基础设施即代码这个未来趋势转型,实现标准化部署。

 基础设施即代码

基础设施即代码(Infrastructureas Code,IaC)的理念是将基础设施配置视为软件编程。使用 ROS 可以帮助最快速地实践 DevOps 中关于 IaC 的理念,通过模板来定义和管理基础设施。在 DevOps 实践中,资源编排可以轻松地克隆开发、测试、线上环境;同时,也可以更容易实现应用的整体迁移和扩容。

 标准化部署

在实践中,不同环境的细微差异往往带来非常复杂的管理成本,延长了问题诊断的时间,从而影响了业务的正常运转。通过使用 ROS 模板可以将部署环境标准化,减少不同环境的差异,将环境的配置沉淀到模板中。再通过版本管理、CodeReview 等流程,保证部署的标准性。

ROS 如何助力泛微自动化部署

使用 ROS 实现自动化部署,用户需要经过下面几步:

 定义模板

基于泛微的部署架构,根据 ROS 的模板语法,在模板中声明所需要的阿里云资源(如 ECS 实例、数据库实例等)、参数、描述、条件等内容。模板的基本内容如下:

ROS 还提供了可视化编辑器能力,可在编辑器中拖拽资源来生成模板,也可通过现有模板查看架构图。

 模板解析与执行

通过 ROS 控制台可使用定义好的模板来创建资源栈,以创建出所定义的云资源并进行应用软件安装、配置。

当 ROS 接收到用户创建资源栈的请求时,会对模板进行解析。解析包括语法检查、参数校验、依赖分析等。依赖分析就是分析出资源间的依赖关系,目的有两个:

  • 确保创建顺序的正确性:被依赖资源创建完成后才会创建依赖资源。

  • 资源并行创建能力:无依赖关系的资源可以并行创建。

模板解析完成后,就会开始创建资源。每个资源在创建开始、创建完成、创建失败均会有事件通知,可在控制台查看。资源创建完成后也可看到资源的 ID,并点击跳转到对应产品的控制台。

通过模板可以快速地重复部署,尤其多地域、多可用区部署的情况;同时也可以减少环境之间的偏差,将部署过程和结果标准化,减少因为环境偏差引入的系统问题。

收获价值:效率提升 10 倍

泛微使用资源编排服务 ROS 之后,部署一个 OA 系统从原来的手动部署一天,到现在只需要 1 小时,效率提升了 10 倍以上,整个部署过程变得顺滑和标准,极大提升了部署人员的幸福感。

云计算时代,部署和管理云服务资源是最基础的操作,资源编排服务 ROS 作为阿里云上原生的自动化编排部署服务,让自动化部署的过程发挥到了极致,为泛微提供了强有力的支持,让泛微在云上的体验畅通无阻。

END

新年礼物第三弹,精品机械键盘抽奖中!!

邀请伙伴助力中奖几率翻倍

开奖时间:2021 年 1 月 12日

赶紧转发至朋友圈,呼唤好友一起

抽  奖 吧 !


长按扫描二维码关注凌云时刻

每日收获前沿技术与科技洞见

相关推荐