写点什么

为私有云结庐而做“隆中对”(下)

  • 2015-06-21
  • 本文字数:3502 字

    阅读完需:约 11 分钟

编者按:本文系 InfoQ 中文站向 ZStack 项目创始人张鑫的约稿。2015 年 4 月正式对外开源的 ZStack 项目宣称要解决在 OpenStack 中得不到解决的问题,并明确将项目目标指向目前前景似乎越来越不明朗的私有云市场。作为 ZStack 项目的架构师、CloudStack 的前开发人员,张鑫对于私有云——或者说 on-premise 的企业 IT——到底遇到了什么问题、此类服务到底应该怎么做,是如何构想的?本文将分享他对这个话题的思考。


写在前面:由于企业私有云市场迟迟未打开,近两年来已有多家 IaaS 企业被廉价收购甚至倒闭,业界已经开始出现一种质疑私有云是伪命题的声音。在此,作者想借 ZStack 发布的机会,梳理一下私有云的过去和现状,并展望一下它的未来。

私有云为什么还没有成功

我们知道私有云市场的四位先行者——Eucalyptus、CloudStack、OpenNebula 已渐渐淡出市场,OpenStack 虽然比较火爆但也迟迟打不开企业市场。作者认为造成这个结果的原因是,起步时过度依赖 Amazon EC2 模式,没有正视市场需求,以及没有按用户场景合理使用新技术。

上述几个 IaaS 软件在起步的初期,都没有什么前人的经验可以借鉴。没有人知道设计这么一个分布式的集成系统,面临的挑战在哪里,都有哪些坑要填。于是所有 IaaS 软件都处于一个在功能上模仿 Amazon EC2、在架构上自然生长的状态。由于当时市场空白较大,各家都急于上马 IaaS 项目,开发的推动力在于快速实现 EC2 的功能,在架构方面思考较少,为未来不同需求留下的架构冗余也不多。当整个 IaaS 软件发展到中后期,开发者们试图根据传统企业的真实需求进行架构变更时,才发现架构重构已经难以进行。

Eucalyptus 因为全面模仿 Amazon EC2 模式,其方案一直难以定制;而 CloudStack 虽然针对传统企业的差异需求进行了变更的尝试,但结果却是新版本软件越来越不稳定。OpenStack 则干脆主动忽视这一市场需求;OpenStack 社区本身就有很强的声音拒绝传统应用带来的需求。例如《Keep OpenStack Weird》一文就呼吁 OpenStack 拒绝为传统应用改变,而要求企业必须进化以开发出适应 OpenStack 的应用。Gartner 在文章《Why vendors can’t sell OpenStack to enterprises》就明确指出拒绝拥抱传统应用生态是 OpenStack 无法打开企业市场的一个重要原因。

IaaS 在公有云的蓬勃发展带动了相关领域的创新,SDN(软件定义网络)、SDS(软件定义存储)应运而生。的确,这些新技术的出现都是为了解决传统技术所面临的一些问题,但这些问题往往在公有云和大规模数据中心比较明显。例如公有云对网络隔离的需求,要求隔离技术能突破传统 VLAN 最多 4096 个的限制;存储技术要求能够实现分布式、多写备份以及动态扩容等。对于传统企业来说,这些技术往往既没必要也不稳定。当前一些私有云厂商,在向客户推荐解决方案时过分推销新技术,例如明明客户只需要传统的扁平网络,却硬要客户部署 SDN;明明客户对存储动态扩容没有需求,使用传统的 NFS + RAID 备份就已足够,却推荐客户部署分布式存储。客户项目上马后,在日常使用中长期遇到不稳定、难维护的问题,渐渐对私有云失去信心。OpenStack 社区蓬勃发展后涌入的大量硬件厂商,从自身利益出发提交了很多兼容性不好的代码,造成 OpenStack 某些核心组件不稳定(例如 Neutron),也在一定程度上加剧了客户对私有云的不信任。

私有云未来应该怎么做

对于未来私有云的发展,作者认为关键在于:开发出能拥抱传统应用生态的商业模式,专注于用户场景,控制软件投入风险,向上融合走整体解决方案路线。

1、开发出能拥抱传统应用生态的商业模式

要想打开传统企业市场,私有云厂商要正视已是既成事实的传统应用生态。虽然未来的企业应用必将进化成亲和现代 IaaS 架构的云应用,但在此之前,我们不得不兼顾企业已在传统应用上的投入。兼顾的方法是在虚拟化方面学习 VMWare,在网络模式和上层服务向 Amazon 靠拢。VMWare 凭借多年来在企业虚拟化方面的积累,开发出了很多满足传统应用需求的功能,例如在管理上以虚拟机为中心、虚拟机高可靠、专有资源配置等。私有云提供商的 IaaS 软件要么开发出类似功能,要么直接集成 VMWare 作为虚拟化解决方案。在网络方面,Amazon 的很多网络功能已经成为云计算领域的事实标准,例如 VPC、EIP、Security Group、ELB 等都广受用户欢迎。私有云 IaaS 软件要将这些服务进行整合,以实现传统应用的各个网络场景。此外,由于全世界的公有云几乎都遵循 Amazon EC2 模式,在网络上靠拢 Amazon 能够很容易帮助客户搭建混合云(hybrid cloud),打通用户在公有云和私有云中的业务。最后,Amazon 很多 IaaS 之上的功能例如 Auto scaling、CloudFormation、CloudWatch 等都是解决用户痛点的创新,私有云 IaaS 需要能够提供类似的功能。

2、专注于用户场景

专注于用户场景要求私有云提供商从用户的应用场景出发,推荐符合用户需求的解决方案,一切以稳定优先。以网络为例,无论是 SDN 还是传统技术,最后面对的还是 OSI 的 7 层模型。在 IaaS 层面就是 L2 隔离,L3 子网加路由,L4~L7 应用层协议,应用场景是非常明确的。对于企业用户,可能只需要数目有限的私有网络,那我们就可以推荐用传统的 VLAN 来进行隔离;对于一些服务提供商,要求网络拓扑能够灵活按需变化,那我们就可以推荐使用 SDN 来实现路由。又例如存储,企业用户的场景往往是容量可以预估,稳定性可靠性要求高,那我们就可以推荐成熟的、基于传统协议的商业存储;如果面对的是服务提供商,数据量可能会爆炸增长的,那我们就应该推出类似于 Ceph 这样的分布式存储。

3、控制软件投入风险

IaaS 软件是集成技术,必然会引来各种第三方厂商要求进行集成。私有云提供商要对自家 IaaS 软件在这方面的投入进行控制,不能沦为第三方厂商的集成器,把主要精力浪费在下层系统的集成中。愿意部署私有云的企业,往往都是有预算购买新硬件产品的。私有云提供商应该优先专注于集成最稳定、应用广泛的成熟产品,在向客户提供解决方案时,只推荐已验证过的第三方产品。并且要借助客户的力量,反推第三方厂商与自身集成。例如 CloudStack 中的很多硬件驱动就是其客户要求网络和存储厂商为 CloudStack 提供的。此外,要认识到在虚拟化、网络以及存储方面已经存在非常多的标准技术,而对标准技术的稳定集成已能够满足绝大多数企业客户的需求。

4、向上融合走整体解决方案路线

私有云的未来一定是向上层发展,实现 IaaS 和 PaaS 的融合。私有云的目的是为了将用户从基础架构中解脱出来,专注于业务创新。但在基础架构(IaaS)跟最终业务(application 或 SaaS)之间还有一层隔离,即软件的部署交付,目前人们称之为平台即服务(PaaS)。未来的私有云展现给用户的一定是一个最终平台,即不仅能够管理用户的基础架构,还能为用户部署和管理上层业务。我们不妨将 IaaS 和 PaaS 融合的平台看作是私有云的一个未来形态,如果说操作系统是传统软件的入口的话,那么未来企业软件的入口就是私有云。用户部署软件的方式将不再是到一个个操作系统里手动安装配置,而是软件商提交给用户的就是包含软件本身的操作系统镜像,通过支持私有云定义的接口,可以在镜像启动时导入下层基础设施信息,例如网络地址、网络磁盘路径以及软件配置信息,并且能在运行的过程中根据自身状态将数据反馈给 IaaS,实现基础设施层面的调整(例如启动更多的虚拟机)。目前已经有一些产品和项目在向这个方向努力,但都停留在跟 IaaS 第三方集成的层面上。由于 IaaS 本身不提供原生支持以及成熟度的问题,目前还没有好的解决方案。

总结

私有云要打开企业市场,不能再走早期单纯复制公有云的模式,而是要拥抱传统应用生态,走一条兼顾现实、着眼未来的道路,并最终向上发展,为企业 IT 架构提供一套完整的解决方案。

参考文章

  1. 《Why OpenStack is different from other open source projects》
  2. 《Keep OpenStack Weird》
  3. 《Why vendors can’t sell OpenStack to enterprises》

作者简介

张鑫,2006 年加入 Intel 上海开源技术中心(OTC),从事开源虚拟机项目 XEN 的开发,为社区共享了多个功能,例如 XEN 中 E100 网卡模拟器,XEN/IA64 虚拟 BIOS 对 Windows 的支持等。同时也共享了大量 bug 修复的补丁。2010 年赴硅谷加入 Cloud.com(后被 Citrix 收购),从事 CloudStack 的开发工作,其间多次作为 CloudStack 代表参与客户私有云项目的设计和部署。在从 Citrix 退出后,和搭档一起创立 ZStack。


感谢杨赛对本文的策划,魏星对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-06-21 07:431772

评论

发布
暂无评论
发现更多内容

CCF大会腾源会专场即将召开,聚焦基础软件与开发语言未来发展

腾源会

开源 腾源会

浅谈Java和SAP ABAP的静态代理和动态代理,以及ABAP面向切面编程的尝试

Jerry Wang

编程语言 oop aop spring aop 8月月更

突破次元壁垒,让身边的玩偶手办在屏幕上动起来!

HMS Core

分析 Flink 任务如何超过 YARN 容器内存限制

移动云大数据

Flink 平台

有了阿里这5份Java架构师手册,学习起来轻松多了!

冉然学Java

Java 算法 java面试 性能调优实战 并发架构设计思想

SAP 产品增强技术回顾

Jerry Wang

SaaS SAP 企业级应用 云应用 8月月更

如何解决 “主节点故障恢复的自动化” 问题?

八点半的Bruce.D

巧用自定义函数,文本控件秒变高速缓存

明道云

从普通程序员晋升到架构师需要掌握哪些技术,这份37W字Java高性能架构用13个章节彻底讲明白了

Java永远的神

Java 程序员 面试 程序人生 架构师

开源一夏 | 使用 CSS 的水波文本动画(免费代码)

海拥(haiyong.site)

开源 8月月更

运动健康服务场景事件订阅,让应用推送“更懂用户”

HMS Core

深度解析佛萨奇,Forsage魔豹联盟系统开发方案(源码部署)

开发微hkkf5566

阿里架构师首发:80W字微服务架构手册GitHub上杀疯了

冉然学Java

Java 编程 程序员 架构 微服务

SAP ABAP 里存在 Java List 这种集合工具类么?CL_OBJECT_COLLECTION 了解一下

Jerry Wang

设计模式 迭代器模式 SAP abap 8月月更

阿里云 Hologres助力好未来网校实时数仓降本增效

阿里云大数据AI技术

数据分析 数据治理 数据安全

在座的Python爬虫工程师,你敢爬律师事务所站点吗?

梦想橡皮擦

Python 爬虫 8月月更

5 张弹珠图彻底弄清 RxJS 的拉平策略:mergeMap、switchMap、concatMap、exhaustMap

掘金安东尼

前端 RXJS 8月月更

ABAP应用服务器的HTTP响应状态码(Status Code)

Jerry Wang

前端开发 HTTP web开发 SAP 8月月更

为私有云结庐而做“隆中对”(下)_语言 & 开发_张鑫_InfoQ精选文章