简介:这份文档面向企业技术人员、运维工程师及云计算初学者,系统梳理了主流云平台的核心概念与选型依据,帮助读者理解云计算平台的定义、分类与适用场景。资源共1个doc文件,压缩包约306KB,内容以文字讲解为主,结构清晰,便于快速查阅与对比。文档从云计算平台的基本定义入手,依次讲解企业采用云平台的价值、技术指标与架构组成,并重点比较阿里云、腾讯云、华为云、百度BAE、新浪SAE等国内常见平台的特点与优势。同时,对公有云、私有云、混合云三种部署形式进行优缺点分析,并补充云平台与虚拟主机的区别、计费方式等实用知识。目前已有3582人学习下载,适合需要快速建立云平台整体认知、进行技术选型参考或教学备课的读者阅读。
1. 从一份《各大云平台对比.doc》说起:选型前先把 IaaS、PaaS、SaaS 这三层掰开
上周帮一个做 SaaS 的朋友复盘架构,他张口就说“我们跑在阿里云上”,结果细问才发现,他其实只用了 ECS 和 RDS,连负载均衡都是自己拿 Nginx 硬扛的。这种把“用了云主机”等同于“上了云平台”的误解,在一线太常见了。手里这份《各大云平台对比.doc》就是冲着这个问题来的——它不是厂商白皮书,而是一份把云计算平台的定义、公有云/私有云/混合云的边界、IaaS/PaaS/SaaS 三层架构,以及阿里云、腾讯云、华为云、百度 BAE、新浪 SAE 这些国内主流平台的技术指标摊开讲的对比材料。适合正在做上云选型的运维和后端,也适合需要跟老板解释“为什么不能只比价格”的技术负责人。下面我按自己拆文档的顺序,把能直接抄的参数和容易翻车的地方过一遍。
2. 云平台三层架构怎么落到选型:IaaS、PaaS、SaaS 的边界与计费差异
2.1 三层架构不是概念,是责任划分线
文档里把云计算分成基础设施、平台、软件三层,对应 IaaS、PaaS、SaaS。这个分法看着像教科书,但落到合同和账单上就是责任划分。IaaS 层厂商管到虚拟化层,操作系统往上全是你的事;PaaS 层厂商把运行时和中间件包了,你只管扔代码;SaaS 层你连代码都不用管,直接用。我一般会拿一张表跟团队对齐,避免出现“以为买了 PaaS 结果还在自己装 MySQL”的情况。
| 层级 | 厂商负责 | 你负责 | 典型产品 |
|---|---|---|---|
| IaaS | 服务器、存储、网络、虚拟化 | OS、中间件、运行时、应用、数据 | 阿里云 ECS、腾讯云 CVM |
| PaaS | 运行时、中间件、OS | 应用、数据 | 百度 BAE、新浪 SAE |
| SaaS | 应用、数据、运行时全包 | 只管用 | 钉钉、iCloud |
这张表的价值在于:当你看到某平台宣传“一站式”时,先问清楚它到底停在哪一层。文档里提到百度 BAE 提供高并发处理能力,新浪 SAE 按 CPU、内存、磁盘精确计费,这些都属于 PaaS 的典型特征——你不需要管服务器,但代码得按它的规矩写。
2.2 计费粒度决定你月底会不会被账单吓到
文档里有一句很关键的话:云计算平台的计费和计量更加细化,会精确到多少个 CPU 时间和使用了多少 M 的存储。这跟虚拟主机的“包月一口价”是两码事。我见过一个团队用按量付费的云主机跑定时任务,结果忘记设自动释放,月底账单多出四位数。常见做法是:对稳定负载用包年包月,对突发任务用按量付费但必须配预算告警。
# 以阿里云为例,查指定实例最近一天的账单明细(需先装 aliyun CLI 并配置 AK) aliyun bss OpenApi QueryAccountBalance # 查某台 ECS 的按量付费消费 aliyun ecs DescribeInstances --RegionId cn-hangzhou --InstanceIds '["i-bp1xxxx"]'第一行查账户余额,第二行拉实例信息。参数里RegionId必须和实例所在地域一致,否则返回空。逻辑说明:先确认余额和实例状态,再结合账单控制台的“分账账单”按标签过滤,才能定位到具体哪个项目在烧钱。文档里没写这些命令,但这是把“计费细化”落到实操的必经步骤。
2.3 公有云、私有云、混合云的选择不是拍脑袋
文档把三种模式讲得很清楚:公有云便宜但安全合规受限,私有云安全但贵且远程访问难,混合云灵活但整合复杂。我的经验是,先看数据敏感级别,再看流量峰谷差。如果业务有明显季节性(比如零售大促),混合云把峰值丢到公有云、常态跑在私有云,确实划算。但文档也提醒了,混合云的基础设施之间会出现兼容性问题——我踩过的坑是私有云的 VPC 网段和公有云撞了,导致专线打通后路由冲突,排查了一整晚。
提示:选混合云之前,先把两边 VPC 的 CIDR 列出来对一遍,重叠的网段必须提前改掉,否则后面加路由规则会非常痛苦。
3. 云主机、云网络、云存储的技术指标怎么读:从 16 核 128G 到三副本 99.99%
3.1 云主机规格:别只看核数和内存
文档 4.1 节列了云主机的基础要求:支持 16 核 128G、32 核 128G 等大规格,支持垂直伸缩(升降 CPU 内存)和水平伸缩(API 创建销毁),底层分布式存储三副本,数据可靠性不低于 99.99%,普通云主机单盘吞吐量 ≥40MBps,高性能 ≥280MBps。这些数字里,最容易被忽略的是“三副本”和“吞吐量”。三副本意味着你写一份数据,后台实际存了三份,任何一份损坏自动修复;吞吐量则直接决定你的数据库能不能扛住批量写入。
我一般会按这个顺序核对云主机是否达标:
- 确认规格族是否支持你需要的 CPU 内存比(计算型、通用型、内存型)。
- 确认磁盘类型:普通云盘还是 SSD,吞吐量是否满足业务峰值。
- 确认快照和备份策略:文档要求提供任意时刻磁盘快照和基于快照的快速恢复。
- 确认在线迁移能力:物理机故障时云主机能否自动迁移且应用不中断。
第 4 点尤其重要。文档说“在线迁移时虚拟主机上的应用不中断,用户无感知”,这背后是热迁移技术。如果你的业务对中断极度敏感,选型时一定要问清楚厂商的迁移触发条件和实测中断时长。
3.2 云网络:VPC、VxLAN 和 900 个 VPC 的分配逻辑
文档 4.2 节给了一组硬指标:至少分配 900 个 VPC,1 个 VPC 内 vSwitch 数量 ≥24 个,虚拟云主机数量 ≥5000 个,不同租户 IP 地址段可以重复,支持 VxLAN 网络域。这组数字对做多租户 SaaS 的人特别有用——它决定了你一套云平台能隔离出多少个独立网络环境。
# 创建 VPC 和 vSwitch 的典型流程(以阿里云 CLI 为例) aliyun vpc CreateVpc --RegionId cn-hangzhou --CidrBlock 172.16.0.0/12 --VpcName prod-vpc # 返回 VpcId 后创建交换机 aliyun vpc CreateVSwitch --RegionId cn-hangzhou --CidrBlock 172.16.1.0/24 --VpcId vpc-bp1xxxx --ZoneId cn-hangzhou-b第一行创建 VPC,CidrBlock是网段,建议用 172.16.0.0/12 这种大段方便后续划分。第二行在指定可用区创建 vSwitch,ZoneId必须和 VPC 地域一致。逻辑说明:先有 VPC 再有 vSwitch,vSwitch 是实际挂载云主机的子网。参数上,CidrBlock不能和已有 VPC 重叠,否则报错。文档里提到“不同租户 IP 地址段可以重复”,这是 VPC 隔离带来的好处,但前提是每个租户独立 VPC,别混用。
3.3 云存储:对象存储和块存储的选型分界线
文档 4.3 节要求不少于 1PB 对象存储和 500TB 块存储,支持分片并发上传、断点续传、共享链接过期时间、RESTful 接口、三副本压缩存储。对象存储适合图片、视频、文档这类非结构化数据,块存储适合数据库和虚拟机磁盘。我见过有人把数据库文件直接扔对象存储,结果 IO 延迟高到无法忍受——这是典型的选型错误。
注意:对象存储的 RESTful 接口虽然方便,但每次请求都有网络开销,不适合高频小文件读写。数据库场景老老实实用块存储。
4. 阿里云、腾讯云、华为云、百度 BAE 怎么比:从文档里的厂家对比到实际压测
4.1 文档里的厂家描述与我的核对方法
文档 1.3 节列了阿里云、百度 BAE、新浪 SAE、腾讯云、华为云、盛大云、微软 Azure。摘要里说“阿里云计算和存储最强,百度 BAE 安全可靠最好,腾讯云网络和扩展性最好,华为云综合性和整体性最好”。这种结论不能直接信,得自己压测。我的做法是:拿同一份业务镜像,在目标平台上跑一遍,重点看四个指标——CPU steal time、磁盘 IOPS、内网延迟、快照恢复耗时。
# 在云主机上快速采集 CPU steal 和磁盘 IO(Linux) top -bn1 | grep '%Cpu' # 看 steal 占比,越高说明宿主机争抢越严重 fio --name=randwrite --ioengine=libaio --rw=randwrite --bs=4k --numjobs=4 --size=1G --runtime=60 --group_reporting第一行看 CPU 的 steal 值,如果超过 5%,说明你的虚拟机在跟邻居抢物理核。第二行用 fio 压磁盘随机写,bs=4k模拟数据库场景,numjobs=4模拟并发。逻辑说明:这两个命令组合能在十分钟内判断一台云主机的真实性能底线。参数上,runtime=60表示压 60 秒,size=1G是测试文件大小,别设太小否则测不出稳定值。
4.2 负载均衡和数据库服务的对比要点
文档 4.6 节讲负载均衡:支持 4 层和 7 层、加权轮询 WRR、最小连接数 WLC、健康检查、Session 保持、源 IP 白名单、弹性扩容。4.5 节讲数据库 DBaaS:MySQL 即开即用、主从热备、读写分离、SQL 审计、慢 SQL 优化。这两块是选型时差异最大的地方。阿里云 SLB 和腾讯云 CLB 在 7 层转发规则上各有侧重,华为云 ELB 在混合云场景下跟自家私有云联动更顺。数据库方面,文档要求“主库故障自动切换并快速生成新备库”,这个切换时间一定要在测试环境实测,别信宣传页的“秒级”。
| 对比项 | 阿里云 | 腾讯云 | 华为云 |
|---|---|---|---|
| 负载均衡 | SLB,支持 WRR/WLC | CLB,支持加权轮询 | ELB,混合云联动 |
| 数据库 | RDS MySQL 主从热备 | TencentDB 读写分离 | RDS 主备切换 |
| 对象存储 | OSS,分片上传 | COS,断点续传 | OBS,三副本 |
| 适用场景 | 电商、大数据 | 社交、游戏 | 政企、混合云 |
这张表是根据文档描述整理的,实际选型还要结合你的业务地域、合规要求和预算。文档里提到的“盛大云”“微软 Azure”在国内场景下用得少,这里不展开。
4.3 备份和安全的硬指标怎么验
文档 4.7 节要求备份支持 Windows、Linux、AIX 在线完全及增量备份,支持原机异机恢复,支持 VMware 无客户端备份,支持重复数据删除和远程复制。4.8 节要求云安全管理平台包含主机防御、漏洞扫描、安全审计,主机密码暴力破解防御要能封禁 IP 24 小时并短信邮件通知。这些功能不能只看列表,要实际点一遍。我一般会做三件事:建一个测试实例,故意输错密码看是否触发封禁;上传一个已知漏洞的样本看扫描器是否报警;删掉一个文件看备份能否异机恢复。
提示:备份的“异机恢复”一定要在测试环境走一遍完整流程,很多平台的原机恢复很快,异机恢复却因为驱动或网络配置卡住。
5. 避坑与排查:上云选型时最容易翻车的五个地方
5.1 现象:云主机磁盘 IO 忽高忽低,数据库查询超时
原因:宿主机上其他虚拟机在抢磁盘 IO,你的云盘吞吐量被挤占。文档里写了普通云主机 ≥40MBps、高性能 ≥280MBps,但这是理论值,实际受邻居影响。 解决:用 fio 压测确认基线,如果波动超过 30%,换独享型实例或把数据库迁到 ESSD 云盘。
5.2 现象:VPC 内云主机无法访问同地域另一个 VPC 的数据库
原因:VPC 之间默认隔离,文档 4.2 节明确说“不同用户的虚拟云主机提供网络隔离机制”。你以为同地域就通,其实不通。 解决:用云企业网或对等连接打通 VPC,或者把数据库放到同一个 VPC 内。配置对等连接时注意两端路由表都要加条目。
5.3 现象:按量付费实例忘记释放,月底账单暴涨
原因:文档提到计费精确到 CPU 时间和存储 M 数,按量付费没有“自动关机”默认值。 解决:给所有按量实例打标签,配预算告警,或者用弹性伸缩组设置最大实例数。我一般会在创建脚本里强制加--AutoReleaseTime。
5.4 现象:对象存储分片上传大文件失败,报 403
原因:分片上传的临时凭证过期,或者 Bucket 权限没配好。文档 4.3 节要求支持分片并发上传和断点续传,但没提凭证刷新。 解决:检查 STS 临时凭证的有效期,确保上传过程中自动刷新;Bucket 策略里允许oss:PutObject和oss:AbortMultipartUpload。
5.5 现象:负载均衡健康检查正常,但后端服务仍收到异常请求
原因:健康检查只测了 TCP 端口,没测应用层返回码。文档 4.6 节说“自动隔离异常状态虚拟主机”,但默认健康检查可能太宽松。 解决:把健康检查改成 HTTP 模式,指定一个返回 200 的路径,并设置合理的超时和重试次数。
6. 把对比文档变成可执行的选型清单:我的压测脚本和决策习惯
文档最后一章讲的是安全整体管控,但我想把落点放在“怎么用这份文档做决策”。我的习惯是:拿到任何一份云平台对比材料,先抽出可量化的指标,做成一张打分表,然后用脚本跑一遍真实业务。下面是我常用的压测脚本框架,针对文档里提到的云主机、云网络、云存储三个维度。
# cloud_bench.py - 云平台基础压测脚本(需在目标云主机上运行) import subprocess, time, json def cpu_steal(): out = subprocess.check_output("top -bn1 | grep '%Cpu'", shell=True).decode() steal = float(out.split(',')[7].strip().replace('st', '')) return steal def disk_iops(): subprocess.run("fio --name=randread --ioengine=libaio --rw=randread --bs=4k --numjobs=4 --size=512M --runtime=30 --group_reporting --output-format=json --output=fio.json", shell=True) with open("fio.json") as f: data = json.load(f) return data["jobs"][0]["read"]["iops"] def net_latency(target="www.aliyun.com"): out = subprocess.check_output(f"ping -c 10 {target}", shell=True).decode() return out.split("rtt min/avg/max/mdev = ")[1].split("/")[1] if __name__ == "__main__": print(f"CPU steal: {cpu_steal()}%") print(f"Disk IOPS: {disk_iops()}") print(f"Net avg latency: {net_latency()} ms")这段脚本做三件事:cpu_steal解析 top 输出拿到 steal 百分比,disk_iops用 fio 跑随机读并解析 JSON 结果,net_latency用 ping 测平均延迟。参数上,bs=4k和numjobs=4模拟数据库并发,runtime=30控制测试时长。逻辑说明:三个指标分别对应文档里的计算、存储、网络能力,跑完一轮就能对平台有个底。注意 fio 需要提前安装,ping 目标换成你自己的业务域名更有参考价值。
拿到这些数据后,我会跟文档里的硬指标对照:如果 steal 超过 5%,说明计算资源争抢严重;如果 IOPS 低于文档承诺的吞吐量换算值,就要考虑换盘型;如果内网延迟超过 1ms,跨可用区部署就要谨慎。这套流程我跑了三年,最大的教训是:别在业务上线后才做压测,选型阶段花两天跑脚本,比上线后半夜被叫起来排查便宜得多。从那以后我每次评估新平台,都强制先跑一遍这个脚本,再签合同。希望帮到你。
本文还有配套的精品资源,点击获取