自托管 Heroku 替代方案
Heroku要取消免费套餐了,作为一个免费的PaaS平台,它的免费套餐对#webdev(网页开发者)来说非常友好。作为一名开发者,我感到有点难过。😥
不过,不必惊慌,因为 Heroku 还有其他替代方案。
用于替代 Heroku 的自托管解决方案
卡普罗弗
CapRover 是一款极其易用的应用程序/数据库部署和 Web 服务器管理器,适用于 NodeJS、Python、PHP、ASP.NET、Ruby、MySQL、MongoDB、Postgres、WordPress(等等)应用程序!
这是一个基于 Docker Compose 的解决方案,所以基本上你可以用你喜欢的任何语言运行任何应用程序。
我把应用从 Heroku 迁移到了 Caprover,用了大概两年,一直没出过问题。它托管在AWS EC2 t3a.micro实例上,每年费用大概 60 美元。
否则,Digital Ocean 也可能是托管 Caprover 的一个不错的选择,这是一个关于如何通过单击创建 Digital Ocean Droplet的教程。
独角兽
Dokku:一个基于 Docker 的 PaaS 平台,可帮助您构建和管理应用程序的生命周期。
Dokku 与 Caprover 非常相似,实际上它的项目启动时间比 Caprover 早得多。我并没有在我的应用程序中使用它,原因是 Dokku 没有提供管理界面,而当时我确实需要一个 Web 管理界面。Dokku 的文档非常完善。
还有一个受 Dokku 启发的项目 => Piku /:这是你见过的最小的 PaaS 平台。Piku 允许你将 Git 推送部署到你自己的服务器。
好的,我们来讨论一下 K8s/ k3s。
尽管Kubernetes(简称K8s)作为一个用于自动化部署、扩展和管理容器化应用程序的开源系统,其复杂性不言而喻,但它如今越来越受欢迎。K8s并非旨在取代Heroku等PaaS平台。
这是另一种自托管解决方案,它肯定比简单的 PaaS 更复杂,但这种解决方案将彻底解决您的问题。
去年我将自己的应用程序从 Caprover 迁移到了 k8s,实际上我使用了Oracle ARM Ampere A1实例 + K3s 来托管一个免费的 k8s 集群。
比较
| 服务 | 赫罗库 | 卡普罗弗 | Dokku(Piku) | Oracle 免费套餐 + k3s |
|---|---|---|---|---|
| 自住 | 不 | 是的 | 是的 | 是的 |
| 推荐最低内存规格 | ~ | 1G | 1G | 1G |
| 成本(按上述规格) | 免费套餐(11月后停止供应) | 大约60美元 | 大约60美元 | $0(Oracle Always Free Tier套餐) |
| 用户界面 | 是的 | 是的 | 不 | 是/否(通过 Kubernetes 控制面板的 UI) |
| 设置简便(1 到 5 分,分数越高越好) | 5 | 4 | 4 | 2 |
| 文档(等级越高越好) | 5 | 4 | 5 | 4.1 |
| 维护成本(越低越好) | 0 | 1 | 1 | 2 |
总体而言,请将自托管解决方案与 Heroku 进行比较
自托管可能需要花费少量资金,但它可以帮助你的应用程序独立于(免费)特定平台(当平台更改其免费套餐政策时,无需再恐慌地迁移应用程序)。
虽然设置可能需要花费一些时间,但维护成本并不高,大多数维护工作只需要执行几个简单的 Docker 命令。因此,基本上只需一次性投入即可。
其他免费/预算型云资源
除了自托管解决方案外,还有其他免费的 PaaS/云服务。
- 更多免费 PaaS 服务请参见此列表。该列表包含一系列提供免费套餐的 SaaS、PaaS 和 IaaS 服务,对 DevOps 和基础设施开发人员来说很有价值。
- 超棒的自托管服务:一份可以托管在您自己的服务器上的免费软件网络服务和 Web 应用程序列表
- 预算有限的开发者必备:一系列提供优质免费套餐的服务,专为预算有限的开发者打造。
本文基于个人对 PaaS 平台和 K8s 的经验,因此对它们的评价可能带有主观性。
继续
AWS Elastic Beanstalk
2022年9月12日新增
AWS Elastic Beanstalk 是一款易于使用的服务,用于部署和扩展使用 Java、.NET、PHP、Node.js、Python、Ruby、Go 和 Docker 开发的 Web 应用程序和服务。
它是来自 AWS 的 PaaS 解决方案,从技术上讲,它不是自托管的,因为 AWS 会为您托管它。
Beanstalk 本身是免费的,但 AWS 会根据您使用的资源向您收费。例如,如果您运行一个容器应用程序,并将数据存储在AWS RDS中,那么您需要为运行该容器应用程序所使用的RDS和EC2实例付费。


