匡华
(中国移动通信集团广东有限公司 广东省广州市 510623)
1.1.1 研究背景
广东移动管理领域应用系统经过多年的建设发展,已经拥有了一大批成熟的IT 系统基础能力服务,并基于基础能力服务构建了大量的应用系统,目前管理领域现有应用系统多,软件厂商多,各系统技术平台差异性大,系统升级与维护难度大,也给云平台的使用、维护管理带来了一定难度。
2016年广东移动规划基于下层综合管理支撑平台提供的统一的综合办公支撑系统的底座和运行环境。按照《综合支撑平台服务规范-V1.0.0》,旨在通过“统一应用建设”的模式,致力于在应用统建的过程中,降低应用开发商更换门槛、降低统一维护门槛、提高开发速度和长期降低投资的目的。
随着云计算技术的快速发展和容器技术的不断成熟,广东移动PaaS 平台的逐步建设完善,支持基于Docker 的CaaS 容器等云平台新技术。已有云平台基础设施将更好的为应用建设提供环境与基础支撑,未来仍有非常广阔的发展空间以及需要持续深入的精耕细作,合理利用资源并充分发挥出云平台的优势和效率。
1.1.2 研究意义
广东移动管理域应用系统众多,所需资源较多且环境差异大,云平台资源的合理规划、使用,对于公司应用建设与云平台的良性发展有着非常重大的意义,主要体现在如下方面:
(1)通过对广东移动云平台现状、承载应用情况进行梳理、分析,充分了解现有优势、不足及方向,为后续工作理清思路;(2)梳理云平台发展方向与应用建设方向,探索未来工作思路;(3)尝试建立参考标准,为云平台使用及对应用的承载、应用建设提供参考和依据;
(4)探索未来云平台与应用结合的运维管理工作与方向。
本次课题的研究,也为广东移动技术更新换代进行研究、实践、验证,为后续持续性发展奠定基础。
1.2.1 研究目标
结合广东移动云平台建设情况及发展方向以及所承载的应用系统,对广东移动云平台实际情况、各厂商应用系统建设情况调研,结合广东移动云平台资源,探索云平台未来建设方向,尝试建立应用环境参考标准,充分发挥云平台的优势并为应用系统更好的服务,使应用能更好的实现基于软、硬件集群、负载及横向动态扩容能力,支持应用与数据库的跨平台部署。
1.2.2 研究内容
基于以上研究目标,主要针对云平台及应用开发现状分析、承载应用系统调研分析、云平台与应用建设探索几个方面进行研究、分析和探索。
(1)云平台及应用开发现状分析。研究分析广东移动云平台建设及使用现状以及发展方向,针对行业现状、集团关于Paas 的指导意见、广东移动Paas 演进方向等规划进行分析。
(2)承载应用系统调研分析。对当前云平台承载应用信息进行收集,包括主机、操作系统、应用中间件、数据库等情况,研究应用软件开发环境、技术架构、开发框架与技术情况,形成调研分析报告与初步建议。
(3)云平台与应用建设探索。根据对云平台及承载应用现状的分析研究,并结合广东移动云平台、应用未来发展方向,尝试建立应用运行环境参考标准,探索后续运维管理工作内容与关注点,为更好的响应业务需要并能充分利用和发挥云平台的优势,同时能进行合理有效的运维管理进行初步探索。
2.1.1 行业现状
近年,云计算市场规模快速增长,私有云市场涨幅明显,而且在相当长一段时间内,仍将保持高速增长趋势。目前市场各大互联网企业、运营商均提供公有云平台,其中阿里云、腾讯云、华为云为代表,除提供基础云服务外,阿里云在网络应用、综合处理能力方面有优势,腾讯云在即时通讯、网络游戏方面比较擅长,华为云则在基础设施方面有很深的积累。
基于合规要求、信息安全、通信等方面的要求,大型企业都建立自己的私有云。私有云IaaS、PaaS 层经过积累已渐趋成熟,其中IaaS 层以VMware、OpenStack 产品以及各种基于开源的XEN、KVM 等构建的虚拟化产品为代表,PaaS 层有Cloud Foundry、Openshift、Swarm、Kubernetes 和Mesos 等。
业内领先的互联网企业、大企业及国内外运营商IT 系统正在由以资源为中心的架构向以应用为中心的PaaS 架构演进发展,均采用厚平台、薄应用的设计理念。基于Docker 的轻量级容器平台发展迅速,容器可以动态扩容,实现敏捷开发,灵活、有弹性,可以加快应用发布速度,结合Swarm、Kubernetes 等管理平台,让部署容器化的应用更简单并且高效。
2.1.2 移动PaaS 平台发展策略
当前PaaS 层存在组件不标准,资源管理分散、调度低效,应用开发效率低,运营流程割裂、能力不足等问题;为避免在去“IOE”的同时形成新的垄断,顺应技术发展趋势,快速支撑业务发展,打造“跨域能力共享、业务数据标准、技术能力统一”的企业级PaaS 平台,构建可控的自主开发框架,加强标准管理,引导合作伙伴、自有开发人员采用统一框架进行应用开发和部署。坚持以集中化PaaS 平台目标为导向策略。
广东移动PaaS 平台符合未来统一PaaS 的演进方向,目标采用全统一的基础框架,实现统一管理(云管平台),统一iPaaS(弹性计算服务、技术能力服务、微服务框架)、统一aPaaS(业务能力服务)。
2.2.1 操作系统
根据近两年综合管理域应用开发项目使用操作系统情况统计,更多项目采用Linux 操作系统,占比超过60%,Windows 操作系统的项目占比约25%,而前期旧系统大多为Window 操作系统,可见Linux 系统比重在逐步增大。
2.2.2 数据库
根据对关系数据库分析,目前综合管理域主要使用数据库为Oracle,占比达到55%,MySQL 占比30%,SQL Server 占比15%。
从非关系数据库分析结果可以看出目前综合管理域主流非关系数据库为Redis 占比达到92.3%。
图1
2.2.3 中间件
通过对Web 服务器、应用服务器使用情况分析,目前综合管理域主流中间件中,Nginx 占比约45%,主要用于反向代理或基于软件的负载均衡,开源的Tomcat 占比已超过50%,其他中间件主要是早期建设系统使用。
2.2.4 负载均衡
广东移动负载均衡目前主要基于硬件及网络层负载,基于软件实现负载均衡器主要为Nginx,占比超过80%。
基于对现有云平台现状情况以及承载的管理域应用运行现状进行分析,目前广东移动云平台按照集团公司、广东移动规划思路逐步演进和完善。而管理域应用运行环境多样、所用技术繁杂,与云平台的发展不匹配,与广东移动“统一应用建设”的思路与方向差距较远,因此,需要结合云平台发展方向和统一应用建设思路,为后续更好的匹配做好准备。
互联网企业PaaS 由统一的iPaaS+aPaaS 自主研发实现,非互联网企业由统一的iPaaS(同一开发商)+不同aPaaS 实现(按不同开发商分类)。基于容器建立PaaS 已成为业界事实。广东公司云平台分层结构如图1所示。
其中IaaS 面向资源设计,关注申请资源与资源的稳定性,为云平台架构提供基础设施与资源管理,按照满足提供服务最大资源配置申请资源;
PaaS 平台则面向应用,重点关注业务/应用如何部署和运行稳定,按照满足提供服务最小资源配置申请资源,靠标准容器镜像进行安装部署,分钟级别完成业务部署。对应用有要求,需要应用厂商对业务进行微服务化改造;
最上层则为应用系统,管理域应用系统属于该层次,需要基于PaaS 平台实现应用的云化,从而使应用充分利用云平台的优势。
目前云平台PaaS 环境多基于虚拟机方式进行管理,虚拟机实现了基于硬件的虚拟化,不同虚拟机对系统资源完全独立控制,效能接近物理机。
随着虚拟化技术的发展,容器技术应用而生,容器是基于操作系统之上实现的虚拟化,不需要实现对硬件的虚拟化,容器比虚拟机更节省内存,启动更快,占用资源更少,迁移部署快速、运行高效等特点。
虚拟机对服务器进行虚拟化,解决的核心问题是资源调配,而容器解决的核心问题是应用开发、测试和部署。虚拟化最终是要为应用软件提供环境和服务,对于应用软件的规划、部署以及实现方便有效的运维管理,涌现了基于云平台的运维管理平台软件,如Kubernetes 等,都是基于容器进行应用的管理,可以对庞大的容器化应用进行管理,简单高效的实现负载均衡、集群、动态扩容/缩容等。广东移动PaaS 平台未来规划也将采用容器化的应用管理模式,采用容器化实现应用环境将是未来一段时间发展的必然趋势。
广东移动已有云平台基础设施已经比较完善,运行环境基于现有基础资源,操作系统采用Linux 的比重在逐步增大,而Windows系统仍然还有较多系统在使用,很长一段时间内Linux 与Window仍然是主流使用的系统,目前云平台相应的技术以及软件开发相关技术和环境仍然对Linux 和Windows 环境给予支持。运行环境方面采用何种操作系统影响不大,但应用开发仍需要考虑对Linux 和Windows 环境的支持。
运行环境参考标准给出了基于云平台的应用系统的建议运行环境,应用的建设过程参考该标准进行应用运行环境的规划,主要内容包括:
(1)资源要求:所需主机(容器)数量、部署结构、主机的CPU、内存、磁盘空间等基本参数;
(2)软件环境:Java 版本、容器、数据库要求及参数配置要求、配置方法等;
(3)应用配置:应用运行相关的基础参数说明、配置方法、常见的问题与排查方法等。
应用运行环境参考标准可以指导应用开发厂商快速的搭建基于云平台应用系统环境,所需资源并应对有关环境的问题处理方法。
基于云平台发布与更新指引对开发完成的应用系统发布到测试环境与运行环境的规范,这些都讲基于广东移动PaaS 平台及容器化进行实现。
针对应用系统关键运维工作内容及运维过程中所采用的技术工作开展运维,结合容器化技术以及运维管理平台(或工具)进行运维管理,主要包括:
(1)基础环境运维,包括基础部署环境的快速搭建、运维管理平台搭建、容器仓库的搭建。
(2)基于运维管理平台、容器化的应用发布管理、应用镜像库维护。
(3)基于容器仓库快速的拉取合适的容器,建立应用环境,应用发布、应用集群的配置实现。
(4)日常运维工作内容,应用的启动、停止、动态扩容/缩容等的日常运维管理。
通过本次云平台以及对管理域应用的支持环境进行研究和探索,为后续云平台发展方向指出方向,为云平台的管理域应用环境、发布与更新建立参考标准与指引,并结合云平台及运维管理平台等合理的实现应用的高效管理,搭建高可用的应用环境指明了发展方向,有利于云平台与管理域应用建设相互促进,共同发展,充分利用云平台资源的情况下,保持与PaaS 平台发展规划思路一致,为后期很好的适应及融入PaaS 平台并有效承载和管理维护应用打好了基础。