阿里云运维架构实践秘籍

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
简介: 1. 中国互联网发展编年史2. 运维3. 不同云盘单路随机写访问响应时间对比4. 常见数据库性能对比5. 常见衡量业务量级别指标6. 如何根据PV估算服务器数量?7. 不同业务特性计算模型8. PV量和服务器配置/RDS配置对应表9. 服务器CPU/内存配置模型10. 云盘空间选择11. 宽带的选择12. 共享文件存储的方法13. OSS文件管理14. OSS数据迁移15. 缓存16. Session管理六种策略17. 分库分表18. 云迁移步骤19. 监控方案20. 云端安全21. 架构阶段
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、分布式缓存、分布式数据库)

目录
相关文章
|
3天前
|
存储 监控 API
构建高效微服务架构:后端开发的现代实践
【5月更文挑战第9天】 在本文中,我们将深入探讨如何在后端开发中构建一个高效的微服务架构。通过分析不同的设计模式和最佳实践,我们将展示如何提升系统的可扩展性、弹性和维护性。我们还将讨论微服务架构在处理复杂业务逻辑和高并发场景下的优势。最后,我们将分享一些实用的工具和技术,以帮助开发者实现这一目标。
|
3天前
|
消息中间件 运维 Kubernetes
构建高效自动化运维体系:Ansible与Kubernetes的融合实践
【5月更文挑战第9天】随着云计算和微服务架构的普及,自动化运维成为确保系统可靠性和效率的关键。本文将深入探讨如何通过Ansible和Kubernetes的集成,构建一个强大的自动化运维体系。我们将分析Ansible的配置管理功能以及Kubernetes容器编排的优势,并展示如何将二者结合,以实现持续部署、快速扩展和高效管理现代云原生应用。文章还将涵盖实际案例,帮助读者理解在真实环境下如何利用这些工具优化运维流程。
|
3天前
|
弹性计算 数据库 Docker
学习阿里云架构设计知识2-wp搭建及配置
VPC分区清晰架构,VSW网络分隔,CEN连通VPC,按量付费小规格,均衡策略,ESS/ACK内置SNAT,ECS用NAT上网。建DMZ需VPC、VSW、NAT、EIP。主系统多VPC/VSW配ECS和Redis,CEN全连接。CEN设路由表,外网访问设DMZ、CEN、EIP,加堡垒机。Web系统ACR部署WordPress,配数据库。验证WordPress、弹性伸缩,测外访、发文、负载。含架构图。
30 1
学习阿里云架构设计知识2-wp搭建及配置
|
1天前
|
运维 Cloud Native 持续交付
构建未来:云原生架构的演变与实践
【5月更文挑战第17天】 在数字化转型的浪潮中,企业正迅速采用云原生技术来构建和部署应用程序。本文将深入探讨云原生架构的核心概念、发展历程以及如何在现代IT环境中实现敏捷、可扩展和高效的服务。通过对容器化、微服务、持续集成和持续部署(CI/CD)等关键技术的分析,我们将揭示如何利用云原生方法论来优化资源利用、加快产品上市速度,并提高系统的可靠性。
11 3
|
1天前
|
运维 Oracle 容灾
Oracle dataguard 容灾技术实战(笔记),教你一种更清晰的Linux运维架构
Oracle dataguard 容灾技术实战(笔记),教你一种更清晰的Linux运维架构
|
2天前
|
边缘计算 负载均衡 网络协议
B站千万级长连接实时消息系统的架构设计与实践
本文将介绍B站基于golang实现的千万级长连接实时消息系统的架构设计与实践,包括长连接服务的框架设计,以及针对稳定性与高吞吐做的相关优化。
21 9
|
3天前
|
运维 监控 算法
构建高效自动化运维体系的实践与思考
【5月更文挑战第15天】 随着信息技术的飞速发展,企业对IT运维管理的要求越来越高。传统的手动运维已无法满足日益增长的业务需求,因此,构建一个高效、可靠且易于管理的自动化运维体系变得至关重要。本文将探讨在现代企业环境中,如何通过一系列策略和技术手段实现运维自动化,以及在此过程中可能遇到的挑战和解决方案。文章将基于实际案例分析,提供一种系统性的思考框架,帮助读者理解和构建适合自己的自动化运维体系。
|
3天前
|
运维 资源调度 监控
构建高效自动化运维流程的策略与实践
【5月更文挑战第15天】 在现代IT基础设施管理中,自动化运维已成为提高效率、确保稳定性和快速响应变化的关键。本文将探讨构建高效自动化运维流程的策略与实践,重点在于如何通过一系列切实可行的步骤实现从人工密集型到自动化驱动的转变。我们将讨论工具选择、流程设计、最佳实践以及持续改进的重要性,旨在帮助读者构建一个既灵活又可靠的自动化运维环境。
28 3
|
3天前
|
消息中间件 Go API
基于Go语言的微服务架构实践
随着云计算和容器化技术的兴起,微服务架构成为了现代软件开发的主流趋势。Go语言,以其高效的性能、简洁的语法和强大的并发处理能力,成为了构建微服务应用的理想选择。本文将探讨基于Go语言的微服务架构实践,包括微服务的设计原则、服务间的通信机制、以及Go语言在微服务架构中的优势和应用案例。
|
3天前
|
运维 监控 Kubernetes
构建高效自动化运维体系:基于容器技术的持续集成与持续部署(CI/CD)实践
【5月更文挑战第15天】 随着云计算和微服务架构的普及,传统的IT运维模式面临转型压力。为提高软件交付效率并降低运维成本,本文探讨了利用容器技术实现自动化运维的有效策略。重点分析了在持续集成(CI)和持续部署(CD)流程中,容器如何发挥作用,以及它们如何帮助组织实现敏捷性和弹性。通过具体案例研究,文章展示了容器化技术在自动化测试、部署及扩展中的应用,并讨论了其对系统稳定性和安全性的影响。