阿里云运维架构实践秘籍

阿里云运维架构实践秘籍中国互联网发展编年史、运维、不同云盘单路随机写访问响应时间对比、常见数据库性能对比、常见衡量业务量级别指标、如何根据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、分布式缓存、分布式数据库)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160868.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 本土化Linux系统,科学网—linux本地化进行lefse分析 – 林国鹏的博文

    本土化Linux系统,科学网—linux本地化进行lefse分析 – 林国鹏的博文注:参考来自网络,如侵权则删。##对应于上述A-F6个模块,本地版的命令行操作示例如下#A,设置LEfSe的数据格式,详情format_input.py-h#-c,指定class的行(必须指定);-s,指定sub_class的行(可缺省);#-u,指定subject_id的行(可缺省);-o,设置归一化值,默认-1即不执行标准化#注:版本问题,有时format_in…

    2022年6月4日
    43
  • 百度分享解决https格式

    百度分享解决https格式现在的百度分享都是不支持https格式的,所以碰到https格式的就会没有效果,想要解决这个问题也很简单,只需要两步:1.https://github.com/hrwhisper/baiduShare在此网址里面下载一个static包,主要要放到项目里的根目录下,我这里用的是Yii框架,是把static包直接放到web下面了2.src=’http://bdimg.share.baidu.com…

    2022年10月8日
    0
  • JavaScript将数组拼接成一个字符串[通俗易懂]

    JavaScript将数组拼接成一个字符串[通俗易懂]将数组拼接成字符串,在JavaScript中,有两种方式。一种是Array对象提供的join()方法,另一种是Array对象提供的toString()方法。下面分别来介绍:join()定义和用法:join()方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。用法:把数组中的所有元素放入一个字符串,默认以逗号分隔vararr=[‘sun’,’moon’,’start’]console.log(arr.join())//’sun,moon,start’

    2022年5月3日
    198
  • 手游服务端架设一条龙_vm服务器

    手游服务端架设一条龙_vm服务器本文作者:smeli(俄罗斯人,于2009年完成该教程)PS:要比国内写的那些教程完整,详细,希望大家喜欢VS运行库安装………………………………………..2SQL数据库安装…………………………………………..3L2Server设置………………………………………………11GM账户创建………………………………………….15运行服务端(1)…

    2022年9月7日
    0
  • Java中static块执行时机

    Java中static块执行时机在使用static进行初始化的操作,怎么也执行不了!代码如下:public class StaticDemo { public static final String INIT = "init"; static { System.out.println("——StaticDemo—-"); }}…

    2022年2月27日
    40
  • 面试JAVA常被问到的问题(持续更新中)

    面试JAVA常被问到的问题(持续更新中)引言有的面试会被问到有没有写博客,这时候我尴尬,不知道怎么回答,所以这篇文章仅仅是把我面试JAVA的遇到的问题记录下来而已,也算是我写博客迈出的第一步,起码,以后被问到:有没有写博客?我可以回答,我写过。 (最主要的是以后换工作我不用频繁百度常见面试题了。。。。)ps1,别把我太当回事,我是个LJ;2,说得不对的地方请多多包涵,想看更详细的请百度官方文档和其他大佬的文章;3,如果有被问到…

    2022年7月9日
    19

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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