云原生技术,新一代软件,能够以高度自动化的方式处理服务的部署和运营,专门围绕云提供的可能性而设计。云原生技术的核心是Kubernetes,它是云原生应用程序的协调者
。
在本文中,我们将重点介绍云原生技术带来的好处、它是如何带来这些好处的,以及最大的陷阱。永远要记住天下没有免费的午餐。
云原生的好处
云原生技术、工具和工作方式的好处是:
- 降低风险,围绕云原生中的工具和技术的高度标准化降低了几个方面的风险:组织上(更多的知识转移途径和工程师之间的冗余),
- 减少维护负担,云原生技术非常有利于自动化和软件驱动的操作,这意味着减少了对工程师进行需求维护的依赖。
- 降低 CAPEX 和 OPEX 的成本,作为降低风险和维护负担的直接结果,采用云原生可显著降低资本支出(开展业务所需的前期采购)和运营支出(与开展业务相关的持续成本)。
- 提高了安全性,向基于 Kubernetes 的云原生平台添加安全组件可为您的应用程序带来多层外围防御,而无需对应用程序本身进行任何代码更改。
- 开发人员友好的操作体验,支持 DevOps 的工作方式。这种现代的应用程序开发和运营方法将运营责任推给了应用程序开发人员,从而消除了低效的团队间沟通瓶颈。
总而言之,云原生技术、工具和工作方式使您能够在不扩大团队规模的情况下增加开发工作。当然,前提是您不会因为要求他们也执行平台操作而将开发团队极度缩小。
无需太哲学化,云原生意味着以应有的方式使用云,顺其自然,而不是反对它,由此得名。
当然还有其他好处,极大地改善了开发人员体验,易于雇用和留住想要使用最新最好的工具的优秀开发人员,因为处于技术发展的最前沿,所以对这些对科技人群来说都很棒,而且CNCF是一个有吸引力的社区。所有大公司都严重依赖云原生来保持竞争力,无论是在以经济高效的方式提供成功且可扩展的在线服务方面,还是在工程师的关注度方面。
云原生如何提供这些好处?
从本质上讲,云原生依赖于两个基础:标准化和自动化。
围绕软件部署方式的标准化确保了技术和工具在与底层技术无关的情况下同样有效。编程语言、底层操作系统、云基础设施……所有这些曾经对如何部署和操作软件有很大影响,但现在由于标准化而被抽象掉了。
自动化 一直是一个令人向往的特征,但我们今天看到的高度自动化是云原生体现的严格标准化的直接结果。定制化和脆弱的自动化解决方案已成为过去, 精心设计的云原生应用程序 可以通过遵循标准化接口实现高度自动化。
由于标准化和自动化,在生产环境中操作软件的任务已大大简化。事实上,我们已经看到完全自动化的软件发布上升到以前只有少数深度科技公司才可行和可用的水平。此类流程和工具支持已成为一种商品,可供各种规模的公司使用。
云原生的陷阱或最大的陷阱是什么?
好处听起来还行,但肯定有什么地方有问题吗?
是的。
云原生的所有好处都不是凭空出现的。仍然必须有人提供这些技术赖以生存的平台。因为虽然 Kubernetes 等平台技术提供了对开发人员友好的抽象,提供了有吸引力的云原生优势,但云原生平台本身必须进行管理。
要求应用程序开发人员管理您的 Kubernetes 平台是不合理的,因为技能要求完全不同。制作用户友好的应用程序或有效使用数据库以取悦最终用户的能力与解决操作系统深处的性能或内存泄漏问题的能力完全没有重叠。
获得云原生优势的更具成本效益的方法是将工作平台作为服务来使用。但请注意,云提供商的“责任共担模型”意味着大多数传统托管 Kubernetes 服务的范围有限。有了这些,您仍然可以管理平台和进行故障排除。考虑到 Kubernetes 实际上只是一个平台的基础,您的开发人员将花费时间处理未知数量的问题,他们本应用于更高效的工作,疯狂地在谷歌上搜索故障排除建议,以保持平台运行良好。
相比之下,完全托管的 Kubernetes 平台即服务 (KPaaS) 产品意味着您需要支付可预测的成本才能拥有一个完全可用且完全最新的 Kubernetes 平台。
这就像租一辆汽车,包括服务和保证,而不是自己建造并必须维护它。前者是可预测的,适合那些想要专注于拥有汽车的核心任务的人,只关注要去的地方。对于那些需要自己维护平台的人来说(相对来说,可以节约成本)。但这也意味着站在沟里,自己引擎冒出浓烟,看着别人开着出租汽车在高速公路上飞驰而过。
概括
采用云原生技术、工具和工作方式的公司带来了可观的好处。事实上,到 2022 年,主要的创新和敏捷公司已经在使用它们,因此如果不这样做,会使自己处于劣势地位。标准化和自动化都有助于降低风险和成本,并且正确配置的基于 Kubernetes 的平台可以使您的应用程序更加标准化和流程化。
问题是,自己操作这些平台意味着您的工程师团队有责任为您的应用程序提供一个安全、可靠且性能良好的环境。如果您的组织以交付软件服务为目标,那么收益可能会超过管理底层平台的额外运营和维护负担的成本。
获得收益的最具成本效益的方法是让经验丰富的专家团队管理平台和云基础设施,并提供一个真正有效的云原生 Kubernetes 平台服务。