分享好友

×
取消 复制
技术架构汇总
2020-06-17 17:36:27

技术蓝图



上面技术蓝图讲解,主要分4大块。不知道这么说是否准确望请指正!

系统架构层面(应用运维、系统架构)

  • DNS
    • 内网,bind服务(可能做成存数据库类型的)
    • 外网,DNS健康检查等


  • CDN
    • Static 静态资源分发(JS、css、image等)
    • 视频点播,例如优酷视频、腾讯视频、爱奇艺等等
    • 视频直播,虎牙、斗鱼、电视直播等等
  • 负载均衡
    • 硬件 : F5等
    • 软件 :
    • lvs
    • nginx
      • nginx这块 通常会使用 nginx+lua ,或者你直接使用 openresty、tengine


    • haproxy
    • 云厂商SLB(好多云厂商会直接提供负载均衡服务,不过是收费的。阿里云、AWS、腾讯云等等)
  • 应用服务器这块主要按语言分:
    • Java: tomcat使用及优化、jvm优化
    • php:可能就得优化 php-fpm
    • Python: wsgi等
    • go:基本上都是编译后的


  • 数据库这块分两个层面:
  • Nosql:实际上用到最多的地方实际是缓存这块
    • Redis、codis
    • memcached
    • MongoDB
    • ElasticSearch 多用于搜索
  • SQL: 关系型数据库
    • Mysql
    • Oracle
    • DB2
    • Tidb 最近比较火的


  • 系统方面
  • Linux系统
    • 常用命令
    • 系统优化
    • 常用工具: Sed、awk、sort等
    • Shell
    • iptables
  • 虚拟化相关
    • VMware 老牌虚拟化
    • Kvm linux 内核级 ,OpenStack 就是基于这个基础
    • Docker 最火热的
    • K8s 生产机容器编排工具
    • Docker Swarm


  • 存储方面:
    • 硬件: 组件刀片存储服务器
    • 软件:
    • NFS 网络存储
    • Glusterfs google开源 分布式存储 适用于大文件
    • HDFS Hadoop生态里面的 文件存储 同样适用于大文件
    • FastDFS 小文件存储
  • 监控方面
    • Zabbix 老牌 好多公司还在用
    • Open-falcon 小米开源、个人认为适合二开
    • Prometheus 跟K8s 一个社区产品 、个人认为 容器监控比较多
    • Grafana 对接各个监控系统的 UI、高大上
  • 日志中心(解决日志收集、分析、处理、报警)
    • ElasticSearch
    • Logstash
    • filebeat
    • Kibana
  • 队列:
    • Kafka
      • Zookeeper 通产用于注册中心 存储元数据
    • RabbitMQ 微服务中经常用
  • 自动化运维工具
    • git、gitlab、svn
    • Jenkins、gitlab runner、CI/CD思想
    • ansible、saltstack、puppet
    • 代码的发布(灰度、滚动等)、更新、回滚等

运维平台方面(运维开发)

  • CMDB基础平台
  • 发布系统
  • 日常报表系统
  • 域名管理系统
  • 工单系统
  • 堡垒机
  • 以及一些第三方对接
    • 文档管理系统(Confluence)
    • JIRA
    • 调取云厂商接口
      • 阿里云
      • 腾讯云
      • 华为云
      • 青云等

参考文档如下:

网站架构演变文档连接www.liuwq.com

负载均衡技术

LVS nginx Haproxy 网站选型负载均衡优缺点www.liuwq.com图标

DNS轮询

所谓 DNS轮询:是指的网站域名解析的IP使用多个服务器和IP 通过DNS轮询 访问每一台服务器,
不推荐这样直接访问核心服务器,可以在前端增加一层nginx负载代理使用,而且如果DNS解析上没有健康检查还是存在服务器单点故障问题。可以考虑加keeplived做健康检查

nginx

为啥要把nginx单独列出来,就是因为它太牛逼了,太强了,你可以用它做太多事情了。

nginx 类别

tengine

阿里根据nginx官方包衍生产品,作为一个搞运维的人员,相信大家都不对阿里云都不陌生吧,阿里云做的两个字NB,这款产品给我的印象,最牛逼的是可以动态加载库,无需编译。当然本人确实没怎么研究。以后会加深研究,看看有什么能在现有的项目中用到把。

openresty

不得不说的一个产品,春哥和他的团队写的。我虽然只是会用,但是我也感觉很自豪,MD中国人写的,给国人长脸呀,说多了。我对与这个产品的了解:nginx+lua 集成产品,最注重的就是性能、性能、性能....重要的是说三遍。下面是一些官方的介绍:

OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

OpenResty® 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性能 Web 应用系统。

OpenResty® 的目标是让你的Web服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都进行一致的高性能响应。

OpenResty® - Official Siteopenresty.org图标

nginx 官方原生

这个就不多介绍了 可以去官网看下nginx 官网

nginx 可以做的事

nginx+lua做网站防火墙(WAF)

* 建议直接安装openresty里面集成了lua *
简单介绍下WAF:所谓的WAF,就是nginx做对外出口服务的时候,利用nginx的高性能,通过lua 脚本去过滤http请求头、uri、header、cookie、session等信息,对网站做一些基本的防御。
主要用于防扫描、SQL注入、XSS等

Httpguard(网上写的开源产品,利用lua写的一套专注与防CC的产品)

简单介绍下:我自己用了好久,好坏参半把。当你的网站受到大量CC的时候,当你头疼不易,网站已被干成404的时候,请上它,瞬间能让你清爽到底。但是在正常的时候,容易误杀用户功能,它好多都是通过用户真实IP判断的。提醒一句慎用,当然如果你会lua语言就另当别论。

github地址 Httpguard_github 哪位大神如果,请帮忙优化下。

Vddos (闭源产品)

国外比较流行的一种,针对DDos和CC攻击防御的一款闭源软件,针对TCP/IP 三次握手做判断来防御。
不过使用它配合cloudflare(国外一款DNS和CDN厂家)使用,效果还不错。可以尝试下。

原理图


参考文档

Github address

VDDOS 防CC工具 | 凯撒公猿www.liuwq.com图标

介绍DDOS攻击原理网站: 连接地址

Code 层面优化

php fastcgi 优化扩展

参考文档

PHP7 php-fpm 参数配置说明www.liuwq.com

php 7.0 优化

JVM 优化

参考连接


IBM blog 出品www.ibm.com
CSDN-专业IT技术社区-登录blog.csdn.net

数据库

mysql

  • mysql主从复制



  • mysql+hearbeat+DRBD



  • mysql cluster集群
mysql官方出的一套针对与mysql集群软件,可以使用表自动分片,缺点不利于维护。
  • mysql优化相关
参考连接地址wwwliuwq.com

mongodb

  • mongo 副本集集群



  • mongo sharding 分片集群



缓存

memcached



文档如下:

文档如下:

memcached 使用 | 凯撒公猿www.liuwq.com
MemCache 基础介绍与工作原理www.liuwq.com图标

Redis

+ redis  sentinel
```
                   +-------------+
               | Sentinel 1  | <--- Client A
               | Redis 1 (M) |
               +-------------+
                       |
                       |
   +-------------+     |                     +------------+
   | Sentinel 2  |-----+-- / partition / ----| Sentinel 3 | <--- Client B
   | Redis 2 (S) |                           | Redis 3 (M)|
   +-------------+                           +------------+
```
Redis 哨兵架构文档www.liuwq.com图标Redis 集群方案www.liuwq.com
Redis 基本操作www.liuwq.com
redis主从 | 凯撒公猿www.liuwq.com
缓存选型www.liuwq.com

队列

只说下比较常用的类型
  • redis: 可以作为简单队列处理。
  • rabbitmq 企业级队列,比较重
  • kafka: 多用与与日志相关
文档如下:
RabbitMQ的一些基本概念 | 凯撒公猿www.liuwq.com图标RabbitMQ集群原理与部署 | 凯撒公猿www.liuwq.com图标ELK(elasticsearch + logstash + kabana) 部署测试及使用www.liuwq.com图标


ELKB + kafka | 凯撒公猿www.liuwq.com图标Kafka集群部署指南 | 凯撒公猿www.liuwq.com图标ZooKeeper集群 | 凯撒公猿www.liuwq.com

集中式日志中心解决方案

Elasticsearch + Logstash + Kibana(ELK)是一套开源的日志管理方案

分析网站的访问情况时我们一般会借助Google/百度/CNZZ等方式嵌入JS做数据统计,但是当网站访问异常或者被攻击时我们需要在后台分析如Nginx的具体日志,而Nginx日志分割/GoAccess/Awstats都是相对简单的单节点解决方案,针对分布式集群或者数据量级较大时会显得心有余而力不足,而ELK的出现可以使我们从容面对新的挑战。

  • Logstash:负责日志的收集,处理和储存
  • Elasticsearch:负责日志检索和分析
  • Kibana:负责日志的可视化

参考文档:

集中式日志管理 | 凯撒公猿www.liuwq.com图标ELK(elasticsearch + logstash + kabana) 部署测试及使用www.liuwq.com图标


ELKB + kafka | 凯撒公猿www.liuwq.com图标Kafka集群部署指南 | 凯撒公猿www.liuwq.com图标ZooKeeper集群 | 凯撒公猿www.liuwq.com

监控

  • zabbix

参考文档

zabbix+grafana 打造炫酷架空平台

  • nagois

没怎么用过 主要是得自己写模板,计较麻烦.想我这种懒人不太适合

  • catti
  • open-falcon

小米公司研发,思想借鉴zabbix。 前台使用 python开发,后端使用go语言开发,社区活跃度很高。

官网地址

安装配置手册地址book.open-falcon.org
  • prometheus k8s配套设备,监控容器利器。时间序列监控。

上面开源监控系统一般都可以加上Grafana 图像话展示。UI很炫。

帅不帅你说了算


配个原理图


备份

bacula

bacula 文档www.liuwq.com

文件存储备份

mysql 数据库备份

  • Xtraback 简单介绍下:当数据库不断增大后,导致数据库文件越来越大,如果还是使用mysqldump 这个逻辑备份和恢复,期间等待的时间会非常长,会让人崩溃。。。。 因此会产生了物理机的备份软件,MySQL官网上有一款商业备份软件(花钱大家都懂得)、一款免费的开源的备份软件Xtraback,而Xtraback足够你使用了

参考文档

xtraback原理及使用 | 凯撒公猿www.liuwq.com
xtraback备份脚本 | 凯撒公猿www.liuwq.com
  • mysqldump

没啥说的逻辑备份

系统

Linux系统内核优化

参考文档

linux 系统参数调优 | 凯撒公猿www.liuwq.com

iptables使用介绍及日常用到shell信息

安全 | Category | 凯撒公猿www.liuwq.com

存储(软件存储系统非硬件不是阵列)

NFS 网络挂载存储

NFS安装使用及相关文档信息

NFS 安装与配置 | 凯撒公猿www.liuwq.com
Cachefiles | 凯撒公猿www.liuwq.com
NFS and AFS | 凯撒公猿www.liuwq.com

分布式存储

glusterfs

简单介绍下:适用于大文件存储,C写的开源程序,支持mount直接挂载,无元数据

glusterfs文档介绍

glusterfs集群搭建 | 凯撒公猿www.liuwq.com
glusterfs 详解 | 凯撒公猿www.liuwq.com

Hdoop(HDFS)

简单介绍下:适用于大文件存储,Apache公司的产品,Java程序编写,有远程数据。

FastDFS(开源软件):

简单介绍下:适用于小文件存储(网盘、短视频、images),对于高并发具有很好的支持。
FastDFS 安装部署文档 | 凯撒公猿www.liuwq.com
FastDFS 原理篇 | 凯撒公猿www.liuwq.com图标

虚拟化

KVM

主要是基于 Linux内核做的虚拟化 把CPU、mem、disk 进行虚拟化使用

只是简单了解过,并未做过段研究、只用过单机虚拟化

简单介绍下单机使用www.liuwq.com

Vmware 老牌虚拟化

这里先不说了 基本都会些,后续做补充

Docker

这个就需要详细介绍下,最近非常火的 微服务虚拟化
  • 介绍下docker

使用GO语言编写,推崇使用容器思想,详情可去如下地址了解:

docker_practice.gitee.io

  • docker三剑客:compose、machine、docker swarm
  • docker-compose 负责实现对 Docker 容器集群的快速编排。从功能上看,跟 OpenStack 中的 Heat 十分类似。 相当于管理各种dockerfile 形成一个项目集群,对多个容器进行统一管理
  • marchine Docker Machine 是 Docker 官方编排(Orchestration)项目之一,负责在多种平台上快速安装 Docker 环境。
  • Swarm Swarm 是使用 SwarmKit 构建的 Docker 引擎内置(原生)的集群管理和编排工具 Docker 自家出的 推荐一个本 docker最佳实践 京东有卖
  • kubernetes
Kubernetes 是用于自动部署,扩展和管理容器化应用程序的开源系统

这么来形容kubernetes,docker的崛起,其实也也归功于他,前期的docker发展并没有用于生产环境,好多都是用测试环境。直到kubernetes出世,生产级别的容器编排系统,让docker可以真正的使用与生产环境。 推荐一本书: Kubernetes权威指南 京东有卖。

看完了不留言的、不点赞的、不专注的 都是耍流氓!

最后再扯个淡 ,祝愿所有苦哈哈的运维,都能不加班!!!

搞起 !!!!
分享好友

分享这个小栈给你的朋友们,一起进步吧。

IT基础架构
创建时间:2020-06-17 15:29:51
IT基础架构是相对于IT应用架构而言的,指的是为了各种应用系统能够顺利、可靠地运行,而提供的一系列硬件、软件的集合体。正是因为有了这些IT基础架构的各种设施,IT应用架构才能运行并提供服务。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 栈栈
    专家
戳我,来吐槽~