
# 内部知识管理类应用典型部署架构（99.9%）
内部知识管理类应用通常用于内部操作，且在故障时只会对内部员工造成影响，可以承受较长的恢复时间和恢复点，其可用性目标通常要求达到99.9%，即每年中断时间可以为8.76小时。
导致业务中断的时间包含故障中断时间及由于升级配置维护等导致的中断时间，假定分别中断时间如下：
- 故障中断：假定每年故障中断4次，每次应急恢复决策时长为30分钟，恢复处理时长为30分钟，则每年故障中断时长为240分钟。
- 变更中断：假定应用离线更新，每年更新8次，每次更新时长30分钟，则每年更新时长为240分钟。
按照以上评估，每年应用系统不可用的时长是480分钟，满足可用设计目标要求。
内部知识管理类应用典型架构为前端无状态应用层+后端数据库，其中前端无状态应用采用ECS，后端数据库基于不同业务类型可采用不同数据库，通常为RDS for MySQL；基于业务需要，通常还会使用DCS、Kafka等中间件及DDS文档数据库；为满足对应的可用性目标，建议方案如下：
| 类别     | 实施方案                                                                                                                           |
|:---|:---|
| 冗余     | ELB、RDS、DCS、Kafka、DDS等云服务实例均采用高可用部署。                                                                                           |
| 备份     | RDS、DDS数据库自动备份，有状态ECS通过CBR自动备份，在数据故障时使用最新备份数据恢复，可以满足可用性目标要求。                                                                   |
| 容灾     | 应用使用支持跨AZ的服务进行跨AZ部署，ELB、RDS跨AZ部署，AZ故障时自动恢复。有状态ECS通过SDRS进行跨AZ容灾，在AZ故障时手工切换。                                                     |
| 监控告警   | 进行站点运行状态检查，在发生故障时告警；针对ECS、RDS实例负载状态进行监控，在资源过载时需要告警。                                                                            |
| 弹性扩缩容  | 针对内部用户场景，资源足够，无需自动弹性伸缩；针对ECS，通过ELB实现ECS实例的故障检测与负载均衡，并可根据ECS监控情况随时添加和移除ECS实例来扩展应用系统的服务能力；针对RDS，可根据RDS负载监控情况，在维护时段更改实例类型或增加只读节点。 |
| 变更防差错  | 软件更新采用离线更新，在位替换，根据runbook进行应用的自动部署与回滚。每1\~2个月更新一次软件。                                                                           |
| 应急恢复处理 | 制定应急处理机制，指定应急恢复人员，以便在突发事件后能快速决策和恢复；并提供常见应用、数据库问题以及升级部署失败的相关解决方案，以便在出现问题后可以及时恢复。                                                |
   
根据以上方案，典型部署架构如下：
![](https://support.huaweicloud.com/usermanual-architecture/zh-cn_image_0000001940438970.png)
该架构的主要特点包括：
- 应用系统采用有状态虚拟机+有状态数据库的分层部署架构。
- 该应用系统在华为云单个Region部署一套完整系统，采用跨AZ部署，其中有状态虚拟机采用跨AZ主备复制，可以实现云内应用层跨数据中心主备容灾。
  - 接入层（外部DNS）：通过外部DNS进行域名解析与流量负载均衡，单个AZ故障对业务没有影响。
  
  - 应用层（ELB负载均衡器、应用软件及虚拟机）：对于有状态应用，通过SDRS服务实现跨AZ的虚拟机数据复制与容灾切换，并可通过CBR服务进行自动数据备份。
  
  - 中间件层：Redis、Kafka集群跨可用区高可用部署，单个AZ故障对业务没有影响。
  
  - 数据层：RDS与DDS数据库及OBS对象存储跨可用区高可用部署，单个AZ故障对业务没有影响。
   
- 为了保证数据的可靠性，RDS数据库的数据定期自动备份到OBS，在数据丢失时可以快速恢复。
 
