1. 前言

当我们决定选用Azure云服务的时候, 最大的困难是如何从Azure的100多个服务中, 选择正确的服务。

下述的几个问题, 可以很好的帮助你缩小业务对应服务的选择范围。

2. 你准备如何部署运行你的应用

Azure提供了多种模式来部署应用, 我们可以通过3个问题来确认答案。

2.1 服务的控制级别

Azure服务提供了许多不同级别的控制。从各个方面都可以完全控制的虚拟机,到很少控制的SaaS解决方案。

重点是,您的控制级别越高,意味着需要维护的内容就越多,这意味着更多的成本。找到控制级别与维护成本的最佳平衡点至关重要?

  • 基础架构即服务 (IaaS)
    • 消费者负责硬件以外的一切

例如 Azure VM、AKS

  • 平台即服务 (PaaS)
    • 使用者负责应用配置、构建应用和服务器配置

例如 Azure App Service

  • 功能即服务 (FaaS) – 逻辑
    • 负责应用配置和构建应用的使用者

例如 Azure Functions、Azure Logic Apps

  • 软件即服务 (SaaS)
    • 使用者仅负责应用配置

例如 App Configuration

不同级别的Azure服务

2.2 需要在哪里运行应用

  • Azure
  • 本地部署
  • 其他平台,例如AWS,Netlify,GitHub页面
  • 混合云

2.3 运行频率

  • 一直运行

经典(按月付费),例如 Azure App Service、Azure VM、AKS

  • 偶尔运行

无服务器(按执行付费),例如 Azure Functions、Azure Logic Apps

3. 如何存储数据

Azure 有大量方法来存储数据, 用于日常应用程序的数据与用于复杂报告的数据有非常不同的存储要求 。因此,要正确处理,请提出2个问题。

3.1 数据将如何使用

数据可以分为两类:

  • 联机事务处理 (OLTP)

用于一般应用用途,例如存储客户数据、发票数据、用户数据等

  • 在线分析处理

用于数据分析,例如报告

3.2 将存储什么类型的数据?

  • 关系数据,例如完全标准化的数据库
  • 非结构化数据,例如文档数据、图形数据、键/值数据

4. 案例

这些问题可以应用于任何场景,但这里有一个例子:

假设您有一个基于React的学习管理系统,它包含了公司、用户、学习和学习模块。此外,用户可以根据需要使用可变数量的自定义字段、图像、视频、文档和其他内容构建学习项目。

它需要每天运行的计划作业,获取所有用户数据并将其放入数据库进行报告。此报告数据库需要能够存储来自许多不同来源的数据并处理数十亿条记录。

4.1 Q1:应用程序 - 在哪里运行应用程序?

控制 - 客户不需要微调控制,但需要为网站配置一些服务器设置。

位置 - 应用需要在 Azure 中运行。

频率 - 计划作业偶尔运行(每天一次…),而网站需要始终运行。

4.2 A1:应用程序 - 最好的 Azure 服务是

  • 网站的 Azure 应用服务,因为它是提供服务器配置和持续可用性的 PaaS 产品/服务
  • 计划作业的 Azure 函数,因为它只是偶尔运行,不需要服务器配置

4.3 Q2:数据 - 如何存储?

目的 - 用于日常使用的数据主要是事务性的,而报告数据更多地用于数据分析。

结构 - 除变量学习项外,数据大多是结构化的。

4.4 A2:数据 - 最好的 Azure 服务是

  • 用于主要日常使用的 Azure SQL
  • 用于变量学习项的 CosmosDB
  • Azure Synapse for the Data Analytics