DigitalOcean 上基于 Docker 的应用程序的端到端自动化

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

DigitalOcean 的简单性和成本效益促使许多初创公司和企业将他们的应用程序托管在分布在不同地区的 Droplets 上。然而,随着开发团队开始成长或企业开始新的开发项目,为快速成长的团队复制一致的 DEV/TEST 环境成为任何云基础架构上的难题。

DCHQ 简化了企业应用程序的容器化,并使得通过一键部署按钮在多台主机上复制非常复杂的应用程序环境成为可能。 DCHQ 不仅自动执行应用程序部署,而且还与 DigitalOcean 集成以自动配置和自动扩展由分布式 Droplet 组成的支持 Weave 的集群。

在此博客中,我们将介绍 DigitalOcean 上的自动化基础设施配置以及多层应用程序的自动化部署和生命周期管理。

首先,用户可以通过导航到 Manage > Repo & Cloud Provider 然后单击 + 按钮选择 DigitalOcean 来为 DigitalOcean 注册一个 Cloud Provider。需要提供 DigitalOcean 访问令牌——可以从 DigitalOcean 控制台的 API 部分检索。

然后,用户可以使用自动缩放策略创建一个支持 Weave 的集群,以自动启动新的 Droplets。这可以通过导航到“管理”>“数据中心和集群”页面然后单击 + 按钮来完成。您可以选择基于容量的放置策略,然后将 Weave 作为网络层,以促进集群内多个主机之间的跨容器通信。此示例中的自动缩放策略将 VM(或 Droplets)的最大数量设置为 10。

用户现在可以通过导航到“管理”>“裸机服务器和虚拟机”,然后单击“+”按钮选择 DigitalOcean,在新创建的集群上配置多个 Droplet。选择云提供商后,用户可以选择所需的区域、大小和图像。可以在新的 Droplets 上打开端口(例如,Docker 为 32000-59000,Weave 为 6783,RabbitMQ 为 5672)。然后选择数据中心(或集群)并指定 Droplet 的数量。

一旦提供了 Droplet,用户就可以在新的 Droplet 上部署基于 Docker 的多层应用程序。这可以通过导航到自助服务库然后单击自定义来请求多层应用程序来完成。在此示例中,我们有一个多层应用程序,由 Nginx(用于负载平衡)、Tomcat(集群应用程序服务器)和 MySQL(作为数据库)组成。您会注意到 Nginx 正在调用 BASH 脚本插件以动态(或在请求时)在 default.conf 文件中添加应用程序服务器的容器 IP。 Tomcat 还调用 BASH 脚本插件从指定的 URL 部署 Java WAR 文件。您会注意到 cluster_size 参数允许您指定要启动的容器数量(具有相同的应用程序依赖性)。 主机 参数允许您指定要用于容器部署的主机。以下是主机参数支持的值:

  • host1、host2、host3 等——在数据中心(或集群)中随机选择一个主机进行容器部署
  • <IP Address 1, IP Address 2, etc.> -- 允许用户指定用于容器部署的实际 IP 地址
  • <Hostname 1, Hostname 2, etc.> -- 允许用户指定用于容器部署的实际主机名
  • 通配符 (例如“db-*”或“app-srv-*”)——指定在主机名中使用的通配符

在单击运行之前,用户可以选择一个环境标签(如 DEV 或 QE)和为 DigitalOcean 创建的数据中心。

一旦应用程序启动并运行,用户就可以监控正在运行的容器的 CPU、内存和 I/O 利用率,并执行第 2 天的操作,例如备份、使用 BASH 插件的容器更新、扩展/扩展和持续交付.

在录制的演示中,我们将应用服务器集群从 2 个扩展到 3 个。然后我们使用 BASH 插件更新 Nginx 的 default.conf 文件,以便它知道添加的新应用服务器。


立即免费注册 DCHQ.io 托管 PaaS ( http://dchq.io )