无需二次开发,Cloud Alert 快速衔接您的IT事件和钉钉通知
900
2022-11-01
要落地云原生技术,先看Kubernetes成熟度模型
当你迁移到Kubernetes时,你必须显示出明确的业务优势。预期的业务成果将包括随着时间的推移节省成本,因为你拥有更好的基础设施利用率,通过减少故障点提高性能,并提高安全性。
效率、可靠性和安全方面的好处可以通过许多不同的方式实现。考虑效率:你的团队可能会更快地发布特性,或者你将不再在供应了的资源上浪费金钱。你的可靠性可能会提高,因为你可以更容易地扩展——所以当你的应用程序看到强劲的需求时,没有停机时间。当然,这一切都是以集群配置的可见性[1]为代价的。
几个月前,我们发布了Kubernetes成熟度模型[2]。包括七个阶段,每个阶段都着眼于工程师从Kubernetes准备到优化过程中应该期待什么。
这里我们专门讨论一下你应该期待的业务成果。虽然在几个阶段可能会重复,但在第一阶段花足够的时间来概述采用云原生、容器和Kubernetes的目标和好处是很重要的。
第一阶段:准备我从哪里开始,我信任谁,如何证明价值?
决定对应用程序或服务采用云原生方法通常是由业务原因驱动的。在第一阶段中,你的业务成果将是有限的,但是绝对必须包括为成功试验或迁移的设置。这意味着你应该有关于你的业务目标是什么,以及Kubernetes如何帮助你实现这些目标的文档。一些例子可能包括:
业务目标 | Kubernetes如何帮助 |
---|---|
扩大到100万用户 | 随时提供基于用户的灵活、可伸缩的基础设施,并在出现问题时提供快速故障转移。 |
提供卓越的客户体验 | 确保应用程序可靠,不会让用户感到沮丧。 |
更快地将功能推向市场 | 使用微服务方法构建应用程序。较小的团队更敏捷,因为每个团队都有一个专注的功能。API减少了构建和部署所需的跨团队沟通。 |
第二阶段:转型我如何设置Kubernetes基础架构并转移工作负载?
Kubernetes成熟度的第二阶段主要集中在技术转型上。然而,在这个阶段,你的技术团队应该已经成功地完成了POC。基于这一试验,你应该对Kubernetes将如何帮助你改进应用有一些初步发现。例如,在开发环境中,你可以看到:
应用程序使用更少的资源(节省成本)新功能的发布速度更快(更快的上市时间,从而增加了收入)没有停机时间(提高了给客户的可靠性)
业务目标 | Kubernetes如何帮助 |
---|---|
POC | 你应该对Kubernetes如何提供帮助有一些初步发现。 |
第三阶段:部署从CI CD到生产,我应该执行什么流程?
当开发团队将一个应用程序部署到生产环境中,业务成果就应该开始显现了。你应该使用已记录的业务目标来跟踪Kubernetes的进展,但是请记住,它不会在第一天就立即完成。业务成果可能包括:
减少应用程序基础设施的支出减少团队对应用基础设施的关注(注意:这将随着时间的推移而发生,因为团队对自己的技能越来越有信心)提高了应用程序的安全性提高遵从性,因为你可以限制和跟踪对应用程序的访问在实现CI/CD流水线时加快开发生命周期,从而更快地将特性提供给客户
在此阶段,检查业务成果并向业务涉众解释是非常重要的。它应该是与工程领导、应用程序所有者(财务、市场营销等)、首席执行官,甚至董事会的讨论。如果没有这些讨论和协调,迈向下一阶段的成熟将不会得到多少赞赏,甚至可能会遭到怀疑。
业务目标 | Kubernetes如何帮助 |
---|---|
减少应用程序基础设施的支出 | 提高资源的利用率 |
减少团队对应用程序基础设施的关注 | 快速故障恢复 |
增加安全 | 通过限制、RBAC、Kubernetes秘密和加密减少DDoS的影响 |
改善遵从性 | 访问控制 |
特性发布更快(加速开发生命周期) | 滚动更新 |
第四阶段:建立信心这种反复试验是否正常,我是否做出了正确的决定?
建立Kubernetes的信心需要经验。在这个阶段,你的业务成果取决于你的团队的经验。他们将尝试新的附加组件来提高安全性、效率和可靠性。随着团队的改进,所有这些都将影响你的服务和应用程序。
你的团队可能需要重新考虑Kubernetes推出时做出的一些决定。这可能会让你稍微受挫,但我们的目标是确保不会丢失功能、不会出现单点故障或令人失望的性能。
在第四阶段,将实施监控。这将帮助企业获得关于哪些能和不能工作的报告。虽然监控可能非常具体,但它也将提供以下洞察:
资源利用以控制成本性能以确保可用性
相信并确保你的Kubernetes基础设施满足生产级要求是至关重要的。如果你对进展不确定,Kubernetes审计[3]是一个很好的方法来检查你的成就与业务目标,以便进行改进。
业务目标 | Kubernetes如何帮助 |
---|---|
检查目标 | 实现针对业务目标的监控 |
第五阶段:改进操作如何提高群集的安全性,效率和可靠性?
Kubernetes成熟度模型的第五阶段是你期望在安全性、效率和可靠性方面获得巨大收益的阶段。到目前为止,你的团队一直专注于学习Kubernetes。现在是时候将这些知识更彻底地应用到你的业务目标中了。
安全性——如果你的主要目标是增加安全性,这里你将花时间在访问控制上。效率——如果降低成本是你的主要目标,那么你将使用工具来度量CPU和内存使用情况[4],并记录云使用情况是如何增加或减少的。在这里,你应该能够演示以支持基线测量。可靠性——如果提高性能/减少停机时间是主要目标,那么你可以在这里检查Kubernetes的所有特性是否都实现了。你将花费一些时间来研究集群配置。
业务目标 | Kubernetes如何帮助 |
---|---|
安全性 | 实现容器配置(root)、特权的控制 |
效率 | 测量CPU和内存使用情况 |
可靠性 | 活性/就绪探针、复制 |
第六阶段:测量与控制我应该测量什么以及如何确保控制?
进入第六阶段,你会看到更多关于你所做的事情的度量。这一点很重要,因为它将用于演示业务成果。企业应该期待看到:
在Kubernetes建立了协议和程序法规遵循标准的政策执行Kubernetes与非Kubernetes应用程序的比较
在这个阶段,业务应该会收到更多的报告。报告应该包括遵从性、安全性、性能和成本。集群中的单一仪表板视图可以帮助技术和业务领导看到进展。这些应该很容易与第一阶段中建立的业务目标相一致。
业务目标 | Kubernetes如何帮助 |
---|---|
增加了对度量的报告 | 在这个阶段你可能需要第三方工具 |
基于K8s与非K8s构建的应用程序的比较 | 比较有助于证明价值,显示是否所有应用或哪些应用应该迁移 |
第七阶段:优化和自动化如何执行策略,提高可靠性并最大化效率?
到Kubernetes成熟度模型的最后阶段时,你应该已经获得了业务成果。你应该有可衡量的成果来展示给你的领导团队,从首席执行官到首席财务官和董事会。
与此同时,第七阶段将看到你做出进一步的改进。这包括根据更高级的成本和性能指标优化Kubernetes的工作负载。你将永远不会停止优化Kubernetes集群。在这里,预期的业务成果是能够跟踪优化如何继续移动既定目标。
在这个时候,你也可以重新审视你的目标,根据已经实现的目标和未来你想要实现的目标来调整它们。对于一些人来说,此时,你可以开始迁移其他应用程序,并更好地理解你想要实现的目标。
同样在第七阶段,你将根据Kubernetes的最佳实践尽可能多地实现自动化,以消除人为错误,从而避免安全和性能问题。这种自动化将包括针对集群配置实现策略实施。策略实施[5]应该在成熟度模型的每个阶段都考虑,但在第七阶段肯定要考虑。成熟的Kubernetes用户知道错误的配置会导致组织完全失去他们的业务目标——将他们置于安全漏洞、扩展问题和成本超支的风险之中。
业务目标 | Kubernetes如何帮助 |
---|---|
实现业务目标 | 实现Kubernetes成熟度的可演示成果 |
自动化 | 减少人为错误 |
优化 | 你将对Kubernetes进行调整,以继续实现业务目标 |
总结
成熟度模型应该用于检查技术和业务成果。如果你不确定你是否在每个阶段取得进展,或者不知道您的组织应用K8S确切的位置,请联系一下。我们很高兴在贵组织讨论Kubernetes。
参考资料
[1]集群配置的可见性: http://fairwinds.com/insights[2]Kubernetes成熟度模型: https://fairwinds.com/kubernetes-maturity-model[3]Kubernetes审计: https://fairwinds.com/kubernetes-audit-improve[4]工具来度量CPU和内存使用情况: https://fairwinds.com/blog/kubernetes-best-practice-efficient-resource-utilization[5]策略实施: https://fairwinds.com/blog/why-kubernetes-policy-enforcement
发表评论
暂时没有评论,来抢沙发吧~