刚刚过去的这个月,微软发布Azure的堆栈,我下载了,有摆弄的一个公开预览,并整理了这篇博客文章来分享这个东西是怎么一回事。As with all my blog posts, this is not merely a regurgitation of Microsoft’s announcement or a simple opinion of what I conceptually “think” about the thing, but this is an actual commentary after a few weeks of hardcore fiddling with Azure Stack to truly understand the power and capability of the solution.
什么是Azure的堆栈?
首先,“什么是Azure的堆栈?”Azure的堆栈有效地被带入一个组织自己的数据中心微软的Azure云计算。诚然,Azure的协议栈运行微软的Hyper-V,Windows和微软网络和存储,但你看不到任何的发动机罩下。当你停下来想一想,你是“运行微软的Azure在数据中心!”
这就像说我在我自己的数据中心中运行Box.com,或Salesforce.com,或亚马逊AWS,或Twitter的一个实例。而且不只是“东西是功能上类似于这些云产品,”但运行Azure的协议栈运行微软的公共Azure云在数据中心!
为什么你会运行Azure的堆栈,普雷姆?
因此,一个问题一个可能问的是,为什么你会在运行自己的数据中心的云服务产品?是不是“云”来卸载工作负载的整体思路给第三方,以尽量减少资讯技术的管理足迹?是的,卸载数据中心工作负载迁移到公共云是一个原因,组织搬东西到云中,但它不是唯一的原因。
在Azure上的堆栈我的内部测试场景,我打滑了我公司的会计的一对夫妇的情况下,我们的人力资源在Azure的应用程式堆叠起来。相对简单的动力学大平原和Microsoft SQL Server应用程序,但事情我CFO拒绝在公共云忍受(现在)。援引安全,合规,并在保证可靠性(借口),我们的核心业务应用程序都没有(目前)我们的数据中心允许在酒店外。很公平,不是我不想争辩或现在在打我的CFO,我有很多,很容易转移到云,现在我们忙(电子邮件,呸共享,WWW,合作等),其他工作负载。
我们能够与天青栈做的是我们现阶段的内部部署的应用程序,这些应用的实现,我们可以转移到公共Azure云,我们可以将它们从Azure的堆栈(的预置型)天青(公共)移动。Being the same environment on-prem as in the public cloud, again, I’m not doing something “similar” on-premise, it’s Microsoft’s Azure public cloud, but in my own on-premise dev/test and on-premise internal datacenter environment.
如何为Azure的堆栈(或Azure的公共)优于现有的虚拟机环境?
这是一个简单的问题完全从传统的基于虚拟机的环境中区分天青(公共)/ Azure的堆栈。当你明白这一点,你明白这件事是如何在我们的资讯技术的世界如此变革
在过去的几十年中,我们认为应用程序的可扩展性为“增加更多的服务器。”如果您需要更多的容量,您可以添加更多的服务器。十年前,这意味着购买另一台物理服务器,并把它在一个机架中。随着虚拟化(VMware的,Hyper-V的,OpenStack的),它极大地简化了可扩展性,因为我们可以简单的“自旋向上”另一台虚拟机,而不必立即购买更多的硬件。
但是,当您停下来并考虑它时,每次启动一个新的虚拟机时,您都有操作系统(Windows/Linux)的底层开销,很可能是底层核心应用程序(Microsoft SQL、MySQL、Oracle、Apache),以及另一个需要修补、维护和管理的“系统”。在集群的VM环境中插入一个“节点”,并在保持应用程序持续运行的同时删除节点,这也是一个挑战。今天,当您运行许多“虚拟机”来托管应用程序时,简单地运行Web应用程序或数据存储应用程序需要多少开销?
Azure Stack(以及Azure public)所做的就是聚合cpu、存储、网络、数据库层、Web层,它允许您分配所需的容量,并且为您的应用程序提供所需的资源。您可以添加资源,也可以删除资源,您不是在“添加vm”和“删除vm”。
Azure Stack (and Azure public) still allows me to import virtual machines (Windows, Linux, etc) up into the environment and run VMs the way we’ve been doing for years with VM management, but you have the option of running Infrastructure as a Service (IaaS) with VMs as well as Platform as a Service (PaaS).
我经常使用的比喻,如果你感动的事情,你最初只是折腾的东西在你的车的后座或行李箱。如果你是移动的一些事情,你会抢了几个朋友和你折腾的东西,在几辆车的背上。But if you have a LOT of stuff you need to move, you wouldn’t hire 20, 50, 100 cars and move stuff bit by bit in a lot of cars, you’d rent a large moving truck (privately managed) or even hire a semi-tractor trailer company (externally managed) to put your stuff in a bigger vehicle.
运行的应用程序是完全一样的东西。这是有意义运行1,2,在单独的虚拟机甚至4个实例。但是,如果你真的想扩大规模,建设20,50,100个虚拟机与所有相关的开销只是负担你的组织来处理与大量的小(重型载货开销)实例的一大应用。把你的应用程序集成到一个较大的移动车的概念,那就是你有能力,你可以在公共云中托管的很多,别人手柄的操作(如:天蓝色的大众),或你想要的东西的可扩展性和容量,你管理内部操作(即:天蓝色的堆栈)。
IaaS vs Paas吗?
因此,这带来了基础设施即服务(IaaS)或平台即服务(PaaS)的十年老问题。答案是既为现在,但是当你开始扩展您的资讯技术操作中,你会发现一个PaaS的模式更有意义。但是,很难对老同学的资讯技术乡亲完全包裹他们的头周围的PaaS,只是还没有。大多是因为当PaaS的第一次出来大约十年前,应用程序必须被完全重写以支持当时的PaaS提供商。在早期的PaaS介绍的时候,连基本的虚拟化(VMware的)还处于起步阶段,因此提升和转移工作负载的想法是没有完全准备好了市场。这些谁在初期尝试的PaaS还是认为PaaS的是坏的,困难的,复杂的,但是这不再是一个准确的评估。
在过去的十年中,我们已经使我们的应用程序更具可伸缩性和可移植性,不管我们是否知道这一点。我们必须更新我们的应用程序,使其能够跨集群节点和多个vm传播,以创建基本的可伸缩性。我们能够将IIS Web或Apache Web的多个实例放在负载平衡的服务器Web集群中。我们创建了SQL集群,以便跨SQL服务器分配数据库负载,以实现数据放大和扩展。因此,在过去的几年里,我们一点一点地更新了我们的应用程序,以扩展和分发应用程序的工作负载。
下一个逻辑步骤是摆脱了几十个微小的虚拟机,并移动到移动车的概念,这是转移到PaaS的平台。Continuing with the moving van analogy, yes, instead of putting the stereo on the back seat of the car with maybe a blanket on top, you’d have to box the thing up a little more neatly and securely to put it in the moving van. Moving from IaaS to PaaS will likely require some changes of (inefficient) code running on the overhead laden redundant systems, to a more broadly scalable PaaS model, but once you make the changes, you can now scale and distribute your application (up and down) based on your needs.
Again, Azure (and Azure Stack) do NOT require you to solely run your apps in a PaaS model, you can easily upload or create Windows and Linux VMs and run your apps like you’ve been doing on VMware and Hyper-V in an IaaS model. And quite frankly, most orgs that are moving to the cloud (Amazon AWS, Azure) have been doing it using IaaS by uploading entire VMs. It’s an easy concept to understand, it’s lifting and shifting an entire workload including the underlying operating system. But to truly benefit from the agility of the cloud, you HAVE to consider rewriting apps to support a truly scalable (and greatly lower overhead) of a PaaS platform. But again, Azure (and Azure Stack) provide you the option of IaaS and PaaS.
用于开发/测试场景的Azure堆栈
回到前面的问题,那么为什么Azure的堆栈?这是很难理解,如果你已经投资了可靠的基于IaaS的VM环境,如果你打算做的是建立了一堆虚拟机和Azure的堆栈运行它们。我们在IaaS的模型构建了Azure的堆栈基本的虚拟机的一个真实世界的场景是开发/测试场景。
我们有自己的运行面向大众应用了在Azure中(公众)的早期采用Azure的堆栈组织。Azure的是外部托管的地理冗余的全球数据中心环境和规模提供该组织需要他们的客户群在所有他们所服务的地域分布的。天青(公共)非常有意义其生产应用。
然而多,因为他们像一个无限扩展的开发/测试环境,Azure的(公共)提供他们的想法,他们希望在他们的应用程序的开发过程中更好的控制。他们想在把尽可能多的权力,因为他们想要的代码编译和处理能力偏僻的地方发展能力。
构建Azure Stack是为了向这个组织提供完全控制其后端环境的物理位置和分配容量的能力。当他们在Azure Stack内部开发时,他们可以很容易地将应用程序从开发/测试转移到Azure(公共)环境中,因为他们实际上是相同的底层环境。
Azure的栈非常安全的环境
我们使用Azure Stack构建的另一个早期采纳者场景是针对一个想要并且需要Azure(公共)提供的可伸缩性的组织,但需要在一个私有的高度安全的环境中。并不是“每个人”都在迁移到公共云,至少现在是这样,对于那些希望以公共云的方式扩展和管理应用程序的组织来说,但在他们自己的数据中心的约束下,Azure Stack为他们提供了这种能力。
回到我的搬运车的类比,当美国政府需要移动最高机密的东西,他们不会翻阅黄页,选择一个搬运车公司来移动他们的东西,他们合同或使用内部的搬运车资源。然而,一旦材料包装,没有什么阻止政府从私人转向公共模型,同样的,Azure堆栈使模型高效和有效的操作模型,给出了一个组织的途径公共模型如果当他们选择在未来任何时候。
Azure的栈的主机托管服务提供商
主机和管理服务提供者在利用Azure栈来区分他们的服务方面有一个独特的机会。第三方托管虚拟机的世界很快就变成了一种商品,因为各个组织已经形成了数据中心,称自己为“云提供商”,并且只在传统的管理程序(ESX、Hyper-V或OpenStack)上托管虚拟机(Windows和Linux)。
但Azure的堆栈是不是商品解决方案,已经“做过”,而作为企业开始认识到,可扩展性和灵活性真的是取决于是否拥有一个平台作为另外一个服务模型基础设施即服务模式提供,Azure的堆栈将帮助托管区分自己从他们的竞争对手。
使用Azure堆栈
所以,我的动手与Azure的堆栈过去几周已经确认的情况下,我们原先订出的环境。我有几支球队在融合计算(我工作的地方),打造出天青堆栈环境,具体而言,在3个独立的数据中心5度的环境。我们想证明,Azure的堆栈可以做的IaaS,PaaS的,开发/测试,以及安全计算我们所设想的情景。简单地说,我们是在我们所有的测试完全成功,不是没有沿途一些颠簸和瘀伤,但我们所有的团队有什么Azure的堆栈能够做到彻底折服。
Azure Stack给我们带来的第一个挑战是分配运行基本平台所需的硬件(微软建议使用一个有2个套接字、128gb内存和5个硬盘的系统)。不能说我们的实验室里就有这样的硬件,虽然我们“借用”了一些测试服务器,但我们购买了华硕(ASUS)双插口主板,并建立了一些系统。总之,我们最终得到了5个分配给测试的系统。