超越IaaS:提供PaaS和CaaS
本文着重讨论IT必须将IaaS(Infrastructureas a Service:基础设施即服务)与PaaS(Platform as a Service:平台即服务)和CaaS(Container as a Service:容器即服务)作为其云服务交付战略的一部分。虽然大多数IT组织正逐渐精通于提供IaaS,但业内人士非常清楚的是开发人员不关心基础架构,他们关心的是编写好的代码,帮助他们的组织完成他们的核心任务(不管它是什么任务)。IT与开发人员的使命是帮助他们完成任务。
提供“零阻力IaaS”服务的IaaS提供了像专门的云服务公司一样的公有云,不管是在本地部署还是在公有云上这都是一个好的开始,但是越来越多的IT团队需要在这之上考虑如何支持App Dev计划。支持开发人员的IT团队,特别是那些接受DevOps原则的开发人员,需要开始考虑如何为开发人员提供某种版本的PaaS。我说的某个版本的PaaS是因为PaaS已经成为我们不可或缺的东西之一。
对于一些App Dev团队来说,PaaS意味着可以访问一个能按需提供传统的中间件组件的平台。对于其他组,它是一个按需提供容器的平台(通常称为CaaS)。而对于其他人来说,它是一个能访问完整的开发人员的平台,其中包括开发人员工具,用于帮助他们开发传统的应用程序或云本地应用程序。事实上,当IT团队开始超越IaaS时,IT团队需要应对多样化的挑战,为他们所支持的App Dev团队提供更高的价值。
自动交付第二代应用程序
当为了支持应用程序开发而自动交付中间件时,许多开发团队正在使用诸如Puppet,Ansible,Chef和Salt等配置管理工具。这些配置管理工具让开发人员在日常整合到其软件项目中的中间件堆栈的过程变得容易。使用配置管理工具的另一个好处是能够使用这些工具来审计已供应的配置,并修复偏离标准的配置。
鉴于这些好处,目前许多组织在他们最经常使用的中间件堆栈的编码表示上做了大量投资。为了支持App Dev团队希望简化组合基础架构和应用程序堆栈的构建,IT组织应考虑将配置管理工具与部署的任何功能集成在一起,以实现IaaS的自动交付。
向最终用户提供更完整软件堆栈的最简单、最自然的方式,就是将现有的IaaS解决方案与一个或多个现有的配置管理工具集成。而开发更完整的软件堆栈表示的替代方法通常需要重写与供应企业最常使用的中间件有关的大量代码。如果App
Dev团队已经使用配置管理工具创建了大量这样的表示,那么App
Dev团队肯定会对此类努力表示不满。所以如果你想扩展IaaS来包含中间件,那么搞清楚如何利用已经存在于Puppet,Ansible,Chef和Salt等解决方案配置文件中的现有代表,将会是你最好的选择。
自动交付第三代应用程序
容器正成为组织创建网络新应用程序的主要选择。尽管容器可以裸机运行,但大部分市场都在虚拟化计算环境(如vSphere)上利用容器。容器允许组织以一种使其可在云环境中高度可移植的方式构建应用程序。而且容器对于需要经常更新的应用程序也非常适合。
在过去几年中,容器已经获得了巨大的普及度,部分原因是容易使用Docker来创建容器。容器的普及又引发了许多与容器相关的技术,其中许多是开源的,例如可以被开发人员轻松地下载到他们的笔记本电脑上的Kubernetes。
虽然有数十种工具针对容器的使用进行开发,但不仅要支持扩大基于容器的操作还要将容器用于生产环境的工具并不容易找到。目前市场上的大多数容器解决方案在处理诸如性能,可用性,安全性或数据持久性等事物的生产级别要求时表现出一定程度的不足。并且,大多数解决方案也无法以企业级的方式来解决与基于角色的访问,资源授权,审批或其他管理相关项目等相关的要求。
这些解决方案的另一个缺陷是关于如何将基于容器的应用程序组件与传统的第二代应用程序集成。大多数企业认为这个能力是相当重要的。我的团队最近围绕容器做了一个市场研究项目,其中一个关键发现是大多数受访者认为他们的组织将来需要同时运行传统应用程序和基于容器的应用程序。帮助App Dev团队解决这些不足之处,以便他们能够成功地将基于容器的应用程序转移到生产环境以保持其关联性,这是IT团队将来需要掌握的,尤其是关注基于云本地,基于容器的应用程序的团队。
将第二代和第三代应用程序与CMPs集成以实现IaaS
许多IT组织正在使用某种形式的云管理平台(CMP)来提供IaaS。在某些情况下,CMP仅用于在本地提供的服务。而在其他情况下,组织们可通过CMP来跨本地环境和公共云提供服务。但是,从IT关联性角度来看,您的CMP正在被使用,您的组织正在使用的云管理解决方案需要升级能力等级,以便处理第二代和第三代应用程序级服务。
鉴于提供第二代和第三代应用程序的可用解决方案的多样性,CMP需要具有“插入”现有解决方案的能力。CMP必须提供一个框架,使其能够轻松扩展到IaaS之外,以便IT团队可以将配置管理工具或容器作为服务解决方案进行管理。您的CMP应该可以轻松地利用App Dev团队在提供第二代和第三代应用程序的解决方案方面的投资。
总结
上面概述的方法使AppDev团队能够使用自己选择的解决方案来配置应用程序级组件。这将有助于将IT的观念从“老是不行”的阵营转移到“他们可以做任何事”的阵营。但是,这也将使IT部门能够轻松地将开发人员笔记本电脑的应用程序转移到符合企业级要求的生产环境中。这对每个人来说都是双赢的,也是那些“必须做”的事情之一,可以帮助IT在瞬息万变的世界中保持其关联性。