凯尔·布?朗(Kyle Brown)和金·克拉克(Kim Clark)
注意:这是部分5的五部分组成的系列。对于本系列的第一篇文章,请从这里开始或跳至第2部分,第3部分,第4部分
在过去的文章中,我们建立了“原生”指的是什么,甚至“原生”指的是“原生”的工作方式。但是,还有一个更大,更基本的问题我们尚未解决。为什么有人要关心?根据前两篇文章的背景,我们现在可以探讨“为什么”并查看云原生的好处,从高层次上对业务意味着什么,然后深入到实际意义上。
为什么要云原生:目标和收益
云原生方法的好处
目标和收益的业务视角
面对现实吧,IT风潮一去不返。许多业务团队试图超越那些时尚,让IT人员走自己的路—毕竟,选择应用程序服务器或语言运行库通常对业务运营没有太大影响。是什么使云原生技术与众不同?企业为什么要支持向云原生迁移?为了理解这一点,我们需要从一个角度出发,考虑到几乎所有企业要成功就必须关注的三个关键方面:增长,减轻风险和降低成本。我们认为使用云原生方法构建应用程序可能会在所有这些类别中提供好处。
市场成长
市场增长就是要吸引新客户并保持他们的兴趣。为了赢得新客户并保留边缘客户的利益,您必须能够比竞争对手更快地将好的新想法推向市场。采用精益方法和通过管道自动化简化生产路径等因素使团队能够更快地将业务构想引入生产。这样可以缩短上市时间,帮助IT部门以业务发展的速度推出新功能。但是,新功能本身无法确保市场增长。您必须能够找出那些对客户保留率和客户获取量有负面影响的新功能,并使它们消失,同时保留对这两项措施有正面影响的那些新功能。真正的关键是确保创新准备就绪;让企业大胆而迅速地将颠覆性的创意付诸实践,以便在竞争之前抓住新的市场利基,同时进行衡量,使您可以凭经验确定哪些创意是好的,哪些创意是不好的。
风险缓解
但是,新功能并不是企业需要的一切。如果一家企业能够通过不断以其令人敬畏的新功能来取悦客户而不断进取,那么我们的工作将会更加轻松。现实更加复杂和困难,但同样重要。客户需要信任您的业务。当然,这在金融服务或医疗保健等受到严格监管的行业中最为明显,但与每个业务相关。您提供的解决方案需要具有适当程度的弹性和安全性,以确保客户可以确定您何时需要他们,他们可以用他们的金钱,数据或生活来信任您。
正如我们在上一篇文章中讨论的那样,编写良好的云本机解决方案利用抽象将自身与底层物理基础架构分离,从而提供隐式的弹性。此外,由于它们必须假定可移植部署到任何云环境中,因此它们的组件也遵循零信任模型。但是,我们对风险的关注越多,就越有可能为进行变革设置障碍,这不利于我们对市场增长的需求。正是在这里,云原生可以通过提供高度自动化且一致的方式将产品投入生产,从而通过降低部署信心来减轻对变更的恐惧,从而有助于降低风险。
但是,云原生方法无法神奇地降低风险。诸如功能标记和Canary测试之类的技术可以使企业执行以前可能因风险过高而被拒绝的事情,但这需要与企业密切合作才能使这些技术对企业有价值。我们必须与企业合作,以更新他们如何衡量和控制风险,以使其与所介绍的方法和流程兼容。
降低成本
任何企业都不能忽略成本。无论您的市场份额有多大,或客户有多信任您,如果您无法控制成本,就不能指望可靠的利润。企业是由人们经营的(至少今天是这样!),人们却要花钱。我们需要确保能够从最少的人数中获得最大的收益,而对于那些拥有最深厚技能的人来说,情况尤其如此。构建云本机解决方案的平台应旨在实现标准化,并在可能的情况下使构建,部署和管理软件的日常任务自动化。这使得优化的高价值员工他们可以专注于直接为业务增加价值,而不是陷入日常运营的困境。当然,这些平台及其底层基础设施也需要付费。幸运的是,云原生解决方案旨在仅使用所需资源,因此您应该利用平台提供的弹性成本模型,以使您能够利用这种成本效率。
IT部门对目标和收益的看法
到目前为止,我们在云原生如何影响业务方面的讨论有些高层次。为了使企业理解云原生的优势,我们必须将我们已经讨论过的IT优势转化为相应的业务优势。接下来,我们将展示上面的每个关键业务收益领域如何映射到我们之前的云原生要素。
敏捷性和生产力(市场增长)
每个企业都希望从IT获得更多功能-他们也希望它们更快,并且希望它们更准确地反映他们的需求。云原生如何提供帮助?
更快地交付组件
交付加速是云原生方法最常见的目标,它汇集了三个核心方面:云平台,敏捷方法和微服务。云平台通过弹性配置和组件编排等方面,使我们能够通过自动化和简化大多数日常运营工作来专注于构建业务功能。通过减少工作量,他们可以使团队专注于高价值的工作。敏捷方法应使我们能够缩短需求与实施之间的距离,并提高与业务目标的一致性。这意味着需要更少的返工,并且可以更快地发现并纠正错误的主意。设计方法,例如微服务使我们能够以更少的依赖关系递增地交付功能,从而更快地交付。
具有自主创新能力的自主团队
细粒度和离散组件的故意结果是,它为创建它们的团队提供了更多的自治权。只要遵循我们前面描述的去耦的关键规则,接收平台就可以在很大程度上将这些组件视为“黑匣子”。虽然应该鼓励跨团队协作和通用做法,但是团队可以自由使用例如可以满足其需求的最有效的语言运行时和框架。这种创新的自由性使团队可以“开箱即用”,不仅可以更快地为业务提供解决方案,而且可以提供在业务方面更具创新性的解决方案。这种自治的一个关键方面是,业务必须是每个自治团队的一部分。产品负责人的概念和发起人用户对于建立富有成效的团队和创新团队至关重要。
应对不断变化的业务条件
早先,我们讨论了不仅要进行创新,而且要通过具体的和经验的评估来确定一项创新是否有价值的能力对于使团队随时准备以业务发展的速度发展是很重要的。其中一个关键方面是成教业务和IT通过假设驱动的开发协同工作的能力。简而言之,假设驱动的发展将商业想法表述为可以被证明或未被证明的科学假设。只有在整个开发周期中都参与业务时,云原生开发才能为业务带来收益。
参与的主要形式是通过A / B测试-如果您进行评估,例如废弃购物车的百分比或浏览后单击“购买”的客户百分比,那么您可以凭经验比较不同的想法。您可以将您的一些客户引导到具有新想法的新方法,将其他客户引导到现有的方法,然后比较两者之间随着时间变化的度量差异。这里的关键是,这要求企业考虑可衡量的差异。如果科学的假设无法被证明,它就不是一个假设,这同样适用于业务假设。企业必须能够帮助确定可量化的度量标准,通过该度量标准可以比较两种不同的想法或方法。这意味着它们必须参与整个过程,不仅帮助确定应该测试哪些想法,还应该确定如何测试它们,以及成功定义的含义。 Cloud native非常适合启用这种响应行为。它是敏捷方法学的重要组成部分,此外,使用细粒度,耦合良好的组件可以更安全地添加新功能,而又不会干扰已有的功能。此外,诸如服务网格之类的通用机制可用于在正在测试的想法之间选择性地路由请求,以及简化用于假设评估的数据收集。它是敏捷方法学的重要组成部分,此外,使用细粒度,耦合良好的组件可以更安全地添加新功能,而又不会干扰已有的功能。此外,诸如服务网格之类的通用机制可用于在正在测试的想法之间选择性地路由请求,以及简化用于假设评估的数据收集。它是敏捷方法学的重要组成部分,此外,使用细粒度,耦合良好的组件可以更安全地添加新功能,而又不会干扰已有的功能。此外,诸如服务网格之类的通用机制可用于在正在测试的想法之间选择性地路由请求,以及简化用于假设评估的数据收集。
弹性和可扩展性(风险缓解)
云平台,尤其是容器,从其基础架构中继承了许多抽象。这使得针对非功能性需求(例如可用性,健壮性,性能和安全性)的通用且风险较低的方法成为可能。一些关键示例是:
细粒度的弹性可扩展性和弹性
编写良好的云本机解决方案是使用状态最小化的细粒度,轻量级组件构建的。这使云平台能够通过根据需要快速复制和处置组件来固有地提供健壮性和可伸缩性。多亏了集装箱运输,这可以以标准化的方式提供,从而大大简化了操作。此外,容器编排平台能够在多个物理服务器,多个区域中分布容器实例的能力进一步提高了弹性水平。
一致的环境和可逆的部署
为了使上一部分中讨论的敏捷性和生产率变为现实,我们需要能够自信地将新代码交付到环境中,安全地重新路由流量,并在必要时确实以最小的痛苦来扭转这些部署。理想情况下,云原生代码应以不可变的映像形式交付,其中包含所有依赖项,并包括完整的声明式部署说明。这确保了部署过程和工件在所有环境中都是相同的,从而消除了环境漂移的风险。此外,云平台的功能(例如路由器和服务网格)使代码可以在全面推出之前进行加那利测试(通过新代码传递少量负载)。这也简化了回滚版本,因为我们可以简单地恢复到先前版本的映像和部署说明。这种简单性对业务至关重要,因为它可以使他们确信,如果结果不是预期的,则可以快速安全地撤消更改。
持续采用软件运行时
敏捷方法要求在构建,测试和部署方面,生产路径必须尽可能自动化。这些管道通常被称为连续集成/连续交付(CI / CD),通常是由于源代码的更改而触发的。但是,由于声明式部署也是代码,因此对基础运行时版本的更改也会触发新的构建/测试周期,例如“ GitOps”。假设我们对自动化测试有足够的信心,那么这应该使我们可以使基础运行时版本保持比当今大多数应用程序最新的状态,从而不仅确保我们可以利用最新的功能,而且也不会受到已知安全漏洞的威胁。再次,这对企业来说应该是有价值的,因为它减少了丢失客户数据或资产的信托风险。
优化和效率(降低成本)
基于云的计算使我们能够集中资源:硬件,软件,甚至人员。通过跨应用程序,跨组织域甚至跨组织共享这些资源。我们有机会降低运营成本。Cloud native可确保编写应用程序以从这些优化中获得最大收益。
基础平台上的一致技能
容器的明显特征(即轻量级可扩展组件)的根本特征是更大的瑰宝。从长远来看,它们最大的好处可能在于操作的一致性。使用完全相同的技能来构建,部署,提供高可用性,扩展,监视,诊断和安全,无论在一组精心设计的容器中运行时如何,都是一个巨大的飞跃。至少,这意味着可以在IT领域以前孤立的部分中转移可移植的通用技能。充其量,自动化操作的机会应该导致减少运行给定基础架构所需的人员数量,并提高其可靠性。但是,由于这些技术是新技术,因此个人和公司必须经历陡峭的学习曲线,然后才能实现这些利益。
优化基础架构的使用和许可
可以说,“云”的最基本定义是从基础物理基础架构中抽象出来的。虚拟机为我们提供了第一级间接性,因为我们不再受限于物理机中的特定硬件。容器,如果加上最小状态,不变部署等云原生成分,将使我们走得更远。云原生使我们能够在多个数据中心的许多机器之间无形地分布组件,从而为规模经济提供了更大的机会。当然,软件许可需要通过新模型以及可能更复杂和动态的计量来应对这一挑战。
快速自我配置资源和功能
自我配置是云的主要承诺之一,可实现对虚拟计算,内存,存储,网络等的快速需求。容器平台通过在部署时允许对资源的声明性请求,并为这些属性在运行时基于负载的变化设置策略,进一步抽象了这一点。只需单击即可创建全新的环境,并通过软件定义的网络将其与其他环境隔离。为了充分利用所有这些,需要以不同的方式编写应用程序。应用程序必须是无状态的,可抛弃的,细粒度的,实际上,我们在本系列中已经讨论过的所有内容。
结论
就像方法中最重大的变化一样,云原生云需要一定程度的承诺才能实现您的目标。如我们所见,这需要使用许多单独的成分。对于许多(也许是大多数)组织而言,从一开始就不可能将所有这些要素都准备就绪,因此成功的关键是优先考虑。
通过选择对您最重要的好处,我们希望我们的系列产品可以帮助您确定应优先关注的哪种云原生成分的优先级。