supercloud
作者supercloud·2016-11-17 14:41
系统架构师·某银行

讨论如何建立企业级私有云

字数 4932阅读 4681评论 0赞 1

搞私有云建设也已四五年了,期间虽也与不少同行进行过交流,但很少能静下心来细细思考这四五年来的经验与挫折,更谈不上写些心得。所以,最近希望可以抽些时间能够将这几年的心得整理一下,与大家分享。

当下,随着云计算的火热,很多企业的IT部门都跃跃欲试,希望建立自己的私有云,好像不上云就跟不上时代步伐似的。其实,笔者认为,要不要上云主要还是看各家当前的硬件设备规模,而能不能上云则要看各家的标准化程度。私有云不一定适合每一家企业,强行上云反而适得其反。

那么怎么判断自己的企业是否适合建立私有云呢?我们先来看私有云能给我们带来什么好处。从查阅网上资料以及总结以往经验来看,私有云带给我们的好处主要有:1.节约硬件成本,2.节省物理空间,3.提高供给效率,4.减少IT支持成本,5.提高大规模计算能力。总结起来就一句话:资源整合、物尽其用。所以,云计算的最大好处还是节省资源,减少投入。某大行曾经做过对比,上云后,节约费用可达几亿元之多。但私有云建设本身也是需要投入的,而且是一笔不小的投入,除本身硬件及各种虚拟化软件必须采购外,云管理平台本身建设成本更是高达千万。所以,企业的服务器数量不到一定规模,没有必要耗费巨资来建设私有云,只有私有云带来的收益远远大于其自身建设成本时,才有建设意义。

我们再从企业自身标准化程度来看能不能上私有云。云计算的本质是将计算、存储、网络等资源以服务的形式向用户提供。所以,私有云建设的首要任务就是将这些服务标准化,而用户也需基于这些标准来获取服务。服务的标准化虽然很难,但还只是数据中心内部的事情,而用户基于标准来使用服务则不仅仅仅限于数据中心,更多是业务方和开发中心也要做出相应的标准化后才可实现,但是就目前金融IT行业而言,开发部门和运维部门属于平级,而大银行又有众多开发部门,所以要想开发部门进行相应的标准化就需要金融IT的领导部门意识到标准化的重要性,有能力制定相关标准化要求并将标准化推行到各个开发中心以及数据中心。

所以,要看一个企业是不是应该上云,就要看这个企业的基础设施规模是否达到一定规模,只有上了规模才有上云的必要。而一个企业能否在云海中驰骋遨游,则要看这个企业的标准化实施程度。

接下来的文章,笔者将基于自身经验讨论如何建立企业级私有云。

要建立企业级私有云,标准化需要先行。从业务形态来看,私有云主要包括:云服务、资源池、服务供给流程、自服务门户。所以,标准化的内容也就包括:、云服务标准化、资源池标准化流程标准化。

Ø 云服务标准化

云计算的本质是将IT能力以服务的形式批量快速交付。所以,要想做好私有云,首先要把云服务标准化,只有服务实现标准化才能实现服务的批量快速交付。

云服务在资源形态上一般包括:计算服务、存储服务和网络服务等;在日常运营上,则包括:监控服务、运维服务、安全服务等。我们需要在每一种服务上进行相应的标准化。

例如,计算服务需要标准化提供的操作系统的版本、数据库版本、中间件版本等供用户选择,存储服务可以标准化存储供给的类型(块存储、文件存储、对象存储)以及申请的单位,监控服务需要标准化监控的各项指标,运维服务需要标准化日常巡检的内容以及自动化脚本格式等。

Ø 资源池标准化

资源池一般分为:计算资源池、存储资源池、网络资源池。

计算资源池提供计算能力,存储资源池提供存储能力,网络资源池提供网络能力。资源池由相应的设备构成,资源池的建设依赖于云服务的设计。比如如果云服务提供linux系统,而且物理机和虚拟机都可提供,则资源池就需要建立X86物理机资源池和X86虚拟机资源池,如果云服务提供AIX系统,则资源池就需要建立AIX资源池;同理,如果提供快存储服务,则需建立快存储资源池,如果提供负载均衡能力,则需建立负载均衡资源池。

资源池的标准化包括资源池的构建模式、资源池的各项命名规则、资源的供给算法、物理设备的初始化配置等等。

Ø 流程标准化

在大中型企业,尤其是在生产环境,一边都会设计严格的生产运维流程,比如ITIL流程。这些流程可以帮助我们捋顺各部门之间的职责以及日常工作模式,减少日常运维沟通成本,提高工作效率。同样,在私有云的建设以及日常运营过程中,各类流程也是必不可少的。

由于资源池的建设涉及数据中心的多个部门或组织,资源池建设的流程也是必不可少的。例如,计算资源池的建设就包含服务器、存储、网络、系统运维、规划、采购等各个部门的联动,计算资源池在创建时需要先由规划部门进行容量规划和资源池设计,然后由采购部门进行采购,服务器、网络、存储等部门根据资源池规划进行相关的硬件上架、加电,再由系统运维部门进行初始化配置;这一连串的动作如果没有一个流程来指导、规范,整个资源池建设工作将难以进行。

在云服务开发完成后,需要通过服务目录提供给用户申请、使用。所以,还需要设计相应的服务申请流程。由于不同的服务由不同的部门或组织进行提供,所以,不同的服务也会有不同的流程。传统的ITIL流程中也有服务请求流程,而此处云服务申请流程与传统的ITIL有何区别的,笔者认为最大的区别就是云服务申请流程通过自动化工具解决了传统ITIL流程线上、线下两层皮的问题,使得流程和操作都在线上自动化完成,不仅有效提高了服务的供给效率,而且大大提高了服务的供给质量。

在完成标准化之后,我们需要对私有云的技术路线进行选择。

在私有云技术路线的选择分析上,我们在不同的技术层次上做出不同的分析。

Ø 基础设施层

本层主要是对基础设施进行管理和适配。

目前业界一谈到私有云,即会很自然的认为私有云就是虚拟机,或者只要用了虚拟机就可以称之为云;其实云本质上是将IT能力通过服务的形式进行输出,其不仅只包含计算服务,还包含网络服务、存储服务、安全服务等等,所以搭建私有云时不能只有服务器,还需要有存储、网络、安全等设备。而在技术上,也不仅仅只有服务器,还包括网络、存储、安全等技术。而在服务提供的形式上,不仅可以是虚拟设备,还可以是物理设备。

所以在基础设施这一层,其包含的技术不仅仅是虚拟化技术,还有传统的物理技术。本次重点讨论的是虚拟机技术,传统物理技术目前看只有采购厂商设备和厂商软件一条路。

目前虚拟化技术可细分为服务器虚拟化、存储虚拟化、网络虚拟化等,其商业软件有很多选择,vmware 、IBM、微软、华为等均有其各条产品线虚拟化商业软件,尤其在服务器虚拟化这一领域,更是百花齐放;而虚拟化技术的开源软件选择也很多,有KVM、ZEN、Docker、Openflow等,特别需要指出的是,国内大部分厂商的商业软件都是基于开源软件封装而成。

对于私有云而言成本、稳定性、可靠性、可维护性都是选择的因素,相对而言,在基础设施层,商业产品在功能稳定性、完备性方面和技术支持方面都有一定的优势,尤其是国外厂商软件优势明显,目前大多数企业也都是选择的商业产品。而互联网企业基本都是选择的开源产品,这里面有成本因素考虑,但更为重要的技术积累和掌握的问题,相对于一般的企业,互联网公司汇聚了大量的技术专家,对开源产品不仅仅是拿过来使用,而是具备了代码级的修改及运维能力,而且不少公司都直接给开源产品贡献代码。对于商业银行而言,稳定可靠始终是首要的考虑因素,在对开源产品缺少足够的技术积累前,商业产品还是第一选择,当然,如果商业银行计划做行业云的话,出于成本和核心竞争力考虑,建议使用开源技术。从长远来看,自主可控和国产化是未来的技术主线。因此在建设私有云,总体架构规划设计时要考虑对虚拟化技术的松耦合,有条件的企业可以考虑走商业产品和开源产品并行的路线,在核心的关键应用领域使用商业产品,在非关键业务或者内部办公应用领域使用开源产品。既积累了开源产品的技术和使用经验也避免了单一商业产品绑定。

Ø 云管理层

本层主要是对云服务、资源池、资源调度等进行管理。

本层主要是在基础设施层之上对设备进行池化管理,根据基础设施层提供的各种接口或者服务封装云服务并根据用户需求进行资源调度。

目前国内外都有不少厂商推出了自己的商业化产品,比如VMware的Vcloud、华为的FusionManager、青云的QingCloud;开源领域也有不少好的开源软件供选择,比如Openstack、Cloudstack、Cloudfoundry、Cloudfy、Kubernetes等,国内也有不少厂商软件是基于开源软件二次开发。

云管理的核心是理念、流程、技术的深度结合,技术本身而言不存在太高的技术壁垒和风险,在云计算发源的互联网和电信行业,基本都采取自主研发路线。当前云计算还在快速发展中,厂商产品的成熟度还不够,往往很难覆盖的全部的需求,而且使用厂商产品还要面临整合的问题。因此,在充分调研和反复论证的基础上,吸取最新的研究成果和先进厂商的成熟产品优点,大型银行可以走自主研发的道路,而中小银行则可采购国内厂商软件然后再做二次开发;不管哪种方式,量身定制符合企业需求的私有云平台应当是重点考虑的建设方式。自主研发或者经过客户化定制的云平台能够充分满足体现的商业银行的业务特点和实际需要,也能够扭转技术路线被厂商驱动的被动局面。

Ø 服务自动化层

本层主要是资源供给之后对资源进行运维管理,也就是我们常说的IT服务管理,包括:监控服务自动化、运维操作服务自动化、流程服务自动化等。

本层之前一直是国外厂商占主导地位,包括HP、BMC、IBM、CA等是传统的四大IT服务管理软件厂商,但这些厂商的产品主要都是针对传统数据中心运维场景,在云数据中心场景下,这些产品的适应性表现的较差。所以,越来越多的国内企业甚至创业公司,盯准了这个机会,积极地拓展这一领域,比如华为、OneAPM、听云、云霁科技、天旦等。这一领域的开源产品也是百花齐放,比如:Nagios、Munin、Zabbix、Puppet、Ansible、Saltstack、JBPM等。

本层次可再细分为两层:技术实现层及业务管理层。

技术实现层指的是底层使用的是自动化实现技术,技术实现层由于标准化程度较高,在通用性上也较强,建议用户可以直接购买厂商软件或者使用开源产品。在这一层次,国外老牌厂商在平台类、硬件类等监控方面积累较深、技术较强,而在应用监控方面国内厂商则走的更远,对国内的适用性也较强,用户完全没有必要重复建造轮子,所以建议监控采用厂商软件。而在操作自动化方面,国外厂商软件的发展则明显滞后于目前的云计算发展,越来越无法满足用户的需求,大量的用户已经选择使用开源自动化管理软件,国内也有一些企业基于开源软件做了二次封装便于用户使用,所以,再自动化方案,建议采用开源软件或者国内厂商软件。

业务管理层指的是用户使用的界面和流程。由于不同的企业其管理思想和流程是不同的,所以,需求也千差万别。所以在这一层次,建议自主研发或者要求厂商做本地化定制。在这一层,我们还会遇到一个问题,就是工具之间的整合,所以,如果希望把您采购的工具完美的构建成一个体系,那就请自主研发把,因为这个事交给任何一个厂商(厂商之间有竞争关系,不会很好地相互配合),都是无法完成的,只有用户自己实施,才有可能。

业界私有云技术在软件类型上主要分为商业软件和开源软件两大流派,商业软件又可细分为完全由厂商自主开发的闭源软件和厂商通过开源技术或开源软件封装出来的商业软件。

通过比较我们可以清晰的发现,在功能适用性、易用性、可控性、可扩展能力、成本等方面,自主研发最好、厂商开源软件次之、厂商闭源软件最差,但在人员能力、人员规模要求上,厂商闭源软件要求最低,而自主研发要求最高。所以,企业在建设私有云时,要结合自身IT实力和实际需求,选择合适的技术路线。大型企业建议基于开源软件自主研发或与国内厂商合作开发,而中小企业可购买厂商软件,再根据实际需求决策是否进行二次开发。

如果私有云已经成为企业的核心竞争力,则必须选择自主研发之路,因为核心竞争力是买不来的,而且也应该是机密的。

注:自主研发不代表所有的项目成员都是企业自身人员,而是指产品是由企业自身主导开发,项目核心成员(产品经理、架构师、核心程序员)是企业自身人员,开发人员、测试人员可以通过外包解决。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论0 条评论

Ctrl+Enter 发表

本文隶属于专栏

最佳实践
不同的领域,都有先行者,实践者,用他们的最佳实践来加速更多企业的建设项目落地。

作者其他文章

相关文章

相关问题

相关资料

X社区推广