阿里云运维架构实践秘籍

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
对象存储 OSS,20GB 3个月
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 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、分布式缓存、分布式数据库)

目录
相关文章
|
1天前
|
运维 Cloud Native 持续交付
云原生架构的演进与实践####
【10月更文挑战第16天】 云原生,这一概念自提出以来,便以其独特的魅力和无限的可能性,引领着现代软件开发与部署的新浪潮。本文旨在探讨云原生架构的核心理念、关键技术及其在实际项目中的应用实践,揭示其如何帮助企业实现更高效、更灵活、更可靠的IT系统构建与管理。通过深入剖析容器化、微服务、持续集成/持续部署(CI/CD)等核心技术,结合具体案例,本文将展现云原生架构如何赋能企业数字化转型,推动业务创新与发展。 ####
79 47
|
1天前
|
设计模式 负载均衡 Kubernetes
解密微服务架构:从理论到实践
在这篇文章中,我们将深入探讨微服务架构的核心概念,并通过一个实际案例来展示如何在现实世界中构建和部署一个微服务系统。文章将从微服务的定义开始,逐步介绍其优势、挑战、设计模式、以及如何使用现代技术栈来实现微服务架构。
|
1天前
|
Cloud Native Go API
Go语言在微服务架构中的创新应用与实践
本文深入探讨了Go语言在构建高效、可扩展的微服务架构中的应用。Go语言以其轻量级协程(goroutine)和强大的并发处理能力,成为微服务开发的首选语言之一。通过实际案例分析,本文展示了如何利用Go语言的特性优化微服务的设计与实现,提高系统的响应速度和稳定性。文章还讨论了Go语言在微服务生态中的角色,以及面临的挑战和未来发展趋势。
|
2天前
|
负载均衡 监控 Cloud Native
云原生架构下的微服务治理策略与实践####
在数字化转型加速的今天,云原生技术以其高效、灵活、可扩展的特性成为企业IT架构转型的首选。本文深入探讨了云原生环境下微服务治理的策略与实践路径,旨在为读者提供一个系统性的微服务治理框架,涵盖从服务设计、部署、监控到运维的全生命周期管理,助力企业在云端构建更加稳定、高效的业务系统。 ####
|
1天前
|
Java 持续交付 微服务
后端开发中的微服务架构实践与挑战####
本文深入探讨了微服务架构在现代后端开发中的应用,通过具体案例分析,揭示了其如何助力企业应对业务复杂性、提升系统可维护性和可扩展性。文章首先概述了微服务的核心概念及其优势,随后详细阐述了实施微服务过程中的关键技术选型、服务拆分策略、容错机制以及持续集成/持续部署(CI/CD)的最佳实践。最后,通过一个真实世界的应用实例,展示了微服务架构在实际项目中的成功应用及其带来的显著成效。 ####
|
2天前
|
运维 自然语言处理 开发者
作为一名运维人员,使用通义灵码个人版处理日常工作中的代码相关任务,极大地提升了我的工作效率。以下是我使用通义灵码的具体实践场景、效果和心得,以及相应的截图。
作为一名运维人员,我使用通义灵码处理日常工作中的代码任务,效率提升了30%。通义灵码帮助我快速理解复杂代码、生成准确的代码注释,并能从自然语言生成代码示例,大幅减少了代码编写和理解的时间。
16 2
|
1天前
|
负载均衡 监控 API
后端开发中的微服务架构实践
【10月更文挑战第15天】 在当今的软件开发领域,微服务架构已成为一种流行的技术趋势。本文将探讨微服务架构的基本概念、优势以及在实际后端开发中的应用。我们将通过具体案例分析,了解如何设计和实现一个高效的微服务系统,以及如何应对在实施过程中可能遇到的挑战。
12 1
|
10天前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
32 4
|
6天前
|
存储 运维 监控
高效运维:从基础架构到自动化管理的全面指南
【10月更文挑战第11天】 本文将深入探讨如何通过优化基础架构和引入自动化管理来提升企业IT运维效率。我们将从服务器的选择与配置、存储解决方案的评估,到网络的设计与监控,逐一解析每个环节的关键技术点。同时,重点讨论自动化工具在现代运维中的应用,包括配置管理、持续集成与部署(CI/CD)、自动化测试及故障排除等方面。通过实际案例分析,展示这些技术如何协同工作,实现高效的运维管理。无论是IT初学者还是经验丰富的专业人员,都能从中获得有价值的见解和实操经验。
17 1
|
8天前
|
运维 监控 测试技术
构建高效运维体系:从监控到自动化的实践之路
【10月更文挑战第9天】 在当今信息技术飞速发展的时代,运维作为保障系统稳定性与效率的关键角色,正面临前所未有的挑战。本文将探讨如何通过构建一个高效的运维体系来应对这些挑战,包括监控系统的搭建、自动化工具的应用以及故障应急处理机制的制定。我们将结合具体案例,分析这些措施如何帮助提升系统的可靠性和运维团队的工作效率。
23 1

热门文章

最新文章