借用一下尚硅谷的拓扑图,细节部分会有出入。

开发工具

  1. 开发工具:后台Java研发主要使用intellij idea,终端研发分别用android studio和xcode,前端研发主要用vscode;
  2. 知识库管理:用confluence搭建公司wiki平台,用于积累案例库、经验分享、产品设计文档等;
  3. 研发管理:利用腾讯TAPD的优秀能力,做研发进度跟踪,BUG管理等工作;
  4. 代码平台:利用gitlab搭建公司代码仓库,配合sonarqube做代码质量检测,在fisheye平台上做代码审查,利用jenkins制作docker镜像,通过spinnaker平滑发布到Habor容器库.

应用工具

  1. 运行环境:基于kubernetes搭建的容器云环境,利用其自动伸缩+健康监测等特性保障服务高可用。
  2. 存储组件:核心业务数据放在Postgresql,部分数据放MongoDB和Mysql,多媒体数据放在FastDFS分布式文件系统,大数据分析用了HDFS,监控及搜索用了ElasticSearch
  3. 缓存层:基于Redis构建了高效的缓存层
  4. 消息系统:业务消息强调实时性都存在RocketMQ中、日志类消息强调吞吐量放到了Kafka
  5. 监控告警:基于ELK套件构建日志告警、Prometheus + Grafana实现对K8S的监控

硬件环境

  1. 硬件环境:戴尔R730xd、R630服务器以及FC存储;
  2. 异地灾备:设立主机房和辅助机房,间隔80公里以上,同时部署广州机房作为异地灾备;
  3. 虚拟化层:使用VMware vSphere以OpenStack私有云方案;
  4. 网络接入:主辅机房多个运营商接入,灾备机房通过ipsecVPN连接,使用阿里云、华为云、Azure海外节点提供国外访问,同时,用CDN加速静态资源访问;
  5. 负载均衡::使用LVS+Keeplived+NGINX;
  6. 监控告警:硬件层使用戴尔OpenManage Essentials提供监控告警,网络层使用zabbix,主机层使用Open-falcon
  7. 云上环境:使用OSS、CDN提供相应分发服务,使用ECS和RDS提供前端访问加速;

技术类型

1.运行环境应用软件选型

(1)操作系统(WEB服务器、APP服务器、接口服务器): Nginx、LVS。

(2)操作系统(数据库服务器): CentOS。

(3)数据库: PostgreSql、Mysql。

(4)安全框架: shiro。

(5)HTTPS: TLS 1.2。

2.研发环境应用软件选型

(1)开发语言平台: Java,Object C。

(2)开发工具: intellij idea,android studio,xcode,vscode。

(3)版本控制工具 : gitlab,jenkins,spinnaker,sonarqube。

(4)开发框架: Vue。

(5)网页层: nginx。

(6)服务层: Java、kubernetes、Docker。

(7)数据访问层: PostgreSql、Mysql、MongoDB、FastDFS、HDFS、ElasticSearch。

(8)MQ: RocketMQ、Kafka。

(9)缓存:Redis