当好的东西使用的越来越多时,包括云容器在内,那么公有云中成本越来越多。这里有三个选择可以防止容器蔓延——所有高价标签都来自于此。
云计算中的容器简化并加速了程序的部署,但是这种易用性也导致用户更容易过度使用它。当公有云中发生这种情况时,容器蔓延会导致成本急剧上升。
幸运的是,容器蔓延是可管理的,但是企业需要迟早进行控制,而且要长期坚持。尤其是,不是所有的容器蔓延管理实践都能应用对云成本问题。
容器蔓延挑战
虚拟机是第一个流行的虚拟化策略,但很明显,企业可能会过度采取虚拟化,导致主机管理和应用程序部署更加复杂。
容器在云计算,在数据中心,提供了一种方法创建虚拟主机共享一个系统,并共享物理服务器的一些中间件。这使得组织在服务器可以部署比虚拟机更多的容器。当然,这也意味着数据中心中的主机数量可能会成倍增长更多,同时,为容器系统更容易部署,组织也是像在虚拟中那样更容易碰到管理的复杂性问题。
公有云中,容器蔓延管理是一个挑战,但成本却是一个更大的挑战。如果云计算中的容器激增,提供商的费用也会大幅增加。更糟糕的是,大多的关于克服容器蔓延的建议都是要降低管理的复杂性,同时对成本不会有影响。
如果你希望为容器化应用控制公有云的费用,那么就减少你部署的容器主机的数量。评估一下下面的三个选择,来达到减少容器数量,节省成本的目的。
选择一:组合应用组件
许多容器用户过度配置,这意味着他们将应用打散成可加载的镜像,他们比所需的更小。如果你不打算重新以不同的方式使用组件的话,就不要分离他们。理想情况下,组合的组件应该在工作流中相邻,因为这将缩短数据路径并且提高性能。更少的应用组件也意味着操作更简单,管理更便宜。
对于那些在你的数据中心中,且期望在公有云中部署的容器化应用,你要审查它们的所有组件。为了减少托管费用,确保在转向云端之前,你使用是最少的容器服务。
选择二:云端组合虚拟机与容器
第二种减少蔓延成本的选择是在公有云中组合虚拟机和容器。为了实现这一目标,请在基础架构即服务平台中托管你的容器系统,如Docker。如果因为容器服务你使用了多个公有云容器,你可能需要为每一个容器付费。但是,如果你在云中托管了一个虚拟机,并在这个虚拟机中创建你自己的容器托管镜像,那么结果就是你会在每一个容器上减少成本。然而,但这却并不同100%保证,这一模型还是存在一些待解决的问题。
例如,在容器系统和裸金属之间的额外虚拟机将会影响性能。用户报告称,这种情况与直接在云计算中运行容器,最好的情况下你可能丢失25%的机器性能,甚至可以达到 40%。你需要看到大幅的成本收益来证明这一方法,并且要仔细选择你的应用。如果托管应用组件的容器没有使用过多的资源,如I/O或CPU和内存,但却需要长时间驻留,那么这种虚拟机和容器的方法就是有效的。
选择三:无服务器道路
第三个选择是使用无服务器组件代替容器化组件。这种方法直接解决了蔓延问题,因为这让用户只对实际使用的流程付费,而不他们消费的托管点。但问题是组织需要经常重设计在无服务器上运行的应用或组件。
使用无服务器计算,应用程序被分成一系列简单的组件,当组织需要时才会加载他们。就像当你有许多作用的容器化的组件时,托管在容器系统中的虚拟可以良好运行那样,无服务器计算也做了这样的应用。你可以调用 上千个应用部件,如果调用不成功,你就不需要付费。
在应用无服务器计算之前 ,审查一下来自重要云提供商的可用框架,例如亚马逊WEB服务、谷歌云平台和微软的Azure。无服务器计算不仅只是一种不同的编程方式;它是一个全新的应用模式。你需要掌握其充分的上下文才能很好地利用它。
本文作者:蒋红冰翻译
来源:51CTO