私有云管理平台加速交付服务能力实践

2017-09-23 06:23李强王宁
软件 2017年6期
关键词:集群架构模板

李强+王宁

引言

企业私有云是为一个企业单独使用而构建的,为其提供对数据、安全性和服务质量的有效控制。此模式赋予公司对于云资源使用情况的极高水平的控制能力,同时带来建立并运作该环境所需的专门知识。

但是在互联网时代,随着企业业务的不断发展,企业内部各需求部门对于应用系统的快速上线提出更高的要求,尤其是大数据平台软件,由于各业务部门对于资源的需求不同,在企业内部已经出现了大小规模不一、版本混乱的Hadoop分布式集群,而且资源在使用整合上存在利用率低、管理复杂等问题。如何支撑企业管理和运营效率提升,如何实现云计算和企业应用的快速衔接,如何基于私有云管理平台实现平台软件服务资源的统一管理,如何实现软件服务资源的快速响应,都需要我们认真加以研究。

本文从企业实际业务需求角度出发,基于企业私有“云”管理平台,实现标准化软件服务的自动化交付,有效提高了资源的整理利用率和软件服务交付能力,节省投资成本。

1概述

关于云计算,从概念到成熟已经有10余年光景,大多数技术已经逐步成熟且得到广泛应用,特别是对于大型企业来说,都在建设自己的企业私有云,用于支撑内部应用,且基于私有云管理平台实现了IaaS层基础资源(计算、存储、网络)的灵活快速分配,一定程度上满足了企业对于基础资源的快速响应需求。

公有云的发展充分印证了IaaS和PaaS交付是成功的,这里体现了标准化开发的重要性,而在企业私有云,由于需求规格不一、变化较大,平台软件服务的标准化建设反而进度缓慢,很多时候造成资源的浪费,这就需要企业注重云上软件服务的整体规划,自主掌控系统整体架构,从服务编排人手,提升平台软件的标准化水平,同时与企业IT新型人才实现联动,培养DevOps人才,基于云平台基础架构和自动化编排工具实现自主开发运维,满足个性化需求,实现软件能力的快速交付。

本文从企业实际业务需求角度出发,基于企业私有“云”管理平台,针对资源交付服务能力做一次案例实践分享和探讨,不涉及业务数据迁移、业务应用程序开发、测试和应用程序日常配置变更,通过实践实现了云平台和大数据资源运维架构一体化,基于虚拟化和Openstack编排工具完成标准化软件服务的自动化交付,充分展示私有“云”管理平台管理基础架构资源的范围,提升面向业务需求的软件服务交付能力。

2私有云管理平台快速交付服务能力实践

2.1私有云管理平台

私有云管理平台面向企业内部IT支撑系统和业务平台的资源需求,为用户提供物理机、虚拟机、小型机、弹性块存储、软件库、公网IP地址、带宽、防火墙、负载均衡等资源服务。云管理平台负责私有云计算服务的运营和运维,并对私有云计算资源池系统以及其中的各类资源进行集中管理。

目前通信企业的资源异构形态严重、资源类型复杂、各种IT系统及发行版本众多。在“云”服务能力的倡导下,各行各业都建设了自己专属的基础架构资源及其管理平台,且大多数都基于开源项目Openstack研发。除了基于原生态的Openstack私有云管理平台,还有更多基于Openstack开发衍生出的各种企业私有云管理平台,其中包括诸如RedHat、Mariant、IBM、HPE、Easystack、Unistack等眾多国内外的IT技术服务公司的发行版。实际使用中,企业用户或多或少都会接触一个或多个发行版的Openstack,不同版本的Openstack平台对基础资源管理功能总体上是几乎一致的,不过针对异构资源扩展管理能力的Openstack项目组件,随着版本的不断更新发布和具体的工程研究,项目开发实现还是有相当明显差异性的。

由此产生基于Openstack服务all-in-one的厂商也越来越多,形成了以Openstack为技术核心的云服务厂商。由于Openstack技术越来越完善,之前以Openstack为技术瓶颈的服务能力越来越为大众所接受,逐渐成为企业云管理平台架构选型必须考虑的方案。

当前基础设施架构环境下的云平台,本质上属于IT资源数据中心的旁侧管理系统,主要用于控制基础资源层,因此对于资源数据中心来说,要形成统一管理控制资源中心的所有资源其实还需要相当一段时间的锤炼。目前能治理数据中心级的资源管理服务厂商还不多,能够满足企业级数据中心复杂业务架构的服务厂商有限。图1是目前以Openstack架构为技术标准的私有云服务提供厂商。

2.2 Hadoop平台服务快速交付实践

需求来源于Hadoop CDH平台向HDP平台迁移场景,通过虚拟资源交付一套Hadoop基础架构平台,该平台主要通过MapReduce从数据源系统拉取数据并清洗输出到HDFS,创建Hive数据表,使用Hive SQL对数据进行统计汇总运算,主要使用了大数据平台中的HDFS、MapReduce、Hive,并使用Oozie进行任务编排。为了能够有效的完成该迁移工作,我们制定了一套完整的迁移工作思路,用于指导整个迁移过程。平台架构如图2所示。

2.2.1迁移步骤及实践

步骤一:差异性检查

明确需要迁移的两个平台之间的差异、依赖组件的差异。检查旧集群CDH和迁移目标集群HDP平台特点,考虑到相关组件一般大版本号差异较小(除了从Hadoopl.x向Hadoop2:x升级),主要是组件的小版本号差异,理论上从低版本向高版本环境升级相对阻力较小,因为软件升级一般都会考虑向下兼容,特制定以下版本迁移策略,如表1所示。

步骤二:参数修改

将旧平台相关属性配置参数更新至新平台,如数据库访问地址,主机名称等。核查项目代码,将硬编码、配置文件中和平台相关的参数进行更新,主要包括Hadoop相关服务的参数配置、IP/host.name、数据库地址、用户名、密码等,这一步需要细心核查,保证做到完全正确替换;当在调试阶段时遇到一些旧平台参数的报错日志、连接不成功等现象时,一般都是参数修改不彻底导致的,可再针对性完成修改。endprint

步骤三:依赖更新

对于Java开发的应用,主要将CDH的相关依赖jar包更换为对应版本的HDP的jar包,重新打包编译,因为版本的差异,可能涉及代码级别的接口调用修改。

建议使用maven项目依赖管理工具来统一管理项目依赖以及打包上线的工作,如果使用ant之类的早期项目构建工具,建议优先改造成maven项目,这样也可以显著降低日后的项目维护成本。

使用maven构建项目时,按照第一步进行的差异性检查清单,将对应组件的jar包名称、版本进行更新。完成全部的更新后,使用“mvn package”完成对更新后的项目进行编译打包。因为更新了iar包,对应的编程接口可能会发生变更,可以根据编译过程中的编译错误,逐一完成错误代码片段的修改,直到程序可以正确编译通过为止。

步骤四:测试调试

将编译打包后程序部署到测试环境中,进行功能性、稳定性测试。功能性测试主要检查程序的功能是否正常,产出的数据是否正确;稳定性测试主要检查迁移后的应用在新平台上可以长时间稳定运行。

步骤五:重新上线

通过功能性测试和稳定性测试后,将应用程序迁移到正式环境中(这里还需要做数据迁移,这里不展开讨论),调试通过后,完成线上业务割接,后期再考虑下线旧有服务,最终应用能力的无缝迁移。

迁移过程中,主要在步骤2-4之间反复迭代若干次,遇到的主要问题是平台参数配置错误和项目代码依赖缺失、版本不一致的问题,占用研发人员较长时间,经过仔细的修改核对和严格测试,进一步展示基于云平台实现大数据Hadoop平台快速上线的有效实践。

2.2.2基于虚拟化加快Hadoop集群交付

基于上述反复迭代实践,对于Hadoop集群迁移有了比较深的理论基础,为了加快Hadoop平台服务交付,本文提出了一种基于虚拟化的Hadoop集群快速交付方法,适用于中小规模的Hadoop集群建设需求。

为了快速响应中小规模的Hadoop集群建设需求,本文从基础架构设计出发,基于虚拟化搭建Hadoop平臺,根据CPU、内存、存储实际需求分配资源,制定了Hadoop虚拟机模板,通过业务编排实现集群搭建、节点自动加载,通过自动化运维工具实现了Hadoop配置统一更新,从而创建了一套统一规格标准化的虚拟化Hadoop集群模型(对于特殊组件需求,由上层应用厂家专门定制打补丁),不再受限于有限的物理节点,实现了需求快速响应和架构弹性扩展,同时结合各个集群闲忙时特点,实现计算、I/0资源的高效利用。整个虚拟化Hadoop环境架构如图5所示。

2.3常规软件服务快速交付实践

常规软件服务交付主要通过云管理平台编排能力实现,即通过虚拟资源交付一套业务应用程序,通过Openstack Heat编排交付IaaS资源,并通过编程接口基于虚拟机交付中间件、数据库等一系列基础软件服务。为了能够有效的交付应用服务,根据业务服务交付实际需要,本文设计了一套完整的编排流程来引领服务编排工作,用于指导整个应用软件服务交付过程。一个完整的应用服务一般包括数据库、中间件等软件服务,下文主要依据Heat服务编排过程进行介绍:

第一步:编写整套业务系统所需要的Heat模板,该模板在云管理平台以服务目录形式供终端用户使用,Openstack Heat模板依照Heat统一模板编写规范制定,比如heat中resource部分编排如下图所示:

其他依照此模板编写,最终可以将模板导入云管理平台,自动化脚本和服务目录能力交付如下图所示:

第二步:依照架构中服务交付内容,通过SHELL或Perl或Python等脚本语言,完成组件资源自动化交付能力,比如以Weblogic为例,详细阐明自动化脚本实现功能,完成Weblogic自动化服务交付能力,该脚本采用Shell编写,经过了各种测试架构,可以直接使用。

第三步:基于云管理平台操作编排接口,将Heat模板导人云平台后,创建可供给终端用户/租户使用的服务目录,交由租户使用。当然服务目录可以作为资源进行授权,也可以作为服务目录管理和编排的实际交付服务,大致服务目录如图9所示。

第四步:当服务目录完成授权后,租户可以选择可以交付的服务目录,申请实现服务目录,当然自动化服务目也需要提供各种参数信息,以此实现自动化交付软件服务,如图10所示(以Weblogic为例)。

第五步:服务目录申请交付后进入服务运行模式,此模式需要相关运营和运维部门共同完成,大体流程如图11所示。

综述,租户通过门户启动申请流程,基于以上五个步骤,可以开发各种不同自动化交付服务能力,同时根据技术标准和业务配置要求,最终实现整套业务在虚拟机环境下的自动化发布。

3结论

基于虚拟化和DevOps敏捷开发实现Hadoop集群的快速交付,部署时间可以压缩到分钟级,有效提高了资源的整理利用率,节省投资成本。

基于私有云管理平台完成Hadoop集群、软件服务的快速交付,再次证明云管理平台加速交付服务的能力,通过云平台构建大数据Hadoop服务,实现了云和大数据一体化环境架构的统一部署,使得企业私有云在标准化、池化、动态化、云化方面得到了进一步规范,私有云架构进一步成熟,提高了快速响应需求的能力,有利支撑了企业业务系统的快速上线。

实践证明私有云管理平台同时需要与企业开发运维团队有效结合,面对不同的需求,在自动化部署遇到问题缺陷时,基于Openstack编排开发框架,运用Devops敏捷开发理念,不断迭代开发解决并积累经验,才能发挥现有私有云管理平台自动化部署的最大效能,增强企业核心竞争力。endprint

猜你喜欢
集群架构模板
基于FPGA的RNN硬件加速架构
功能架构在电子电气架构开发中的应用和实践
海上小型无人机集群的反制装备需求与应对之策研究
一种无人机集群发射回收装置的控制系统设计
LSN DCI EVPN VxLAN组网架构研究及实现
Python与Spark集群在收费数据分析中的应用
铝模板在高层建筑施工中的应用
城市综改 可推广的模板较少
一种基于FPGA+ARM架构的μPMU实现