开发运营之痛 ()
只要开发人员一直在一个地方开发应用程序并在另一个地方部署它们, 就一直是一个问题。文章源自菜鸟学院–
您知道那种感觉——您开发了一个可以在本地计算机上完美运行的应用程序,并且很高兴将它推向世界。您将其部署到您的生产服务器并且……错误。文章源自菜鸟学院-
你不知道为什么,问题可能是一百万件事之一。这个问题代价高昂,令人沮丧,并破坏了世界各地的系统管理员和开发人员之间的友谊。文章源自菜鸟学院-
有一些技术试图解决这个问题。传统方法是使用虚拟机,但新的改进方法是使用 容器。文章源自菜鸟学院-
我将概述如何执行 Web 应用程序的 部署。我们将从了解什么是 (和不是)、什么是容器以及如何使用它们开始。文章源自菜鸟学院-什么是?
文章源自菜鸟学院-
首先,让我们定义一下我们在谈论什么。文章源自菜鸟学院-
是一种开源技术,可将您的应用程序打包到“容器”中。这些容器包含您所有的应用程序代码,以及它的所有库和依赖项。这允许您在任何运行 的机器上运行这个容器,并且它每次都运行完全相同。文章源自菜鸟学院-那么, Web 应用程序与虚拟机有何不同?
文章源自菜鸟学院-
这是对 应用程序的常见误解之一。虽然虚拟机看起来做的事情类似,但实际上却大不相同。文章源自菜鸟学院-
虚拟机以不同的方式解决了同样的问题。虚拟机是整个操作系统的虚拟实例——可能是 Linux 或 。如果您在 Linux 的虚拟实例上开发您的应用程序,则可以在运行相同 Linux 虚拟实例的任何地方运行该应用程序。文章源自菜鸟学院-
听起来不错吧?是的,这确实有效,并且已经成功使用多年。但是有一个问题——如果你想部署一个单独的网络应用程序,你需要运行整个虚拟操作系统。这是非常昂贵的,特别是如果你有很多应用程序要运行。文章源自菜鸟学院-
通过将应用程序放置在所有运行在同一操作系统上的虚拟容器中来解决这个问题。每个 容器都包含所有代码、库和依赖项,例如运行应用程序所需的配置文件。这为我们节省了大量存储空间、时间、处理能力和复杂性。容器与其他容器共享宿主机的内核。文章源自菜鸟学院-为什么要使用 Web 应用程序?
正如我在介绍中所说,许多公司都在使用 开发 Web 应用程序。 Web 应用程序是一个强大的基础,您可以从中直接从 Web 浏览器启动您的应用程序。文章源自菜鸟学院-
的主要卖点是:文章源自菜鸟学院- 让您可以在与其他技术相同数量的服务器上运行更多的独立应用程序。它使开发封装的、准备运行的应用程序变得轻而易举——在“容器”中交付所有内容,这些容器包含应用程序的所有库和依赖项。它使管理应用程序并将它们部署到实时服务器的整个过程变得更加轻松和安全。您可以编辑 应用程序,使用 命令将新的 镜像推送到存储库,然后立即在任何地方运行该应用程序。
将所有这些放在一起,您将拥有一个非常有吸引力的产品,可以让您的生活(以及您与系统管理员的关系)变得更加轻松。文章源自菜鸟学院-如何使用 容器执行应用程序的 部署?
文章源自菜鸟学院-
下面是使用 开发和部署 Web 应用程序的基本过程:文章源自菜鸟学院-在你想使用它的机器上安装 ;在 Hub 上设置注册表;启动 构建以创建您的 镜像;设置你的“”机器;部署您构建的 镜像或应用程序。在你的机器上安装
使得在任何地方运行应用程序变得容易,但那些地方需要运行 。根据您设置的环境类型,共有三种主要的 变体:文章源自菜鸟学院-企业版( EE); 社区版( CE); Cloud.
在 Mac、、Linux、AWS 和 Azure 上安装 很容易。在您将使用的所有机器上启动并运行它后,您就可以进行开发和部署了。文章源自菜鸟学院-
查看 安装手册,了解如何在本地计算机和服务器上安装它的信息。文章源自菜鸟学院-在 Hub 上设置
文章源自菜鸟学院-
为了轻松分发您的应用程序,您需要在某个地方共享它们。文章源自菜鸟学院-
Hub 就像 容器的 。您可以使用数以千计的应用程序和示例。要设置您自己的公共或私有存储库以开始部署您的应用程序,只需访问 Hub 网站。文章源自菜鸟学院-
您可以使用集线器将应用程序中的更改推送和拉取到不同的机器。还有许多工具可以自动执行此过程(稍后会详细介绍)。文章源自菜鸟学院-设置你的“”机器
下一步是让您的 环境准备好运行您的应用程序。您可以使用命令行和一些不同的工具来完成此操作。文章源自菜鸟学院-
这些虚拟机负责设置我们谈到的容器。您还可以做其他一些非常酷的事情,例如设置您的应用程序的多个实例以及使用负载均衡器自动将流量发送到云服务器上的不同版本。文章源自菜鸟学院-
在本地机器上设置与创建 云服务器不同。查看有关您环境的 命令的官方 教程。文章源自菜鸟学院-创建一个 镜像
容器是从 镜像创建的。要将您的应用程序分发到不同的机器,您需要创建一个 镜像以发送给它们。这是使用 完成的文章源自菜鸟学院-
通常大约 3-30 行长,包含创建 镜像所需的所有命令。有无数种设置 的方法,最好在设置之前了解 部署最佳实践。文章源自菜鸟学院-
这是文档中的一个简单 示例:
` /:
-get -y && apt-get -y
CMD/usr/games/ -a | 文章源自菜鸟学院-
查看文档以找出需要放入 的内容。文章源自菜鸟学院-
准备好 后,您可以使用构建命令行工具来创建映像。以下是您的控制台的示例:文章源自菜鸟学院-
文章源自菜鸟学院-应用程序的 部署
现在您已经让您的 机器运行起来,设置了 Hub 存储库并构建了 Image,您已准备好在您的机器上部署应用程序。文章源自菜鸟学院-
首先,将您的应用程序推送到您的存储库。您会发现 login 和 push 命令在这里很有用。在此处查看如何完成的示例。文章源自菜鸟学院-
接下来,将您的应用程序从您的存储库中拉到您的其他机器上。您可以使用 run 命令完成所有这些操作。它会自动查找、拉取并运行您的新应用程序。文章源自菜鸟学院-
就是这样!这些是使用 轻松将应用程序部署到多台机器的步骤。文章源自菜鸟学院-自动化流程
文章源自菜鸟学院-
显然,您不希望每次更改应用程序时都运行所有这些 命令。幸运的是,有许多工具可用于简化您的工作流程并自动化整个 应用程序部署过程。文章源自菜鸟学院-
一些例子是:文章源自菜鸟学院-
开始使用 ,您将了解要自动化哪些部分。您拥有的服务器数量和应用程序类型将决定您的 部署策略。文章源自菜鸟学院-总结 部署
是目前的热门技术,这是有充分理由的。今天我们已经瞥见了如何使用 部署网站或应用程序,让生活更轻松,节省金钱和时间,甚至可能挽救系统管理员和开发人员之间的一些友谊。文章源自菜鸟学院-