部署架构{ #deployment-architectures }¶
介绍¶
DHIS2 应用程序可以使用不同的架构进行部署,包括单服务器、分布式、混合、Docker 和带 Kubernetes 的 Docker。架构的选择取决于各种因素,如简单性、管理复杂性、可扩展性、可维护性和性能。
架构{ #the-architectures }¶
单服务器模式
:使用 lxd 容器,需要将 ansible_connection 变量设置为 lxd。
- 已分发
-
dhis2 应用堆栈运行在各自的服务/虚拟机,例如,数据库服务器在自己的虚拟机上运行。
混合模式
:一个很好的例子是,在同一台服务器上,postgres 运行在自己的专用机器上,而 dhis2 tomcat 实例则运行在同一台服务器上。
单服务器架构{ #single-server-architecture }¶
在此设置中,所有组件都运行在同一台服务器上。我们使用 LXD 容器来分离应用程序组件。这些容器分别用于 PostgreSQL、监控、实例和代理,从而提高了安全性和资源分配。这是 ansible 工具的默认选择,在清单文件中设置了 ansible_connection=lxd 变量。
特色{ #features }¶
- 简约
- 易于管理
- 性能
缺点{ #drawbacks }¶
- 可扩展性--在这种设置中,扩展单个组件具有挑战性
- 可维护性
- 灵活性--不如分布式设置灵活
分布式架构{ #distributed-architecture }¶
在这里,组件运行在各自的专用服务器上。要让工具支持这种架构,你需要一个部署服务器来执行 Ansible 脚本。部署服务器必须与其他主机有 SSH 连接。可以使用命令测试 SSH 连接:ansible all -m ping -u<ssh_user> -k。确保将 ansible_connection 参数设置为 SSH,即 ansible_connection=ssh,并确保在清单文件中正确配置了主机的 IP 地址。
要开始安装,请按照以下步骤操作:
| 命令 | 描述 |
|---|---|
sudo ufw limit 22sudo ufw enable | 打开主机防火墙上的 ssh 端口, ,如果使用非默认 ssh 端口,则将其更改为 22 |
| cd dhis2-server-tools/deploy/`` | cd 进入 dhis2-server-tools/deploy/ 目录 |
vim inventory/hosts | 编辑清单 hosts 文件并设置 ansible_connection=ssh |
ansible-playbook dhis2.yml -u=<your_ssh_user> -Kk | -K:提示输入 sudo 密码-k:提示输入 ssh 密码-u:ssh 连接的用户名 |
将 <your_ssh_user> 替换为主机的相应 SSH 用户。
ansible_connection=ssh
优势{ #strengths }¶
- 可扩展性--更容易独立扩展各个组件。
- 故障隔离 - 由于事物是解耦的,因此可以很容易地隔离故障。
- 模块化 - 比单一服务器设置更具模块化。
- 比单一服务器架构更灵活。
混合{ #hybrid }¶
也可以采用一种平衡的方法,即数据库服务器是隔离的,而其他一切都运行在一台服务器上。这样就能同时享受两种配置的优势。
Docker、lxd 和 kubernetes{ #docker-lxd-and-kubernetes }¶
还有其他新兴架构利用 Docker 和 Kubernetes 作为容器协调层。