2020 年部署 Web 应用的 4 种方法
应用程序部署包括将应用程序或更新提供给目标用户所需的步骤、流程和活动。应用程序的部署方式至关重要,因为它会影响产品响应变更的速度以及这些变更的质量。如今,大多数软件开发人员会结合使用手动、自动化和基于云的流程来部署更新、补丁和新应用程序,尽管手动应用程序部署正在逐步淘汰。
在本文中,我将探讨四种不同的应用程序部署方式。我将考虑的方法是目前最常见、最有效的部署技术。它们包括:
- Circle CI 和 Travis CI
- 常规云托管 + Jenkins
- Bitbucket 管道
- 自动化云平台
CircleCI 和 Travis CI
持续集成 (CI) 是一种基于频繁将代码集成到共享存储库的软件开发实践。持续集成实践可以帮助开发人员更早、更轻松地识别应用程序开发过程中可能出现的问题。通过定期集成,开发人员可以减少查找错误的时间,从而将更多时间用于开发关键功能。
Circle CI和Travis CI是目前最流行的两个 CI 平台,各有优缺点。Circle CI 的主要功能如下:
- 它是基于云的,因此不需要管理。
- 它有一个免费计划,甚至适用于商业账户。
- 这是一个完全开箱即用的解决方案,只需最少的配置/调整。
- 您可以触发 SSH 模式来访问容器并解决可能出现的问题。
- Circle CI 上的缓存需要安装,最大限度地减少不必要的依赖,从而增加应用程序运行时间。
- Circle CI 与 Python、Node.JS、Ruby、Java、Ubuntu、Github、Bitbucket、AWS、Docker、Azure、Slack 和其他一些应用程序兼容。
Circle CI 的优势
- 快速启动。
- 快速设置与 GitHub 的集成。
- 轻量级且易于阅读的 YAML 配置。
- 因此,基于云的不需要专用服务器。
- 具有清晰的工作流程图,并能够重新运行特定步骤。
Circle CI 的缺点
- 每位用户的成本非常高。
- UX 不是很直观。
- 与詹金斯不同,定制是有限的。
- 它的文档不如竞争应用程序。
- 需要花一点时间才能使 git 子模块正常工作。
Circle CI 和 Travis CI 都是基于云的应用程序,具有 YAML 文件配置,但与 Circle CI 不同的是,Travis CI 开箱即用地支持更多语言。
常规云托管 + Jenkins
Jenkins是一款功能强大的应用程序,无论您使用哪种平台,它都能实现项目的持续集成和交付。通过使用 Jenkins,软件公司可以加速应用程序的部署,因为 Jenkins 可以快速构建和测试。Jenkins 支持应用程序的完整开发生命周期,从构建、测试、文档到部署。
Jenkins 堆栈可以通过 Google Cloud Platform、Amazon Web Services 或 Azure 进行预配置,以便在云端使用。Amazon Web Services 或 Azure 上提供单层模板,而 Azure 主从拓扑则提供多层模板。
Jenkins 的优势
- Jenkins 的更新中心提供数百个插件,几乎可以与持续集成和交付工具链中的所有工具集成。
- Jenkins 是免费的。
- Jenkins 是一个基于 Java 的独立程序,可以完全控制系统。
- 允许在各种条件下进行构建。
Jenkins 的缺点
- 需要专用服务器,这意味着额外的费用。
- 需要时间进行配置/定制。
- 与现代 UI 趋势相比,它的界面已经过时了。
- Jenkins 的安装和配置很困难。
- 由于微小的设置变化,其持续集成经常中断。
自动化云平台
现代软件团队越来越多地采用云来部署应用程序,但在云平台上部署与在您自己的数据中心上部署有很大不同。
市面上有多个平台提供基于云的应用程序部署。但是,如果您需要一个能够轻松部署和运维几乎任何云平台上基于微服务架构的应用程序的平台,那么Hostman是您的最佳选择。
Hostman 可在 AWS、GCP 和 Azure 上运行,只需单击几下即可启动应用程序,因为所需的一切都已默认完成。Hostman 的部署自动化功能可帮助用户在云端实现持续交付。
其特点包括:
- 支持 22 个框架,这意味着应用程序的运行速度与部署速度一样快。
- 连接到您的 Github、Gitlab 或 Bitbucket 存储库并提取代码。
- 安装所有依赖项,构建代码,并通过 Slack 或电子邮件通知您。
- 监控您的 Git 存储库上的活动并在您推送代码时更新服务。
- 没有供应商锁定,这意味着您可以轻松地从 Hostman 切换到其他提供商。
自动化云平台的优势
- 他们支持 CI/CD。
- 提供免费套餐和付费版本,起价低至每月 6.5 美元。
- 它们缩短了开发周期并减少了错误。
- 可以以安全的方式轻松重复部署。
自动化云平台的缺点
- 基于云的部署可能会让人感觉失去控制。
Bitbucket 管道
Bitbucket Pipelines是 Bitbucket 内置的集成 CI/CD 服务。它允许您根据代码库中的配置文件自动构建、测试甚至部署代码。Bitbucket Pipelines 允许用户在其代码库中创建一个名为 bitbucket-pipelines.yml 的配置文件,并在其中指定要触发管道以运行构建和部署的分支。
Bitbucket Pipelines 的优势
- Bitbucket 允许创建针对每个存储库需求的合并规则。
- 它拥有强大的团队和项目管理工具。
- 为小型和企业级公司提供优惠价格(包括免费套餐)。
- 允许持续集成 - 意味着更多人可以从事同一个项目。
- 可以与JIRA集成。
- Bitbucket 管道使扩展更容易,并且在新的 docker 镜像上执行提交。
Bitbucket Pipelines 的缺点
- 您无法可靠地存储管道的数据,因为除非缓存,否则数据很容易丢失。
- 与竞争部署应用程序相比,每个项目的定价要高一些。
- 为项目和存储库设置特定权限并不像其他可用解决方案那样直观。
结论
上述应用程序部署技术各有优缺点和学习曲线。像Hostman和其他行业领导者这样的自动化云平台提供了许多一站式优势。
然而,其他托管技术提供了一系列有用的功能,并与整个行业充分验证的Jenkins集成。
这篇文章旨在分析您可以采用的部署技术的某些方面,虽然自动化云部署平台似乎是可行的方法,但您应该做更多的研究来决定最适合您和您的企业的方法。
文章来源:https://dev.to/alex_boykov/4-ways-to-deploy-web-apps-in-2020-4ch3