互联网公司的技术架构
借用一下尚硅谷的拓扑图,细节部分会有出入。
开发工具
- 开发工具:后台Java研发主要使用intellij idea,终端研发分别用android studio和xcode,前端研发主要用vscode;
- 知识库管理:用confluence搭建公司wiki平台,用于积累案例库、经验分享、产品设计文档等;
- 研发管理:利用腾讯TAPD的优秀能力,做研发进度跟踪,BUG管理等工作;
- 代码平台:利用gitlab搭建公司代码仓库,配合sonarqube做代码质量检测,在fisheye平台上做代码审查,利用jenkins制作docker镜像,通过spinnaker平滑发布到Habor容器库.
应用工具
- 运行环境:基于kubernetes搭建的容器云环境,利用其自动伸缩+健康监测等特性保障服务高可用。
- 存储组件:核心业务数据放在Postgresql,部分数据放MongoDB和Mysql,多媒体数据放在FastDFS分布式文件系统,大数据分析用了HDFS,监控及搜索用了ElasticSearch
- 缓存层:基于Redis构建了高效的缓存层
- 消息系统:业务消息强调实时性都存在RocketMQ中、日志类消息强调吞吐量放到了Kafka
- 监控告警:基于ELK套件构建日志告警、Prometheus + Grafana实现对K8S的监控
硬件环境
- 硬件环境:戴尔R730xd、R630服务器以及FC存储;
- 异地灾备:设立主机房和辅助机房,间隔80公里以上,同时部署广州机房作为异地灾备;
- 虚拟化层:使用VMware vSphere以OpenStack私有云方案;
- 网络接入:主辅机房多个运营商接入,灾备机房通过ipsecVPN连接,使用阿里云、华为云、Azure海外节点提供国外访问,同时,用CDN加速静态资源访问;
- 负载均衡::使用LVS+Keeplived+NGINX;
- 监控告警:硬件层使用戴尔OpenManage Essentials提供监控告警,网络层使用zabbix,主机层使用Open-falcon
- 云上环境:使用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
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.