云计算已经不仅仅是虚拟基础设施的快速自助式服务。开发者和管理员正在寻求规模化云计算的供应和管理方法。这篇 InfoQ__ 文章是关于动态计算资源池维护的自动化工具和理念系列的其中一篇。可以通过这里订阅这一系列文章的新文章发布通知。
早期云计算的典型部署是,一两个员工使用几台服务器针对某个特定需求搭建一个小规模私有云。然而,随着整个企业中越来越多的员工使用各种云服务模型(IaaS,PaaS,SaaS)中的大量功能,我们已经看到越来越多的公有云采用案例。
随着更多的组织扩展对公有云服务的使用,它们小到初创企业,大到全球最大的企业和政府。同时,大规模云计算的各种问题也开始不断出现。
大规模公有云的潜在问题
毋庸置疑,各类企业通过采用公有云都获益匪浅,不过大规模的采用公有云也伴随着很多挑战和风险。最主要的有如下几方面:
成本
最初使用公有云时,仅允许有限的少数几个人访问,这时跟踪成本相对简单。然而,随着更多(通常是相互独立的)部门中越来越多的人获得访问权限,你可能会遇到功能重复,过度供应、未经授权的采购、未使用的“僵尸”实例、多余的带宽和存储费用、以及其他一些不必要的影响因素,不断蚕食着预期的成本节省。
未经授权的访问
对小规模的公有云服务访问的管理相对简单,但是随着公有云的采用规模逐渐增加,管理将很快失控。公司的前雇员在离职后可能仍然留有访问权限,员工的角色变化后,并没有相应的更新访问权限,新员工难以访问到其所需要的资源等。由于多数云服务提供者无法提供企业级的安全保障,随着逐步扩大公有云的采用规模,你将很快成为未经授权的访问的牺牲品。
恶意入侵
比员工的访问权限控制问题更严重的是,外部对云服务的恶意入侵。密码丢失,共享的用户ID,数据泄漏,简单密码,社会工程学,网络钓鱼和恶意软件都有可能使公有云服务暴露在数据丢失,篡改,攻击,拒绝服务和其他恶意入侵的影响之下。
人为失误
公有云服务规模较小时通过人工就可以容易地管理,但随着规模的不断扩大,不可能持续地增加人力资源以维持其可管理性。这就意味着更少的人有更多的工作要做,均衡法则告诉我们最终肯定会有人犯错误。进而可能会导致大规模的故障,尽管这并不是云服务独有的问题。
可见性
当只有少数几个服务时,管理可以很细致,只要一两个人就可以了解这些服务的部署位置,配置方式,成本花费,使用情况,所属关系,问题原因,解决方案,服务关闭时间,恢复办法等。然而,在规模较大的系统中,随着公有云部署规模的不断扩大和更多用例的访问放开,云的使用情况将变得越来越不清楚。
分类诊断
可见性差导致的其中一个后果就是问题的分类诊断也变得更加困难。例如,如果不知道系统运行在哪里或者它如何与其他的服务连接,基本上就无法确定事务流变慢的原因。系统思维方面的专家 W. Edwards Deming 曾经说过,“不可衡量者不可管理,”也许更恰当的说法是,不可见者不可管理。
可审核性
可见性差的另外一个副作用就是,随着越来越多的系统和服务被抽象到云服务中,追踪谁在访问什么,何时,如何以及为什么访问就变得越来越困难,与可审核性有关的关键问题也就随之而来。如果没有自动化的工具,在大规模云环境下,跟踪,记录和审查访问、变更,、故障、曝光率、利用率等信息将会变得非常困难。
可恢复性
尽管严重的停机故障并非云所独有,但是几乎每周我们都会听到新的令人关注的公有云故障的报道。然而多数云服务提供者,特别是商品化服务,并未内置恢复功能;即便是更加健壮的服务,也可能无法提供及时的恢复服务或优先考虑你的业务需求。如果没有系统可用于备份、故障转移和恢复,停机故障将会导致灾难性的后果。
用自动化解决所有这些问题
所有这些问题的解决办法就是 IT 自动化。当然,自动化并不是银弹;而且对有缺陷的流程进行自动化只能让坏事在没有控制的情况下执行得更快。不过,如果实施得当,各种形式的自动化工具可以让你在扩大公有云部署规模的同时避免上述诸多问题。
例如:
- 流程自动化可以在更大的范围、更广的区域、以更低的成本快速地执行和整合已有的任务和工作流,并且能够为人们提供比预期更完善的审计和控制。
- 供应自动化可以控制何人,何时,为何及如何创建和发布何种云服务,从而减少错误,消除僵尸服务,并使得成本跟踪和细粒度的审计和控制成为可能。
- 配置自动化可以确保系统补丁得到及时安装,无用的端口得到及时关闭,系统漏洞得到及时消除,超支得到及时控制,系统是可重用的,并且能够减少错误的发生。
- 即使在最大型的云计算部署中,事件监控也可以跟踪到错误,并且可以确保触发事件是清晰可见的,根本原因能够被尽早确定,警报得到及时升级,并且能够在问题变得致命之前,及时发现并解决这些问题。
- 容器化可以提供更高层级的抽象,将用户从某个云计算基础设施或平台的细节中抽离出来。这样用户就可以快速地完成从一个服务到另一个服务的低接触(low-touch)迁移,从而更好地满足灾难恢复和成本控制需求。
- 具有自动检测、通知、升级及分类诊断问题能力的性能监控工具,可以为提供必要的可视性,避免糟糕的体验,预防由于问题诊断不善导致在云容量上花费过高而造成的成本超支。
- 备份和恢复自动化可以让故障对终端用户完全透明,特别是当它们与事件和性能监测工具相连,或用于在云应用中构建容错和灾难恢复机制时。
- 发布自动化可以在不需要人工干预的情况下将云环境中的新应用和更新应用自动从开发环境转到生产环境,从而加速在大型部署环境中的创新,同时降低人为失误,确保可审核性并消除恶意代码。
- 身份及访问管理可以在需要时为用户提供必要的云服务访问权限,在不需要时回收相应的权限,从而达到防止恶意入侵,消除数据丢失,启用审计和控制,提升可见性以及控制使用成本的目的。
- 容量管理可以让云平台的消费者更准确地预测他们的服务增长情况和峰值需求,以及何时应该释放资源,从而做到在帮助控制云资源的成本的同时,减少潜在的服务问题。
此外,自动化让公有云具有了之前通过传统的手工方式无法具有的新的能力。例如,使用诸如 DevOps 之类的新手段加速大规模应用程序的交付,可以说这只有在具有自助式供应、配置管理、测试自动化和发布自动化等解决方案的前提下才是可行的。与此类似,如果没有 API 访问自动化、身份管理、资源运用、和成本控制的解决方案,新兴的云 API 经济中大量极好的机会就会演变成巨大的风险,甚至可能导致灾难性事件。
最关键的自动化工具
上述这些自动化工具和原则在公有云部署最佳实践中都发挥了不同的作用。在没有了解具体部署案例的目标和限制之前,就轻言哪些自动化工具更加关键并不是非常合理。当然,在多数情况下,一些工具确实要比另外一些工具更加重要,如果非要让我选择最重要的前三个自动化工具,我会选择如下三个:
- 身份及访问管理——如果不能保证正确的人在正确的时间能够获取到正确的资源,那么其他一切都是空谈。假如对你来说,保护基于云环境的数据和服务是最大的顾虑,那么身份及访问管理就是必需的自动化解决方案之一。
- 供应自动化——对于许多云服务来说,供应自动化是非常基础的功能,但是这一功能的粒度是非常关键的,特别是对审计和控制来说。手工供应可能是造成公有云部署中人为失误和成本超支的最大原因。
- 性能和可用性监测——这也许是所有部署的终极武器,即使在最大型的大规模和高性能的云部署环境下,也能够让你了解问题发生的时间和原因,以及如何有效的修复这些问题。
总结
对于现有的公有云服务来说,自动化能力是必不可少的。任何像样一点的云服务肯定都会包含一些基础的自动化能力——例如自助式供应,利用率监测或退单拒付(chargeback)。
然而,正如我之前曾经写过的,目前可能没有哪一个云服务提供者能够提供更加高级的自动化能力,特别是商品化的云服务。
在了解了采用公有云的机会和风险之后,需要根据自身的工作量和目标合理选择正确的服务提供商并使用适当的自动化工具对其进行补充。
只有正确地集成了自动化解决方案,为用户提供并增强了信心,安全,性能,速度和控制,才能够完全发挥公有云的潜能。
关于作者
Andi Mann 作为 CA Technologys 的首席技术官和副总裁,是一位卓越的数字化业务主管,作为战略家、技术专家、创新者、营销人员和沟通者都具有丰富的全球经验。Andi 作为广受欢迎的咨询顾问、评论家和演讲家,拥有跨越五个大洲,超过 25 年的经验。Andi 著有两本书,他的博客地址是 Andi Mann – Übergeek,也可以通过 @AndiMann 在 twitter 上找到他。
云计算已经不仅仅是虚拟基础设施的快速自助式服务。开发者和管理员正在寻求规模化云计算的供应和管理方法。这篇 InfoQ__ 文章是关于动态计算资源池维护的自动化工具和理念系列的其中一篇。可以通过这里订阅这一系列文章的新文章发布通知。
查看原文链接: The Top Automation Tools for Public Cloud at Scale
感谢马国耀对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论