分类: 服务器与存储
2012-07-26 16:47:04
许多企业组织正在和IT人员谈论,关于向云环境转移和/或使用虚拟机技术,从而获得更好的可扩展性。能够根据需求访问更多的资源,让您的企业拥有向内部和外部客户提供卓越的最终用户体验的能力。应用程序可以运行得更快,并且可在处理网络流量高峰时减少中断服务。
在分布式服务器的世界里,负载均衡是任何系统可扩展性功能的核心方面。长期的负载均衡工作的秘诀是自动化。让我们一起来看看在负载平衡的基础。然后,我们可以看看自动化是如何使程序更快,更便宜,更有效的。
什么是负载均衡?它是如何工作的?
负载平衡将网站流量分送到多个,以帮助确保资源得到有效利用,并确保每次都没有服务器的工作负载过重。服务器网络之间分配需求,可以限制时间延迟和提高响应速度。有了负载平衡,如果一个或多个服务器由于故障或日常维护而宕机,应用程序将不一定会被彻底关闭。相反,余下的服务器会直接接过任务。你可以在本地布置多台服务器,或者你也可以选择云网络模型里面的分布式服务器。
在分布式计算云里面,服务器可以位于许多不同的地理区域的安全数据中心中。即使一个数据中心遭受了自然灾害,仍然会有大量分布在其他地方可用的服务器来处理工作量。利用拥有一个完整的基础设施即服务(IaaS)包的私有云,负载平衡能够为一个特定的企业客户保留的一组专用服务器。
在公共云中,您的IP流量与许多其他客户一起在广泛分布的网络服务器上负载平衡。从一个真正的可扩展性的角度来看,在公共云中负载均衡可能是最容易的,因为你可以从主要云服务提供商那里得到无限的服务器资源。当然,检查的任何潜在的云服务提供商的业绩记录也是很重要的,以确保他们的客户真正有体验到轻松的可扩展性需求的经验。
关注可扩展性并不意味着整个程序必须转移到云上。也有可以利用的混合选项。
例如,亚马逊提供了2个EC2(亚马逊弹性云端运算)版本的Zeus(流量管理器和简单的负载均衡器),允许企业和小型企业客户根据需求在云上均衡网络流量负载。这给客户提供了两种选择,正常流量的时候使用本地服务器,而流量高峰期则暂时扩展到云上。
与厂商探讨负载均衡
在购买可扩展性负载平衡工具时需要询问的一些功能:
具有收集在分配工作量中使用的详细实时统计数据的能力。单独使用历史数据作出预测,是一个万无一失方式,防止猜测错误。
一个虚拟的网络环境,表现为一个单一的服务器设备资源。当涉及到管理云应用程序时,这是一个重要的特性。一个简单的界面,使管理任务变得更容易。
负载均衡服务,可以在应用层“看到”负载,而不是仅仅在实例层。在云中可能存在大量的应用实例同时运行时,这是可扩展性中的一个方面。
负载平衡器本身具有创建新实例的能力,并且在必要的时候配置平衡器满足客户的要求。理想的情况下,应该有一个应用程序编程接口(API)支持特定业务应用程序的高度集成。
负载平衡包括监控功能,以识别不健康的应用实例,并且把它重新定向到健康的实例。仅仅因为一个服务器或应用程序是“可用的”,并不意味着它处于最佳运作状态。
自动扩展的能力,基于预设的阈值,使更多额外的虚拟服务器能够被添加——当有新的服务器时,能够在现有的和新加入的服务器之间自动重新均衡工作量。这种重新均衡应该发生任何服务中断,重新启动,或IT方面需要的其他请求的时候。
自动化问题
在云上负载平衡从理论上听起来非常好。但它不是由于魔法而发生的。例如,一个企业组织可能会选择追求在存储区域网络(SAN)上存储整合,以更好地利用服务器硬件资源。有许多公司已经尝试过这种方法,发现他们不断地重新延展工作量,以避免空间或存储的限制。
这是一个劳动密集型,重复的任务,随着时间的推移,数据量趋于增加,并且工作量本身也处于波动状态。手动处理此过程中涉及到分析当前和预测的容量和性能需求,提供额外的存储配置,重新配置应用程序,关闭和重新启动服务器和应用程序等。每次当工作量有显着的变化时,或一些服务器将超过负载,而另一些保持空闲时,就必须重复这个过程。
在这种情况下,总是会有资源消耗,但没有被有效使用。负载均衡任务也有可能占用IT管理员的所有有效时间。更糟的是,因为这种类型的预测和计算需要执行适当的负载平衡是如此的复杂并且相互关联,因此偶尔会发生错误。当扩大或缩减资源的需求提高时,任何的误算都会都回增加服务器宕机时间。
使用虚拟化技术,就不必手动重新配置资源和自动化,确保数据是最优的放置在存储区域网络(SAN),从而节省IT部门的时间和金钱。这些功能可以大大提高性能。它只是一个简单的问题,然而这个工作使用软件比人做得更好。有许多平凡的,重复的系统维护任务,适合这一类——但却远远超出这个存储区域网络(SAN)的例子。
当然,自动化仅仅和执行创建的脚本一样好。无论硬件价格如何变动都没有关系,只要你设计的Java应用程序不能最好的利用服务器——无论在本地或在云上。