构建属于您自己的内部PaaS平台
您是否曾梦想过拥有一个迷你的Heroku?
是否对此感到兴奋?
我也是!
平台即服务 (PaaS) 是一种云服务模式,它为应用程序的开发和部署提供了一个平台。 通常,开发者们利用PaaS的强大功能,专注于构建应用程序本身,而不是把时间浪费在构建和维护运行应用程序的平台之上。
当然,像AWS、Azure和谷歌云这样的大型云服务商都提供了出色的PaaS解决方案。 但我们并非总是需要依赖他们。 对于小型企业来说,有很多微型PaaS解决方案可以在一台或几台服务器上轻松运行小型应用程序。 这不仅能满足需求,还能大幅降低成本,更重要的是,节省时间,也就是金钱!
以下是一些最受欢迎的PaaS软件,您可以利用它们来创建自己的平台,从而运行较小的应用程序。
Dokku
听起来是不是很像Heroku?
您猜对了!
Dokku 是一款轻量级的开源PaaS软件。 它只需要1GB的内存,并且可以在CentOS、Ubuntu和Debian系统上运行。
Dokku是一个基于Docker的迷你Heroku,它是用bash脚本编写的。 您可以通过Git推送您的应用程序; Dokku会自动构建并在隔离的容器中运行。
Dokku 的特点:
- 通过Git轻松部署
- 支持多种语言的插件
- 通过扩展Dokku,可以添加和自定义您想要的功能。
- 拥有易于使用的命令,用于应用程序管理、用户管理、日志记录等
- 提供用户自定义的检查选项,以实现零停机部署
您可以在自己的服务器上安装Dokku,或通过一键部署在DigitalOcean或 Azure上快速启动。
Jelastic 精简版
Jelastic 提供多云DevOps PaaS解决方案,旨在加速开发流程,降低IT基础设施成本,延长正常运行时间并增强安全性。 它提供了一个精简版,该版本具有与商业版和企业版相似的大部分功能,但有一些限制。 不过,对于小型应用程序来说,它非常有效,可以节省大量成本。
这个轻量级版本非常适合预算有限的团队。 它最适合小型企业,如初创公司、小型电子商务网站、游戏项目和小型就业等。
Jelastic 精简版的特点:
- 拥有应用部署选项的开发者仪表板
- 支持容器和Kubernetes
- 自动垂直和水平扩展
- 最终用户的防火墙和双重身份验证
- 内置监控和故障排除工具
- 用于容器管理的API、CLI和SSH访问
Jelastic Lite Edition 仅在 Google Cloud 和 DigitalOcean 上可用。
Flynn
Flynn 是一个开源平台即服务,旨在运行任何可以在Linux上运行的东西。 它为开发和运维团队提供了一个平台,可以轻松地开发、部署和管理他们的软件。 您可以在本地轻松设置Flynn,或只需几个命令将其安装在专用硬件或云提供商上。
Flynn 的特点:
- 内置MySQL、MongoDB和PostgreSQL数据库,具有高可用性
- 内置服务发现功能,连接所有微服务
- 仅根据实际需要进行扩展,从而节省云账单成本。
- 有专业且经验丰富的团队为您运行Flynn集群
Hephy Workflow
Hephy Workflow 使在Kubernetes集群上部署和管理应用程序变得更加简单。 它是Deis Workflow的一个分支,后者于2017年启动。2018年,Deis Workflow团队停止了该项目并转而参与Microsoft Azure项目。
Hephy Workflow包含一些小型且独立的服务,这些服务组合在一起创建了一个分布式的PaaS。 这些组件以服务的形式部署在Kubernetes集群上。 工作流有两类用户:普通用户和管理员。
普通用户具备开发和部署应用程序的功能。 管理员可以执行普通用户的所有操作,并拥有对应用程序的所有者访问权限。
Hephy Workflow 的特点:
- 用于从dockerfiles和buildpacks编译代码的镜像构建器
- 应用程序的HTTP/HTTPS边缘路由
- 应用程序的发布和回滚
- 用于CLI和集成的REST API
- 用于保护应用程序的身份验证和授权
CapRover
CapRover 是一个非常容易上手且完全自动化的应用程序平台。 如果您熟悉Heroku,那么可以将CapRover视为一个功能更加强大的开源Heroku。
您可以将CapRover用于多种用途,例如托管Node.js、PHP、Java、WordPress、MongoDB、MySQL和Nginx等应用程序。
您可以通过一键式应用设置在DigitalOcean上开始使用CapRover。
CapRover 的特点:
- 用于脚本和自动化的命令行界面
- 提供Web GUI,方便用户可视化应用程序的状态
- 借助Nginx进行负载均衡
- 使用Let’s Encrypt提供的免费SSL证书
- 使用Docker Swarm进行容器化和集群化
Tsuru
Tsuru 是一个轻量级、易于使用且开源的平台即服务。 假设您有一个Python应用程序,它同时需要一个MongoDB服务器实例; Tsuru可以将Python应用程序和数据库放置在一起并同时运行它们。 它会在docker容器中运行您的应用程序。
作为平台,Tsuru提供了多种选择; 如果您对现有的可用平台不满意,您还可以在Tsuru上创建自己的平台。
Tsuru 的特点:
- 可以轻松动态地扩展您的应用程序
- 可以在分布式架构中运行应用程序,以充分利用资源
- 它可以运行用任何语言编写的应用程序; 它超越了 12因素应用程序 的限制。
- 只需简单的git push即可快速部署您的应用程序。
- 可以轻松地与AWS EC2、Apache Cloudstack等IaaS集成
Piku
Piku 是一个最小的Heroku/CloudFoundry类平台即服务。 Piku受到了Dokku的启发,并使用git push将应用程序部署到您自己的服务器。 它适用于POSIX环境,例如Linux、Windows Linux子系统、FreeBSD和Cygwin。
Piku 的特点:
- 支持类似于Heroku的工作流程
- 使用函数式编程风格,简化用户体验
- 支持使用Go、Python、Closure (Java) 和Node.js编写的应用程序
- 尽可能向后兼容
- 支持12因素应用程序
总结
还在犹豫什么? 快来尝试上述这些软件来构建您的PaaS平台吧。 它们中的大多数都是开源的,所以您可以购买一个云服务器,然后开始尝试,看看哪个更适合您。
接下来,请学习 Docker 。