共计 2735 个字符,预计需要花费 7 分钟才能阅读完成。
在过来的十年中,基础设施畛域产生了巨大变化,越来越多的企业将其工作负载散布在多个平台上,包含本地和云中。这导致管理工作负载的形式产生很大变动,随之而来的是复杂性和危险的减少。跨多个平台的工作负载散布有很多种,多云和混合云是最常见的。
简而言之,多云是在两个或多个云基础设施平台上部署应用程序的组件。这些平台能够是两个公共云服务提供商,或者两个公有云,或者它们的某种组合。混合云大致相同,然而它更多是指公共云和公有云的组合。
多云和混合云利用程序设计模式能够采纳多种形式,但有两种最为重要:
1)托管在不同云上的组件——最常见和最简略的模型波及拆散组件(应用程序层),以便每个不同的组件都部署在单个提供商上,整个应用程序散布在多个云中。例如,应用程序的前端可能驻留在公共云上,其中间件驻留在公有云上,其数据库驻留在本地裸机集群上。
这个例子可能波及一个流量很大的以前端为核心的 Web 应用程序,可能常常更新,它能够防止调用后端资源。在公共云上装置应用程序前端能够依据流量疾速、动静地扩大该资源,并能够简化长期(但资源密集型)程序。
将中间件放在公有云上能够实现相似但更受限的灵活性,以及更严格的安全性。在裸机上运行数据库可提供最高的可调性和性能,同时为重要并受监管的数据提供最大水平的爱护。
2)单个组件,散布在多个云中—— 较少状况下,咱们采纳单个应用程序组件并将其散布在多个云中。这种模型的挑战在于,当初在单个应用程序组件中引入了提早和其余潜在的网络危险等问题。
例如,随着企业扩充公共云服务的应用并寻求老本优化,它们常常遇到所需资源不可用的状况,在这种状况下,能够应用像 Kubernetes federation 这样的技术来反对容器工作负载——对等微服务水平扩大以执行单个应用程序性能——来“逾越”公共云之间的鸿沟。然而,编写在这种架构上茁壮成长的微服务和应用程序意味着要预料到一系列的提早和运行在繁多基础设施上的应用程序通常不会遇到的非凡情况。
多云劣势
帮忙开发人员更轻松地应用来自多个云提供商的资源和服务提供了许多劣势,包含以下方面。
1)杠杆——企业能够通过此形式对供应商产生肯定的影响力,以便可能协商最佳价格并确保最佳服务水平。如果企业被锁定在一个繁多的供应商(或者如果存在垄断),就会失去这种影响力,很容易受到成本上升和服务水平降落的影响。
2)价格 / 性能效率——拜访多个公共云的能力能够使企业可能继续优化价格 / 性能——不仅包含工作负载托管,还包含与服务应用程序相干的所有其余性能因素和老本(例如网络进口老本、互连性、提早)。
然而,通过在提供商和基础设施之间挪动组件和工作负载,最大限度地进步老本和性能优化的自由度,意味着限度企业对所应用的平台和提供商的高度差异化性能和服务的依赖。Kubernetes 和容器在这里能够施展重要作用,造成逾越多个云和基础设施的统一根底。
3)升高危险——云提供商的定价很简单,难以察看和预测,并且可能会在简直不引起留神的状况下发生变化。服务可能进行,提供商的政策也可能发生变化——提供商在执行方面可能出尔反尔,服务条款协定使客户在产生争议时简直没有追索权。
因而,提前打算、提供冗余并确保要害数据库和其余难以挪动的组件不会锁定到特定的提供者是十分有意义的。
4)地位——公共云提供的一项要害服务是可能将工作负载和数据放在特定区域。利用地位的能力能够进入利润丰富的市场——这对应用程序性能(例如,最小化提早)、存储和传输老本以及(在某些状况下)特定服务的可用性和规模至关重要。
5)监管合规选项——管制工作负载和数据地位(静态数据和动态数据)对于施行实现法规听从性、数据主权和数据保护的管辖策略也至关重要。合乎 GDPR、隐衷爱护和其余法规的管辖权和客户要求的能力是企业全球化倒退的保障。
多云挑战
企业须要制订策略来确保多云可能带来益处,同时不会给开发人员、DevOps 和经营团队带来额定的工作艰难。
1)一致性至关重要。通过确保跨公有云和公共云的应用程序平台统一,能够帮忙确保应用程序可能在任何中央运行而无需更改;并且能够在繁多渠道中保护配置、操作自动化、CI/CD 和其余辅助代码库。
Kubernetes 目前是用于革新公共和公有云基础设施以及裸机的最佳可用平台——提供了许多形象机制,用于将工作负载与底层基础设施隔离开来,只管存在底层基础设施问题,仍能放弃它们的生机,并容许疾速、高效、低影响的应用程序更新、扩大和生命周期治理。
2)仅 Kubernetes 是不够的——组织须要在所有基础设施上提供统一的 Kubernetes,即易于定制、易于扩大、齐全可察看、蕴含电池、平安、广泛兼容和操作敌对的应用程序环境,由一个核心起源提供。繁多集群模型可放慢操作,实现容器、配置和自动化可移植性,同时还进步安全性(打消未知数和变动,从而缩小攻击面),促成策略管理并简化法规听从性。
3)应用集中管理的零碎来交付、更新和治理跨多云的集群能够大幅提高生产力;用于可察看性和手动操作的繁多治理平台、全自动且无中断的更新、用于构建自助服务应用程序和按需交付集群的一组 API。通过地方命令和管制设施“提供商”中间件操作各种公共和公有云基础设施,有助于确保企业从平台和公共云特定服务中获益,同时还能够强制执行统一的配置和行为来运行应用程序的 Kubernetes 集群。
4)抉择自在与这种模式是统一的。集中管理的多云基础架构能够让运营商和开发人员能够自由选择公共云和公有云备选计划,同时还反对应用一系列操作系统以及大量自动化、CI/CD、安全性和其余工具。
5)集中监控和容量治理也很重要,以确保企业分明地理解零碎的执行状况以及它们正在耗费的资源,这样就能够对应该在哪里运行应用程序做出正确的决定。
6)在外围要求列表中排名靠前的应该是易用性。如果零碎应用起来过于简单,或者要求开发人员必须学会解决新的或生疏的零碎,这将极大地妨碍多云的采纳。
当然,抉择多云策略并确保应用通用平台跨多个平台部署和治理统一的 Kubernetes(以及可能在 Kubernetes 之上运行的应用程序)也有一些毛病。其中最次要的是,企业可能无奈(间接)利用公共(和公有)云提供商提供的附加服务,包含他们的“一键式 Kubernetes”版本。
低准入门槛的服务(包含 Kubernetes 产品)仿佛让初创公司面临的阻力更小。然而,企业投入的越多,在没有集中式解决方案提供的形象和中介的状况下,越深刻开掘供应商服务组合,就被锁定的越深。
进入多云意味着反复(有区别地)在每个提供商上开始企业规模的工作,并保护您为此创立的所有并行工具渠道。因而,将企业的经营和业务的任何局部从一个供应商“晋升和转移”到另一个供应商成为一个多层次的挑战。