云计算不仅仅是虚拟基础设施的快速自助服务。开发人员和系统管理员正在寻找监督和管理规模化云计算的方式。本文是 InfoQ 关注计算资源动态池自动化工具和想法这一系列文章的一部分。如果您想获取该系列新文章的提醒,可以在这里订阅。
早期的云计算部署通常只涉及一两个员工针对特定实例进行的少量服务器的小规模采用。然而,今天我们看到了对公共云越来越广泛的采用同时,也看到了整个企业的不同员工对跨越所有云服务模式(IaaS,PaaS,SaaS)中大量功能的使用。
从早期阶段的创业公司到世界上最大的企业和政府部门,越来越多的组织扩大了他们对公共云服务的使用规模,规模化云计算也开始呈现出各种问题。
规模化公共云上的潜在问题
虽然公共云的采用无可置疑地为所有形式和规模的企业带来了非凡的业绩,但公共云也带来了许多新的挑战和风险。其中最重要的有以下几点:
费用
在开始时,我们只允许少数人拥有有限的访问权限,这相对来说比较容易跟踪成本。但是,随着越来越多来自不同部门的个人获取了权限,我们很可能会遇到功能重叠、过度配置、未授权购买、未使用‘僵尸’实例、多余带宽和存储费用,以及其它不必要因素而浪费预期节约的成本。
未授权访问
管理公共云服务的小规模访问是比较容易的,但随着用户的增长,情况很快就会失控。离职员工在离开后可能依然保留有权限;员工权限没有随着角色的变化而更新;与此同时,新员工却在拼命争取他们访问所需资源的权限。由于许多云供应商无法提供企业级安全性,随着对公共云采用的不断增长,我们很快会成为未授权访问的受害者。
渗透
比起员工权限控制问题,外部恶意人员对云服务的渗透这一问题则更严重。密码丢失、共享用户ID、数据泄露、口令过简、社会工程、网络钓鱼和恶意软件都将会使公共云服务暴露出数据丢失、操控、攻击、拒绝服务及其他恶意渗透所带来的影响。
人为错误
当云服务比较小时,可以由个人很容易地管理,但随着他们的扩展和规模化,我们不能总是通过添加新员工来维护管理。这就意味着更少的人需要干更多的活,根据平均定律,最终总会有人犯错误。尽管该问题并不局限于云计算,但反过来它还是会造成大规模的故障。
可视化
当你只有几个精心管理的服务时,只有一两个人就可以看到部署在哪里,知道配置方式、费用、使用方式、拥有者、问题原因、如何解决问题、什么时候关闭服务、如何恢复等。但是在大规模系统中,随着各种公共云部署的扩展,以及对更多用例开放访问,云使用会变得越来越不透明。
会诊
由于差的可见性,其后果之一是问题定位会明显变难。比如如果你看不到系统是在哪里运行或如何与其它服务连接的,就几乎不可能定位事务流程中在哪里速度放慢了。在系统思考方面具有领导智慧的 W.Edwards Deming 说过“我们无法管理无法衡量的东西”,但更确切地说,我们无法管理不可见的事务。
可审计性
与此同时,差可见性还带来了另一个副作用:随着更多的系统和服务从云中抽象出来,追踪每个人的访问内容、时间、方式和原因为审计带来了严重的问题。如果没有工具自动化相应流程,能够在大规模环境下跟踪、记录,及查看访问、修改、失败、曝光、使用等功能会变得异常艰难。
可恢复性
尽管严重的宕机并非云平台独有,但似乎每个礼拜我们都会听到公共云失误的各种戏剧化故事。然而,许多云供应商,尤其是大宗商品服务,并未构建可恢复性;甚至某些更健壮的服务也可能不提供实时恢复或优先考虑用户的商业需求。如果没有用于备份、故障转移和恢复的备用系统的话,宕机将是个真正的灾难。
自动化将解决所有这些问题及更多
解决这些问题的方法之一就是将 IT 自动化。当然,自动化并非万金油;而且自动化坏的流程也只会导致坏事将发生得更快,更无法控制而已。但是,如果实施得当的话,各种形式的自动化工具将允许我们在扩展公共云部署的同时,避免大量上述问题。
例如:
- 与人工比起来,流程自动化在执行和集成现有任务及工作流程上具有无法比拟的优势:其运行速度会更快、规模更大、跨越更广阔地域、成本更低、以及更强的审计和控制能力。
- 服务开通自动化后可以控制谁、何时、做什么、为什么,及员工如何创建和发布云服务,降低错误,消除僵尸用户,跟踪成本和允许粒度审计及控制。
- 配置自动化可以帮助保证系统已打好补丁,未使用端口已关闭,漏洞已消除,超支得到控制,系统可修复及错误最小化。
- 事件监控甚至可以追踪最大型云部署的错误跟踪,保证触发事件的可见性,根本原因的建立,警报的升级,在问题变严重前的检测和解决。
- 集装箱化可以从单一云基础架构或平台的细节中提供更高层次的抽象,从而允许从一个服务到另一个服务快速且低接触的移植,以实现更好的灾害恢复和成本控制。
- 带有自动检测、提醒、升级和问题会诊等功能的性能监控提供了必要的可视化,能帮助避免糟糕的体验,防止由不良诊断问题造成的昂贵的性能成本超支。
- 备份和恢复的自动化可以让故障对于终端用户是透明的,尤其是当它们连接到事件和性能监控工具上,或直接在云应用程序中用于构建对故障和灾难恢复的容错能力。
- 发布自动化可以在无人工干预的情况下完成新应用程序和更新从开发环境到产品环境的发布,加快了大型部署上创新的同时,降低了人为错误,确保了审计,并消除了‘流氓’代码。
- 身份和访问管理在需要时提供了对云服务正确的访问权限,并在不需要的时候撤销权限,从而防止恶意访问、消除数据丢失、确保审计和控制、提高可见性和管理使用成本。
- 性能管理允许云消费者更准确地预测他们的服务增长情况和峰值需求,以及应何时释放资源;在降低潜在服务问题的同时,帮助管理云资源成本。
此外,自动化开始给公共云带来传统手动形式根本不可能提供的新功能。比如:以类似 DevOps 这样的新方式加快了大规模应用程序的交付,而 DevOps 可以说只可用于以下这些解决方案:自动服务开通、配置管理、测试自动化和发布自动化。同样,如果没有用于自动化的 API 权限、身份管理、资源使用和成本控制的解决方案的话,大规模利用新兴云 API 经济所带来的令人难以置信的机会只会有最高风险和最大灾难。
哪些是顶级自动化工具?
所有这些自动化工具和原则都属于公共云部署中的最佳实践。如果不理解任意一个给定部署目标和约束的话,简单地罗列出最佳工具显然是不合适的。不过,其中一些肯定相对于于更多的部署来说更为重要,如果我需要选择三个的话,我会选择:
- 身份和权限管理 – 如果你无法保证只有正确的人在正确的时间访问正确的资源的话,那说实话,所有其它还有什么意义呢?如果你最大的顾虑是如何保护基于云的数据和服务,那你必须具备该自动化解决方案。
- 服务开通自动化 – 此项是很多云服务的基础,但对于审计和控制,在该功能上拥有一定的粒度化却是至关重要的。而公共云部署中的手动服务开通大概是导致人为错误和成本超支的最大原因。
- 性能和可用性监控 – 它可能是所有部署的终极工具,哪怕在最大规模和最高性能的云部署中,都可以确保我们知道是否有问题,何时发生,为什么发生,及如何有效地解决。
总结
自动化功能是公共云存在不可或缺的条件。尽管部分基本自动化功能会包含于任何不错的云服务中,比如:自动服务开通、使用度量或退款。
但是,如我在前面提到过的,我们几乎没有机会可以从云供应商那里获取复杂的自动化功能,尤其是大宗商品的云服务。
因此我们要自己去理解采用公共云所带来的机会和风险,根据我们的工作量和目标选择正确的的服务供应商,并为其补充相应的自动化工具。
只有集成正确的自动化解决方案,才能提供和增强信心、安全、性能、速度和控制,从而真正发挥出公共云的全部潜能。
关于作者
Andi Mann – CA Technologys 的 CTO 办公室副总裁,是位颇有成就的数字商务高管。作为一名战略家、技术专家、创新者、营销员和传播者,Andi 拥有丰富的全球化专业知识。他有着超过 25 年横跨五大洲的工作经验,Andi 是个抢手的顾问、评论员和演讲者。Andi 还撰写过两本书,其博客为‘ Andi Mann – Übergeek’,twitter 帐号为 @AndiMann 。
云计算不仅仅是虚拟基础设施的快速自助服务。开发人员和系统管理员正在寻找监督和管理规模化云计算的方式。本文是 InfoQ 关注计算资源动态池自动化工具和想法这一系列文章的一部分。如果您想获取该系列新文章的提醒,可以在这里订阅。
查看英文原文: The Top Automation Tools for Public Cloud at Scale
感谢陈菲对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论