关于云原生开发的7个误解

JFrog支持
2023-01-22 11:06

是什么原生云发展吗?有些人认为云原生开发只是一个托管在云端的开发过程,或者是运行在云端的应用程序的开发操作,他们可能不太理解云原生开发的真正含义。

实际上,人们很容易对云原生开发的工作方式产生一些误解。下面,我们将介绍关于云原生应用程序及其背后的开发过程的常见误解。

1 .云原生开发意味着在云中开发应用程序

对于初学者来说,使用基于云的开发工具——比如云IDE,或者托管应用程序发布管道,比如Azure管道AWS豆茎-并不一定意味着你在做云原生开发。

如果愿意,当然可以使用基于云的开发工具进行云原生开发。但是您也可以使用传统的本地开发工具集。云原生开发并不意味着特定类型的开发工具或流程。

#2:云原生开发意味着开发在云中运行的应用程序

同样,仅仅开发将部署到云中的应用程序并不意味着您正在进行云原生开发。

实际上,人们对云原生技术最大的误解之一就是认为云原生应用必须在云中运行。云原生实际上意味着你的应用从架构的角度来看是可扩展的、分布式的和(通常)模块化的。虽然托管在云环境中的应用程序通常具有这些特征,但并非所有应用程序都具有这些特征。例如,您可以在EC2实例中部署一个不可伸缩的整体应用程序,这意味着您将在云中运行应用程序,但它不是云原生的。

同样,您可以使用Kubernetes这样的平台在本地部署云原生应用程序,该平台允许您在任何地方操作分布式的、可扩展的、基于微服务的应用程序——无论是在您自己的数据中心还是在云中。

#3:云原生开发需要容器

说到Kubernetes,以及容器(Kubernetes托管的资源类型),认为云原生开发必须关注容器是错误的。的确,容器是一种云原生世界的核心技术.很多云原生应用程序都运行在容器中,这也是事实。

然而,容器并没有垄断云原生应用程序。您还可以使用无服务器功能开发和部署云原生应用程序,unikernels,甚至是直接在主机操作系统上运行的传统应用程序。只要您的应用程序是可伸缩和分布式的,它就是云原生的。

4 .微服务应用是云原生应用

云原生应用使用微服务架构。微服务将应用程序功能分解为离散的单元和代码库,使得高效部署应用程序变得容易,因为您可以独立地部署每个微服务。此外,由于微服务是独立运行的,它们增加了容错能力;一个微服务的失败不会拖垮整个应用。

也就是说,仅仅因为你正在使用微服务,并不一定意味着你已经开发了一个云原生应用程序。例如,你可以创建难以扩展的微服务,或者都需要在同一主机上运行。在这些情况下,您将无法操作云原生开发的核心可伸缩性和分布原则。

#5:云原生开发更快

在大多数情况下,云原生应用程序是使用DevOps CI/CD管道,可以快速开发和交付应用程序。然而,并不能保证迁移到云原生开发策略将使您的开发过程更快。相反,如果你的开发管道没有得到很好的管理,它会造成复杂性,导致发布速度变慢。

这里的重点是,虽然云原生开发应该是快速的,但确保它确实是需要努力的。

#6:云原生开发不太安全

有一个长期存在的神话云在本质上不如本地基础设施安全。可以很容易地认为,云原生开发也不太安全。

这两种说法都不对。正如您可以构建非常安全的云环境一样,您也可以创建非常安全的云本地开发操作。要做到这一点,您需要了解云原生代码的位置、谁访问和管理它、您在软件交付管道中生成了哪些构件,以及如何保证所有这些构件的安全。

#7:开发可以立即转向云原生

人们可能会认为云原生开发是实现后调用完成的东西。然而,事实上,更有意义的是将云原生开发视为一个旅程,而不是终点。在云原生开发过程中总是有改进的空间;例如,它们可以变得更高效、更快、更安全。

因此,即使您已经在进行云原生开发,也不要认为它是您已经克服的挑战,可以跳过它。专注于寻找方法来加倍利用云原生开发的好处。

那么,什么是云原生开发?

既然我们已经讨论了云原生开发不是什么,我们可以解释它实际上是什么。

云原生开发没有官方定义。但是一般来说,您可以将其定义为任何专注于构建可伸缩的、分布式的、有弹性的应用程序的开发实践。正如我们所注意到的,构建这样的应用程序并没有“唯一正确的方法”。部署云原生应用程序也没有特定的方法。由您决定如何创建云原生开发策略,并在实现该策略后找到持续改进该策略的方法。