云原生是当今技术中最流行的术语之一,而且它只会越来越流行。事实上,根据谷歌趋势,“云原生”一词在2019年10月刚刚达到最高关注度。部分流行可以归因于营销热议,但云原生令人兴奋的是草根支持。如此多的开发人员和组织正在接受云原生的承诺并帮助开发生态系统。因此,今天有各种各样的工具构成了云原生景观。在他们的交互式地图中,云原生计算基金会(CNCF)将这些工具分为几类。
在这里,我们将仔细研究其中一个类别:云原生应用程序定义和映像构建。这些工具提供“黄金图像”和权威的应用程序定义,以简化定义和扩展云原生应用程序的过程。为了满足云原生空间的需求,这些工具需要轻量级、可扩展且敏捷。到本文结束时,您将了解什么是云原生应用程序定义和映像构建、它们的优势以及该类别中一些最流行工具的详细信息。
什么是云原生应用定义和镜像构建?
云原生应用定义和镜像构建是自动化应用交付的重要部分。图像和应用程序定义为您提供了部署和扩展云原生微服务的来源。镜像是为容器和虚拟设备部署提供权威来源的二进制文件。应用程序定义定义了应用程序所需的所有资源。因此,开发人员可以从以编程方式进行的可重复部署中获益。这些图像和应用程序定义的描述可能有点抽象,所以让我们分别仔细看看。
正如Puppet在其文档中所描述的那样,应用程序定义有两部分:应用程序组件和服务资源。应用程序组件是在您的云原生应用程序中启用特定功能的代码块。如果您正在创建LAMP/LEMP堆栈,您可以为数据库、Web服务器、CMS(内容管理系统)和负载平衡器创建离散组件。
另一方面,服务资源抽象出模块依赖性并支持应用程序内节点之间的数据传输。例如,如果您创建云原生LAMP/LEMP应用程序,服务资源使您的数据库和应用程序能够进行通信。应用程序定义是一种以编程方式定义这两个部分之间的数据流和依赖关系的方法。因此,它们允许您抽象出复杂性并轻松扩展配置。
CNCF的CloudNativeLandscape包括用于构建机器映像和容器映像的工具。如果您曾经使用过虚拟设备,您应该熟悉机器映像的概念。与应用程序定义一样,机器映像支持部署预配置资源。他们这样做的方式不同。机器映像将操作系统、程序包和服务捆绑在一起作为一个映像。OVA、Amazon机器映像和VMDK是您可能熟悉的机器映像的常见示例。容器镜像类似,但不需要操作系统。打个比方:容器镜像之于容器,就像OVA之于虚拟设备。例如,当您使用dockerrun命令时,您是从运行在底层操作系统内核之上的Docker映像创建一个容器。
云原生应用定义和镜像构建的好处
您现在应该了解什么是云原生应用程序定义和映像构建。现在,让我们探讨一下为什么它是CloudNativeLandscape的重要组成部分。在本节中,我们将探讨云原生应用程序定义和映像构建工具的优势。
使用云原生应用程序,您需要快速启动微服务。您还必须能够迭代和重复地执行此操作。一般来说,微服务可以帮助您实现这些目标。您需要明确定义的权威参考,以可靠的方式以编程方式部署微服务。云原生应用程序定义和镜像构建工具可帮助您解决该问题。使用正确的工具,您可以定义多容器应用程序并大规模部署它。
快速实例化图像的能力大大改进了测试和开发工作流程。应用程序定义和映像构建类别中的工具有助于确保向测试人员和其他开发人员部署相同的应用程序。因此,整体CI/CD管道得到改善。例如,您可以显着减少创建隔离开发环境所需的时间。同样,像DockerCompose这样的工具可以帮助您快速启动图像、测试它并在需要时终止它。

云原生应用程序定义和图像构建工具为您的图像和应用程序定义创建“单一真实来源”。因此,您可以消除与大规模管理微服务相关的大部分复杂性。版本控制、更新和回滚变得更易于管理。
为云原生构建的图像通常可以在多个公共和私有云平台以及裸机上实例化。这种独立于平台的映像构建方法提高了灵活性并减少了供应商锁定。它还允许您快速为客户创建演示,并在您最初没有考虑的环境中使用您的图像。
流行的云原生应用定义和镜像构建服务
我们无法推荐一种放之四海而皆准的云原生应用程序定义和映像构建工具。您需要了解您的环境需求并为工作选择合适的工具。CNCF的交互式云原生景观页面是您研究的一个很好的起点。要整理的内容可能很多。为了帮助您进行搜索,我们仔细研究了列表中一些最受欢迎的项目。
Helm已经成为云原生界的热门项目。它得到了开发者社区的支持,包括来自Microsoft、Google和SamsungSDS等公司的开发者。此外,Helm由CNCF自己维护。Helm可帮助您简化定义、安装和升级Kubernetes的过程。Charts是精选的应用程序定义,是使Helm如此强大的重要组成部分。Charts允许您对复杂的云原生应用程序拥有单一的授权点。他们还提供大规模可重复的应用程序安装。如果您想深入了解图表主题,请查看Helm文档中的此页面。
DockerCompose是云原生应用程序定义和镜像构建类别中最受欢迎的工具之一。借助Compose,您可以使用YAML文件配置多容器应用程序。然后,您只需执行docker-composeup命令即可启动并运行您的应用程序。传统上,Compose在测试自动化和开发环境中很有用。它的功能集正在发展,以至于单主机部署已成为其常见用例列表的一部分。
ChefHabitat是一个独立于平台的应用程序生命周期管理工具,构建时考虑到了云原生。借助Habitat,您的应用程序以一种允许您轻松部署、更新和扩展它们的方式进行编码。
Habitat将应用程序及其依赖项捆绑到轻量级和便携式单元中。从那里,您可以跨各种平台部署这些单元,从容器到裸机服务器。如果您正在寻找一种云原生应用程序定义和映像构建工具来简化遗留应用程序向云的迁移,Habitat是一个不错的选择。
Packer是云原生镜像构建领域中最令人兴奋的工具之一。Packer使用单一基本配置自动执行创建相同机器映像的过程。然后,您可以将这些机器映像部署到多个平台。因此,持续交付、维护一致的开发/QA/staging/prod环境以及创建虚拟设备是Packer的示例用例。
当然,这些听起来都不太具有开创性。虚拟设备已经存在了一段时间。是什么让Packer与众不同?速度和便携性。当然,您可以使用OVA创建虚拟设备。使用Packer,过去需要数小时的配置过程可以减少到几秒钟。同样,传统虚拟设备的可移植性有限。使用Packer,您可以在从VirtualBox到AWS再到OpenStack的任何地方进行部署。
Skaffold是来自Google的开源CLI工具。前提很简单:您处理代码,Skaffold会自动执行构建、推送和部署过程。Skaffold监控您的源代码并在发生更改时启动工作流。当然,您定义什么是“可同步的”以及它的部署位置。该项目仍处于测试阶段,但前景广阔。Skaffold可以让您更多地关注开发,而不是构建和部署过程。
我们希望您喜欢我们深入探讨CNCF的云原生景观的云原生应用程序定义和图像构建类别。该类别涵盖范围广泛的工具和功能,但您不需要列出的所有工具。重要的部分是了解哪些工具和实践对您的用例有益。
本文来源:国外服务器--云原生应用定义和镜像构建(云原生应用平台)
本文地址:https://www.idcbaba.com/guowai/5042.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1919100645@qq.com 举报,一经查实,本站将立刻删除。



