「ENTPITENV」- 企业 IT 环境 | 基于子网隔离的实现

平台服务 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

业务应用

根据代码仓库与实际项目进行部署;