第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
我的小建议: 如果你刚开始学,从AWS入手最稳妥。因为它的文档最全,踩坑记录也最多,你遇到问题基本都能搜到答案。

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的防盗链功能很实用,可以防止别人盗用你的资源。

我曾经踩过的坑: 存储桶的权限配置一定要小心。有一次我为了图方便,把S3桶设成了公开读写,结果第二天发现被人上传了恶意文件,账单直接爆了。从那以后,我坚持用IAM角色和桶策略来控制访问,绝不偷懒。

2.4 核心服务:网络

网络是云平台的血管。没有网络,计算和存储就是孤岛。

虚拟私有云(VPC) 是网络的基础。在AWS里叫VPC,Azure里叫Virtual Network,阿里云里叫VPC。它们的作用是一样的——给你一个隔离的网络环境。

我记得有一次帮客户设计微服务架构,需要把前端、后端、数据库放在不同的子网里。我在VPC里创建了三个子网:公有子网放前端,私有子网放后端,数据库子网完全隔离。然后通过安全组和网络ACL来控制流量。嗯,这样既安全又灵活。

负载均衡 也是网络的核心。AWS的ELB、Azure的Load Balancer、阿里云的SLB,都是用来分发流量的。我建议你至少掌握一种负载均衡的配置,因为它是高可用的关键。

我的经验: 网络设计时,一定要提前规划好IP地址段。我见过太多项目因为IP地址冲突,导致后期迁移成本翻倍。建议使用10.0.0.0/8这样的私有地址段,留足扩展空间。

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服务。

API调用的核心步骤:
  1. 获取凭证:Access Key + Secret Key
  2. 构造请求:HTTP方法 + 资源路径 + 请求体
  3. 签名请求:用密钥对请求进行签名
  4. 发送请求:用curl或SDK发送
  5. 处理响应:解析JSON,处理错误

这里我特别想强调一点:错误处理。API调用一定会遇到失败,比如网络超时、权限不足、资源不存在。我建议你写代码时,一定要加重试机制和日志记录。我曾经因为没加重试,导致一个批处理任务在凌晨3点挂了,第二天才发现,数据全丢了。嗯,那教训太深刻了。

2.6 小结

这一章我们聊了三大主流云平台,以及它们的核心服务:计算、存储、网络。最后还讲了API基础。说白了,云平台就是一堆API的集合,你掌握了API,就掌握了云。

下一章,我们会深入讲自动化工具,比如Terraform和Ansible。到时候我会分享更多实战经验,敬请期待。

课后练习: 注册一个云平台账号(推荐AWS免费套餐),创建一个EC2实例,挂载一个S3桶,然后通过CLI上传一个文件。试试看,你会发现云平台其实没那么神秘。