使用这7个软件构建您自己的小型PaaS
让我们来打造一个内部 paas。
想象一下,你要构建一个小型的 heroku?
兴奋吗?
我也是!
平台即服务(paas)是一种云计算提供的服务,服务提供商为应用程序开发和部署提供了一个平台。通常,开发人员利用paas的功能,帮助他们专注于构建应用程序,而不是浪费时间去创建和运行应用程序的平台。
显然,像aws、azure、google cloud等大型玩家拥有令人惊叹的paas解决方案。但并不总是需要与他们合作。如果你拥有一个小型企业,许多小型paas解决方案可以在一台或几台服务器上轻松运行较小的应用程序。这样做可以完成工作并为你节省很多成本。更重要的是,它将节省时间,时间就是金钱!
以下是创建自己的平台来运行较小应用程序的最流行的paas软件列表。
dokku
听起来像heroku?
你猜对了!
dokku是一个开源的轻量级软件。你需要有1gb的内存,适用于centos、ubuntu和debian。
dokku是一个由docker支持的迷你heroku,用bash编写。你可以使用git推送你的应用程序;dokku会构建它并在隔离的容器中运行你的应用程序。
dokku的特点:
- 使用git进行简便部署
- 为多种语言提供插件
- 通过增强dokku来添加和定制你想要的功能。
- 易于使用的命令用于应用程序管理、用户管理、日志记录等
- 提供用户定义的检查选项,以处理零停机部署
你可以在你的服务器上安装dokku,或者在kamatera、digitalocean或azure上一键启动。
virtuozzo
virtuozzo是一个提供多云devops paas解决方案的平台,用于更快的开发、降低it基础设施成本、提高正常运行时间和增强安全性。它提供了一个轻量级版本,其中包含大多数与商业和企业版本相似的功能,但有一些限制。但对于小型应用程序非常有效,可以节省很多成本。
virtuozzo最适合电子商务网站、游戏项目、金融、教育、物流供应商等。
virtuozzo的特点:
- 为开发人员提供带有应用程序部署选项的仪表板
- 容器和kubernetes支持
- 自动垂直和水平扩展
- 数据库集群
- 防火墙和双因素身份验证
- 内置的监控和故障排除工具
- 用于容器管理的api、cli和ssh访问
virtuozzo受到100多个paas提供商的信任。
flynn
flynn是一个开源的平台即服务,用于运行linux上的任何东西。它为开发和运维团队提供了一个轻松开发、部署和管理软件的平台。你可以在本地轻松设置flynn,也可以使用几个命令在专用硬件或云提供商上安装它。
flynn的特点:
- 具有高可用性的内置mysql、mongodb和postgresql数据库
- 内置服务发现以连接所有微服务
- 根据需要进行扩展,节省云费用
- 专业经验丰富的团队为您运行flynn集群
hephy 工作流
hephy工作流使在kubernetes集群上部署和管理应用程序变得容易。它是deis workflow的一个分支,它于2017年开始。2018年,deis工作流团队停止对其进行开发,并转向微软azure项目。
hephy工作流中有小型独立的服务,它们组合在一起创建了一个分布式paas。这些组件作为服务部署在kubernetes集群上。工作流有两类用户:普通用户和管理员。
普通用户具有开发和部署应用程序的功能。管理员可以做普通用户可以做的任何事情,此外,他/她将拥有对应用程序的所有者访问权限。
hephy工作流功能:
- 映像构建器,用于从dockerfiles和构建包编译代码
- 应用程序的http/https边缘路由
- 应用程序发布和回滚
- 用于cli和集成的rest api
- 用于保护应用程序的身份验证和授权
caprover
caprover是一个非常易于学习和完全自动化的应用程序平台。如果您熟悉heroku,您可以将caprover视为功能强大且开源的heroku。
您可以使用caprover进行许多用途,例如托管node.js、 php、java、wordpress、mongodb、mysql、nginx等。
您可以通过在digitalocean上进行1点击应用程序设置来开始使用caprover。
caprover功能:
- 用于脚本和自动化的命令行界面
- web图形界面,供用户可视化其应用程序的一切活动
- 借助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的平台即服务(paas)。piku受到dokku的启发,使用git push将应用程序部署到您自己的服务器上。它适用于诸如linux、windows子系统、freebsd和cygwin之类的posix环境。
piku的特点包括:
- 支持类似于heroku的工作流程
- 采用功能性编码风格简化用户体验
- 支持使用go、python、closure(java)和node.js编写的应用程序
- 在可能的情况下向后兼容
- 支持12因素应用
结论
你还在等什么?快去尝试上述软件来构建你的paas吧。它们大多数都是开源的,所以你可以获得一个云服务器并开始尝试,看看哪种更适合你。
接下来,学习docker。