为了提升运维效率,助力数字化转型,需要建设贯穿应用交付、运维、运营全生命周期的一站式平台,然而,平台的建设不是一蹴而就的,需要分阶段进行:第一,将通用能力下沉,抽象原子平台;第二,进行原子能力的服务治理,把场景和原子分离;第三,通过将原子平台对接到企业服务总线,为应用系统提供平台化的能力,基于平台化的开发模式,让应用自生长。
基础的运维服务,不论是发布变更还是告警处理,都可分步骤完成,步骤可以串行或者并行执行,也可以包含分支结构。为了提高平台的复用性,应将单个步骤尽可能抽象为原子,再将原子自动化,而后通过任务引擎连接成“串”“并”或“分支结构”,实现任务流程全自动化。
这种SOA设计的优点在于不依赖业务类型、架构和场景,只要是运维手工能操作的,就可以做成无人值守。运维需要做两件事,即将原子自动化和将原子集成为工具,这两件事也正是原子平台建设的切入点。
把通用的运维能力存储在平台内部,形成各个原子能力模块,再通过SOA的架构理念进行封装,将运维所需的场景功能和平台的原子能力模块进行分离,如图4-1所示。这样做的好处是避免了烟囱式的建设方法,运维的数据和功能得到有效的治理。
图4-1 场景与原子分离设计
1)平台PaaS化:打造承载所有运维和运营功能的统一平台,平台具备接入资源层、运维服务能力和可承载自定义开发应用的能力,平台具备强大的扩展性和服务支撑性。
2)场景工具化:将所需的运维功能场景化,以工具化的方式运行在统一平台上,调用底层平台所提供的能力,实现敏捷迭代,功能之间不再以烟囱式方式来构建。
在传统开发模式下,构建一个运营系统需要先了解需求、准备机器等资源、搭建部署环境。开发完成后还要部署应用,并承担这个SaaS工具的运维工作。而基于PaaS的平台化开发模式,开发者只需要了解应用需求,然后通过统一的后端开发框架,加上可拖拽的UI组件库和页面样例,即可快速完成SaaS工具的逻辑开发。对比如图4-2所示。
简单来说,一个新的应用是由一系列“原子平台”的能力组合而成的,也就是拼装一堆API,并做一个门户而已。这些API由不同的团队提供服务,但又不仅仅服务于某一个SaaS。这就使得SaaS看起来像一个项目、一个产品,而事实上却是像乐高积木一样由不同团队的各种零部件组装而成的。因此,一旦新产品立项,整个PaaS体系就会并行开工,包括构建引擎、编译加速、代码检查、制品仓库、容器云、测试平台、作业平台、配置平台、管控平台、数据平台等多个研发类团队、安全类团队以及流程质量管理类团队。
图4-2 传统开发模式和基于PaaS的平台化开发模式对比
换言之,基于PaaS模式构建的新应用程序,从立项之日起就可以调集几乎整个部门的资源并行协同。在PaaS模式下,技术架构和管理架构是融为一体的。
随着数字化转型的深入,企业已经建设了涵盖监控、管理、自动化、流程等能力的一体化运维平台。平台中沉淀了监控、日志、性能、配置、流程、应用运行等各类数据。企业已逐渐了解数据所蕴含的价值,对数据的重视程度越来越高,部分企业也开始投入大量资源进行大数据研发与应用。但是,我们必须承认,国内很多企业并不都高度重视数据治理,而投入大量资源建设大数据平台,但用的时候又发现数据孤岛、数据质量不高、数据分析能力不足等问题,从而导致项目没有达到预期效果,这是一个普遍现象。企业通过反思,发现在数据的采集、存储、计算、使用过程中,缺少了数据管理的步骤,即数据治理缺失。
为避免数据孤岛的情况发生,我们可以遵循一体化的原则进行运维平台建设,并复用PaaS平台中的原子组件,基于大数据技术和AI能力,快速将运维一体化平台升级为智能运维一体化平台。智能运维一体化平台应具备数据接入、数据处理、数据存储的能力,从而实现可视化分析数据、实时进行数据计算,对研发、运维数据进行在线或离线分析,做到秒级响应,并实时进行数据处理。