您好,欢迎访问专业IT管理知识分享平台

上传文档

当前位置:首页 > 文章列表 > 传统企业的云技术转型实践与思考

「ITIL文章」传统企业的云技术转型实践与思考

作者介绍

孙杰
北京中油瑞飞 资深架构师
国内资深运维技术专家,OSCAR社区核心成员,来自中油瑞飞,目前从事云计算和数据中心私有云运维方面的工作。IT从业十余载,专注于系统、数据库和IT运维管理。

先后在外企、电商、互联网企业任职,参与实施数据中心规划建设、私有云架构规划及运维管理等相关工作,在若干大中型项目的建设和部署运维中,积累了丰富的架构设计、项目实施和一线经验。

一、云时代下的变革

1. 云计算的初始

首先看一下云计算这个名词的由来。早在2006年,27岁的 Google 高级工程师克里斯托夫 ? 比希利亚第一次向 Google 董事长兼 CEO 施密特提出了“云计算”的想法。

在施密特的支持下,Google 推出了“Google 101计划”,并正式提出“云”的概念。由此,拉开了一个时代计算技术以及商业模式的变革。其实云计算是很浪漫的名词,云在天空中飘拂不定,边界也不定,但它的规模是可以动态伸缩,动态变化的。

而且云计算这个词其实也体现 Google 的商业战略和技术战略相结合的非常完美的理念。云计算真的很美,但当你真正要去做云的时候,比如在一个大型企业里面从很传统的IT基础设施转向云的时候,面临的问题和选择还是比较多的。

是选用公有云还是私有云,走商业还是开源路线,包括一些其他的技术比如前端、中间件、数据库等等都面临很多选择,如何把传统的业务和应用与云计算和开源的东西结合起来,其实企业要面临很多重要的思考和抉择。

我们现在看公有云,比如亚马逊、微软、国内的阿里云等等,技术成熟,完全自研,从基础的设施到 CMDB、运维、审计、监控、安全、数据保护等都有比较全的解决方案。

2. 浅析公有云

首先看云计算市场的领导者亚马逊,亚马逊在今年9月7号在北京召开了一场比较盛大的技术峰会,一口气发布了很多新服务和新功能。

无论跟谁比,在业务上技术上,AWS都有众多亮点,包括:AWS的理念和架构设计、权限访问控制的架构设计、包括和行业标准的融合、多数据中心负载均衡的理念、Storage全生命周期的多种选择等等。

当时我还问了现场很多人,很多人也不是亚马逊的客户,但为什么很多技术人员愿意来听亚马逊发布新的功能和技术呢,因为亚马逊大家已经承认它在整个云的世界都是一个先行者和领导者。

第二个就是 Azure,微软的技术体系非常完善,云方面起步比较晚,也在这两年发生了非常大的变化,目前它的份额在全球位居第二。

第三个是国内的阿里云,大家称它为国内的亚马逊。阿里云的产品体系是很丰富的,它的飞天平台从 ECS 到 RDS 再到 DRDS,包括它的安全都是非常完整的解决方案体系。

这些云目前在国内市场发展都比较迅速,亚马逊最早是卖书的电商,阿里云最早也是做电商,现在都做成了很专业的云,他们为什么逼格比较高呢?

第一:全球布局,像亚马逊不仅在美国、欧洲、中国北京还包括宁夏中卫都有数据中心,看微软也是跟世纪互联合作,他们的人员和技术方面都有非常巨大的投入,阿里云在新加坡、香港和海外也都有数据中心并在积极拓展全球版图。

第二:是核心技术,大家看这个阿里云包括 AWS 都有自己强大的研发团队,包括微软的也是自研的云。它们是完全自主可控的,他们的软硬件是基于自己的需求来进行部署的,可以很方便的形成标准化。

第三:是它的增值业务,现在的云大多都是基于 IaaS 逐步推进在 PaaS、SaaS领域的服务,尤其是大数据、智能服务,是云计算厂商发展的重要趋势。

刚才我们谈到了公有云的很多特点和优势,但是在公有云蓬勃发展的同时,很多大型企业出于数据安全性、系统稳定性、软硬件自主权以及对自主可控、TCO 总体成本低的考虑,更加倾向于建设企业私有云来承载内部业务信息系统的运行。

现在我们看企业里面 Vmware 的传统私有云,有人问了大型企业为什么很多都在用 Vmware?首先从时间节点来看,传统的大型企业开始云计算建设,一般都是在2012年前后和2013年。

在2012年前后,其实openstack有很多的组件特性都是不成熟的,在这个时间点看Vmware的云技术方案是比较成熟的,所以大型企业选择了 Vmware。

但是经过这两三年云计算市场的发展,Openstack 逐渐成熟了,大家对云也普遍接受和认可了,再接下来看云产品,会发现 Vmware 已经不是最优选择了,Openstack 或许是个不错的替代品。

反观企业的云之路,你可以看到企业现在的 Vmware 传统私有云有四大缺点:

  1. 核心缺失。企业里的高端服务器和传统的集中式SAN存储,这些设备投资都比较高昂,但这些厂商的技术很多都是比较封闭的,很多核心技术在厂商手里而不是在企业的手里面,完全无法自主和可控。

  2. 厂商锁定,现在很多数据中心也完全的 X86 化了,但是X86服务器可以选用国产服务器实现自主,但是虚拟化软件和云管平台等还是要依赖于厂商,在这个时候你依然在软件层面被国外厂商锁定,无法自主。所以你的成本投入还是非常沉重的负担。

  3. 发展单一,传统的数据中心,现有的运维能力和成本都不足以在市场上跟互联网企业进行 PK,你的竞争力很弱,如果抛开厂商无法自主运营。

  4. 能力差距,传统企业里的运营能力主要集中在一些商用套装软件的安装优化和管理运维上面,在这方面缺乏自己开发的能力,还缺少拥抱开源的勇气和胆略。

我们再看 OpenStack 在这几年为什么会强势生长。首先 OpenStack 是一个涵盖云体系各方面的大框架,它由众多厂商给它贡献相应的技术代码和模块能力及生态支持,不被任一家厂商绑定,众人拾柴火焰高把它发展壮大起来。

另外一个就是 OpenStack 作为一个开源产品对我们提出了新的要求,如果你要把它投入到企业生产系统并可用的话,其实企业里面必须要有一批懂 OpenStack 的人,懂开源产品和代码的人。这些都对企业原有的技术人员提出了新的更高要求,要求技术人员不断的学习和掌握新技术。

3. 几个观点

第一个价值取向,我们认为公有云的运营商更关注的是成本,实现盈利是其主要的诉求。但在企业私有云里面第一要务是支撑企业大型信息系统的安全稳定运营,在此基础上实现信息系统建设的可持续发展。

第二个基础架构环境的要求,公有云面临的很多都是一些中小企业或者说个人用户。相对而言互联互通的要求不是太高的,但是在大型企业里面IT系统是经过多年的不断发展,形成了相对的规模和体系,它的应用系统对基础架构环境的要求跟公有云是完全不一样的。

第三个自主可控与安全合规,公有云的软硬件及标准,公有云运营商自己说了算,但是在企业私有云里面,我们希望软硬件包括建设标准是我们自己说了算,而且安全合规要符合企业自身的要求。

第四个诉求差别,公有云的设计是为了满足85%的应用、相对标准化的应用,而企业信息系统由于大量使用商用套装软件和专业软件,标准化往往达不到这样的程度,同时,相比于在公有云中运行的系统,企业核心应用在性能、可用性和稳定性等方面也有着更高的要求。

二、传统大型企业云技术转型的实践与思考

首先明白第一个特点,一个大型企业的私有云其云基础的设施和软件资源是建立在自己的防火墙边界之内的,就是完全可以自主可控它的网络,包括存储和计算。如果要转型,无疑 OpenStack 是一个比较好的选择。

那么 OpenStack 在企业里如何用好?
还有哪些问题需要着重解决?
OpenStack 在企业里怎么才能用好?

开发人员认为是使用姿势的问题;
用户认为要稳定可靠,不能老宕机;
老板认为多招几个牛X的开发和运维就可以搞定。

其实 OpenStack 在商用中存在的问题,主要在以下六个方面:扩展和稳定性、完整性、高可用、易用性、对物理机和数据库的支持、双活和容灾

先说稳定性。一个好的产品,性能并不是第一要素,稳定性对企业来说才是最重要的。

a. OpenStack 在扩展性和稳定性上还远远不足,需要精心打磨

从几十台增长到上千台甚至上万台,是否还可以一如既往的稳定工作不出问题?实践证明,随着规模的扩大,整体架构需要在稳定性方面做足功课。

比如需设计多个 NOVA API 和多个镜像、负载均衡和节点高可用、数据库的并发响应。

另外在社区中被吐槽最多的升级问题—— Nova,Swift,Cinder 和 Neutron 分别使用各自的数据库存储配置信息,要升级就要修改多个数据库schema,做不到热升级(在H版后升级问题得到改善)。

再如,某企业在部署网络服务(Neutron)时,遇到了噩梦般的经历,不得不重写网络组件的代码才能达到大规模应用的要求。

b. OpenStack 缺乏完整性

一个成熟的云平台应提供计算、存储、网络、安全、数据库、大数据、中间件、DevOps、监控运维等多种云产品。

OpenStack 只能提供计算、存储、网络三种云产品,如果企业客户需要信息安全保护的产品,则必须自助信息安全平台,集成第三方的产品。

再比如大数据分析,通过Sahara可以快速部署 Hadoop 集群,那又怎么打通 OpenStack 和 Hadoop 之间的账户、安全、管理和运维监控体系?

c. OpenStack 的高可用做的还不好

目前并没有官方声明 OpenStack 支持虚拟机级别的高可用性,这个特性在 Folsom 版本被提出,但是后续又被放弃了。

目前 OpenStack 有一个孵化项目 Evacuate , 其作用是为 OpenStack 提供虚拟机级别高可用支持。Evacuate目前只能是管理员手动发起,Evacuate 没有考虑VM的部署属性,导致资源调度策略失效。

主机名的变化会导致 nova-compute 重启过程中误删所有虚拟机,这个问题的产生主要是因为 Evacuate 的 清理机制。这个 BUG 在L版中得到修复。

d. OpenStack 的易用性还不够好

通过FUEL,可以实现OpenStack快速安装,但很多配置操作还需要命令行,离自动化部署一键交付还有距离。再例如 OpenStack 上用的比较广泛的 CEPH 分布式存储系统,目前还没有实现界面化的操作和配置。

另外 OpenStack 还缺乏通用的基础版本。
使用 OpenStack 不会被厂商锁定,但 OpenStack 可下载的厂商定制版有20多个,客户的选择非常重要。

e. 对物理机和数据库的支持

对数据库的支持,这里要注意一个问题,企业里很多老旧的业务系统大多使用的是物理机和 ORACLE 数据库,你要迁移上云需要做很多应用层的改变,包括应用代码的重构和数据的迁移,有时候评估一下成本太高会觉得不值,完全没有必要。

我这个业务也不想投那么多钱了,为什么还要迁移呢?所以在这个时候 OpenStack 就必须要解决怎么能够支持传统的 ORACLE 数据库,当然 OpenStack 在这方面不是强项,OpenStack 的 TROVE 对分布式数据库支持的比较好一些,对传统数据库的支持其实不好。

像微软的 MSCS 集群和 ORACLE RAC 集群,如果要部署在虚拟化环境里面,它需要有裸设备,但是放在 OpenStack 里面部署,会比较麻烦,如果用 CEPH 的 BLUESTORE 还不稳定。

一般部署在物理机上,再通过安装 agent 方式进行管理。Ironic 为什么必须存在,因为很多高性能计算的集群需要有物理机,虚拟机终归多了虚拟化这一层, 很多大数据的项目,经过测试发现物理环境是要比虚拟化环境的性能一般要高 10% 到 20% 左右。

在我们的业务场景里,一些应用需要用到特殊的硬件,这些是不能被虚拟化的,还有数据库集群和高性能计算都需要物理机。那么Ironic有什么缺点呢?

现在来看,主要的缺点就是它对网络隔离的效果不太好,另外也不支持动态修改端口,没法支持多个端口加入同一个网络,还有 PXE 加载结束后,没有往 MBR 中写入 grub 信息,导致后续启动需要先 PXE 加载 bootloader,再从硬盘启动操作系统,很不方便。这些方面都限制了你,不过 OpenStack 社区在这方面有很多进步,我们可以随时关注它的进展。

f. 双活和容灾问题

大型企业对业务连续性要求比较高,重点核心业务有同城双活和异地容灾的需求。同城双活是指用户关键的业务系统同时在同城的两个数据中心运行,同时为用户提供服务, 当某个数据中心的应用系统出现问题时,有另一个数据中心的应用来持续。

异地容灾,顾名思义就是在不同的地域,构建一套或者多套相同的应用或者数据库,起到灾难后立刻接管的作用。

我们看到 OpenStack 虽然也有单站点(Smaug+Cinder)和跨站点(Smaug+Swift)的备份和恢复方案,但离企业真正的业务双活和异地容灾还相距甚远。

再比如 Tricircle 实现的跨数据中心级联,还是需要 Cinder 依靠存储后端自己的能力去进行灾备,Tricircle 本身只是作为一个转发中继,为用户找到正确的需要操作的站点,其本身无法实现跨数据中心的容灾功能,这和 VMWARE 的 SRM 是不同的。

我们可以看到,在功能的支持方面和具体的细节上,OpenStack 与 VMware 还是有差距的,仍然需要不断进步才能做的更好。

但 OpenStack 作为开源管理框架,设计初衷是好的。随着企业里 OpenStack 的使用和发展,必将推动和加速它的成熟。

最后就是运维自动化,在大规模云的运维场景下,需要将重复度高的工作,基于监控数据智能决策触发,实现无人参与的自动操作的运维能力,这部分还有待 OpenStack 发掘。

总结这么一段时间 OpenStack 的使用和测试经验,我们认为对于 OpenStack 来说:

第一是稳定性,性能可以持续优化。如果不稳定的话,性能再好其实都没用, 哪怕你的性能做到了上百万上千万,但是稍微出现一点问题就挂掉了,这个产品是不可用的。

第二易用性也非常重要,如果没有界面也没有命令操作手册,操作起来就很麻烦,并且培养技术人员去熟悉和维护它也比较困难。这样产品就没有亲和性,让人爱不起来。

第三个数据安全,对于企业来说数据如果出现丢失或泄露,这个是要背负很大的责任。所以数据保护和安全不容忽视。

第四个我们认为一个彪悍的产品不需要脆弱的眼泪。OpenStack 在国内竞争是很激烈的,很多厂家和创业公司都在做 OpenStack,但一个厂商要把 OpenStack 所有的方面都做好我觉得还是非常困难的。

因为它有上百个项目几千万行代码,而你的研发人员有限,想把它所有的模块都做好,我觉得是很不现实的,必须抓住一个方面做好,而且融合在 OpenStack 的统一框架下,结合不同的产品为企业提供一个完整的解决方案,我觉得这才是最终的出路。

三、未来要走的路

现在大家都在谈软件定义,软件可以定义网络、存储和数据中心,那么如果把这些与企业私有云结合起来呢?

首先企业面临的网络挑战,从网络上来说,快速交付、快速变更、故障诊断、弹性扩展随着虚拟化和云的发展越来越凸显重要,大家也都在谈 SDN,那为什么要做 SDN 呢?

其实从技术层面上看 SDN 最大的好处就是灵活性,完全适应云时代的环境和部署的需求,以前企业里面要管不同的网络设备,有思科的、华为的、Juniper的, 现在如果采用 SDN 方案的话,可以做到把控制层面统一起来,增强控制面的灵活管控,弱化一些高端网络设备的功能,省去一些网络设备上的投资。

还有就是网络运营,以前传统的网络运营缺乏一个整体的视角,没法根据业务和网络的实时情况进行比较细微的控制,现在有 SDN,可以基于虚机和应用的网络特征来进行更细的优化和控制,并通过相应的参数来读取网络设备的信息下发不同的指令,这样可以减少很多人为配置的复杂度和难度。

再一个很多网络策略跟着虚机直接走,这样是非常灵活的,能够适应业务灵活快速的变化和变更。其二是 SDS 软件定义存储。SDS 对于我们来说,最主要的好处就是可以消除底层异构存储硬件的差异,使用起来比较方便。

软件定义存储可以实现基于 VM 做存储策略,就是说你现在的存储策略能够对应到每个虚拟机,真正的让存储能够感知到业务和应用。

另外分布式存储的容量扩展比较方便,可以轻松扩展到PB级。再一个从成本来看,也比传统存储要省一些。

最后 SDDC 软件定义数据中心。软件定义数据中心有这样几个特点,就是在统一的资源池下,存储与计算、网络资源都可以基于策略进行自动化控制和下发,然后匹配到相应的 QOS 值并优化业务。一切自动化实现,这就是你的最高境界,自动化加智能化,这是理想的 SDDC。

在下一个十年,云2.0的时代,企业是云化的主力代表。当然建设企业私有云的过程不是一蹴而就的,而且一个持续不断的投入过程,需要在实践中不断摸索前进。展望未来,拥抱开源。在中国,在亚洲,在全球,OpenStack 已经成为一种趋势,我们有理由相信在未来三年,OpenStack 将成为企业去首选。

暂时没有评论,评论一个吧?

您需要登录后才能评论 , 去登录

发表文章

Powered by DS文库

Copyright © 专业IT管理知识分享平台 All Rights Reserved. 鄂ICP备19005274号-1
×
保存成功