私有云搭建:基于OpenStack但不止于OpenStack

标签:大数据物联网安全存储云计算

访客:17284  发表于:2017-05-04 09:53:12

在过去的3月份,开源厂商Redhat公司披露了它的第四个季度的财报,显示其中16%左右的收益来自于私有OpenStack。Red Hat的CEO Jim Whitehurst也表示,第四季度中三分之一左右的大型交易来自于OpenStack私有云组件。这对用户来说无疑是一个利好消息,说明已经有越来越多的企业开始尝试应用OpenStack了。

Redhat只是OpenStack企业部署的一个案例而已,那么OpenStack当前在国内的部署、实施水平如何?对此,我们有幸采访了云极星创联合创始人兼CTO刘世民先生,他曾先后在EMC和IBM公司负责OpenStack平台的架构设计与实现和OpenStack 的私有云产品国内的研发,以及云极星创IaaS平台研发部架构师刘家军先生。

OpenStack国内发展形势大好

OpenStack是以开源社区为基础,仅从对社区的代码贡献量来看,中国企业、开发人员已经成为社区的中黄金、白金会员的主力军了。刘世民说, “目前,在OpenStack领域,我认为国内与国外的差距已经不是很明显了,相反在某些方面国内甚至是超前的。”对此刘世民给出了解释:

首先,国内客户在OpenStack方面受到了良好的教育,促使开源环境部署处于了较高的水平,国内在这一开源平台上的教育过程已经基本完成。现在,面对OpenStack,客户的问题不再是“OpenStack 行与不行”的问题,而是想要深入了解厂商所提供的“OpenStack做的怎么样”的问题。

其次,OpenStack代码和功能方面的成熟度比以前有了显著的提高,尤其是在计算、存储、网络等核心模块上已经达到了很高的水平,足够在企业应用,例如商用存储、商用SDN,以及其它方面的优化,都已经能够满足大部分企业环境的需求。

第三,国内从事OpenStack的公司已经走进了成熟期。从融资的情况来看,大部分OpenStack初创企业已经走向了C轮,或者是B后期的轮融资,另外再加上以华为为代表的大企业也已经将OpenStack 锤炼成型。

第四,企业对私有云的需求在提升。私有云必须以虚拟化为基础,现在国内的虚拟化水平已经可以向私有云发展,同时,物联网应用的发展也对云计算提出了直接的需求。这也就是说,OpenStack作为构建私有云的基础平台,也备受企业青睐。

另外,刘家军补充,国内企业进行的私有与公有项目,从架构与设计都不错。在国内,基于OpenStack构建私有云的企业有很多,涉及了金融行业、电力电网行业,银行业,这些企业要么自主研发,要么与OpenStack厂商合作构建私有云。除此之外,大的互联网公司,例如360、京东、网易、美团都对OpenStack 进行了投入研发。

由此可见,OpenStack在国内发展真的一片大好的情势。但在与国外相比较时,刘世民还说“如果说有差距的话,那还是在产品化。”

OpenStack 产品化:“不要OpenStack ,而要私有云”

谈到用户对OpenStack的需求时,刘世民这样说到:“企业需要的不是OpenStack,而是一个私有云,他们需要的是可以支撑业务发展的私有云。”但企业自己构建私有云比较复杂,如对环境的利旧性,对数据中心内部的建设,对网络存储等功能都有很高的要求。虽然,OpenStack本身是一个开放平台,可以支持各种网络、IT基础设施、各种负载应用,可以很好地应对用户对私有云的需求。但OpenStack本身对于用户来说更是解决问题一项技术,并不能拿来就用,他们需要是一种产品化的OpenStack,而这正OpenStack社区的弱点。在把OpenStack转变成企业所需要的产品化过程中,刘世民认为应该从以下几个方面着手:

改进OpenStack界面。界面是用户最直接接触东西,一定要做到简单易用。然而,对于管理、计费、与企业网络的用户系统的打通等功能,社区OpenStack无法做到易用。刘世民认为,客户对私有云的很大一部分需求是对界面的要求。OpenStack社区的Horizon显示界面,完全是以技术化的方式呈现的——只是简单地把资源暴露出来,最终用户完全无法直接使用,使得企业进行OpenStack构建私有云时,要重新定制化这一界面。

据刘世民介绍,云极星创在OpenStack的控制界面(CMP)方面投入了大量精力,一开始就把CMP与OpenStack置于同等重要的位置进行产品设计,尽量屏蔽掉过于技术的东西。云极星创认为社区的Horizon是依附于OpenStack的,不便于最终用户使用,因此,在云极内部专门设置了一条产品线服务于CMP的设计。

提升OpenStack稳定性。OpenStack社区有30多个组件,和难以计数的项目,其稳定性差,可维护性弱。用户认为选择OpenStack构建私有云,就意味着企业要培养一支大型的维护团队,大大地增加了人力成本。在这方面,为了确保OpenStack的稳定与可维护性,刘世民说OpenStack服务提供商要具备强大的服务系统和用户监控平台——这些也是云极星创的重点,他们并给用户提供了Venus自动化运维平台,让OpenStack功能尽在用户的掌握之中。

加强OpenStack备份功能。无论是虚拟机、文件备份,还是数据库备份,OpenStack社区都比较薄弱,对此云极星创将引入第三方专业备份机构,打造了一个生态系统,共同满足企业对安全、备份的需求。”我们不只专注于OpenStack 代码本身,我们还以它为中心、满足客户产品化需求的完整的产品体系,“刘世民表示。

此外,云极星创看到,近年来对于技术选型方面,企业已经愈发地趋于理性,越来越多从业务需求出发,可以说是用户的选择已经回归到业务的正常需求上。因此,对于用户所提出的需求,云极还提供了强大售前团队支持,帮助用户甄别出伪需求,留下有价值需求,给用户提供定制化的设计。刘世民认为,“定制化是有范围的,如果90%是标准化,10%定制化,这是合理的需求;而如果企业一味拒绝定制化,并不是长久之计。”

OpenStack +容器技术:打造全栈式的云平台

对于OpenStack与容器技术,如Docker和Kubernetes,之间的关系,刘家军说OpenStack与Docker是互补的关系,只是两者解决的核心问题不太一样。

从技术看,Docker主要是运行时环境的一个封装,它把常用的程序、库函数、包括软件本身都会打包在一个镜像中;不同的Docker实例依赖同一个操作系统内核,优势在于,例如应用打包好后,在不同的Linux发行版本上都可以运行,减少了对操作系统的依赖;另外它结合了操作系统提供的功能,实现了资源的隔离,如果在同一个操作系统上运行两个程序 ,即使对同一个软件库有不同版本的要求,也不会有影响,因为它们运行在各自的镜像中,使用的版本是不一样的。

OpenStack是通用的IaaS平台,以系统虚拟化为基础,主要指的就虚拟机。虚拟机抽象模拟了计算机所需要的各种虚拟零部件,在这些零部件上安装操作系统,才能把这些虚拟的零部件运行起来。虚拟机中支持完整的操作系统,无论安装什么操作系统,底层模拟的程序和硬件提供的接口或者映像与真实机器是一样的,所以它能完全独立于底层的操作系统。与Docker的一个区别在于,Docker实例之间依赖于共同的内核,如果系统内核出现BUG,所有的Docker都会受到这个内核的影响;而虚拟机的隔离性更好,它提供给每个虚拟机一个独立的虚拟的硬件,虚拟机拥有自己的内核,如果这一个内核出现问题,不会影响别的虚拟机的。

两者技术上不一致,适用的场景和范围也不一样。Docker适合用来做应用之间的隔离——在现有的平台中更适合于PaaS场景中,程序员只需要关注于程序、代码做好就可以,他不用关心平台的运行、部署、运维等工作。

Kubernetes是容器的调度和编排工具。对大型的程序而言,其中包含的不只一个运行服务,将会有多个服务,通过一定的通信来提供整个的功能。在这种情况下,这些组件之间如何部署,如何交互,部署在什么地方合适,都通过编排工具完成的。对于底层物理硬件的调度、资源的合理分配等待调度编排是Kubernetes的核心功能。

OpenStack与Docker和Kubernetes都存在各自的优缺点。在刘世民看来,目前OpenStack与容器有几个对接方向,一是OpenStack容器化,解决可升级性问题;二是OpenStack编排容器,解决集群项目管理问题;三是OpenStack中的虚拟机与容器的整合,解决网络相关的问题。

"云极技术栈选型,不是OpenStack公司,我们的定位是打造一个以OpenStack为核心的IaaS层,这是我们的第一个目标,"刘世民称。在(IaaS)上面云极还将打造一个CaaS(容器即服务)层,同时基于CaaS层建立PaaS层来支持应用的运行;另外,在SaaS层,打造云极还将打造自己的的Marketplace,给用户提供有价值的云服务。云极星创的终极目标,是给用户提供一个SaaS 、PaaS 、IaaS 的全栈式的云服务平台。

结语

尽管,OpenStack正在不断走向成熟,但还是有一些需要改进的地方。未来,刘世民期望OpenStack社区能注重产品化的设计,便于用户、开发者的使用;更加开放,拥抱各种新技术,如容器、NFV、IOT和大数据等;并且社区能在混合云中付诸更多的行动,因为未来混合云很有可能一骑绝尘。

来源:TechTarget中国

工作负载不要全部放在公共云的篮子中!

评论(0)

您可以在评论框内@您的好友一起参与讨论!

--> --> -->
<--script type="text/javascript">BAIDU_CLB_fillSlot("927898");