首页 / 资讯中心 / 文章详情

微软云计算 Windows Azure 基础教程:云服务器创建、PaaS 迁移与避坑

微软云计算 Windows Azure 基础教程:云服务器创建、PaaS 迁移与避坑 ★ FEATURED ARTICLE
先说个我自己的经历。早年做项目部署最怕的不是写代码而是“等机器”。申请一台服务器走流程等审批运气好一周碰上流程繁琐的半个月就过去了。机器到了之后装系统装环境调网络配端口动不动再折腾两天。后来我开始把业务往微软云计算 Windows Azure 上迁这个“等机器”的环节直接消失了登录门户点几下几分钟就给你一台配置好系统的虚拟机不用了点一下释放成本就停了。这篇文章是系列的第一篇我会从 Azure 到底是什么、怎么上手、怎么创建第一台云服务器到常见坑点排查把整个过程拆开掰碎讲清楚。内容主要面向两类人一类是刚接触云计算、之前只用过传统服务器的开发者另一类是已经在用其他云平台、想横向对比 Azure 的运维同学。不管你是哪种这篇都能让你对 Azure 有个完整、可落地的认识。1. 微软云计算 Windows Azure 是什么先搞清楚它解决的问题很多人第一次听到“Windows Azure”会以为这是微软的一个“云版 Windows 操作系统”其实这是一个常见的误解。Azure 并不是一个操作系统而是一个完整的云计算平台。它解决的核心问题本质上是“计算资源、存储资源和网络资源怎么按需获取”这件事。1.1 从一台物理服务器说起云平台诞生的逻辑在传统模式下你要跑一个网站或者一个后台服务需要先买一台物理服务器。这台服务器买了之后就是沉没成本业务量小了资源浪费业务量突然涨了机器算力不够又得重新采购。更麻烦的是机器总有坏的时候硬盘坏了要换、网络断了要修这些都是运维团队的工作量。云计算平台做的事情说白了就是把“服务器”这种实体资源抽象成一种可以随时申请、随时释放、按用量付费的服务。Azure 作为微软云计算平台在全球多个区域部署了大规模的数据中心里面跑着成千上万台物理服务器。你用的时候它给你分配一部分计算和存储能力表现为一台虚拟机、一个数据库实例或者一个网站托管服务你不用了把这些资源释放数据中心立刻把它们分配给其他用户。这就好比以前你想喝水要自己打井现在的做法是拧开水龙头按流量付费。水龙头后面是什么水厂怎么运转你不需要关心你只要知道自己需要多少水、打开阀门就能用这样理解 Azure 就通顺了。1.2 Azure 在云计算版图中的位置微软云计算平台在行业内属于第一梯队与亚马逊的 AWS、谷歌云并列为全球三大公有云厂商。相比 AWS 起步早、生态庞杂Azure 的一个显著优势是和企业现有技术栈的亲和度高。如果你所在的公司已经在用 Windows Server、Active Directory、SQL Server 这些微软产品线那么迁到 Azure 的学习成本和改造成本都会低很多。因为 Azure 对这些微软产品提供了原生的兼容和托管支持比如在 Azure 里可以直接创建 Windows Server 虚拟机、直接把本地 SQL Server 数据库迁移到云上的托管实例几乎不用改代码。我见过不少公司的真实路径是这样本地机房跑着 Windows Server上面部署了一批 .NET 的应用数据库用的是 SQL Server。某天机房设备老化要扩容老板一算账买新服务器加机房机位加电费不如直接迁移到 Azure 上划算。于是通过 Azure 的迁移工具把虚拟机整体搬迁上去连操作系统都不用重装业务停机窗口控制在几个小时以内这种平滑迁移能力确实是 Azure 的看家本领。1.3 Azure 的核心服务全景一张地图先搭起来Azure 提供的服务非常多官网列出来有上百项新手很容易看花眼。从我实际使用的经验看你只需要先认识四个最核心的大类后续所有的操作基本都围绕它们展开。第一类是计算服务代表产品是虚拟机Virtual Machine和应用服务App Service。虚拟机相当于云上的一台电脑你可以完全掌控它的操作系统和软件环境应用服务则是更高级别的托管方案你只管把代码部署上去底层服务器、补丁更新、负载均衡这些由平台自动处理。第二类是存储服务代表产品是 Blob 存储、文件存储和磁盘存储。Blob 存储适合存放图片、视频、备份文件这类非结构化数据文件存储提供了标准的 SMB 文件共享协议可以直接挂载到多台虚拟机上共享访问磁盘存储则是给虚拟机当系统盘和数据盘用的。第三类是网络服务包括虚拟网络、负载均衡器、DNS 服务等。虚拟网络用来在云上搭建你自己的私有网络环境控制 IP 地址划分和流量路由负载均衡器负责把用户请求分发给多台后端服务器避免单台过载。第四类是数据库服务包括 Azure SQL 数据库、数据库 for MySQL、数据库 for PostgreSQL、Cosmos DB 等。云数据库的好处是自动备份、自动高可用你不用自己搭主从复制、自己处理故障切换。把这四类服务装进脑子里后面实操的时候就不会迷路。你创建一台虚拟机实际上就是同时使用了计算服务里的虚拟机产品、存储服务里的磁盘产品、网络服务里的虚拟网卡和公网 IP 产品。2. 从注册到第一个资源组Azure 上手前的准备工作任何云平台都是先付费后使用但付费并不意味着门槛高。Azure 新用户注册时会赠送免费额度和 12 个月的免费常用服务这些额度足够你把基础流程跑一遍。我第一次注册的时候最担心的是“会不会莫名其妙被扣费”后来发现只要搞清楚订阅和资源组的关系这项风险其实可控。2.1 账户与订阅的关系用钱包来理解Azure 的账户体系分两层账户Account和订阅Subscription。账户就是你的登录凭证通常是一个微软账号或者工作单位的企业账号订阅则是计费单位你账户下所有资源产生的费用都会汇总到某个订阅的账单里。用钱包来比喻账户是身份证订阅是钱包。你可以用自己的身份证办多张银行卡每张卡就是不同的订阅分别记账。企业里常见的做法是开发环境挂一个订阅生产环境挂另一个订阅团队各自的费用独立核算互不影响。注册时需要注意一件事账号必须绑定一张国际信用卡用于验证身份即使你用的是免费额度也需要这张卡做担保。扣费逻辑是“先用量后结算”系统每天统计你的资源消耗每月生成账单从信用卡扣除。只要你不主动创建付费资源仅使用免费额度内的服务就不会产生实际扣款。2.2 资源组所有云资源的“收纳箱”接下来要认识一个 Azure 里非常核心的概念资源组Resource Group。你可以把它理解成一个收纳箱里面装着你创建的各种云资源。一个虚拟机、一块磁盘、一个公网 IP、一个虚拟网络都属于某个资源组。为什么要把资源放进组里因为云平台的资源是分散的如果没有分组管理你创建了 50 台虚拟机、30 个存储账户、20 个数据库实例会完全找不到头绪。有了资源组你可以把整个项目相关的资源装进同一个组里然后对整个组进行统一的权限管理、成本统计和生命周期操作。举个例子你做一个网站项目把它涉及的虚拟机、数据库、负载均衡器都放在名为“web-project-rg”的资源组里。等到项目下线的时候你只需要删除这个资源组Azure 会把这个组内所有资源一次性清除不需要一个个手动删除非常省事。创建资源的流程一般是这样登录 Azure 门户搜索“资源组”点击创建输入资源组名称选择一个区域点击“审阅 创建”完成。区域的选择有一个小讲究尽量选择离你的用户近的区域这样网络延迟更低。如果用户主要在国内而你使用的是国际版 Azure可以考虑东亚地区的机房如果使用由世纪互联运营的 Azure 中国区那机房就在境内。不同区域的定价也有差异选型时可以顺手对比一下。2.3 三种操作方式门户、CLI 和编程接口Azure 提供了多种操作方式新手最常用的是图形化门户Portal也就是在浏览器里打开 Azure 网站用鼠标点击完成所有操作。门户的优点是直观所有服务都做了可视化界面创建虚拟机时每一步都有引导适合学习阶段使用。当你在同一个环境重复执行操作时图形界面就略显低效了。比如你要创建 10 台配置完全一样的虚拟机用门户操作要重复 10 次表单填写而用命令行工具Azure CLI写一个循环命令几分钟就全部搞定。Azure CLI 支持 Windows、Linux 和 macOS安装后通过 az login 命令登录账号就可以在终端里创建和管理云资源。再往上一个层级是编程接口REST API和基础设施即代码工具如 Terraform、Bicep。这些主要用于自动化场景比如在持续集成流水线里自动部署环境、按计划自动创建和销毁资源。初学者不需要一开始就掌握这些但知道有这个能力层级对你规划后续的学习路径有帮助。3. 创建第一台虚拟机从选型到连接的完整实操虚拟机是 Azure 计算服务的核心产品也是大多数人接触 Azure 的第一个实操项目。这一节我带你完整走一遍创建虚拟机的流程包括选型思路、配置参数和连接方法每个步骤我都会说明为什么这么选帮你把过程吃透。3.1 第一步明确需求再动手在门户里点“创建虚拟机”之前先花两分钟想清楚三个问题你要跑什么系统预计有多少访问量数据要不要本地冗余这三个问题直接对应虚拟机的三个参数镜像、规格、磁盘类型。镜像决定操作系统和预装软件规格决定 CPU 和内存大小磁盘类型决定数据读写的速度和可靠性。如果你要部署的是 Windows 应用那镜像选 Windows Server 2019 或 2022如果是跑开源的 Web 服务或容器选 Ubuntu Server 或 CentOS 这类 Linux 发行版即可。规格方面Azure 用“几 vCPU 几 GB 内存”来描述规格比如 Standard_D2s_v3 就是 2 核 8GB 内存。对于低并发、测试用途的场景2 核 4GB 的 B2s 足够用对于正式的 Web 业务一般从 2 核 8GB 起步。磁盘类型的选择容易被新手忽略但直接影响成本和性能。Azure 磁盘分为标准 HDD、标准 SSD 和高级 SSD 三种。标准 HDD 最便宜适合存放不常访问的备份数据标准 SSD 读写性能中等日常开发测试够用高级 SSD 延迟极低、吞吐高适合跑数据库这类高 IO 业务。我的建议是系统盘用标准 SSD如果预算允许数据盘用高级 SSD这样性能和成本的配比最合理。3.2 门户创建流程一个参数一个参数地过明确需求后登录 Azure 门户在搜索栏输入“虚拟机”点击“创建”选择“虚拟机”。接下来会进入一个多步骤的表单有很多选项但关键的只有几项。资源组选择你之前创建好的那一个。虚拟机名称按自己的项目规范命名比如 web-server-01不要用 test1、aaa 这类无意义的名字。区域选择按照用户分布和预算来决定注意不同区域的虚拟机价格不同同规格机器在价格低的区域可能便宜 20% 以上。映像按照 3.1 里的选择来管理员账号和密码是重中之重建议用密钥对登录而不是密码尤其是 Linux 虚拟机安全性能好很多。磁盘页签下选择系统盘的类型和大小默认给的是 30GB 或 127GB如果系统镜像比较大可以适当增大到 64GB。网络页签下门户会自动帮你创建一个虚拟网络和子网还会帮你分配一个公网 IP。这里要注意公网 IP 是需要单独计费的而且默认创建的是动态公网 IP虚拟机重启后 IP 地址可能变化。如果你的业务需要一个固定的公网 IP需要在网络页签下选择“新建”公网 IP并将分配方式改为“静态”。管理页签下有一些默认选项最需要注意的是“关闭”按钮旁边的“使用 Azure 混合权益”选项。如果你公司已经有 Windows Server 的许可证勾选这个选项可以节省一半左右的 Windows 虚拟机费用。订阅这个权益会在计费层面判断你是否拥有本地许可证建议使用前先和公司确认清楚。所有参数填完后点击“审阅 创建”系统会做一遍校验然后显示“验证通过”。点击“创建”等待几分钟在通知栏里就能看到部署进度条。部署完成后点击“转到资源”就能看到虚拟机的概览页面上面有公网 IP 地址、DNS 名称、操作系统等信息。3.3 连接虚拟机Windows 用 RDPLinux 用 SSH虚拟机创建成功以后接下来就是连接上去操作。Windows 虚拟机的连接方式是远程桌面RDP在虚拟机概览页点击“连接”选择“RDP”系统会生成一个 .rdp 文件下载后用 Windows 自带的“远程桌面连接”程序打开输入创建时设置的管理员密码就能进入桌面。Linux 虚拟机的连接方式是通过 SSH。如果你在创建时选了“SSH 公钥”作为登录方式系统会把自动生成的私钥提供给你下载。在终端里执行 ssh azureuser你的公网IP然后指定私钥文件路径就能登录到系统。如果你选的是密码登录直接输入用户名和密码即可。这里有一个新手比较容易踩的坑连接不上。一半以上的情况不是因为你密码输错了而是安全组规则没有放行对应的端口。Azure 的网络安全组NSG相当于虚拟机外面的一道防火墙默认只放行了 SSH22 端口和 RDP3389 端口如果你在虚拟机上装了一个 Web 服务比如 Nginx 监听 80 端口外部默认是访问不了的必须在网络安全组里添加入站规则允许 80 端口从互联网访问。这个设置容易被忽略但一旦理解了排查问题就快得多。3.4 数据盘与备份设置别让数据裸奔创建虚拟机时默认只有一块系统盘。系统盘存放的是操作系统和相关配置文件不适合存放业务数据。建议单独创建一块数据盘挂载到虚拟机上用于存放数据库文件、应用日志等数据。在虚拟机的“磁盘”页签下点击“创建并附加新磁盘”设置大小和类型。数据盘创建后在 Linux 系统里需要执行 mkfs 格式化、mount 挂载操作才能使用Windows 系统里需要在“磁盘管理”工具中联机并分配盘符。这些操作完成后数据盘才能真正工作。备份方面Azure 提供了恢复服务保管库Recovery Services Vault服务可以定期对虚拟机做快照备份。创建备份策略时建议按“每日备份、保留 30 天”这种基础策略来配置成本不高但关键时刻能救你一把。我见过不止一次因为没配置备份数据库被误删后只能靠“有没有导出过 SQL 脚本”来自救的案例那场面真的很揪心。4. 用托管服务替代自建从 IaaS 到 PaaS 的进阶路线虚拟机跑起来了业务也能访问了但这只是上云的第一层。虚拟机模式俗称 IaaS基础设施即服务你拥有对操作系统和软件环境的完全控制权但同时也承担了所有运维责任打补丁、防病毒、做高可用、监控磁盘空间这些都是你自己要操心的。如果你的目标是“快速把业务跑起来、减少运维负担”那更适合你的是 PaaS平台即服务层级的服务。PaaS 的意思是平台把运行环境一并托管了你只管代码剩下的交给我。对于大部分中小团队和独立开发者从 IaaS 到 PaaS 是一条性价比非常高的路线。4.1 Azure 应用服务把网站和 API 快速跑起来应用服务App Service是 Azure 里最常用的 PaaS 产品之一。它支持多种语言和框架包括 .NET、Java、Node.js、Python、PHP也支持直接从 GitHub、Azure DevOps 或本地 Git 仓库做持续部署。使用流程是这样的在门户里搜索“应用服务”点击“创建”选择运行时栈比如 .NET 8 或 Node.js 18选择区域和定价计划。免费计划 F1 可以让你以 0 成本测试基础功能但它有配额限制CPU 时间和内存都有每日上限正式部署建议至少使用 S1 计划它提供 1 核 1.75GB 内存和 50GB 存储还自带每日 10GB 的出站流量。应用服务创建完成后Azure 会给你一个类似 your-app-name.azurewebsites.net 的默认域名。你可以通过 FTP 上传代码也可以通过 Git 把代码推送到应用服务的部署仓库。推送完成后平台自动重启应用你的网站就在几分钟内从“本地能跑”变成了“公网可访问”。这个体验比自建虚拟机然后手动装 Nginx、配置反向代理、上传代码要顺滑太多。4.2 云数据库一键搞定备份和高可用自建数据库是最累的运维工作之一。你不仅要处理安装、调参还要担心数据备份是否完整、主从切换是否可靠。用云数据库这些都会被平台接管。Azure 的数据库产品线里Azure SQL 数据库适合 SQL Server 用户Azure 数据库 for MySQL 和 for PostgreSQL 适合开源技术栈用户。创建时最关键的选择是“计算 存储”层和“冗余选项”。预算有限时可以选择“常规用途”层级它平衡了性能和成本业务对可用性要求高时选择“业务关键”层级或启用“异地冗余备份”这样即使整个区域发生故障你的数据也有备份在异地可用。我实际测试过从本地的 SQL Server 迁移到 Azure SQL 数据库微软提供的 Data Migration Assistant 工具能自动评估兼容性并生成迁移脚本。如果应用的 SQL 语法比较标准基本上改一下连接字符串就能连上云数据库迁移成本比想象中低很多。4.3 存储服务的四个子类型按场景选对存储Azure 存储Storage Account是一个大类里面包含四个子服务不同场景要用不同的子服务。Blob对象存储用于存放图片、视频、压缩包、备份文件这类非结构化数据。它支持通过 HTTPS 直接访问也可以设置 CDN 加速分发。文件存储Azure Files提供标准的 SMB 协议文件共享可以挂载到多台虚拟机上适合做共享目录。队列存储Queue Storage是一个轻量级的消息队列适合在应用组件之间传递异步消息。表存储Table Storage是一个 NoSQL 键值存储适合海量结构化数据的快速读写成本比 SQL 数据库低得多。一个常见的组合方案是这样的网站的前端代码放在应用服务里用户上传的图片存在 Blob 存储中数据库记录存在 Azure SQL 数据库中应用之间的异步任务比如发送邮件、生成报表通过队列存储来调度。这套架构的成本可控、扩展性好而且每个环节都是 Azure 的托管服务不需要你亲自维护任何一台服务器。5. 成本控制与常见问题排查这部分是花钱买来的经验云平台用起来爽但账单如果不盯紧月底看到账单数字可能会吓一跳。这一节我把自己的踩坑经历和排查方法整理出来希望能帮你少走弯路。5.1 账单是怎么算的三个最容易被忽视的计费点第一虚拟机只要处于“运行中”状态就在计费不管你里面有没有业务流量。很多人创建了虚拟机测试一下功能忘了关停一个月下来几十美元就没有了。Azure 虚拟机有两种停止方式一种是“停止”Stop相当于关机计算资源不再计费但磁盘仍需付费另一种是“停止并释放”Stop and Deallocate计算和磁盘资源都释放只保留磁盘快照费用更低。测试完用的机器建议选择“停止并释放”。第二公网 IP 是单独计费的。尤其是动态公网 IP即使你没有任何关联的虚拟机只要它存在就会每天产生少量费用。如果虚拟机已删除但网络接口还在公网 IP 也会残留。建议定期检查门户里的“公网 IP”资源列表把不用的删掉。第三存储是按照“实际占用空间”计费的而不是按磁盘分配大小。虚拟机停机后系统盘和数据盘依然在存储账户里占着空间、产生费用如果磁盘很大而只有少量数据成本会很亏。给虚拟机做快照时同样如此快照也是按照实际占用空间计费的。要有效控制成本建议从注册账号开始就设置成本预算。在 Azure 门户的“成本管理 计费”里可以设置月度预算和告警当消费达到预算的 80% 时系统会给你发邮件提醒。这个功能免费但效果非常显著能在账单失控之前起到预警作用。5.2 连接不上虚拟机按这个顺序排查“虚拟机创建好了IP 也看到了就是连不上”——我在技术社群里被问过无数次这个问题。按照以下顺序排查绝大多数情况都能解决。第一步确认虚拟机处于“运行中”状态。如果门户里显示“已停止”或“已释放”先启动虚拟机再试。第二步确认安全组NSG规则里放行了你需要的端口。如果你在 Linux 上要连 SSH检查入站规则是否允许源地址为“Internet”或你的本机 IP 访问 22 端口如果是要访问 Web检查 80 和 443 端口是否放行。第三步确认服务本身在虚拟机上监听了正确的端口。在虚拟机的控制台门户提供的“启动诊断”功能里登录系统执行 ss -lntp 查看端口监听状态确认服务没有因为配置错误而没启动。第四步如果以上都没问题检查虚拟机的网络配置确认公网 IP 是从虚拟机的网卡关联出去的而不是一个孤立的、未关联的 IP。我遇到过一个典型案例安全组规则放行没问题服务监听也没问题但外面就是连不上。最后发现是虚拟机的网卡上还绑定着一个旧的网络安全组新旧两条 NSG 规则叠加导致流量被拒。把旧的 NSG 解绑后问题立刻解决。这个排查思路后来也总结成了一个习惯一个网卡只绑一个 NSG规则越简单越不容易出错。5.3 其他典型问题速查我在使用 Azure 过程中还整理了一些高频问题的排查记录这些都属于“不查不知道、一查吓一跳”类型的问题。第一Windows 虚拟机远程桌面连上后黑屏大概率是系统的 GPU 驱动或者远程桌面服务异常可以在启动诊断里重启远程桌面服务试试看。第二创建虚拟机时报“配额不足”这是因为你的订阅在某些区域有 vCPU 配额上限可以在门户里提交配额增加申请通常几个工作日内会审核通过。第三Linux 虚拟机数据盘重启后“消失”了这是因为你没有把挂载配置写入 /etc/fstab系统重启后不会自动挂载数据盘按提示把挂载信息追加到 fstab 文件即可永久生效。问题现象可能原因解决思路无法通过 RDP/SSH 连接安全组规则未放行端口检查 NSG 入站规则确认端口开放Windows 虚机远程桌面黑屏远程桌面服务异常使用启动诊断功能重启服务创建资源报错配额不足订阅 vCPU 配额不够提交配额增加申请Linux 重启后数据盘丢失未写入 /etc/fstab编辑 fstab 添加自动挂载配置公网 IP 无法访问IP 未关联到网卡检查网卡配置重新关联 IP我自己的习惯是在做每一步关键操作时都打开“通知”面板看部署状态出现失败提示时先把鼠标悬停在错误信息上Azure 通常会在错误提示里附带资源 ID 和失败原因这两个信息对后续排查非常有用。另外新手阶段强烈建议在非生产订阅里大胆试错Azure 门户里很多服务都有“快速启动模板”可以直接部署整套环境看到真实效果后再去理解背后的配置逻辑比看文档效率高得多。这套微软云计算 Windows Azure 的基础体系就是按“理解概念、熟悉门户、动手实操、排查问题”这个节奏逐步建立的。前期多花一点时间把虚拟机、存储、网络这三个基本款玩明白后续无论是接触 Kubernetes 容器服务、函数计算还是 AI 服务都会发现它们都是建立在相同的基础能力之上的。把基本功打牢后面学什么都快。
阅读完成 · 觉得有帮助?
咨询建站