使用 docker-swarm 的小型网站生产托管
Production hosting for small scale website with docker-swarm
我们有一个旧的 PHP 网站,我们用 elixir 重写了它。上一页以 "old fashioned" 方式托管,代码部署到通过 phpmyadmin 管理的 FTP、sql。
我在本地使用 docker-compose
到 运行 数据库。
我的计划是仅使用容器在 DigitalOcean 上托管新项目。我最近试用了 docker-machine
并且可以像使用本地计算机一样使用 DO VM。我还阅读了有关 docker-swarm
的内容,但它适用于具有多个容器的多个 VM 用于同一服务。
我最初的想法是只创建 1 个 docker-swarm
管理器并通过 docker-machine
连接到它并执行 docker-compose
命令。
目标是拥有一个可以自动化的解决方案,并且可能有 1 或 2 个备份容器。但我会避免使用多个虚拟机,因为该站点每天只有几百个访问者。
这是可行的解决方案还是有更简单的方法?
一些快速指南:
- 即使只有一台服务器,我也建议您在获得新功能时启用 Swarm,它默认设计为保留一个容器 运行ning,并使 updating/replacing 该容器的过程更容易(可能实现零停机)。
- 如果你在 DO 服务器上使用 Swarm,你可以使用
docker stack deploy
命令,你会继续在本地使用 docker-compose
,他们可以共享 same/similar 组合文件。 docker-compose命令只针对本地test/dev,不理解Swarm,但是两者的文件格式是一样的
- 没有理由不使用两台甚至三台服务器。三位经理将使它成为 HA。如果您需要降低成本,您可以使用 5 美元的服务器(假设站点 运行s 在 1GB 内存中)。
- 请记住,拥有多台服务器不仅仅与容量有关,还与可用性和容错能力有关。 Swarm 的伟大之处在于它旨在 运行 3 个服务器就像一个一样简单。命令与单个虚拟机相同。
- 我不会使用 docker-machine,而是尝试通过 store.docker.com 的说明为您的 Linux 发行版安装,因为您能够更好地控制 Docker版本呀。对于生产,您希望坚持使用稳定的季度版本(最新版本是 17.12)。
如果您想避免手动配置但仍能获得所需的高可用性和成本效益,请尝试 运行 Docker Jelastic 的 Swarm 模板 pre-packaged:
- 它具有 built-in 自动聚类和缩放
- 安装是自动执行的,您将通过直观的方式获得对集群的完全访问权限UI
- 容器 运行 直接在裸机上运行,因此无需为每个服务保留完整的虚拟机(并且您可以选择要 运行 您的项目所在的数据中心)
- 支付是根据实际内存消耗完成的,CPU
- 容器自动分布在不同的硬件服务器上,提高了高可用性
关于包和安装步骤的详细信息在文章“Docker Swarm Auto-Clustering and Scaling with PaaS Power Armor”中。
我们有一个旧的 PHP 网站,我们用 elixir 重写了它。上一页以 "old fashioned" 方式托管,代码部署到通过 phpmyadmin 管理的 FTP、sql。
我在本地使用 docker-compose
到 运行 数据库。
我的计划是仅使用容器在 DigitalOcean 上托管新项目。我最近试用了 docker-machine
并且可以像使用本地计算机一样使用 DO VM。我还阅读了有关 docker-swarm
的内容,但它适用于具有多个容器的多个 VM 用于同一服务。
我最初的想法是只创建 1 个 docker-swarm
管理器并通过 docker-machine
连接到它并执行 docker-compose
命令。
目标是拥有一个可以自动化的解决方案,并且可能有 1 或 2 个备份容器。但我会避免使用多个虚拟机,因为该站点每天只有几百个访问者。
这是可行的解决方案还是有更简单的方法?
一些快速指南:
- 即使只有一台服务器,我也建议您在获得新功能时启用 Swarm,它默认设计为保留一个容器 运行ning,并使 updating/replacing 该容器的过程更容易(可能实现零停机)。
- 如果你在 DO 服务器上使用 Swarm,你可以使用
docker stack deploy
命令,你会继续在本地使用docker-compose
,他们可以共享 same/similar 组合文件。 docker-compose命令只针对本地test/dev,不理解Swarm,但是两者的文件格式是一样的 - 没有理由不使用两台甚至三台服务器。三位经理将使它成为 HA。如果您需要降低成本,您可以使用 5 美元的服务器(假设站点 运行s 在 1GB 内存中)。
- 请记住,拥有多台服务器不仅仅与容量有关,还与可用性和容错能力有关。 Swarm 的伟大之处在于它旨在 运行 3 个服务器就像一个一样简单。命令与单个虚拟机相同。
- 我不会使用 docker-machine,而是尝试通过 store.docker.com 的说明为您的 Linux 发行版安装,因为您能够更好地控制 Docker版本呀。对于生产,您希望坚持使用稳定的季度版本(最新版本是 17.12)。
如果您想避免手动配置但仍能获得所需的高可用性和成本效益,请尝试 运行 Docker Jelastic 的 Swarm 模板 pre-packaged:
- 它具有 built-in 自动聚类和缩放
- 安装是自动执行的,您将通过直观的方式获得对集群的完全访问权限UI
- 容器 运行 直接在裸机上运行,因此无需为每个服务保留完整的虚拟机(并且您可以选择要 运行 您的项目所在的数据中心)
- 支付是根据实际内存消耗完成的,CPU
- 容器自动分布在不同的硬件服务器上,提高了高可用性
关于包和安装步骤的详细信息在文章“Docker Swarm Auto-Clustering and Scaling with PaaS Power Armor”中。