阿里云运维架构实践秘籍

阿里云运维架构实践秘籍中国互联网发展编年史、运维、不同云盘单路随机写访问响应时间对比、常见数据库性能对比、常见衡量业务量级别指标、如何根据PV估算服务器数量?、不同业务特性计算模型、PV量和服务器配置/RDS配置对应表、服务器CPU/内存配置模型、云盘空间选择、宽带的选择、共享文件存储的方法、OSS文件管理、OSS数据迁移、缓存、Session管理六种策略、分库分表、云迁移步骤、监控方案、运维的发展阶段、传统运维痛点、云服务供应商排行、黑客常见入侵步骤、架构阶段、云端运维安全、黑客常见系统层攻击

大家好,又见面了,我是你们的朋友全栈君。

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. 运维

运维的发展阶段

  1. 人工阶段
  2. 脚本和工具阶段
  3. 平台化阶段
  4. 智能化阶段

传统运维痛点

  1. 有一定技术门槛
  2. 7*24小时响应中心
  3. 成本

云服务供应商排行:

参考链接: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. 云迁移步骤

  1. 项目启动
  2. 系统架构梳理评估
    2.1 加入SLB保障架构灵活扩展性
    2.2 采用TCP层SLB保障性能
    2.3 采用低成本高效率按量带宽
    2.4 数据库优先采用RDS,低成本高效率
  3. 迁移方案
  4. 迁移实施
    4.1 域名备案
    4.2 镜像打包
    4.3 自动化运维工具
  5. 迁移测试
  6. 上线割接

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账号...

(0)


相关推荐

  • PO模式之无模式

    PO模式之无模式目标1.深入理解方法封装的思想2.能够使用方法封装的思想对代码进行优化3.深入理解PO模式的思想4.熟练掌握PO模式的分层思想PO模式学习思路采用版本迭代的方式来学习,便于对不同版本的优缺点进行对比和理解。V1:不使用任何设计模式和单元测试框架V2:使用UnitTest管理用例V3:使用方法封装的思想,对代码进行优化…

  • HTML5快速设计网页[通俗易懂]

    HTML5快速设计网页目录一、认识web开发和软件安装二、使用HTML/HTML5搭建页面骨架一、认识web开发和软件安装1、认识网页:商城网页比较经典,比如京东,淘宝、小米商城还有锤子官网等有图片、文字还有一些多媒体组合而成的。我们还需要善于观察然后模仿成自己的2、网站:由多个网页组织在一起而成的,网页和网页之间是有联系的。就像蜘蛛网一样织成一张大网3、用户眼中…

  • NOIP 2012 文化之旅 题解[通俗易懂]

    NOIP 2012 文化之旅 题解[通俗易懂]来水一篇题解,我看洛谷上说的这道题的数据特别水,于是就写了很水的做法。题目:P1078[NOIP2012普及组]文化之旅-洛谷|计算机科学教育新生态(luogu.com.cn)题目背景本题是错题,后来被证明没有靠谱的多项式复杂度的做法。测试数据非常的水,各种玄学做法都可以通过(比如反着扫),不代表算法正确。因此本题题目和数据仅供参考。题目描述有一位使者要游历各国,他每到一个国家,都能学到一种文化,但他不愿意学习任何一种文化超过一次(即如果他学习了某种文化,则他就不能到达其

  • django mysqlclient_MySQL无法安装

    django mysqlclient_MySQL无法安装mac系统安装mysqlclient时,会报错OSError:mysql_confignotfound解决办法在项目路径下输入以下内容PATH="$PATH":/usr

  • git命令大全(非常齐全)[通俗易懂]

    git命令大全(非常齐全)[通俗易懂]git命令大全

  • Java学习之JavaWeb篇[通俗易懂]

    Java学习之JavaWeb篇[通俗易懂]讲解了什么是Javaweb,以及如何去搭建一个网站

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号