企业扩展其应用程序以满足业务需求并不少见,但是他们需要意识到运营云计算环境面临的复杂性问题。
对于大多数企业来说,采用云计算技术并不是什么独特的体验,但在云平台中运营和在云平台中扩展业务之间有着显著的区别。
随着云原生组织的规模和复杂性的不断增长,企业IT团队将不可避免地遇到许多新问题,这些问题使管理不断增长的云计算服务需求变得既困难又费时。
如果企业的IT团队不熟悉和不擅长管理不断增长的和需求相关的常见挑战,那么大规模运营云计算服务可能会非常困难。为确保企业为应对云计算业务扩展的挑战做好准备,以下对6个复杂性问题进行分析和探讨。
1. 管理开发环境成本
大多数应用程序在开始应用时通常都是专注于解决单个问题的小规模的服务,并且出现问题也能够很好地解决。但是随着企业的发展,客户的需求也会大幅增长。虽然这是可以管理的,但只能在一定程度上应对。而每增加一项功能,应用程序基础设施的复杂性就会增加,相关成本也会随之增加。
而弄清楚如何管理不断增长的开发环境的成本几乎与弄清楚如何管理开发环境本身一样困难。实际上,这两个问题是交织在一起的。
大多数企业首先在其内部部署数据中心中为工程师提供类似的开发环境。这样可以降低成本,并确保开发人员(无论是否远程)不会因为登录问题、互联网速度或可用性而降低生产率。
但是当企业的业务在云平台中以一定规模运营时,这些做法变得不切实际,并且需要创建具有更多专用资源的基于云计算的开发环境。随着时间的推移,使用更多基于云计算的资源可能会支付更多的费用。
找到一个平衡点具有挑战性,但是对生产率和效率的需求应该超过实现生产平衡的愿望。创建和支持流程是一个很好的起点,可以使开发人员能够在内部部署数据中心上运行应用程序基础设施的一个子集,同时通过模拟或共享服务填补空白。
2. 评估云平台原生工具
在云平台中进行扩展的时候,企业都必须做出选择:使用最方便的工具还是使用最便携的工具。开源工具和服务使企业能够随着工作负载需求的变化从一个云平台过渡到另一个云平台。但是,第三方工具通常可以更有效地解决他们的问题。
但是,由于并非每个云计算提供商都能满足客户的需求,因此供应商锁定对于IT团队是一个非常现实的问题。无论企业选择哪一个云计算提供商,都应该采用“并发”方法来解决问题。这可以帮助企业确定适合其业务的正确工具,而不是适合云平台的正确工具。
随着多云的应用变得越来越普遍,这变得更加必要。如果企业专注于采用解决正确问题的服务,同时又投资将这些服务结合在一起的工具,则将会拥有更大的灵活性。
3. 规模测试
随着数据的增长,了解不同规模运营的限制至关重要。当然,企业可以防范性能不佳的数据库查询并尽早引入缓存,但是要进行规模测试,不仅需要防御性的开发实践,而且了解应用程序在增加流量的性能与了解应用程序在增加数据的性能同等重要。但是如何进行测试呢?
企业尽早构建可利用应用程序基础设施的工具。构建类似于生产的过渡环境可能代价高昂,但是如果能够使用代表其生产环境的数据和流量来测试应用程序,则可以在潜在的瓶颈变成真正的问题之前就将其识别出来。企业了解其云计算环境的局限性至关重要,而采用积极的规模扩展方法比被动方法的成本低得多。
4. 打破知识孤岛
企业的IT团队面临的大的云计算扩展挑战是如何应对和打破知识孤岛。当规模很小的时候,对于处理API或数据库的工作人员很容易处理,而且效率很高。
企业的IT专家可以在每个领域实现更一致的开发,而其开发团队需要更好地理解每个领域的差别。然而,随着云计算技术的发展进步,这些专家的知识和经验可能会面临瓶颈。他们所关注领域发生的任何变化通常需要他们的知识和经验进行解释和监督。
尽管这些知识孤岛的安全性很高,但也存在一定的风险。例如企业的员工离职的话,那么有关重要基础设施的背景和细节的信息有可能会泄露或丢失。
要真正打破知识孤岛,就需要多人来负责。记录流程或过程很重要,但是必须确定应该对其进行管理的团队或部门,正确地将文档交给这一团队至关重要。
5. 获得并保持可见性
在大多数应用程序的早期阶段,像监视、日志聚合、度量和异常监视这样的概念都很简单,而且通常成本不高。大多数云计算提供商提供云原生工具来满足这些需求。
如果这些工具还不够好,那么企业从第三方和开源服务中获得的功能就足以满足早期需求。但是,随着大规模运行云计算服务的需求增加,这些第三方选择的成本可能是巨大的。这也可能非常耗时。
要获得对应用程序基础设施的可见性,好从小处着手,然后再扩大规模。监视工具应该很容易根据需要进行替换和修改。重要的是要记住,监视的数据必须是可用的。此外,企业需要获得可见性确保自己处于领先地位。
6. 避免微服务的困境
大规模管理应用程序可能会很复杂,这就是很多企业在出现问题直接采用微服务的原因,但这并不是正确的做法。
成功的面向服务的架构需要仔细规划和考虑,操之过急可能会导致更多的技术债务和问题。
如果企业没有将整体服务拆分为多种微服务的经验,那么最重要的事情就是提前确定客户或微服务之间的合同。如果不能随便启动新服务并定义详细信息,可能会超出计划的要求。
建立从监视到身份验证再到协议的每项服务都必须遵守一系列标准。无论企业是选择Prometheu、OAuth还是REST等服务,重要的是要做出决定,记录下来并执行。