我们看到越来越多的人将他们的想法倾注到网页上。我们所指的这些人可能不熟悉网站设计和发布的技术细节,因此在建立他们的平台(网站)时可能会遇到一些问题。使用什么托管服务?如何设置DNS和SSL?最重要的是,如何部署web应用程序?今天在这里,我们将讨论和比较部署这类应用的不同平台,并找到最适合你的平台!
对于初学者来说,让我们看看你有哪些选择:
- 定期托管(Digital Ocean, AWS, GCP) + Jenkins
- GitHub动作/Bitbucket管道+ Heroku
- Travis-CI / Circle-CI
- 全自动云平台
1. 常规云托管+ Jenkins
Jenkins是CI/CD平台上最大的骑手之一。它是一个自动化的CI/CD软件,在主代理体系结构上工作。那么什么是主/代理呢?嗯,代理只是软件的一种花哨说法,它安装在一台机器上,用于协调[和绑定]不同的构建。詹金斯使用一个主机连接和协调所有可用的代理。那么,你可以用什么机器来完成这些任务呢?大多数情况下,包含docker的虚拟机(vm)是首选,因为这样做更容易,然而,docker不是强制性的。可以使用的其他一些工具是物理服务器,甚至是运行在Kubernetes上的临时容器。
优点:
- 它是高度可定制的。
- 它非常灵活,因为它有超过1.5K的插件。所以对于任何你想尝试的测试用例,可能有人已经为你做过了:D。
- 即使您是第一个运行特定测试用例的人,您也可以构建自己的插件和/或共享库=>一个友好的社区。
- 它支持更快的构建和缓存模块。因为它不强迫我们使用docker镜像,不像它的竞争对手,服务中的任何内容都可以缓存以备后用,因此它比许多竞争对手更快。
- 它并不局限于基于Linux的系统。我们也可以使用Windows系统。
缺点:
- 它是一个非托管服务。
- 您需要定期确保服务器正在运行、SSL已锁定、有安全补丁或具有internet访问权限。
- 您需要手动解决所有操作问题。例如,如果出现错误,则由您跟踪并修复它。
2. Bitbucket管道/ Github操作Heroku
Bitbucket的管道是另一个类似于Jenkins的平台,但更容易使用。Bitbucket管道的工作方式类似于Github的动作;使用Git版本控制系统。您可以根据所使用的平台进行选择。
管道是您不希望错过的一个特性。有了管道,大部分SDLC(软件开发生命周期)可以完全自动化。因此,比Jenkins更容易的替代方案(尽管功能有限)是位桶管道。
Bitbucket使用Docker镜像来运行构建。图像也可以在每个步骤中变化,从而更容易地分离SDLC的每个步骤。
优点:
- 当然,这比手动操作要容易,甚至比使用Jenkins(如果您关心的是简单性)。
缺点:
- 它比Jenkins慢,因为它使用Docker图像。
- 它不能跨管道共享产品。
- 管道工作的docker图像。因此,每次更新时都会得到一个新映像,因此除非缓存,否则不会从以前的管道保存任何数据。然而,即使缓存,数据也会在7天后丢失。这意味着没有从远程位置获取的任何文件都将丢失,这对于大型测试(具有大量输入或基线字段)效果不佳。
3. Travis-CI/ Circle-CI
Travis-CI是社区中著名的CI服务机构。嗯,很多原因。最主要的原因之一是它对开源项目是免费的,这意味着你只需要为私人项目付费。它的持续集成环境还提供了多个运行时,即节点。JS, PHP, Python版本,数据存储等等。因此,当托管在这个平台上时,可以轻松地完成针对多个运行时/数据存储的库测试,而无需承担本地安装它们的负担。
优点:
- Travis是一个易于设置的平台。向项目中添加一些基本的构建指令,提交代码……瞧!你的网站是实时的。
- 大量的服务和数据库,如MySQL, PostgreSQL, Elasticsearch, Redis, Riak, RabbitMQ, Memcached已经安装,并等待启用配置。
- Travis支持很多部署平台,如Heroku, Cloud Foundry, OpenShift, Cloud Control, Nedejitsu等。
- Travis CI目前是一个成熟的平台,大部分(如果不是全部的话)常见的抱怨都得到了改进。这包括支持颜色的文档和日志…
缺点:
- 尽管它对开源项目是免费的,但付费计划要付出沉重的代价——69美元/月是垫脚石。
- repos不能在Travis上直接修改[你可以,如果你付钱的话…,所以每次[甚至]需要做一个小的调整时都去到存储库中的文件是相当麻烦的。
- 建立建立矩阵的travis.yml文件相当困难。
- 对于免费计划,由于基础设施有限,构建队列有时会非常长。
4. 自动化的云平台
最后,对于一个完整而简单的自动化解决方案,我们可以选择许多自动化云平台中的一个。[其中,我个人更喜欢男招待,但这完全是主观的。基本上,大多数幕后的编码工作已经为您完成了,因此您可以直接从git存储库部署代码。
所有关于设置云服务器、web服务器和类似繁琐任务的担忧都不需要您操心。
在大多数情况下,你会得到免费的SSL和CDN的最新安全和许多其他津贴。由于比其他服务更便宜,也更容易使用,这些平台涵盖了大部分的使用。所以,除非你有一个专门的团队准备全力进行手工测试,或者想花钱购买其他自动化系统,比如Jenkins(它仍然有很多手工工作要做),否则最明智的选择是使用像Hostman这样的自动化云平台。
优点:
- 它很容易设置。
- 它是完全自动化的,所以菜单上没有多少手动操作。
- 所有的操作问题都将由Hostman等提供者处理。
- 设置一次之后,就不需要定期管理了。你可以完全专注于编写出色的代码。
- 它支持开箱即用的自动Git部署,因此您不需要配置。
- 没有供应商锁定。
缺点:
- 与Jenkins等其他平台相比,其功能可能有限。
- 到目前为止,现有的语言和框架还有些局限。例如,Hostman支持22个框架。但是像Jenkins这样的提供商支持100多个插件,如果需要的话,还可以构建更多的插件。
具体如何部署请参考原文:
https://dev.to/asaurav/4-ways-of-deploying-web-apps-in-2020-1a55