Azure 学习
- 基本术语
- Azure平台
- Azure数据库
-
- Azure Blob Storage
- Azure Cosmos DB
- Azure SQL 数据库
- Azure Database for MySQL
- Azure Database for PostgreSQL
- Azure SQL 托管实例
- 大数据及分析服务
- Azure 计算服务
-
- Azure虚拟机
- 创建虚拟机
- Azure应用服务
- Azure容器
- Azure Functions
- Azure 虚拟桌面
- Azure Portal(门户)
-
- Azure management options
- 门户导航
- Azure Portal Dashboard
- Azure Kubernetes Service
- Azure虚拟网络
基本术语
API:Application Programming Interface,应用程序编程接口 GUI:Graphical User Interface,图形用户界面 SDK:Software Development Kits,软件开发工具包 :Windows系统为Power Shell,苹果系统为Bash JSON:JavaScript Object Notation,JavaScript对象表示法 GA:通用可用性 NSGs:Network Security Groups,网络安全组控制进出子网和进出子网 VM 的流量 VHD:virtual hard disks,虚拟硬盘 SLA:service level agreements,服务水平协议 :Remote Desktop Protocol,远程桌面协议 :Azure提供的数据文件格式 on-premises storage:本地存储
Azure平台
- 云计算是一种从他人数据中心租用计算能力和存储的方法。 云资源可以像使用自己的数据中心资源一样使用。 使用后,返回。 只需支付使用的资源。 必要时租用 CPU 而不是在自己的数据中心维护它们。 云提供商负责为您维护基础设施。 云可以帮助您快速解决困难的业务问题,并为您的用户提供先进的解决方案。
- Azure 门户(portal)是基于 Web 统一控制台提供替代命令行工具的方法。 通过 Azure 图形用户界面可用于门户管理 Azure 订阅。 方法: √ 从简单的角度生成、管理和监控所有内容 Web 应用于复杂的云部署。 √ 创建自定义仪表板以有序地显示资源。 √ 配置辅助功能选项,提供最佳体验。
- Azure常用服务类别: √ 计算 √ 网络 √ 存储 √ 移动 √ 数据库 √ Web √ 物联网 (IoT) √ 大数据 √ AI √ DevOps
- Azure计算服务
- Azure详细介绍相关服务
- Azure账户
- Azure免费学生账户
- 云服务类别 √ IaaS:基础设施是服务,用户不需要购买硬件,只需要租用 √ PaaS:平台是服务,云提供商管理虚拟机和网络资源,云租户将其应用程序部署到托管环境中。该平台专注于应用程序开发 √ SaaS:软件是服务,所有客户都使用一个版本的应用程序,并通过每月或每年订阅获得许可。即使用即付模式
- 云供应商和云租户的责任分配
- Azure 有管理组、订阅、资源组和资源四个层次。 management groups, subscriptions, resource groups, and resources. (1)上述级别组织层次结构 (2)√ :资源是您创建的服务实例,虚拟机 (VM)、存储帐户、Web 应用程序、数据库和虚拟网络都是资源的例子。资源只能在一个资源组中。资源组不能嵌套。 √ :这些资源组作为逻辑容器部署和管理资源组 Web 应用程序、数据库、存储帐户等 Azure 资源。 √ :订阅将用户账户与这些用户账户创建的资源相结合。对于每个订阅,您可以创建和使用的资源数量有限或配额。组织可以使用订阅来管理成本和由用户、团队或项目创建的资源。 Azure 订阅是链接到 Azure 帐户的 Azure 服务逻辑单元。Azure 订阅是一个对象,它表示可以将资源放入容器中。订阅与租户有关,所以租户可以有多个订阅,否则就不行了。 √ :这些组可以帮助您管理多个订阅的访问、策略和合规性。管理组中的所有订阅都将自动继承应用于管理组的条件。管理组将有助于在订阅范围级别以上 Azure 资源分层排序集合。不同的治理条件和 Azure Policy 和 Azure 以角色访问控制为基础,应用于各管理组,有效管理 Azure 订阅。应用于管理组的资源和订阅将自动继承。 (3)区域内的资源(region)这些区域包括创建 Azure 全球不同地理位置的数据中心。 (4)可用性区域(Availability zones)是 Azure 区域内独立的物理数据中心。每个可用区域由一个或多个配备独立电源、冷却和网络的数据中心组成。一个可用区域被设置为隔离边界。如果一个区域出现故障,另一个区域将继续工作。可用区域通过高速专用光纤网络连接。 (5)region pair区域对:每个 Azure 区域总是和至少 300 同一地理区域(如美国、欧洲或亚洲)在英里以外的另一个对。允许跨地理复制资源(例如) VM 存储)有助于减少自然灾害、内乱、停电或物理网络中断的可能性。例如,如果一对中的一个区域受到自然灾害的影响,服务将自动故障转移到另一个区域。
- 资源组是 Azure 平台的基本要素。部署资源组 Azure 资源的逻辑容器。你在这些资源 Azure 订阅中创建的任何内容,如 VM、Azure 应用实例和应用程序 Azure Cosmos DB 实例。所有资源必须在一个资源组中,一个资源只能是一个资源组的成员。许多资源可以在资源组之间移动,其中一些服务有特定的限制或移动要求。资源组不能嵌套。在预配任何资源之前,您需要一个资源组来放置它。
- Azure 资源管理器是 Azure 部署和管理服务。它为你提供了一个管理层 Azure 帐户中创建、更新和删除资源。您可以使用访问控制、锁和标签等管理功能来保护和组织部署后的资源。
- ANP:Azure Networking POD
Azure数据库
Azure Blob Storage
- Azure Storage 是微软 Azure 目前支持云提供的云存储解决方案有 Blob、Queue、File 和 Table。
- 非结构化数据是不符合特定数据模型或定义的数据,如文本或二进制数据。
- Azure Blob Storage 它被用来存储大量的文本、图片、视频等存储服务。我们可以在任何地方通过互联网协议 http 或者 https 访问 Blob Storage及其存储对象。Blob 存储中的对象可以通过 Azure 存储 REST API、Azure PowerShell、Azure CLI 或 Azure 访问存储客户端库。说白了,就是把文件放在云上,给它一个 URL,通过这个 URL 来访问文件。这涉及到一个问题:如何控制访问权限?答案是我们可以根据自己的需要设置 Blob 对象是只能自己访问,还是可以被大家访问。
- Blog Storage 典型的应用场景:
- 通过浏览器直接访问存储图片和文档。
- 存储文件主要用于支持分布式访问 cdn。
- 视频和音频的流式传输。
- 写入日志文件。
- 存储用于备份和恢复、灾难恢复和归档的数据。
- 存储数据以供本地或 Azure 托管服务进行分析。
- Blob 存储提供三种类型的资源:存储帐户、存储帐户中的容器、容器中的Blob
- Azure Storage Account: Storage Account 是用来管理 Azure Storage 的一个命名空间,主要用来控制存储数据的访问权限和计费。对 的访问控制都是通过 Storage Account 来进行的,所以要想使用 Blob Storage,需要先创建你的 Storage Account。Azure 存储帐户是所有 Azure Blob 存储的顶级容器。存储帐户为您的 Azure 存储数据提供了一个唯一的命名空间,可通过 HTTP 或 HTTPS 从世界任何地方访问。
- Container: Container 中包含一组blobs,。一个 Storage Account 中可以包含无限个 Container,每个 Container 中也可以包含无限个 Blob。需要注意的是 。
- Blob: 。为了区分应用的场景及提升不同应用场景下存储的性能,又为 Blob 划分了不同的类型:)。Block blobs 主要用来存储静态的文件,比如文本、二进制数据、图片、电影和文档。Append blobs 与 block blobs 类似,但优化了 append 操作,主要的应用场景是存储日志文件。Page blobs 则是针对频繁的读写操作做了优化,像 Azure 上虚拟机的磁盘都是使用的 page blobs。
- Azure存储安全:
- 写入 Azure 存储的所有数据(包括元数据)都使用存储服务加密 (SSE) 自动加密。
- Azure 存储支持 Azure Active Directory (Azure AD) 和基于角色的访问控制 (RBAC),用于资源管理操作和数据操作,如下所示:
- 可以将范围为存储帐户的 RBAC 角色分配给安全主体,并使用 Azure AD 授权资源管理操作,例如密钥管理。
- Blob 和队列数据操作支持 Azure AD 集成。可以将范围为订阅、资源组、存储帐户或单个容器或队列的 RBAC 角色分配给 Azure 资源的安全主体或托管标识。
- 可以使用客户端加密、HTTPS 或 SMB 3.0 保护应用程序和 Azure 之间传输的数据。
- Azure 虚拟机使用的操作系统和数据磁盘可以使用 Azure 磁盘加密进行加密。
- 可以使用共享访问签名授予对 Azure 存储中数据对象的委派访问权限。
- 数据备份:Azure存储账户中的数据在主要区域将会被备份3次。Azure 存储为在主要区域中复制数据的方式提供了本地冗余存储LRS、区域冗余存储ZRS两个选项。
- 对于大多数使用 Azure 存储的方案,建议使用以下哪种类型的存储帐户? A:通用 v2,That’s correct. This supports blobs, files, queues, and tables. It is recommended for most scenarios using Azure Storage.
Azure Cosmos DB
- Azure Cosmos DB 是一种全球分布式多模型数据库服务。支持无架构数据,可用于生成高度响应的应用程序和“Always On”应用程序,为不断变化的数据提供支持。 此功能可用于存储全球用户更新和维护的数据。
- Azure Cosmos DB 非常灵活。 在最低级别,Azure Cosmos DB 以 atom-record-sequence (ARS) 格式存储数据。 然后对数据进行抽象化,并将其投影为一个在创建数据库时指定的 API,包括 SQL、MongoDB、Cassandra、Tables 和 Gremlin()。 这一级别的灵活性意味着,当你将公司的数据库迁移到 Azure Cosmos DB 后,你的开发人员可继续使用自己最熟悉的 API。
Azure SQL 数据库
- Azure SQL 数据库是基于 Microsoft SQL Server 数据库引擎最新稳定版的关系数据库。
- Azure SQL 数据库是一种平台即服务 () 数据库引擎。 它可处理大多数数据库管理功能(例如升级、修补、备份和监视),无需用户参与。 SQL 数据库提供 99.99% 的可用性。 通过 SQL 数据库中内置的 PaaS 功能,可专注于对业务至关重要的特定于域的数据库管理和优化活动。 SQL 数据库是完全托管型服务,提供内置的可用性、备份和其他常见维护操作。 Microsoft 可处理针对 SQL 和操作系统代码的所有更新。 你无需管理底层基础结构。
- 可使用 Azure 数据库的迁移现有 SQL Server 数据库,且确保停机时间最短。 Microsoft 数据迁移助手可以生成评估报告,这些报告提供建议来帮助指导你在执行迁移之前完成所需的调整。 评估并完成所有必需的调整后,就可开始迁移过程。 Azure 数据库迁移服务会执行所有必需的步骤。 你只需更改应用中的连接字符串即可。
Azure Database for MySQL
- Azure Database for MySQL 是云中的关系数据库服务,基于 MySQL 社区版数据库引擎(版本 5.6、5.7 和 8.0)。
- Azure Database for MySQL 是用于现有 应用程序的合理方案。
Azure Database for PostgreSQL
- Azure Database for PostgreSQL 是云中的关系数据库服务。 服务器软件基于开源 PostgreSQL 数据库引擎的社区版本。 使用 Azure Database for PostgreSQL 时,可熟悉 PostgreSQL 的工具和专业知识。
Azure SQL 托管实例
- Azure SQL 托管实例是一个平台即服务 (PaaS) 数据库引擎,这意味着公司能够在一个完全托管的环境中充分利用将数据移动到云的最佳功能。
- Azure SQL 数据库和 Azure SQL 托管实例提供多种相同的功能;但是,Azure SQL 托管实例提供了多个可能不适用于 Azure SQL 数据库的选项。 例如,Tailwind Traders 目前使用运行 SQL Server 的多个本地服务器,他们希望将现有数据库迁移到在云中运行的 SQL 数据库。 但是,他们的几个数据库使用西里尔字符进行排序。 在这种情况下,Tailwind Traders 应将其数据库迁移到 Azure SQL 托管实例,因为 Azure SQL 数据库仅使用默认的 SQL_Latin1_General_CP1_CI_AS 服务器排序规则。
大数据和分析服务
- :(以前称为 Azure SQL 数据仓库)是一种无限制的分析服务,它将企业数据仓库和大数据分析相结合。 可通过大规模使用无服务器资源或预配资源根据自己的需求查询数据。 通过统一的体验引入、准备、管理和提供数据,以满足即时商业智能和机器学习需求。
- :是面向企业的完全托管的开放源代码分析服务。 它是一种云服务,可让你更轻松、更快、更经济高效地处理大量数据。 你可运行常用开源框架并创建多种群集类型,例如 Apache Spark、Apache Hadoop、Apache Kafka、Apache HBase、Apache Storm 和机器学习服务。 HDInsight 还支持多种方案,例如提取、转换和加载 (ETL)、数据仓库、机器学习和 IoT。
- :可帮助你从所有数据中获取见解,并能够生成人工智能解决方案。 你可以在几分钟内设置好你的 Apache Spark 环境,然后在交互式工作区中对共享项目进行自动缩放和协作。 Azure Databricks 支持 Python、Scala、R、Java 和 SQL 以及数据科学框架和库(包括 TensorFlow、PyTorch 和 scikit-learn)。
- :是一项按需分析作业服务,用于简化大数据。 无需部署、配置和调整硬件,只需编写查询即可转换数据并提取有价值的见解。 通过将表盘设置为所需值,该分析服务就可以立即处理任何规模的作业。 你只需为运行的作业付费,这让作业变得更为经济高效。
Azure 计算服务
- Azure 计算是一种按需计算服务,用于运行基于云的应用程序。 它提供磁盘、处理器、内存、网络和操作系统等计算资源。 资源按需提供,通常可在几分钟甚至几秒内可用。 只需为使用的资源付费,并且只在使用它们时付费。
- Azure 支持用于开发和测试、运行应用程序以及扩展数据中心的多种计算解决方案。 该服务支持 Linux、Windows Server、SQL Server、Oracle、IBM 和 SAP。 Azure 还提供了许多可运行虚拟机 (VM) 的服务。 每种服务根据你的需求提供不同的选项。 一些最重要的服务包括:
- Azure 虚拟机
- Azure 容器实例
- Azure 应用服务
- Azure Functions(或无服务器计算)
Azure虚拟机
- 是物理计算机的软件模拟。 它们包括虚拟处理器、内存、存储和网络资源。 VM 托管一个操作系统,你可以像使用物理计算机一样安装和运行软件。 使用远程桌面客户端时,可以像坐在终端前面一样使用和控制 VM。使用 Azure 虚拟机,可以在云中创建和使用 VM。 虚拟机提供,并可以按不同方式使用。
- 缩放VM:虚拟机规模集、Azure Batch
- 是一种 Azure 计算资源,可用于部署和管理一组相同的 VM。 虚拟机缩放集旨在在所有 VM 配置相同的情况下,实现真正意义上的自动。 出于此原因,可以更方便地构建面向大型计算、大数据、容器化工作负荷的大规模服务。 随着需求的增加,可以添加更多的 VM 实例。 随着需求的下降,可以删除 VM 实例。 此过程可通过手动、自动或两者结合的方式实现。
- Azure Batch 使大规模并行和高性能计算 (HPC) 批处理作业能够缩放到数十、数百或数千个 VM。
- 是可用于部署和管理容器的 Azure 计算资源。 容器是轻型的虚拟化应用程序环境。 它们的设计旨在实现快速创建、横向扩展和动态停止。
- 选择预配置的 (image)时,可以在几分钟内创建和预配 VM。 选择映像是创建 VM 时需要做出的最重要决策之一。 映像是用于创建 VM 的模板。 这些模板已经包括操作系统以及其他软件,例如开发工具或 Web 托管环境。
创建虚拟机
- 参考文档:在Azure上创建虚拟机
- 创建虚拟机的步骤: (1)从网络开始 (2)命名虚拟机 (3)确定 VM 的位置 (4)确定虚拟机的大小 (5)了解定价模型 (6)虚拟机的存储 (7)选择操作系统
- Azure 中使用虚拟网络 () 来提供 Azure 虚拟机和其他 Azure 服务之间的专用连接。属于同一虚拟网络的 VM 和服务可以相互访问。默认情况下,虚拟网络外的服务无法连接到虚拟网络内的服务。但是,您可以将网络配置为允许访问外部服务,包括您的本地服务器。
- 设置虚拟网络时,您需要指定可用的。如果 VNet 将连接到其他 VNet,则必须选择不重叠的地址范围。这是您网络中的虚拟机和服务可以使用的私有地址范围。您可以使用无法路由的 IP 地址,例如 10.0.0.0/8、172.16.0.0/12 或 192.168.0.0/16,也可以定义自己的范围。如果任何地址范围只能在 VNet 内、互连的 VNet 内以及从您的本地位置访问,Azure 会将其视为专用 VNet IP 地址空间的一部分。如果其他人负责内部网络,您应该在选择您的地址空间之前与该人合作,以确保没有重叠并让他们知道您要使用什么空间,这样他们就不会尝试使用相同的空间IP 地址范围。
- 确定虚拟网络地址空间后,您可以为您的虚拟网络创建一个或多个子网。您这样做是为了将您的网络分成更易于管理的部分。
- 默认情况下,子网之间没有安全边界,因此每个子网中的服务都可以相互通信。但是,您可以设置网络安全组 (),它允许您控制进出子网以及进出 VM 的流量。NSG 充当软件防火墙,将自定义规则应用于网络接口和子网级别的每个入站或出站请求。这使您可以完全控制进出 VM 的每个网络请求。网络安全组 (NSG) 是您用来在网络级别执行和控制网络流量规则的主要工具。NSG 是一个可选的安全层,它通过过滤 VNet 上的入站和出站流量来提供软件防火墙。 What is the final rule that is applied in every Network Security Group? A:Deny All. This is a safe choice. It will block all traffic that you don’t specifically allow. Note:The last rule is always a Deny All rule. This is a default rule added to every security group for both inbound and outbound traffic with a priority of 65500. That means to have traffic pass through the security group, you must have an allow rule or it will be blocked by the default final rule.
- 规划VM部署问题: (1)服务器与什么通信? (2)哪些端口是开放的? (3)使用哪个操作系统? (4)有多少磁盘空间正在使用? (5)这使用什么样的数据?是否有限制(法律或其他)没有在本地安装? (6)服务器有什么样的 CPU、内存和磁盘 I/O 负载?是否有突发流量需要考虑?
- 虚拟机命名:您可以在 Windows VM 上指定最多 15 个字符的名称,在 Linux VM 上指定最多 64 个字符的名称。VM命名后更改较为麻烦,所以命名时应慎重。一个好的约定是在名称中包含以下信息:环境、地点、实例(01 02…)、产品或服务、角色
- VM的收费:计算成本和存储成本
- Azure 存储是 Microsoft 的基于云的数据存储解决方案。它支持几乎任何类型的数据,并为存储的数据提供安全、冗余和可扩展的访问。存储帐户为特定订阅提供对 Azure 存储中对象的访问。VM 总是有一个或多个存储帐户来保存每个附加的虚拟磁盘。
- Azure REST API 为开发人员提供按资源分类的操作以及创建和管理 VM 的能力。操作公开为具有相应 HTTP 方法(GET、PUT、POST、DELETE和PATCH)和相应响应的 URI。
- is the percentage of time a service is available for use. To ensure your services aren’t interrupted and avoid a single point of failure, it’s recommended to deploy at least two instances of each VM. This feature is called an .
- 可用性集是一种逻辑功能,用于确保部署一组相关的虚拟机,以便在数据中心的主机操作系统升级期间,它们不会都受到单点故障的影响,也不会同时升级。置于可用性集中的 VM 应执行相同的功能集并安装相同的软件。
- 故障域是 Azure 中的一组逻辑硬件,它们共享一组通用硬件组件,并且共享一个单点故障。您可以将其视为本地数据中心内的机架。可用性集中的前两个 VM 将被配置到两个不同的机架中,因此如果机架中的网络或电源出现故障,则只有一个 VM 会受到影响。还为附加到 VM 的托管磁盘定义了容错域。
- 假设您想在虚拟机上运行网络设备。您应该选择哪个工作负载选项? A:的虚拟机旨在具有高 CPU 与内存的比率。 适用于中等流量的 Web 服务器、网络设备、批处理和应用程序服务器。
- 选择映像是您在创建 VM 时做出的首要和最重要的决定之一。映像是用于创建 VM 的模板。这些模板包括操作系统和其他软件,例如开发工具或网络托管环境。image 计算机可以支持的任何应用程序都可以包含在 VM 映像中。您可以从预先配置为完全符合您的要求的映像创建 VM,例如托管 ASP.NET Core 应用程序。
- 远程桌面 (RDP) 提供与基于 Windows 的计算机的 UI 的远程连接。RDP 使您能够登录到远程物理或虚拟 Windows 计算机并控制该计算机,就像您坐在控制台前一样。RDP 连接使您能够执行可以从物理计算机的控制台执行的绝大多数操作,但一些与电源和硬件相关的功能除外。
- 专用数据磁盘通常被认为是存储应用程序数据文件的最佳位置。 它们可以比 OS 磁盘大,您可以针对适合您数据的成本和性能特征对它们进行优化。
Azure应用服务
- Azure App Service:PaaS,平台即服务
- 常见的应用服务类型:Web 应用、API 应用、Web 作业、移动应用
- Web 应用:应用服务包括对使用 ASP.NET、ASP.NET Core、Java、Ruby、Node.js、PHP 或 Python 托管 Web 应用的全面支持。 你可以选择 Windows 或 Linux 作为主机操作系统。
- API 应用:就像托管网站一样,可以使用自己选择的语言和框架生成基于 REST 的 Web API。 你将获得全面的 Swagger 支持,并且能够在 Azure 市场中打包和发布 API。 可以从任何基于 HTTP 或 HTTPS 的客户端使用生成的应用。
- Web 作业:你可以使用 Web 作业功能,在与 Web 应用、API 应用或移动设备相同的上下文中运行程序(.exe、Java、PHP、Python 或 Node.js)或脚本(.cmd、.bat、PowerShell 或 Bash)。 可以对其进行计划,也可通过触发器运行。 Web 作业通常用于作为应用程序逻辑的一部分运行后台任务。
- 移动应用:使用应用服务的移动应用功能来快速生成适用于 iOS 和 Android 应用的后端。 只需在 Azure 门户中单击几次,便可以: (1)将移动应用数据存储在基于云的 SQL 数据库中。 (2)针对常见的社交提供程序对客户进行身份验证,如 MSA、Google、Twitter 和 Facebook。 (3)发送推送通知。 (4)在 C# 或 Node.js 中执行自定义后端逻辑。
- 移在移动应用端,提供了对本机 iOS 和 Android、Xamarin 以及 React 本机应用的 SDK 支持。
Azure容器
- 容器是虚拟化环境。 类似于在单个物理主机上运行多个虚拟机,你可以。与虚拟机不同,你。 虚拟机就像是可以连接和管理的操作系统的实例,但容器是轻型的,其设计目的是实现动态创建、横向扩展和停止。 虽然可在应用程序需求增加的情况下创建和部署虚拟机,但。 使用容器,可以在出现崩溃或硬件中断时快速重启。
- 虚拟机vs容器:虚拟机是基于操作系统的,容器是基于应用程序的。 虚拟机将硬件虚拟化,容器将操作系统虚拟化。
- 可以通过两种方式来管理 Azure 中的 Docker 和基于 Microsoft 的容器:Azure 容器实例和 Azure Kubernetes 服务 (AKS)。
- 提供了在 Azure 中运行容器的最简捷方式,既无需管理任何虚拟机,也不必采用任何其他服务。 它是一种平台即服务 (PaaS) 产品/服务,可用于上传容器并为你直接运行。
- **Azure Kubernetes 服务:**自动化和管理大量容器以及与之交互的任务称为“业务流程”。 Azure Kubernetes 服务是面向容器的完整业务流程服务,包含分布式体系结构和大量容器。
- 容器通常用于通过使用微服务体系结构来创建解决方案。 在这种体系结构中,你可以将解决方案拆分为各个较小的独立部分。 例如,可以将网站拆分为三个容器,一个用于托管前端,另一个用于托管后端,第三个用于存储。 这样可将应用的各个部分拆分成可以独立维护、缩放或更新的逻辑部分。
Azure Functions
- 无服务器计算(Serverless computing)是对服务器、基础结构和操作系统的抽象化。 有了无服务器计算,Azure 将负责管理服务器基础结构和按需的资源分配和解除分配。 无需负责基础结构。 系统自动处理缩放和性能。 只需为具体使用过的资源付费。 甚至没有必要保留容量。
- 无服务器计算包括服务器抽象、事件驱动缩放和微额账单: (1)服务器抽象:无服务器计算会对运行的服务器进行抽象。 永远不需要显式保留服务器实例。 平台会为你管理。 每个函数的执行可以在不同的计算实例上运行。 此执行上下文对代码是透明的。 采用无服务器体系结构,部署代码后,运行的同时可获得高可用性。 (2)事件驱动缩放:无服务器计算非常适合响应传入事件的工作负载。开发者不再编写整个应用程序,而是编写一个函数,使其包含有关其触发器和绑定的代码和元数据。 平台会自动安排函数运行,并根据传入事件的速率调整计算实例的数目。 触发器定义函数的调用方式。 绑定提供从代码内连接到服务的声明性方式。 事件包括以下触发器: ① 计时器,例如,如果某个函数需要在每天上午 10:00 UTC 运行。 ② HTTP,例如 API 和 webhook 方案。 ③ 队列,例如订单处理时的队列。 ④ 还有很多其他触发器。 (3)微额账单:传统计算对一段时间进行计费,例如,按月或按年为网站托管付费。 这种计费方法非常方便,但并不总是经济高效。 即使客户的网站一天只点击了一次,仍然需要为一整天的可用性付费。 采用无服务器计算,,则无需付费。 例如,如果代码一天运行一次,一次两分钟,则计费时只考虑这一次执行,且计算时间为两分钟。
- Azure 有两种无服务器计算实现: (1)Azure Functions:Functions 可以执行几乎所有现代语言的代码。 (2)Azure 逻辑应用(Azure Logic Apps):逻辑应用在基于 Web 的设计器中设计,可执行由 Azure 服务触发的逻辑而无需编写代码。 ①借助 Functions,你可以编写代码来完成每个步骤。 ②借助逻辑应用,你可以使用 GUI 来定义操作以及它们之间的相关方式。
- Azure Functions:使用基于虚拟机的方法,即使虚拟机处于空闲状态,也会产生成本。 借助函数,Azure 会在触发代码时运行代码,并在函数完成时自动释放资源。 在此模型中,只需为函数运行时使用的 CPU 时间付费。 ①函数可以是无状态或有状态的。 如果函数是无状态的(默认情况下),其行为与每次响应事件时都重启函数的效果一样。 如果函数是有状态的(称为 Durable Functions),会通过函数传递一个上下文来跟踪先前的活动。 ②需要执行工作以响应事件(通常通过 REST 请求)、计时器或来自其他 Azure 服务的消息,并且该工作可在几秒钟或更短时间内快速完成时,通常会使用 Azure Functions。
- 逻辑应用类似于函数。 二者都可以基于事件触发逻辑。 Functions 执行代码时,逻辑应用执行从预定义逻辑块构建的工作流,这些工作流旨在自动完成业务方案。 (1)每个 Azure 逻辑应用工作流都从触发器开始,在发生特定事件或新的可用数据符合特定条件的情况下触发。 许多触发器包括基本的计划功能,可以让开发人员指定工作负载的运行频率。 每当触发器触发时,逻辑应用引擎都会创建一个逻辑应用实例来运行工作流中的操作。 这些操作也可包括数据转换和流控制,如条件语句、开关语句、循环和分支。 (2)可以在 Azure 门户或 Visual Studio 中使用可视化设计器创建逻辑应用工作流。 工作流将保留为具有已知工作流架构的 JSON 文件。
- 函数和逻辑应用的差异
Azure 虚拟桌面
Azure 虚拟桌面是在云中运行的桌面和应用程序虚拟化服务。 它使用户能够从任何位置使用云托管的 Windows 版本。 Azure 虚拟桌面可以在 Windows、Mac、iOS、Android 和 Linux 等多种设备上运行。 它可运行和处理用于访问远程桌面和应用的应用。 你还可以使用大多数新式浏览器访问 Azure 虚拟桌面托管的体验。
Azure Portal(门户)
Azure management options
- Azure日常管理和交互常用的工具包括: (1)通过图形用户界面 (Graphical User Interface, GUI) 与 Azure 交互的Azure 门户 (2)Azure Shell和Azure 命令行界面(Azure Command-Line Interface,CLI),用于与 Azure 进行基于命令行和自动化的交互 (3)用于基于 Web 的命令行界面的Azure Shell (4)Azure 移动应用程序,用于监视和管理移动设备中的资源
- Azure portal dashboard:仪表板视图提供有关 Azure 环境的高级详细信息。您可以通过移动和调整磁贴大小以及显示您感兴趣的服务来自定义仪表板。 该门户不提供任何方法来自动执行重复性任务。例如,要设置多个 VM,您需要通过完成每个 VM 的向导来一次创建一个。这个过程使得门户方法对于复杂的任务来说既费时又容易出错。
- Azure PowerShell 是一个可以为 Windows PowerShell 或 PowerShell Core 安装的模块,后者是 PowerShell 的跨平台版本,可在 Windows、Linux 或 macOS 上运行。。Windows PowerShell 和 PowerShell Core 提供 shell 窗口和命令解析等服务。Azure PowerShell 然后添加特定于 Azure 的命令。
- Azure CLI是一个跨平台的命令行程序,它连接到 Azure 并在 Azure 资源上执行管理命令。跨平台意味着它可以在 Windows、Linux 或 macOS 上运行。例如,要创建 VM,您将打开命令提示符窗口,使用命令登录 Azure az login,创建资源组,然后使用以下命令:
az vm create \ --resource-group MyResourceGroup \ --name TestVm \ --image UbuntuLTS \ --generate-ssh-keys \ ...
- Azure Cloud Shell是一种交互式、经过身份验证、浏览器可访问的 shell,用于管理 Azure 资源。它提供了选择最适合您工作方式的 shell 体验的灵活性。**Linux 用户可以选择 Bash 体验,而 Windows 用户可以选择 PowerShell。**这个基于浏览器的终端允许您通过门户中内置的命令行界面控制和管理当前订阅中的所有 Azure 资源。
- Microsoft Azure 移动应用程序允许您从您的 iOS 或 Android 手机或平板电脑访问、管理和监控您的所有 Azure 帐户和资源。
门户导航
- Azure Marketplace通常是您在 Azure 中创建新资源的起点。Marketplace 允许客户查找、试用、购买和配置来自数百家领先服务提供商的应用程序和服务,这些服务提供商都经过认证可以在 Azure 上运行。 解决方案目录涵盖多个行业类别,包括但不限于开源容器平台、虚拟机映像、数据库、应用程序构建和部署软件、开发人员工具、威胁检测和区块链。使用 Azure Marketplace,您可以快速可靠地预配托管在您自己的 Azure 环境中的端到端解决方案。在撰写本文时,此列表包括 8,000 多个列表。
Azure Portal Dashboard
- 仪表板在管理 Azure 方面提供了相当大的灵活性。例如,您可以为组织内的特定角色创建仪表板,然后使用基于角色的访问控制 (RBAC) 来控制谁可以访问该仪表板。因此,您的数据库管理员将拥有一个包含 SQL 数据库服务视图的仪表板,而您的 Azure Active Directory 管理员将拥有 Azure AD 中用户和组的视图。您甚至可以在门户中自定义生产和开发环境之间的门户 - 为您管理的每个环境创建一个特定的仪表板。
- 仪表板存储为 JavaScript 对象表示法 (JSON) 文件。这种格式意味着它们可以上传和下载到其他计算机,或与 Azure 目录的成员共享。Azure 将仪表板存储在资源组中,就像您可以在门户中管理的虚拟机或存储帐户一样。
- 由于仪表板是 JSON 文件,因此您还可以通过编程方式对其进行自定义,从而使它们成为引人注目的管理工具。此外,某些切片类型可以是基于查询的,因此它们会在源数据更改时自动更新。
Azure Kubernetes Service
- Azure Kubernetes 服务 (AKS) 是一种托管 Kubernetes 产品/服务,可进一步简化基于容器的应用程序部署和管理。
- Kubernetes 是一个快速发展的平台,用于管理基于容器的应用程序及其相关网络和存储组件。
- AKS 提供一项,它可降低部署和核心管理任务(例如升级协调)的复杂性。 由 Azure 平台来管理 AKS 控制平面,你只需为运行应用程序的 AKS 节点付费。
- Kubernetes 群集分为两个组件: ①控制平面:提供 Kubernetes 核心服务和应用程序工作负载的业务流程。 ②节点:运行应用程序工作负载。
- 在 AKS 中,群集的节点的 VM 映像基于 Ubuntu Linux 或 Windows Server 2019。
- 。Docker最重要的部分就是它的运行管理环境。。在创建和管理这些计算单元的时候,需要用到计算单元的包装(也就是它的软件发行包),这些包装以的方式存放在它的运行环境中,所有的容器计算单元都是通过这些镜像来创建的。 Docker 不提供虚拟机可用的隔离级别。虚拟机在硬件级别实现隔离。Docker 容器共享底层操作系统资源和库。但是,Docker 确保一个容器无法访问另一个容器的资源,除非容器配置为这样做。
- Kubernetes 使用 Pod 来运行应用程序的实例。 。 Pod 通常与容器是一对一映射关系。 在高级方案中,一个 Pod 可能包含多个容器。 多容器 Pod 是在同一节点上共同计划的,容器可通过它们共享相关资源。
- Pod 是逻辑资源,但应用程序工作负载在容器中运行。 Pod 通常是临时的、可释放的资源。 单个计划的 Pod 缺少某些高可用性和冗余 Kubernetes 功能。 相反,Pod 由 Kubernetes 控制器(例如 Deployment 控制器)进行部署和管理。
- 。 Pod (就像在鲸鱼荚或者豌豆荚中)是一组(一个或多个) 容器; 这些容器共享存储、网络、以及怎样运行这些容器的声明。 Pod 中的内容总是并置(colocated)的并且一同调度,在共享的上下文中运行。 Pod 所建模的是特定于应用的“逻辑主机”,其中包含一个或多个应用容器, 这些容器是相对紧密的耦合在一起的。 在非云环境中,在相同的物理机或虚拟机上运行的应用类似于在同一逻辑主机上运行的云应用。
- 。Pod里面包括一个主容器和数个辅助容器,它们共同完成一个特定的功能。把多个进程(容器也是一种隔离的进程)打包在一个Name Space里的时候,就构成了一个Pod。Pod里面不同进程的应用包装仍然是独立的(每个容器都会有自己的镜像)。 Pod的意义在于,它可以既保持主容器和辅助容器的的密切关系,又保持主容器的独立性。由于主容器和辅助容器的生命周期相同,可以同时被创建和销毁,因此把它们放在一个Pod中,可以使他们的交互更加高效。
- 容器的典型应用可以分为两类,一类是微服务,一类是DevOps。
- 。
- 京东智能云:实操干货 | 容器和POD练习
- 容器vs虚拟机:容器和虚拟机具有相似的资源隔离和分配方式,容器虚拟化了操作系统而不是硬件,更加便携和高效。
- Docker容器有如下三个主要概念: :Docker镜像里包含了已打包的应用程序及其所依赖的环境。它包含应用程序可用的文件系统和其他元数据,如镜像运行时的可执行文件路径。 :Docker镜像仓库用于存放Docker镜像,以及促进不同人和不同电脑之间共享这些镜像。当编译镜像时,要么可以在编译它的电脑上运行,要么可以先上传镜像到一个镜像仓库,然后下载到另外一台电脑上并运行它。某些仓库是公开的,允许所有人从中拉取镜像,同时也有一些是私有的,仅部分人和机器可接入。 :Docker容器通常是一个Linux容器,它基于Docker镜像被创建。一个运行中的容器是一个运行在Docker主机上的进程,但它和主机,以及所有运行在主机上的其他进程都是隔离的。这个进程也是资源受限的,意味着它只能访问和使用分配给它的资源(CPU、内存等)。
- docker典型使用流程: (1)首先开发者在开发环境机器上开发应用并制作镜像。Docker执行命令,构建镜像并存储在机器上。 (2)开发者发送上传镜像命令。Docker收到命令后,将本地镜像上传到镜像仓库。 (3)开发者向生产环境机器发送运行镜像命令。生产环境机器收到命令后,Docker会从镜像仓库拉取镜像到机器上,然后基于镜像运行容器。
Azure虚拟网络
- Azure 虚拟网络提供以下关键网络功能:
- 隔离和分割
- 互联网通讯
- 在 Azure 资源之间进行通信
- 与本地资源通信
- 路由网络流量
- 过滤网络流量
- 连接虚拟网络
- 隔离和分割:Azure 虚拟网络允许您创建多个隔离的虚拟网络。设置虚拟网络时,您可以使用公共或专用 IP 地址范围定义专用 IP 地址空间。公共 IP 范围仅存在于虚拟网络中,不能通过 Internet 路由。您可以将该 IP 地址空间划分为子网,并将定义的地址空间的一部分分配给每个命名的子网。 对于名称解析,可以使用 Azure 中内置的名称解析服务。您还可以将虚拟网络配置为使用内部或外部 DNS 服务器。
- Azure VPN Gateway:VPN 网关是一种虚拟网络网关。Azure VPN 网关实例部署在虚拟网络的专用子网中,并启用以下连接: 通过站点到站点连接将本地数据中心连接到虚拟网络。 通过点对点连接将单个设备连接到虚拟网络。 通过网络到网络连接将虚拟网络连接到其他虚拟网络。
- 部署VPN网关时需要指定VPN类型:policy-based or route-based。这两种类型的 VPN 之间的主要区别在于如何指定要加密的流量。在 Azure 中,两种类型的 VPN 网关都使用预共享密钥作为唯一的身份验证方法。这两种类型还依赖于版本 1 或版本 2 中的 Internet 密钥交换 (IKE) 和 Internet 协议安全 (IPSec)。IKE 用于在两个端点之间建立安全关联(加密协议)。该关联随后被传递到 IPSec 套件,该套件对封装在 VPN 隧道中的数据包进行加密和解密。
- 基于策略的 VPN 网关静态指定应通过每个隧道加密的数据包的 IP 地址。这种类型的设备根据这些 IP 地址集评估每个数据包,以选择将要发送该数据包的隧道。
- 仅支持 IKEv1。
- 使用静态路由,来自两个网络的地址前缀组合控制如何通过 VPN 隧道加密和解密流量。隧道网络的源和 目的地在策略中声明,不需要在路由表中声明。
- 基于策略的 VPN 必须在需要它们的特定场景中使用,例如为了与旧的本地 VPN 设备兼容。
- 如果定义每个隧道后面的 IP 地址太麻烦,可以使用。对于基于路由的网关,IPSec 隧道被建模为网络接口或虚拟隧道接口。IP 路由(静态路由或动态路由协议)决定在发送每个数据包时使用这些隧道接口中的哪一个。。它们对拓扑更改(例如创建新子网)更具弹性。 (1)如果您需要以下任何类型的连接,请使用基于路由的 VPN 网关:
- 虚拟网络之间的连接
- 点对点连接
- 多站点连接
- 与 Azure ExpressRoute 网关共存
- Azure 中基于路由的 VPN 网关的主要功能包括:
- 支持 IKEv2
- 使用任意(通配符)流量选择器
- 可以使用动态路由协议,其中路由/转发表将流量定向到不同的 IPSec 隧道。在这种情况下,源和目标网络不是静态定义的,因为它们在基于策略的 VPN 中,甚至在具有静态路由的基于路由的 VPN 中。相反,数据包是根据网络路由表加密的,这些路由表是使用诸如边界网关协议 (BGP) 等路由协议动态创建的。
- 在部署可操作的 VPN 网关之前,您需要这些 Azure 资源:
- 虚拟网络。为 VPN 网关所需的额外子网部署具有足够地址空间的虚拟网络。此虚拟网络的地址空间不得与您将连接到的本地网络重叠。。
- 网关子网。部署一个称为GatewaySubnetVPN 网关的子网。至少使用/27地址掩码,以确保子网中有足够的 IP 地址以供将来增长。您不能将此子网用于任何其他服务。
- 公共 IP 地址。如果您使用的是非区域感知网关,请创建基本 SKU 动态公共 IP 地址。此地址提供公共可路由 IP 地址作为本地 VPN 设备的目标。此 IP 地址是动态的,但除非您删除并重新创建 VPN 网关,否则它不会更改。
- 本地网络网关。创建本地网络网关以定义本地网络的配置,例如 VPN 网关将连接的位置以及连接的对象。此配置包括本地 VPN 设备的公共 IPv4 地址和本地可路由网络。VPN 网关使用此信息通过 IPSec 隧道路由发往本地网络的数据包。
- 虚拟网络网关。创建虚拟网络网关以在虚拟网络和本地数据中心或其他虚拟网络之间路由流量。虚拟网络网关可以是 VPN 或 ExpressRoute 网关,但本单元仅处理 VPN 虚拟网络网关。(您将在本模块后面的单独单元中了解有关 ExpressRoute 的更多信息。)
- 连接。创建连接资源以在 VPN 网关和本地网络网关之间创建逻辑连接。
- 连接到本地网络网关定义的本地 VPN 设备的 IPv4 地址。
- 连接是从虚拟网络网关及其关联的公共 IP 地址建立的。
- 您可以创建多个连接。
- ExpressRoute 允许您在连接提供商的帮助下通过专用连接将您的本地网络扩展到 Microsoft 云。使用 ExpressRoute,您可以建立与 Microsoft 云服务的连接,例如 Microsoft Azure 和 Microsoft 365。ExpressRoute 连接不通过公共 Internet。