预测:多云

探索云体系结构

Joseph Fultz

 

Joseph Fultz
我决定一段时间了,我列中至少一个会涵盖建筑一般注意事项和一些基地高层次的设计,用于创建基于云计算解决方案。我知道从所有的课程,我已经在提交或参加了技术的观众不会玩一些代码,如果会话不通常深受欢迎。但我希望这篇文章将受益人,至少帮助框架和一些基本的目标给他们思考解决方案体系结构。

我将作为一种服务 (PaaS) 利用平台 — — 特别是 Windows Azure — — 如坑想法和考虑因素,但思想要在其,我要传达的上下文软木也应适用于基础设施作为一个服务 (云计算模式将) 和软件作为服务 (SaaS) 以小小的翻译。我指出的一些关键的设计考虑创建一个云计算解决方案时、 Windows Azure 提供的平台工具进行分类、 说明一些基础的设计和提供决策矩阵的选择你的设计风格。

云注意事项

建筑师与老练的开发人员可能会养成的一些问题特性鉴定、 模式匹配和发音的设计。我要去突出显示一些典型的设计对于云计算解决方案,但我非常鼓励采取积极的态度来解决问题,而只使用 cookie 刀具从上一批被烤起来的解决方案。最好的办法是设计是理想的解决方案,然后开始贴面添加了云计算的条件和条件的企业生态系统。添加它们一次解决任何关联的问题,因为就像数学或适当的调试,如果添加变量太多,你就会引入的错误不能轻松地确定其来源。

什么意思来设计"云计算解决方案"?首先,我想强的重点网站角色排队到工人的角色,然后捡结果关闭返回队列不是云设计定义样式。事实上,在很多方面,使用这种体系结构为从中启动设计基地可能实际上减少云实施的整体效益。随着私有云基础架构变得随时可用,在行模糊云与不云之间因为划定的因素并不是位置。所以分化的重点应是它做而不是它是什么,它在哪里。

下面是使用 Windows Azure 作为一种手段,主机我的网站或服务的应用程序不会为我的事情:

  • 释放我从基础设施购置、 安装程序或管理
  • 释放我从约束的能力 ; 可在需求上的计算和存储能力
  • 释放我从陡峭的资本成本并释放我要调整基于消费的成本

我不想使用它,简单的但就是这样 ; 无需使它变得复杂。事实上,有很多的云计算平台内, 非平凡的功能,但却不是什么区别较传统的托管解决方案的云。添加的平台如 Windows Azure 的个别功能 (队列、 存储、 结构化的存储等等) — — 虽然新的平台 — — 不是从根本上新的软件功能之前, 还不得而知。计算和存储弹性和资本开支,连同正在进行护理和硬件基础结构的饲养与云 shift 直接解决的难题。这是好消息,对于那些设计软件,因为它意味着设计和图案大多保持相同,这一点额外强调两方面的考虑:成本和滞后时间。当然这两项关注重要之前,但云更改方程不够需要特别注意。

成本因素

你们已经风干云实现从很多人知道,它并不总是更便宜。幸运的是,成本效益并不等于要便宜或甚至免费。您可以确定,公式不能更改为降低成本而不同时减少服务或功能时,将有效的成本 — — 也就是说没有超出什么一定消耗的成本。毫无疑问,那里成本优化了从私人数据中心切换到一个基于云计算解决方案集,一个企业,但真的见到福利,需要有亲和性向的指导原则:转向云第一个解决方案和成本优化设计。

计算且远离私人宿主方案必须转向云了。很难实现成本效益在云主办,虽然有的消费,可用的未使用或未充分利用基础设施已购买和到位。因此,系统年龄或新的软件来船上,你应该到云首先查看购买更多的基础设施带宽而不是。有次拥有数据中心是确实比较便宜,但大多数的企业,这不是现实的。合同和大容量率放在一边,一般来说越接近你到基于消费的成本,越接近到一个有效的成本模型。

采取的第一步下, 一步是确保你不是一个云暴食者。每个应用程序需要围绕成本的优化设计。第一点是往往很难从商业的角度看,第二点可以吞下技术设计中的痛苦丸。这是因为会有的时间时为成本优化的设计意味着把它前面的性能或优雅。通常,我发现创建性能与优雅的均衡花好点我的努力,但扔在图片中的成本优化和它获取进一步复杂的是我的 2D 问题变成 3D 之一。

优化成本意味着正在详细了解下列内容:

  • 入口和出口,最终消费者和企业的主干网
  • 不需要的空间,不使用存储中的数据的保留策略
  • 如何负责任地放大和缩小的计算资源

如果设计考虑到这些考虑三个因素,则肯定朝着正确的方向。

滞后时间因子

传统上,等待时间成为一个问题时,必须送达给最终用户的信息存在于一个或多个这些国家:

  • 它是在旧式或以其它方式的约束系统
  • 跨系统的存在,并且必须首先聚合
  • 它需要一个或多个转换前交给用户界面
  • 它为企业外部的存在,并且必须远程读取

对于基于云计算的解决方案,这些项目的任何和所有可能是真的,但无一例外云计算的企业解决方案的设计适用的最后一个项目。当然其他的项目可能会因素,但企业的普遍真理今天是数据将不得不以某种方式云计算解决方案和企业数据存储在主数据中心之间同步。

我会介绍几种方法的集成基础设计中的数据设置规定在这里,但其真正归结为两个主要战略:数据同步和实时服务调用回家。

高层次的设计

思考的企业解决方案设计的推广,一个可以通常一次性的大齿轮每个到这些类别中的一个:

  • 计算
  • 存储
  • 集成

这是我会如何分类在此上下文中的 Windows Azure 平台功能。在网格图 1 显示 Windows Azure 平台功能的一个子集。

图 1 平台工具箱类别

Windows Azure 计算 存储 集成 & 服务
计算 Web 角色    
  工作者角色    
  VM 的作用    
存储   Blob 存储 队列存储
    表存储  
以前的 AppFabric     服务总线
      Connect
      访问控制
      缓存
SQL Azure   Database  
  报表    
      SQL 天蓝色的数据同步

聚焦大砖的计算、 存储和整合,您可以方便地将一起从中启动和扩大或甚至重组,一些基本设计中所示图 2

Basic High-Level Designs
图 2 基本的高级别设计

虽然中所示的设计图 2 并不代表他们的设计有其目的的更大块的所有可能的排列:

  • 直接数据访问:这通常是最基本的执行在前端 Web 界面直接访问数据不仅也携带所有的工作负担。
  • 间接寻址服务:这是面向服务的体系结构 (SOA) 的设计下, 一级间接寻址和工作负载平衡,移动数据访问和业务逻辑的服务于用户界面的角色。好的 SOA 设计可以不仅减少脆弱性的解决方案,但也减少后端上的负载和优化数据到客户端的响应。
  • 间接寻址队列:工作被下放到背景工人通过 Windows Azure 存储队列。这是在优化工作负荷的第一步,但一般适用于当卸载了工作的结果为不需要客户端响应时间近接受。
  • 总线集成服务:在 pub/sub 设施中添加服务基础结构真的可以充实 SOA 设计通过移动的远离端点的间接层和走向感兴趣的话题。这种设计可以提供最灵活的执行情况。

企业背板设计

基地设计别具体解决企业的底板。两个 Windows Azure 解决方案的最重要的是如何将它连接到公司的系统包含自营业务逻辑和访问企业数据的方式。有一些基本的设计公司背板使用自己或两者结合,很像以前的设计,如中所示图 3

Corporate Backplane Basic Designs
图 3 公司背板基本设计

将您的云计算解决方案连接到您的企业生态系统的一种基本方法是简单地使用 Windows Azure 连接所讨论的安娜 Skobodzinski,我的一个同事从微软技术中心 (MTC),在 bit.ly/wnyqj9。这中的 VPN 风格设计中所描述图 3。作为,但税约一秒钟,然后可以使用该系统。此外,它将值得做一些工作提前的时间,确保向云计算应用程序公开的系统准备就绪,可额外增加的负载。如果需要在匆忙中,云是很好的解决方案 ; 如果需要在匆忙中,并且具有与现有接口进行集成,VPN 风格集成可能减轻风险时间线上的最快、 最简便的方法。

我遇到过的最常见类型是集成的描绘下数据集成样式的类型。这需要一些方法来同步数据在一个或两个方向。有许多方法来实现,每个都有自己的优点和缺点集。使用提取、 转换和加载 (ETL) 工具如 SQL 服务器集成服务 (SSIS) 可能是最低大部分进入壁垒。SSIS 作为同步数据的手段也有一个非常成熟的生态系统监测和管理。下一步最简单的机制是使用 SQL Azure 数据同步,这是作为一个预览当前可用 (bit.ly/p14qC6)。它基于我覆盖我 2011 年 1 月的同步框架技术 (msdn.microsoft.com/magazine/gg535668) 和 2011 年 2 月 (msdn.microsoft.com/magazine/gg598920) 的列。这将需要一些对正在同步的表的更改。SSIS 和同步框架的方法,是一个好主意,以确保只有移动是必要云与公司处所之间的数据的字段。通过不必要地移动数据,入口、 出口和整体的云存储使用情况的成本可以保留。

一点点向前移动针和采取的一些工作从数据库后端是中所示的直接服务风格图 3,凡从公司的系统所需的数据读取通过一套公开的服务。删除数据运输成本和数据始终是最新的两大好处。较负面的看法,它不会引入延迟,并把额外的压力,可能尚未准备将纳入一个云计算解决方案的系统上。它还意味着大部分的情报已经住在公司的系统和服务,因为它将得到大量分析数据。

最后的四种模式中的图 3 显示了使用的服务总线,将云计算和企业系统集成。此服务总线样式将涉及运行云角色和企业系统发布和订阅数据和相关的每个事件。这有关于同一职业玩家利弊作为直接服务样式的体系结构,提供额外的最大的灵活性,用于创建新的出版商和消费者的信息。

决策矩阵是一个工具将帮助您识别潜在问题时比另一考虑使用基本设计样式之一。在决策矩阵图 4 并不是一个绝对的而是反映出我在云计算体系结构与乡亲工作的经验。不一定存在明显的胜利者,并在许多情况下真正的设计将采用混合的这些元素。例如,一个可能部署新的 Web 应用程序有一套的工作针对同步通过每天两次运行 ETL 的后端数据库的其余部分服务。图 5 显示的这种联合设计示例。

图 4 决策矩阵

 
           
           
           
           
           
           
           
           
           
           

Example Combined Design
图 5 示例联合设计

此外,有一组基于文件的资源在 Windows Azure 存储站点所使用的和自定义同步框架实现由保持同步。这种高层次的设计是收集信息并进行一些的最终结果通知的猜测,但它只是开始工作。它提供了在目标端设计和执行但留下了很多细节需确定 (例如,缓存、 访问控制等等)。

设计和成本效益

我试着梳理和设计云计算解决方案时,找出最重要的考虑因素 — — 在特定的情况下,一个必须纳入现有企业。但愿,有点煮掉过多的特性和功能,它有助于清除设计的路径。真正的诀窍设计云计算解决方案是一个理想的解决方案,并使设计的效率,同时还包括成本效益。如云运动所说的企业级计算到达任何人愿意趴在和翻转交换机的在设计优雅将占消费成本。

基地的 Web 设计和企业一体化基地设计中,触及,但所有的细节留给未来深入 ; 只是才会以一次支付太多空间。因为这是我写过的唯一列完全着重设计,具有与之关联的没有实现,我希望它会有用。如果你想让我深入到一些细节设计件,请评论这篇文章对 msdn.microsoft.com/magazine

Joseph Fultz 是 Hewlett-Packard Co. 的软件架构师,参与 HP.com 全球 IT 小组的工作。之前,他是 Microsoft 的软件架构师,协助 Microsoft 顶层企业和 ISV 客户定义体系结构和设计解决方案。

多亏了以下的技术专家审查这篇文章:George Huey