第2章:云平台基础:主流云平台介绍与核心服务
各位同学,今天我们来聊聊云平台的基础。说实话,很多刚入行的朋友一上来就盯着Kubernetes、Serverless这些高级概念,结果连最基本的云服务都搞混了。我个人习惯是,先把地基打牢,再往上盖楼。
这一章,我会带大家看看三大主流云平台——AWS、Azure、阿里云,以及它们的核心服务。嗯,这里要注意,我不打算罗列所有产品,那没意义。咱们聚焦在计算、存储、网络这三驾马车上,顺便聊聊API怎么玩。
2.1 三大主流云平台概览
先说说我自己的经历。我最早接触的是AWS,那时候还在做创业项目,图它生态成熟。后来去了一家外企,客户指定用Azure,因为跟微软的Active Directory集成得好。再后来回国做项目,发现阿里云在国内的合规性和网络覆盖确实有优势。
你想想看,选平台其实跟选工具一样,没有绝对的好坏,只有合不合适。我建议你至少熟悉两个平台,这样跳槽或者换项目时,心里不慌。
| 维度 | AWS | Azure | 阿里云 |
|---|---|---|---|
| 全球覆盖 | 30+区域,最广 | 60+区域,企业级强 | 20+区域,亚太领先 |
| 核心优势 | 生态丰富,社区庞大 | 微软系集成,混合云 | 国内合规,性价比高 |
| 计算服务 | EC2 | Virtual Machines | ECS |
| 对象存储 | S3 | Blob Storage | OSS |
| API风格 | RESTful + JSON | RESTful + JSON | RESTful + JSON |
2.2 核心服务:计算
计算是云平台的灵魂。说白了,就是给你一台虚拟机,让你在上面跑代码。但云平台可不止这么简单。
AWS EC2 是我用得最多的。我记得有一次帮客户做弹性伸缩,业务流量白天高晚上低。我配置了自动伸缩组,白天跑10台c5.large,晚上缩到2台。结果客户一看账单,直接省了40%的成本。嗯,这就是云计算的价值——按需付费。
Azure Virtual Machines 跟EC2类似,但它跟Windows生态的集成更好。如果你公司用Active Directory做统一认证,那Azure简直是绝配。
阿里云 ECS 在国内的体验很好。我做过一个电商项目,双11大促时,ECS配合弹性伸缩,扛住了平时10倍的流量。而且阿里云的控制台是中文的,对国内团队很友好。
- 计算实例的选择:通用型(如t3.medium)适合Web服务器;计算型(如c5.large)适合批处理;内存型(如r5.large)适合数据库。
- 弹性伸缩:这是云计算的杀手锏,一定要学会配置自动伸缩策略。
- 镜像:用自定义镜像可以快速部署环境,我习惯把基础环境打包成AMI或镜像文件。
2.3 核心服务:存储
存储这块,我重点讲对象存储。为什么?因为它是云存储的基石,几乎所有云应用都离不开它。
AWS S3 是对象存储的鼻祖。我最早用S3存用户上传的图片,后来发现它还能做静态网站托管、日志归档、甚至数据湖。有一次我帮客户迁移PB级数据到S3,用了S3 Transfer Acceleration,速度提升了3倍。说实话,S3的API设计得真的很优雅,后来Azure和阿里云都在模仿它。
Azure Blob Storage 跟S3类似,但它跟Azure的CDN、机器学习服务集成得更好。如果你用Azure,Blob Storage是默认选择。
阿里云 OSS 在国内的访问速度很快。我做过一个视频点播项目,视频文件存在OSS上,配合CDN加速,用户在全国各地都能流畅播放。而且OSS的防盗链功能很实用,可以防止别人盗用你的资源。
2.4 核心服务:网络
网络是云平台的血管。没有网络,计算和存储就是孤岛。
虚拟私有云(VPC) 是网络的基础。在AWS里叫VPC,Azure里叫Virtual Network,阿里云里叫VPC。它们的作用是一样的——给你一个隔离的网络环境。
我记得有一次帮客户设计微服务架构,需要把前端、后端、数据库放在不同的子网里。我在VPC里创建了三个子网:公有子网放前端,私有子网放后端,数据库子网完全隔离。然后通过安全组和网络ACL来控制流量。嗯,这样既安全又灵活。
负载均衡 也是网络的核心。AWS的ELB、Azure的Load Balancer、阿里云的SLB,都是用来分发流量的。我建议你至少掌握一种负载均衡的配置,因为它是高可用的关键。
2.5 云平台API基础
好了,终于到了API部分。为什么单独讲API?因为自动化离不开API。你想想看,如果每次都要手动点控制台,那还叫什么自动化?
三大平台的API都是RESTful风格,用JSON传数据。认证方式也类似,都是通过Access Key和Secret Key来签名请求。
下面是一个简单的例子,用AWS CLI列出S3桶里的文件:
# 配置凭证
aws configure
# 输入你的Access Key ID和Secret Access Key
# 列出桶
aws s3 ls
# 上传文件
aws s3 cp myfile.txt s3://my-bucket/
# 下载文件
aws s3 cp s3://my-bucket/myfile.txt ./
Azure和阿里云也有类似的CLI工具。我个人习惯是把这些CLI命令写成脚本,然后集成到CI/CD流水线里。比如,每次代码提交后,自动构建镜像,然后通过API更新ECS服务。
- 获取凭证:Access Key + Secret Key
- 构造请求:HTTP方法 + 资源路径 + 请求体
- 签名请求:用密钥对请求进行签名
- 发送请求:用curl或SDK发送
- 处理响应:解析JSON,处理错误
这里我特别想强调一点:错误处理。API调用一定会遇到失败,比如网络超时、权限不足、资源不存在。我建议你写代码时,一定要加重试机制和日志记录。我曾经因为没加重试,导致一个批处理任务在凌晨3点挂了,第二天才发现,数据全丢了。嗯,那教训太深刻了。
2.6 小结
这一章我们聊了三大主流云平台,以及它们的核心服务:计算、存储、网络。最后还讲了API基础。说白了,云平台就是一堆API的集合,你掌握了API,就掌握了云。
下一章,我们会深入讲自动化工具,比如Terraform和Ansible。到时候我会分享更多实战经验,敬请期待。