本模块目的在于明确说明系统各功能的实现方式,指导开发员进行编码。
本模块的预期读者为:系统设计者、系统开发员。
系统采用前后端分离的B/S架构。前端采用主流框架Vue,后端采用Java主流框架Spring Boot。前端负责界面展示和交互逻辑的开发,后端关注业务逻辑和数据处理,所有数据都通过异步接口的方式在前后端流转,最终利用浏览器完成静态页面模板
系统架构 System Architecture
服务器 Servers
AKS解决方案架构Azure Kubernetes Solution Architecture
本系统可跨平台上开发和使用。容器化应用一次构建,可在任何平台运行。
主要依赖有Azure Database for MySQL(PaaS服务)、Azure Cache for Redis (PaaS服务)、Blob 存储 (IaaS服务)、队列存储 (PaaS服务)、Azure Kubernetes 服务。在其他云平台上,只需重建基础架构即可。
AKS解决方案架构的关键组件服务描述如下:
-
Azure Kubernetes Cluster: Azure Kubernetes 服务 (AKS) 在 Azure 中部署托管的Kubernetes 群集。AKS 通过将大量管理工作量卸载到 Azure,来降低管理 Kubernetes 所产生的复杂性和操作开销。 作为托管 Kubernetes 服务,Azure 可以自动处理运行状况监视和维护等关键任务。 Kubernetes 主节点由 Azure 管理。 用户仅管理和维护工作节点。DevOps人员使用Kubectl连接管理K8S服务。
-
Pod:K8S调度、管理的最小单元,Pod是由一个或者多个container组成的。
-
Pod Auto Scaling(PA):提供横向Pod自动缩放功能,根据 CPU 利用率或其他选择指标调整部署中的 Pod 数量。
-
IaaS:Infrastructure as a Service 基础结构即服务。
-
PaaS: Platform as a Service 平台即服务。
扩展性 Extendibility
使用Azure Kubernetes 服务 (AKS)集群本身可扩展能力,以最大限度的适应应用的服务规模的扩展。
Pod Auto Scaling(PA):提供横向Pod自动缩放功能,根据 CPU 利用率或其他选择指标按需扩展Pod 数量。
功能性 Functions
本系统采用系统架构将通用部分完全抽象,并采用各模块并行处理,系统各部门达到高复用、低耦合,为扩展提供了良好的基础环境。各应用模块都采用无状态模式。
维护性 Maintainability
本系统结构严谨,层次功能划分清晰,代码通用性强,规则明确,风格统一,对后期人员维护提供了很大的方便,易于后期人员进行代码维护。
另外,在操作上系统前后台紧密结合,日常维护人员可在后台进行全面的更新操作,并且系统展现十分简单,易于上手。
异常日志
使用Azure Monitor 监控Azure AD 活动日志将 Azure AD 活动日志存档到 Azure 存储帐户,以便长期保留数据
使用Azure APP Service进行诊断日志记录
启用应用程序日志记录(Linux/容器)
日志存储在 Blob 存储上
使用Azure 存储分析日志记录
监视 Azure Blob 存储,并将日志存档到存储帐户
针对网络安全组进行流日志记录
用于记录流过 NSG 的 IP 流量的信息
原始流日志将写入 Azure 存储帐户