当前位置: 首页 > Microsoft Azure > 正文

Azure架构设计之选择合适的计算服务

计算资源,网络资源,存储资源三大要素构成了我们所熟知的IT世界。传统本地自建业务系统的时候,用户只需要购买对应的硬件即可,例如CPU、内存、硬盘。但是在当今的”云时代”,三大资源的使用并不是直接采购而获得,需要租用云端计算服务实现。今天主要就Azure云端计算资源做一个介绍。

IaaS、PaaS、SaaS是云端平台的三大服务模型,所以我们今天谈到的计算资源指的是Infrastructure-as-a-Service(IaaS)。

目前Microsoft Azure平台提供了一系列计算资源供用户选择:

  1. 虚拟机,允许在虚拟网络 (VNet) 内部署和管理VM,构建类似本地业务系统架构的服务器。
  2. 应用服务是托管型PaaS产品/服务,用于托管Web应用、移动应用后端、RESTful API或自动化业务流程。
  3. Service Fabric是可在多个环境(包括 Azure 或本地环境)中运行的分布式系统平台。Service Fabric是跨计算机群集的微服务业务流程协调程序。
  4. Azure容器服务使用户可以创建、配置和管理预配为运行容器化应用程序的VM 群集。
  5. Azure容器实例提供了在Azure中运行容器的最简捷方式,既无需预配任何虚拟机,也不必采用更高级的服务。
  6. Azure Functions是托管FaaS服务。借助功能即服务(Functions-as-a-Service,简称 FaaS),用户更不需要担心运行在何总计算环境。只需部署代码,服务便会自动运行它,而无需创建计算实例并向其部署代码。无需管理计算资源。这些服务使用无服务器体系结构,并且无缝地纵向扩展或减少到处理流量所需的级别。
  7. Azure Batch是一个托管服务,适用于运行大规模并行和高性能计算 (HPC) 应用程序。
  8. 云服务是用于运行云应用程序的托管服务。 它使用PaaS承载模型。

    因此,我们要考虑:

  1. 业务系统承载模型。服务承载方式是什么?此承载环境具有哪些要求和限制?
  2. DevOps。是否存在用于应用程序升级的内置支持?部署模型是什么?
  3. 可伸缩性。服务如何处理实例的添加或删除?是否能基于业务负载和其他指标自动缩放?
  4. 可用性。选择的计算资源SLA是多少?
  5. 成本。除了服务本身的成本,还要考虑管理在该服务上构建的解决方案的操作成本。例如,IaaS VM解决方案的操作成本可能更高。
  6. 每项服务的总体限制有哪些?
  7. 哪类业务系统架构适用于此服务?

 

    如下流程图是一个很好的范例,该流程图能够帮助我们选择合适的计算服务。


以下是整理好的,用于帮助大家快速查询的选择Azure计算服务的条件

托管实例模型

条件

虚拟机

应用服务

Service Fabric

Azure Functions

Azure Kubernetes Service

容器实例

Azure Batch

应用程序组合

不可知

应用程序、容器

服务、来宾可执行文件、容器

函数

容器

容器

计划的作业

密度

不可知

每个实例多个应用(遵循应用服务计划)

每个 VM 多个服务

无服务器

(如果使用消耗计划。如果使用应用服务计划,Functions 在为应用服务计划分配的 VM 上运行)

一个节点多个容器

无专用实例

每个VM多个应用

最小节点数

1(具有两个或多个实例的更高版本SLA。)

1

5(建议用于生产环境)

无服务器

(如果使用消耗计划。如果使用应用服务计划,Functions 在为应用服务计划分配的 VM 上运行)

3(建议用于生产环境)

无专节点

1(作业完成后可以缩小至零。)

状态管理

无状态或有状态

无状态

无状态或有状态

无状态

无状态或有状态

无状态

无状态

Web托管

不可知

内置

不可知

不适用

不可知

不可知

是否可部署到专用 VNet?

支持

支持(需要应用服务环境 (ASE))

支持

受支持(需要应用服务环境 (ASE))

支持

不支持

支持

混合云连接

支持

受支持(使用Azure应用服务混合连接)

支持

受支持(需要应用服务计划)

支持

不支持

支持

DevOps

条件

虚拟机

应用服务

Service Fabric

Azure Functions

Azure Kubernetes Service

容器实例

Azure Batch

本地调试

不可知

IIS Express for ASP.NET 或 node.js (iisnode);PHP web 服务器;Azure Toolkit for IntelliJ,Azure Toolkit for Eclipse

本地节点群集

Visual Studio或Azure Functions CLI

Minikube、其他

本地容器运行时

不支持

编程模型

不可知

Web和API应用程序、后台任务的WebJobs

来宾可执行文件、服务模型、参与者模型、容器

具有触发器的Functions

不可知

不可知

命令行应用程序

应用程序更新

没有内置支持

部署槽

滚动升级(每个服务)

部署槽

滚动更新

不适用

N/A

    可伸缩性

条件

虚拟机

应用服务

Service Fabric

Azure Functions

Azure Kubernetes Service

容器实例

Azure Batch

自动缩放

VM规模集

内置服务

VM规模集

内置服务

不支持

不支持

不适用

负载均衡

Azure负载均衡器

内置并集成

Azure负载均衡器

内置并集成

内置并集成

没有内置支持

Azure负载均衡器

缩放限制

平台映像:每个VMSS1000个节点,自定义映像:每个VMSS100个节点

20个实例,应用服务环境为100个

每个VMSS100个节点

每个Function App200个实例

每个群集100个节点(默认限制)

每个订阅20个容器组(默认限制)。

20Core限制(默认限制)。

    可用性

条件

虚拟机

应用服务

Service Fabric

Azure Functions

Azure Kubernetes Service

容器实例

Azure Batch

SLA

VM规模集

内置服务

VM规模集

内置服务

不支持

不支持

不适用

多区域故障转移


VM的SLA

应用服务的SLA

Service Fabric的SLA

Azure Functions的SLA

AKS的SLA

容器实例的SLA

Azure批处理的SLA

其他

条件

虚拟机

应用服务

Service Fabric

Azure Functions

Azure Kubernetes Service

容器实例

Azure Batch

SSL

已在VM中配置

支持

支持

支持

入口控制器

使用挎斗容器

支持

成本

VM价格

应用服务定价

Service Fabric定价

Azure Functions价格

AKS价格

容器价格

Azure批处理架构

架构

N层HPC

Web队列N层

微服务事件驱动

微服务事件驱动

微服务事件驱动

微服务、任务自动化、批处理作业

HPC

本文固定链接: http://365vcloud.net/2019/01/22/choosing-the-right-computing-service-in-azure/ | Eric的学习之路

该日志由 TingXu 于2019年01月22日发表在 Microsoft Azure 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: Azure架构设计之选择合适的计算服务 | Eric的学习之路
关键字:

Azure架构设计之选择合适的计算服务:等您坐沙发呢!

发表评论

您必须 [ 登录 ] 才能发表留言!