平台服务 plat
其为第三方的平台,其负责提供各类“资源”或“服务”。
云商平台
阿里云、腾讯云:提供域名解析,我们需要使用 External DNS 组件,实现域名解析自动化,而其他云平台对开源生态支持较差。
火山引擎:提供 Kubernetes ECS MySQL Redis Elasticsearch 等等服务。
网络信息
私有网络:
- 172.16.0.0/16
入口网络:
- CLB External | 提供面向外部用户的业务服务
- CLB Internal | 提供面向内部员工的办公服务
- CLB Frontend | 提供外部外部用户的业务服务(永不关服)
出口网络
- NAT | 作为环境的出口地址
存储服务
文件存储:
- default ⇒ Mountpoint: default | 针对整个环境,其负责提供文件存储服务;
计算资源
注意,我们使用容器技术,Kubernetes,所以计算资源被抽象使用。
应用编排 Kubernetes
容器编排:
- Kubernetes | 提供服务运行环境,使用 iptables 模式,需要流量回源。
自动 DNS 解析
- External DNS | 负责处理集群内的 Ingress 及 Service 到外部 DNS 服务的解析;
管理 TLS 证书
- Cert Manager | 负责处理集群内 Ingress HTTPS 的自动化证书申请。
暴露 HTTP 服务
- Nginx Ingress Controller Internal | 提供面向内部员工的办公服务
- Nginx Ingress Controller External | 提供面向外部用户的业务服务(可能需要停服更新的服务)
- Nginx Ingress Controller Frontend | 提供面向外部用户的业务服务(提供开放访问的不停服类)
存储服务
- csi-nas | Storage Class: ebs-ssd | 提供块存储。但是,受制于其特性,较少使用
- csi-ebs | Storage Class: efs-extreme | 提供文件存储。
设施环境 infr
根据过往经验,该环境资源 CPU 8vCPU/16vCPU, MEMORY 18/32GiB 占用,其中不包含 Jenkins Agent 节点。
网络信息
172.16.200.0/16
应用依赖
数据库服务
- MySQL 8.0 Helm Chart | 数据库存储,例如 Confluence 使用
集中认证
- LLDAP | 提供集中认证
- ……
业务应用
集群管理(Kubernetes)
- Rancher
项目管理
- Zentao
文档协作
- Confluence
源码仓库
- Gitea
CI and CD
- Jenkins
制品仓库
- Harbor
- Nexus
测试环境 test
网络信息
172.16.201.0/24
应用依赖
数据库服务 RDS MySQL
缓存服务 Redis
消息队列 RocketMQ 5.x
搜索引擎
- Elasticsearch 7.10.2
- Kibana –
对象存储
- Volcengine TOS
- Volcengine CDN
短信
- Volcengine SMS
配置中心、服务注册
- Nacos
任务调度
- XXL-JOB
业务应用
根据代码仓库与实际项目进行部署;
生产环境 prod
网络信息
172.16.202.0/24
应用依赖
数据库服务 RDS MySQL
缓存服务 Redis
消息队列 RocketMQ 5.x
搜索引擎
- Elasticsearch 7.10.2
- Kibana –
对象存储
- Volcengine TOS
- Volcengine CDN
短信
- Volcengine SMS
配置中心、服务注册
- Nacos
任务调度
- XXL-JOB
业务应用
根据代码仓库与实际项目进行部署;