傅一平
“当公司迁移到云端时,他们通常会寻求更好的性能和更多的可用性。但如果没有正确的见解,这些公司可能会遇到许多问题。”Kentik公司产品营销主管Kevin Woods说道。云网络涉及跨应用、云和数据中心的部署以及复杂的数据源线索,迁移往往意味着对网络的可见性和理解力下降。与过去的物理网络拓扑结构不同,云中的网络是虚拟化、高度自动化的,因此基本上是看不见的。
许多公司缺乏关于如何使用云资源的信息,更不用说,在快速部署云资源时可能会出现错误。在许多情况下,配置选择不当会导致效率低下,因为老观念认为可以“随时回去修理”,不幸的是,事后也更难看到次优的选择。
如果要在云中部署应用程序,有5个常见部署错误需要避免。
1.重复服务和不明确的依赖关系
当组织的网络处于孤岛状态时,可能会重复服务并维护独立的域名系统(DNS)服务。DNS将网站的域名与IP地址相匹配,企业为重复的DNS服务支付额外费用,而不是将它们合并到一个共享系统中。
此外,企业有时会让一个应用程序依赖于某个消失的DNS服务。云工作负载可能已经转移,导致模糊的云依赖性。当在云中部署网络时,要避免创建混乱的相互依赖关系,这可能会导致中断。
避免重叠和重复,同时保持适当的软件开发。
2.流量或请求发夹
网络基础设施转移到云端时,要避免发夹(hairpinning)增加延迟,也就是发夹形状的瓶颈,网络流量会从它来的方向送回去。它涉及的服务通信路径很长,而不是简洁、快速和便捷的路径。
发卡可能是由于IP路由的错误配置而发生的,导致昂贵的云数据传输账单。另一个案例涉及一个将应用服务器转移到云中的DevOps团队,但其在传统的数据中心仍有一个网络前端和数据库。这个例子带来了性能的下降和成本的增加,网络请求导致了一连串的调用和对云互联的额外导航(云互联是两个网络之间的连接)。
3.不必要的区域间流量
当公司不必要地将云数据从一个地理区域发送到另一个地理区域时,他们为区域间数据传输支付的每千兆字节费用要比区域内数据传输高得多。云供应商自然会产生更多的成本,所以他们会把这些成本转嫁给你。
为了避免这个问题:
●对造成区域间互联网流量过剩的原因有一定的了解;
●移动工作负载以避免不必要的区域间通信;
●此外,在可能的情况下合并工作负载以避免浪费资源。
4.从本地VPC通过互联网访问云服务
云应用程序开发人员经常使用云服务,如S3、SNS或Route 53。它们很方便,容易部署。这些服务可以代表在单一地区运行的服务IP地址范围来访问互联网。
当云计算工程师建立新的VPC时,还必须设置路由规则,以确定流量如何被转发到非本地目的地。面向互联网的流量总是遵循一个指向网关设备的默认路由,穿过这种设备的流量被定义为互联网出口流量,AWS对出口流量收取费用,即使流量没有必要从云中出口。
幸运的是,大多数云供应商已经发布了被称为“端点服务”的新功能,旨在使这种流量远离公共互联网,从而降低数据传输成本与通过互联网发送流量相关的安全风险。端点服务允许用户在其VPC子网内配置具有私有IP地址的本地网络接口。然后,这些接口作为代理,为任何以终端上配置的服务为目的地的流量提供服务。最终的结果是,通往这些服务的流量保持在本地、私有,并享受较低的出口价格。
5.使用默认的互联网流量传输
减少不必要的出口流量很重要。然而,如果你提供一个基于云的数字服务,在某些情况下,流量会向用户输出,因此研究如何减少这些成本也是很重要的。
考虑使用默认的互联网出口来部署应用程序的替代方案。它们包括使用内容交付网络(CDN),它在世界各地的节点上缓存频繁请求的对象,并为公司节省每千兆字节的费用。CDN还可以降低延迟、提高性能。此外,考虑将大型对象打包在一个应用程序内,而不是通过网络,将互联网流量通过云端互连到存在点(PoP),以节省IP传输的费用。一个PoP是一个网络接入点。
通过避免这些错误,将拥有成本更低、性能更高的云部署。
关键提醒
云使横向扩展的应用部署变得非常容易,人们很容易相信,公共云中的大部分网络是自动化的,甚至是看不见的。虽然有一定的道理,但事实是,云供应商并不代表使用者管理网络,在帮助找出降低成本的方法时,二者肯定有利益冲突。
归根結底,要对云中的网络负责,就需要使云计算网络可被观察到,并拥有必要的工具来识别成本和性能问题并探索替代方案。