作为Linux 之后最成功的开源项目,OpenStack 这个全球IT 供应商和开发者广泛参与的开源云项目,满足了企业用户对IT 基础设施服务化的实际需求,同时,也在IT 基础设施自动化方面实现了关键性的突破,从而促使更多的OpenStack 服务商应运而生,发展了越来越多的Open-Stack 大规模应用案例。
面对OpenStack 的发展热潮,企业用户在长期经受传统IT 基础架构的高成本、重资产、低效率、扩展差等问题困扰的情况下,开始考虑是否可以使用OpenStack 实现IT架构转型发展。本文将结合自身的学习思考和工作实践,对OpenStack 究竟是什么?我们当前是否需要使用它?以及我们如何使用好它进行讨论。
简单来说,OpenStack 是一个开源的,类似AWS 亚马逊、微软Azure、阿里巴巴的IaaS 云管理平台,用于实现对IaaS 基础设施云下的所有系统、网络、存储资源进行统一、自动化的管理。除了自带一套虚拟化的Overlay 网络系统以外,它还和KVM 开源服务器虚拟化软件、Ceph 开源分布式存储软件紧密集成。目的是使用户可以获得按需自助地获得敏捷弹性、绿色低价的IT 基础设施资源。
OpenStack 本身也是一套SOA 架构的云管理平台软件系统。它是软件定义的IT 基础设施的抽象建模层,也是IT 基础设施的控制管理层,以及IT 基础资源服务化供应的服务目录层。OpenStack 对上按需自助、敏捷弹性地为各种IaaS 云消费者提供系统、存储、网络资源供应和管理服务,对下对接各种IT 基础设施,为Iaas 云维护者实现对各种IT 资源的标准化、共享化的资源池管理服务。
我们决定是否要使用OpenStack 之前,需要明确三个问题。
对于第一点,如果只是想从局部出发,引入低成本的KVM 开源计算虚拟化,或Ceph 开源分布式存储产品,那么我们就没有必要使用较为复杂、运维要求较高的OpenStack产品。自己开发或引入一套专有的KVM 或Ceph 管理软件就能更好更快地满足需求。另外,如果应用系统是新建的(或者可以快速转换成的)CloudNative 云原生应用(应用节点无状态、数据一致性和可用性要求不高、容量性能扩展性要求很高、支持数据库即服务等特点),我们可以直接使用CloudFoudry、Docker 等PaaS 平台云系统。如果我们的应用只能做一些DNS、负载均衡、无状态化等CloudReady云就绪化改造,不支持数据库即服务功能,对容器级安全隔离也不放心,希望高效地利用IT 基础设施资源,解决应用敏捷部署和高效运维的问题,则适宜使用OpenStack 来构建IaaS,但其中的数据库自动安装供应和应急切换备份还是需要单独自行实现。
对于第二点,由于AWS、微软Azure、阿里、腾讯等公有云供应商目前都不向企业用户输出云平台私有化解决方案,对于很多不能或尚不具备条件将自身IT 负载迁移到公有云的企业用户来说,如果要想考虑尝试IaaS 云架构转型,只能选择商业化、开源、自研等3 种云平台建设方案。其中,商业化解决方案主流是由VMware 公司提供,其IaaS 云平台产品成熟易用,但封闭不兼容且价格昂贵。如果是一个小型的IT 私有云架构,适宜采用成熟的VMware 解决方案。如果规模较大需要降低成本,希望拥有开放性以便于整合创新,则适宜采用开源的解决方案(自研成本较高、兼容性不好,市场接受度不高)。开源IaaS 云平台只有CloudStack、OpenStack 等少数几个解决方案。随着KVM、OpenStack的不断成熟,社区影响力和用户接受度不断加大(IBM、思科、HP 等国际巨头都放弃了自身云平台项目,转向投入支持OpenStack),新建的IaaS 系统适宜直接使用OpenStack,但传统的CloudStack 系统用户也不急于马上进行迁移,而是根据自身的需求和市场的发展择机考虑。
有人说:“OpenStack 太复杂,我们自己开发架构很简单,代码也很精简”。这种想法相对于一个简单的私有云或虚拟化环境或许是对的,但如果被管理对象规模和复杂性越来越大,那这种“自研”的云平台项目就会存在巨大的危险。OpenStack 把核心建模层做得非常复杂,或者说非常前瞻,目的就是为了适应未来的变化。如果没有一个有远见的架构,也没有一个完善可扩展的抽象建模层,上来就直接编写代码,的确能够很快地搭建出一个简单的云平台,但不具备足够的可扩展性、兼容性、复用性和稳定性。一旦基础设施发生变化,整个体系就要被颠覆和重写。
对于第三点,我们不必过度考虑OpenStack 是否能成功。任何一个新技术产品出现,都有其发展、平稳、衰落的生命周期。只要我们选择的产品的生命周期不是过短、有较大的市场案例即可。使用OpenStack,可以使我们学习到一个优秀的SOA 集群架构,以及对新一代云IT 基础设施架构的优秀抽象建模方法。如果还有大量的服务商、用户开发者和产业供应商支持,就应该是一个很不错的选择了。关键是我们自身要在使用过程中学习提升、消化吸收和掌握驾驭,以及时刻保持一种创新和变革的精神,才能在新一代技术出现时,及时地进行升级换代。目前,为了满足各式各样的适用性,OpenStack 增加了很多代码和功能。很多大型厂商的进入,也在拉扯分散它的发展方向。但我们只要优先选择其中最为核心成熟的功能组件(比如原生的KVM),同时建立一个强大的软件定义化的团队,选择一个好的服务商,就能够很好地把控住自己的未来。
如前文所说,OpenStack 本质上是一套开源的IaaS 云平台系统。云平台软件系统只是一个实现IT 基础设施的软件抽象建模和自动化、服务化调度管理的平台。这个平台应用的成功与否,不仅仅在于这个平台的功能是否完善、自身是否稳定可维护,关键在于能否实现按需自助、敏捷弹性、解耦运维、绿色低价地供应和管理好IT 基础设施资源。
要适应开源文化的特点,建立开放共赢的商业合作模式和生态,以保证开源项目的持续、可靠地发展。
之所以要对IT 基础架构进行零基规划设计,是因为IT传统架构与云架构有着本质的不同。前者是差异化、静态化、依赖化、流程化、人工化,后者标准化、动态化、解耦化、服务化、自动化。要想取得一个云平台的成功,首先要有一个成功的云架构。需要改变我们头脑中长年形成的一些根深蒂固的概念。例如:为了提高安全性,将资源物理隔离到众多的区域;为了保证不同的可用性,为不同应用分配不同类型的设备资源,并且在不同专业不同类型设备上采取了多级冗余备份高可用设计,以至于难以形成少数几种标准化、大规模共享的资源池,各种冗余备份设计的耦合点多、监控切换复杂。为了简单应对高等级应用的容量扩展要求,大量资源被独占或预留,从而始终面临资源局部富裕、整体紧张的局面。由于应用与基础设施依赖紧密、动态管理控制能力和自动化可视化运维能力不足,IP 地址等资源被静态分配给服务器,服务器被静态分配给应用,不能池化共享和动态分配与回收,并且分配策略不固定难以自动化。硬件、系统、存储、网络等各专业之间的工作相互依赖,有严格的工作次序需要非自动化的流程对接,不能解耦并行开展。大量的运维工作依赖专业人员的手工半自动化的操作,难以实现按需自助的服务化自动化的供应和管理。为此,构建OpenStack 云平台系统之前,要本着标准化、动态化、解耦化、服务化、自动化的原则,打破原有分散片面重视安全性、可用性、连续性、容量性能要求的固有思维,充分重视系统性、敏捷性、扩展性、自助化、服务化、低成本等需求,从零开始重新规划设计云架构下的IT 基础设施资源的配置标准、采购批次、物理部署、中心纳管、资源池纳管、远程安装、分配规则、自动上线、弹性扩展等自动化、服务化设计,然后分步实施,才能逐步建立成一套先进高效的云平台系统。
之所以需要调整人才结构和组织结构,是因此软件定义的IT 基础设施需要软件定义化的人才来规划设计和建设运维。一方面,需要有一支精通IT 基础设施各专业知识,熟悉应用架构知识和生产运维管理知识的高端云规划设计队伍,以便跨系统、存储、网络、安全、应用、运维的系统化地规划设计IaaS 云架构,以便获得系统化创新的效益。另一方面,IT 基础设施各专业的人才除了需要精通本专业知识以外,还需要有一种软件编程能力,以便利用设备和云平台的各种可编程接口,编写各种自动化监控、切换、维护管理脚本和服务。此外,各专业也还需要熟悉本专业上下游其他专业的知识,以便更好地协同配合提升整体流程的自动化和效率。因此,建设一套开源开放的IaaS 基础设施云,虽然可以大幅降低IT 硬件建设成本,提高硬件的使用效率,但对软件定义人才的数量和质量要求却大幅提升。需要通过引进跨界整合的规划设计开发人才,加强现有人才的培训和转型,来满足这方面的需求。同时,基于这些人才需求和使用管理方面的变化,也需要重新进行组织的劳动分工和部门团队设计,以适应新架构下不同的建设运维管理模式。
之所以需要建立新的商业合作文化和生态,是因为软件定义的时代和开源世界里,硬件的价值越来越低、软件的价值越来越高。软件的价值重点也不在于其销售价值或成本价值,而在于通过服务质量来体现的软件使用价值。如果一个产品没有后续服务、或者是社区不再有很多人的支持和发展,则无论你当年购买价值是多少,也将一钱不值并最终被更换替代。为此,一旦我们选择了一个大的开源软件平台产品,就要能够接受众人参与、开放自由、贡献分享、快速更新的开源文化。这就意味着我们要坚持紧跟社区的原则,不能随意地根据需求修改代码建立分支,以避免难以升级到下一个版本。这意味着我们要重视服务的价值,选择有实力的开源产品服务商支付足够的服务成本,帮助我们挑选整合社区中众多的更新和版本。意味着我们也要培养自身的能力,读懂代码分析解决问题后向社区反映解决方案,以接受广泛的同行评审以快速确定有关解决方案是否正确,或有无更佳的替代方案。意味着我们很难再通过封闭自己的知识保持长久的竞争优势,而只能不断进步、持续创新,并不断扩大商业合作生态规模,以保持续依靠优势或保证不被淘汰。
云计算从雏形发展至今已经超过了10 年,其版图不断地扩充和变化。未来将会呈现公有云、私有云、行业云、混合云并存的市场格局。其中,公有云提供面向大众的通用解决方案,具有规模优势,但是它不会去照顾你的个性化需求,永远给你标准化的东西。私有云则是最具差异化和个性化的,但是长期看并不具备规模优势。因此,兼有行业经验专业洞察,以及标准化规模化优势的行业云,是未来云计算发展的一个重要方向。但从长远来看,行业云与公有云相比仍然没有足够的成本优势,因此,私有云和行业云最终会走向混合云。私有云、行业云发展到一定阶段,都会把一些不重要的数据、安全不敏感的应用迁移到公有云上运行。
相关文章:

