大家好,又见面了,我是你们的朋友全栈君。
阿里云运维架构实践秘籍
ISBN: 978-7-111-64969-4
作者:乔锐杰
页数:343页
阅读时间:2021-06-19
推荐指数:★★★★★
不愧是”乔帮主“的”降龙十八掌”,
章章都打出了深厚的功力,
是每一位开发和运维人员都要了解的运维知识,
强烈推荐。
1. 中国互联网发展编年史
1994年4月20日中国实现了与国际互联网的全功能连接,
但是直到1998年我国门户网站才兴起。
互联网公司 | 创立年份 |
---|---|
网易 | 1997年6月 |
搜狐 | 1998年 |
京东 | 1998年6月18日 |
腾讯 | 1998年11月 |
新浪 | 1998年12月 |
阿里 | 1999年 |
盛大 | 1999年11月 |
百度 | 2000年 |
抖音 | 2016年 9月20日 |
中国云服务发展编年史:
名称 | 创立年份 |
---|---|
阿里云 | 2009年 |
盛大云 | 2011年 |
天翼云 | 2012年 |
腾讯云 | 2013年 |
华为云 | 2013年 |
百度云 | 2015年 |
2. 运维
运维的发展阶段:
- 人工阶段
- 脚本和工具阶段
- 平台化阶段
- 智能化阶段
传统运维痛点:
- 有一定技术门槛
- 7*24小时响应中心
- 成本
云服务供应商排行:
参考链接:https://blog.csdn.net/diandi7/article/details/85262052
常见名词解释
服务 | 英文 | 中文 |
---|---|---|
ECS | Elastic Compute Service | 云服务器 |
RDS | Relational Database Service | 关系型数据库 |
SLB | Server Load Balancer | 负载均衡 |
OSS | Object Storage Service | 对象存储服务 |
VPC | Virtual Private Cloud | 专有网络 |
80%的企业会选择云产品,20%的企业会考虑自行搭建对应服务。
一般单台Tomcat的极限并发在1000左右。
8核16G服务器使用Tomcat会造成浪费。
5Mbps的带宽指的是出口带宽,入口带宽不受限制。
入网选型:SLB网络、公网IP、弹性EIP、DNAT
出网选型:公网IP、弹性EIP、SNAT、公网IP类、SNAT类。
Nginx是七层及四层优秀的负载均衡。
8核32G Apache做Tomcat负载均衡,极限抗并发3000~5000
如果一条记录频繁访问,就应该放到缓存,临界点是5分钟。
服务 | 配置(CPU和内存) | 说明 |
---|---|---|
数据库 | 1:4 | 偏向内存型 |
Tomcat | 1:2 | 4核8G最完美 |
实例分为共享型和独享型。
在SLB中加入新的服务器,可以无感知扩展。
CDN只做静态缓存加速,对动态请求是没办法加速的。
DevOps发展阶段
1.人工阶段
2.脚本和工具阶段
3.平台化阶段
4.智能化阶段
K8S的DevOps流程
Rancher
3. 不同云盘单路随机写访问响应时间对比
云盘名称 | 响应时间 |
---|---|
ESSD云盘 | 0.1~0.2ms |
SSD云盘 | 0.5~2ms |
高效云盘 | 1~3ms |
普通云盘 | 5~10ms |
4. 常见数据库性能对比
Oracle | MySQL | Redis(KV) | MongoDB(文档) | HBase(列存储) | |
---|---|---|---|---|---|
单表极限 | 1亿~10亿 | 1亿 | 无限制 | 10亿~海量 | 10亿~海量 |
QPS | 2万~5万 | 1万~3万 | 10万~高并发 | 1万~高并发 | 1万~高并发 |
MySQL 单表最大行数控制在500W以下,否则需要分库分表。
5. 常见衡量业务量级别指标
指标 | 周期 | 含义 |
---|---|---|
PV | 按天 | Page View。一天内页面的访问次数,每打开或刷新一次页面,就算一次PV。 |
UV | 按天 | Unique Visitor。一天内访问网站的用户数(Cookie为依据) |
IP | 按天 | 一天内多少个独立的IP浏览了页面。 |
用户数 | 注册用户数 | |
活跃用户数 | 按天 | 注册用户数一天中实际使用了业务系统的用户数,同UV |
在线用户数 | 按天 | 一天活跃用户数中,在一定时间段内在线数量。 |
并发用户数 | 在线用户基础上,同一时刻向服务器发送请求的用户数。 |
6. 如何根据PV估算服务器数量?
一个500万PV的网站,大概需要多少台服务器?
一天中的80%业务请求量主要发生在40%的时间内。
24小时的40%是9.6小时。
每秒处理请求数量:(80% * 总PV)/(24小时60分钟60秒*40%)
得:100万PV=23.1个请求/秒
500万PV=115.7个请求/秒
一天的高峰期是平时的2~3倍:
100万PCV高峰期约为46.2和69.3个请求/秒
500万PCV高峰期约为231.4和347.1个请求/秒
7. 不同业务特性计算模型
业务分类 | 特性 | 计算模型 |
---|---|---|
下载类 | 内容下载,PV和IP差别不是很大 | PV=IP量/活跃用户数 * (2~5倍) |
音视频 | 内容查看,停留某个页面比较长;PV和IP差距大 | PV=IP量/活跃用户数 * (5~10倍) |
电商论坛资讯 | 内容筛选,浏览为主,不同页面浏览可能性大。PV和IP差距大 | PV=IP量/活跃用户数 * (10~30倍) |
1000人同时使用系统时:
占比 | 业务 | 操作 |
---|---|---|
40% | 浏览系统内容 | 停留在某个页面查看,不会对服务端产生负担。 |
20% | 填写负责表格 | 只是填写表单,没有提交。 |
20% | 挂机 | 什么也没做,也不会对服务器造成压力。 |
20% | 操作 | 点击、跳转、提交、产生压力。 |
活跃用户数 = 用户数 * 业务因子(10%~30%)
在线用户数 = 活跃用户数 * 业务因子(10%~30%)
并发用户数≈每秒请求数 = 在线用户数 * 业务因子(10%~30%)
8. PV量和服务器配置/RDS配置对应表
PV(万) | 服务器配置 | RDS配置 |
---|---|---|
1 | 1核/1G/1台 | 无 |
10 | 2核/4G/1台 | 1核/1G/1台 |
50 | 4核/8G/1台 | 2核/4G/1台 |
100 | 8核/16G/1台 | 4核/8G/1台 |
500 | 8核/16G/10台 | 8核/16G/1台 |
1000 | 8核/16G/20台 | 16核/64G/1台 |
9. 服务器CPU/内存配置模型
互联网企业的服务器CPU利用率平均在10%-20%,磁盘利用率20-30%,有80%的企业都存在闲置资源浪费情况。
比例 | 最佳实践 | 参考 |
---|---|---|
1:1 | 个人网站、官网、小型网站 | 1核1G、2核2G |
1:2 | 消耗高资源计算,游戏类、高并发、电商、秒杀活动等 | 最多的当属8核16G |
1:2 | Tomcat、Nginx、Squid | 2核4G |
1:2 | 中小型Web服务、应用类、Tomcat中低配、Nginx、Apache、Squid、Python、Node | 4核8G |
1:2 | 大型Web服务、应用类、Apache、Python、Node | 8核16G |
1:4 | 数据库(先IO后内存) | 8核32G经典配置 |
1:8 | 内存型应用:Redis、Memcache等 | 2核16G、4核32G、8核64G |
1:8 | Redis单进程单线程模式 | 2核8G、2核16G |
10. 云盘空间选择
容量 | 类型 |
---|---|
系统盘(40G) | 没有文件存储、系统日常基础日志 |
100~300G | 部署代码应用 |
500G及以上 | 数据库类应用、Binlog、数据文件、备份等。一般采用SSD云盘 |
1.云盘中不建议进行分区
2.云盘中不建议使用LVM
3.云盘的系统盘不建议做数据存储
4.云盘最好不要依赖ECS
5.云盘最好挂载/etc/fstab中
11. 宽带的选择
如果需求只是入口流量一般采用SLB,带宽性能、架构扩展、安全性都比公网宽带好。
如果是出口流量需要配置公网宽带。
80%的宽带会被静态资源传输占用。
远程管理服务器可采用2Mbps按量带宽即可。
宽带配置 = 每秒请求数量*每次请求传输数据量(假设为20KB/s)
PV | 平时访问带宽 | 2倍带宽 | 3倍带宽 |
---|---|---|---|
100万 | 23.1*20=462KB/s=3696bps/s=3.5Mbps | 7Mbps | 11Mbps |
500万 | 115.7*20=2314KB/s=18512bps/s=18.5Mbps | 37Mbps | 55Mbps |
1核1G 5Mbps费用是161.8元/月,
1核1G 0Mbps费用是36.8元/月。
每月5Mbps固定宽带费:161.8-36.8 = 125元/月;
每月5Mbps固定宽带费每天费用:125/30 = 4.2元/天
每月5Mbps固定宽带每天的可用流量:4.2/(0.8元每G流量) = 5.25G
如上所述,每月5Mbps固定宽,每天需要5.25G以上的流量才能回本。
12. 共享文件存储的方法
1.Rsync文件共享实践
2.Rsync+Inotify文件共享实践
3.NFS文件共享实践
4.NAS文件共享实践
5.OSS文件共享实践
13. OSS文件管理
1.使用API接口、SDK管理OSS
2.使用阿里云管理控制台管理OSS
3.使用图形化工具管理OSS
4.使用本地文件系统挂载管理OSS
5.使用FTP管理OSS
6.使用命令工具管理OSS
14. OSS数据迁移
1.OSSImport工具
2.OSS在线迁移服务
3.跨区域复制
4.OSS离线迁移
15. 缓存
缓存是一种典型的牺牲数据时效性换取访问性能的技术。
1.浏览器缓存
2.磁盘缓存
3.内存缓存
4.CDN
数据库缓存
1.性能优越:I/O
2.应用场景:80%查询,20%操作。
3.数据一致性:先更新数据库,后更新缓存。
4.高可用
动态页面缓存
1.Nginx代理
2.PHP动态页面缓存
3.Nginx内置Memcache模块实现动态页面缓存
4.Nginx第三方模块
16. Session管理六种策略
1.基于源IP会话保持
2.基于浏览器Cookie会话保持
3.数据库存放Session
4.动态缓存的集中Session管理
5.基于Tomcat集群Session共享
6.基于NAS文件共享
17. 分库分表
分库分表,将不同库核表进行分集群拆分。
在高并发下,增加多个从库进行查询是可行的,
但是还是没有办法解决数据库的写操作,这就是读写分离的瓶颈。
这时候可以使用主主架构。
主从模式慢慢改成副本集模式。
分区拆表方式:
1.哈希算法:取余不同结果放到不同分区
2.范围:一段时间段放在一块。
3.映射关系:维护映射关系
18. 云迁移步骤
- 项目启动
- 系统架构梳理评估
2.1 加入SLB保障架构灵活扩展性
2.2 采用TCP层SLB保障性能
2.3 采用低成本高效率按量带宽
2.4 数据库优先采用RDS,低成本高效率 - 迁移方案
- 迁移实施
4.1 域名备案
4.2 镜像打包
4.3 自动化运维工具 - 迁移测试
- 上线割接
19. 监控方案
1.Shell/Python
2.Nagios
3.Nagios+Cacti
4.Zabbix
5.云监控
6.驻云监控
7.Prometheus+Alertmanager+Grafana
8.TICK技术栈
20. 云端安全
1.安全行业不容乐观
2.防御两级分化
3.互联网安全意识堪忧
4.安全产品的使用问题
5.安全人才匮乏
6.云端安全环境复杂
黑客常见入侵步骤
1.信息收集
2.漏洞筛选
3.开始入侵
4.放置后门
5.清理痕迹
黑客常见系统层攻击
1.系统层攻击
木马、网马、小马、大马
2.应用层攻击
SQL注入、跨站脚本攻击、密码暴力激活成功教程、恶意注册刷单、WebShell
3.网络层攻击
DDos
通过专线+VPN的技术手段把云端和公司内网打通。
鸡蛋不要放在一个篮子里。
云端运维安全
1.云端堡垒机
2.运维用户管理
3.密码安全管理
4.防火墙安全管理
5.端口安全管理
6.云端开源WAF实践
7.云端数据安全传输标准
8.运维安全性能调优
9.通过冷备份和热备份进一步保障云端数据安全
10.加强安全巡检安全培训管理
一台ECS大概能支撑5~30万PV访问量。
Web应用请求类型汇总
请求类型 | 请求流程 | 消耗性能资源 |
---|---|---|
DNS解析 | 域名解析 | 消耗DNS供应商解析性能 |
静态请求 | 获取域名js、css、html、图片等静态文件。 | 服务器网络和磁盘I/O资源 |
动态请求 | 请求业务逻辑处理 | 服务器CPU和内存 |
数据库请求 | 数据库增删改查 | 服务器磁盘I/O、内存和CPU |
21. 架构阶段
1.架构基础阶段:物理分离Web和数据库
2.架构动静分离阶段:静态缓存+对象存储
3.架构分布式阶段:负载均衡
4.架构数据缓存阶段:数据库缓存
5.架构扩展阶段:垂直扩展(业务拆分、读写分离、分库)
6.架构分布式+大数据阶段:水平扩展(更多Web服务器、更多SLB、分布式缓存、分布式数据库)
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/160868.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...