您现在的位置是:首页 >技术交流 >[ 云计算 | Azure ] Chapter 06 | 计算服务之虚拟机、虚拟机规模集、Azure 容器、Azure App 与 Azure Functions网站首页技术交流

[ 云计算 | Azure ] Chapter 06 | 计算服务之虚拟机、虚拟机规模集、Azure 容器、Azure App 与 Azure Functions

bluetata 2024-06-08 12:00:02
简介[ 云计算 | Azure ] Chapter 06 | 计算服务之虚拟机、虚拟机规模集、Azure 容器、Azure App 与 Azure Functions

在这里插入图片描述

本系列已经更新文章列表(已更新):

前言

首先你要清楚知道,一些常见的 Azure 计算服务,比如:

  • Azure Virtual Machines (Azure VM),Azure 虚拟机
  • Azure Virtual Machine Scale Sets (VMSS),Azure的虚拟机规模集
  • Azure Container Instances (ACI),Azure 的容器服务
  • Azure Kubernetes Service (AKS),Azure 的容器编排服务
  • Azure App Services,Azure 的 App 服务
  • Azure Functions,Azure 的函数服务,也是一种 Serverless 服务

本文内容会针对这些常见的计算服务进行讲解。

一、Azure 虚拟机(VM)

1.1 虚拟化简介

在介绍 Azure VM 之前,我们先简要介绍一下一般的虚拟化技术。假设你有一台物理服务器,那么第一步是安装操作系统,并对一些系统组件进行配置,比如文件系统、服务、端口以及其他设置。如果你想在这台物理机器上运行多个应用程序,你需要将这些应用程序安装在同一个操作系统上。然而,这种情况下这些应用程序会共享相同的文件系统、服务、端口或者其他配置,可能会发生冲突。因此,虚拟化技术应运而生,可以避免这些问题的发生。

在使用虚拟化技术时,你需要在物理机器上安装操作系统和虚拟化软件。虚拟化软件允许你创建虚拟机,这些虚拟机就像是模拟出来的物理机器,都需要自己的操作系统。在每个虚拟机的操作系统上,你可以单独地托管应用程序,这些应用程序在系统上所做的操作不会影响其他虚拟机中的应用程序,因为它们都运行在单独的虚拟环境中。这提供了完全的隔离性,允许你在单个物理机上虚拟出多个物理机,每个虚拟机都有自己的虚拟硬件配置和操作系统。

因此,虚拟化只是在物理机器上模拟多个物理机,使你能够为每个虚拟机创建不同的虚拟硬件配置和应用程序设置,并且为每个虚拟机安装不同的操作系统。现在我们接下来进一步讨论 Azure VM。

在这里插入图片描述

1.1.1 虚拟化技术的关键特性

这里总结几个虚拟化技术的关键特性(敲黑板):

  • 它是物理机器的一种仿真技术
  • 可以有不同的虚拟硬件配置
  • 可以有不同的操作系统
  • 环境是完全分离的
    • 文件系统
    • 服务
    • 端口
    • 中间件
    • 配置等

更多关于虚拟化的介绍可以参看一下以前的博文: [ 云原生 | 容器 ] 虚拟化技术之容器与 Docker 概述

1.2 Azure 中的虚拟机(Azure VM)

Azure虚拟机(VM)是一种基于云计算的计算资源,它允许用户使用虚拟化技术在云端创建和管理虚拟机,而无需关心底层的操作系统和硬件。用户只需要选择所需的虚拟机配置,例如CPU、内存、存储和网络等,然后在虚拟机中安装自己的应用程序和操作系统,就可以轻松地运行自己的工作负载。Azure VM提供多种操作系统和应用程序的预配置映像,用户可以根据自己的需求选择最合适的映像来创建虚拟机,从而大大简化了虚拟机的管理和部署。因此,Azure VM极大地提升了用户的工作效率,并降低了管理和维护成本。

在 Azure VM 中微软会准备虚拟机镜像(Image),比如Ubuntu,Windows,Oracle等等的OS镜像,当然你也可以选择自己做的镜像,之后创建VM。

服务的拓扑图如下:

在这里插入图片描述

1.2.1 Azure VM 关键特性知识点

下面总结一下 Azure VM(虚拟机)关键知识点(敲黑板重要,考试会考

  • Azure VM(虚拟机)属于 IaaS(基础设施即服务)级别的服务模型
  • Azure VM(虚拟机)是物理计算机的软件模拟。
  • 它们包括虚拟处理器、内存、存储和网络资源。
  • 它们承载一个操作系统(OS),你可以像一台物理计算机一样安装和运行软件。
  • 你可以连接到 VM 并使用远程桌面客户端控制它。
  • 何时选择 Azure VM,有如下需求时:
    • 对操作系统的完全控制
    • 需要运行定制软件的能力
    • 使用自定义主机配置
  • Azure 负责物理硬件
    • 你负责配置、更新和维护在 VM 上运行的软件。
  • 镜像是用于创建虚拟机的模板。
    • 包括操作系统和其他软件,如开发工具或网络托管环境。

二、Azure 虚拟机规模集(VMSS)

2.1 认识 Azure 虚拟机规模集

Azure虚拟机规模集(Virtual Machine Scale Sets)是一种Azure服务,它允许用户快速创建和管理大规模的虚拟机集群。虚拟机规模集提供了一种便捷的方式,让用户可以轻松地扩展虚拟机的数量,以满足应用程序的高可用性和高性能需求。

虚拟机规模集是基于虚拟机模板的,用户可以根据自己的需求配置虚拟机模板,然后使用该模板创建多个虚拟机实例。虚拟机规模集还提供了自动缩放功能,可以根据实际的工作负载情况自动调整虚拟机数量,从而避免了资源浪费和性能瓶颈。

服务的拓扑图如下:

在这里插入图片描述

2.2 Azure 虚拟机规模集关键特性知识点

下面总结一下虚拟机规模集的关键知识点(敲黑板重要,考试会考

  1. 允许你创建和管理一组相同的、负载均衡的虚拟机。
  2. 集中管理、配置和更新大量虚拟机,提供高可用的应用。
  3. 虚拟机实例的数量可以根据需求或定义的调度自动增加或减少。
  4. 帮助你为计算、大数据和容器负载等领域构建大规模服务。
  5. 通过区域或多个可用分区部署选项提供高可用性。

三、Azure 容器实例(ACI)

3.1 容器简介

容器是一种虚拟化技术,它允许用户将应用程序及其所有依赖项打包到一个独立的运行环境中,从而实现应用程序在不同平台和环境中的快速部署和移植。容器将应用程序和其所有依赖项打包成一个软件包,并提供了一个隔离的运行环境,使得应用程序可以在其中运行,而不会受到底层操作系统和硬件的影响。

与传统的虚拟机不同,容器不需要完整的操作系统支持,因为它们共享操作系统内核。这使得容器更加轻量级和高效,可以更快地启动和停止。另外,容器提供了一种标准化的部署方式,使得应用程序可以在不同的环境中更加稳定和可靠地运行。

容器技术现已成为开发和运维领域中的一项重要技术。通过使用容器,开发人员可以更加快速地构建、测试和部署应用程序,运维人员可以更加轻松地管理和维护应用程序的运行环境,从而提高应用程序的可靠性、可伸缩性和灵活性。

更多关于虚拟机和容器对比相关知识请参看我以前的博文: [ 云原生 | 容器 ] 虚拟化技术之容器与 Docker 概述

服务的拓扑图如下:

在这里插入图片描述

3.2 认识 Azure 容器实例

Azure Container Instances(ACI)是一种 Azure 提供的面向容器的计算服务,它允许用户轻松地在云端运行 Docker 容器,而无需管理虚拟机或容器编排引擎等底层基础设施。ACI 提供了一种快速、轻量、简单的方式来运行容器,用户只需将自己的 Docker 镜像上传至 ACI,即可快速创建和启动容器实例。

ACI支持多种容器镜像,包括 Windows 和 Linux,用户可以根据自己的需求选择不同的容器镜像来运行应用程序和工作负载。ACI还提供了高度可定制化的容器实例选项,例如CPU、内存、存储和网络等,以满足不同的需求。此外,ACI 还支持自动缩放功能,可以根据实际的工作负载情况自动调整容器实例数量,从而避免了资源浪费和性能瓶颈。

服务的拓扑图如下:

在这里插入图片描述

3.3 Azure 容器实例关键特性知识点

下面总结一下 Azure 容器实例的关键知识点(敲黑板重要,考试会考

  • ACI 是 PaaS服务
  • ACI 是一种 Serverless 计算服务。
  • ACI 无需配置虚拟机或其他任何附加服务。
  • ACI 只需上传容器 + 运行自动扩展即可

四、Azure Kubernetes Service (AKS)

4.1 AKS 简介

Azure Kubernetes Service(AKS)是微软Azure提供的一种管理Kubernetes容器化应用的服务,可以在Azure上部署和管理Kubernetes集群,使用Azure安全管理、监控和跟踪服务。它提供了一种快速、可靠的方式来部署和管理Kubernetes容器化应用,使开发人员可以专注于应用程序,而不是管理基础架构。

简单说就是微软提供的类似 K8S 的服务。

AKS 的服务的拓扑图如下:
在这里插入图片描述

4.2 AKS 关键特性知识点

  • AKS 是 PaaS 服务。
  • AKS 可以将容器管理自动化与API结合起来
  • AKS 是一种云原生手段,可以在不同的云上运行
  • AKS 的 Pod 管理:
    • 管理 pod的存放位置
    • 1 pod = 节点上的1个或多个容器
    • 如果节点被移除= Kubernetes将受影响的工作负载移动到不同的节点。
    • 如果一个pod崩溃= Kubernetes创建新实例Pods可以手动或自动缩放(水平)
  • AKS 是一种分散部署,尽量减少停机时间,如果更新有问题,可以回滚
  • AKS 可以管理存储:
    • 持久卷表示数据存储到一个或多个容器
    • 数据可以持久化到多个pod实例中
    • 可以利用基于云的存储和数据系统,例如Azure存储+Cosmos DB。
  • AKS 可以管理网络:
    • 可以将容器暴露给互联网
    • 可以在多个容器副本之间平衡流量
    • 可以做网络隔离
    • 基于策略的网络安全
    • 管理 pod 之间的通信和名称解析
  • AKS 可以通过附加功能进行扩展,例如,在容器创建时发生云事件,自定义容器调度逻辑,按需获取托管云服务。

五、Azure App 服务

5.1 Azure App 服务简介

Azure App 服务是一项云服务,专为构建和部署云应用程序而设计。它可以让开发人员在任何语言和框架中快速开发 Web 应用程序、移动后端以及 API。可以将应用程序部署到 Azure,并且可以使用全球基础设施来管理和扩展应用程序。Azure App 服务还提供安全性、负载平衡和自动扩展功能,旨在帮助开发人员更快地将应用程序推向生产。

Azure App 服务的拓扑图如下:

在这里插入图片描述

5.2 Azure App 服务关键特性知识点

  • Azure App Service 是 PaaS 服务。
  • Azure App Service 是一个基于HTTP的服务。
  • 使你能够构建和托管许多类型的基于 Web 的解决方案,而无需管理基础架构。
  • 可以在多种支持的编程语言中托管 Web 应用程序、移动后端和 RESTful API。
  • 支持不同的框架,如 .NET、.NET Core、Java、Ruby、Node.js、PHP、Python 等。
  • 可以在基于 Windows 和 Linux 的环境中进行扩展。

六、Azure Functions (Function Apps)

Azure Functions (Function Apps) 是一种事件驱动的计算服务,它可以让用户轻松地将代码部署到云中,以便在收到特定事件时自动执行。它是服务器端代码,可以在事件发生时自动触发,并执行相关的任务。Azure Functions (Function Apps) 支持多种编程语言,如 C#、JavaScript、Python、PHP、PowerShell、Bash 等,可以帮助开发者快速实现功能。

Azure Functions 服务的拓扑图如下:

在这里插入图片描述

Azure Function 的知识点总结:

Azure Functions 可以执行几乎任何现代语言的代码。当需要响应事件执行工作时通常被使用。可以是无状态(默认)表现为每次响应事件时重新启动;有状态(称为Durable Functions)具有跟踪以前活动的上下文。

总结

我这里做了一个下面的汇总表格方便你理解:

服务服务级别汇总
虚拟机 VMIaaS可自定义软件,自定义需求,高专业化,高控制度
虚拟机规模集 VMSSIaaS为虚拟机自动伸缩工作负载
Azure 容器(ACI)PaaS简单的容器托管,易于启动管管理
Azure Kubernetes Service (AKS)PaaS高度可扩展和可定制的容器托管平台
Azure App ServicePaaSWeb应用服务,为企业提供Web托管功能,易于上手
Azure FunctionsPaaS是一种 Serverless 服务,基于消费的定价模式
[ 本文作者 ]   bluetata
[ 原文链接 ]   https://bluetata.blog.csdn.net/article/details/130541151
[ 最后更新 ]   05/08/2023 1:16
[ 版权声明 ]   如果您在非 CSDN 网站内看到这一行,
说明网络爬虫可能在本人还没有发布完成的时候就抓走了我的文章,可能导致内容不完整,请去上述的原文链接查看原文。
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。