云计算只不过是使用技术资源通过 Internet 存储、检索和处理数据,以提高速度、可用性、可扩展性并降低成本。为执行这些操作提供资源的公司称为云服务提供商。Azure 就是这样一家以微软为首的云服务提供商。Azure 于 2010 年 2 月 1 日由微软推出,遵循按使用付费模式,让用户只需为他们选择的内容付费。
Azure 现在已经成长为领先的服务提供商,其中大约 80% 的财富 500 强公司依赖 Azure 来托管他们的应用程序、资源或任何其他计算需求。Azure 支持多种编程语言,如 Java、C#、NodeJS 等,并为云计算提供了 200 多种服务。
除了 Azure 之外,市场上还有各种大型云提供商。根据 Canalys 2020 年第四季度的报告,亚马逊网络服务在云行业中占有约 31% 的市场份额,而 Azure 占有约 20% 的份额。其余股份由谷歌、阿里云、甲骨文、Salesforce 和 IBM 等公司所有。
Azure 提供的计算服务大致分为 18 类,包括网络、计算、存储、迁移、物联网、分析、容器、管理工具、监控工具、开发人员工具、安全、DevOps 等。
为什么我们需要使用 Azure?
好吧,Azure 提供了广泛的服务,可以帮助我们创建任何类型的 Web 应用程序并将它们托管在 Azure 上。在将应用程序实际发布给目标受众之前,Azure 还提供了用于验证目的的专用环境。在 Azure 中创建和配置虚拟机比以往任何时候都简单。
Azure 还为虚拟目录和虚拟设备提供各种集成和同步功能。Azure 还提供了广泛的监视工具,可帮助收集应用程序的指标以了解应用程序的执行情况。借助虚拟硬盘的特性,可以在云端存储海量数据。
凭借 Azure 提供的如此惊人的功能以及企业对 Azure 不断增长的需求,成为 Azure 认证的专业人士开辟了一条获得广泛职业机会的道路,例如成为 Azure 管理员、Azure 开发人员、Azure 解决方案架构师等,所有这些都提供了惊人的支付福利。
基础的Azure面试题和答案合集
1、你对云计算的理解是什么?
- 云计算是指使用互联网上的计算资源(服务器)(指术语云)来存储、管理、分析和处理数据。在这里,我们不维护自己的服务器,而是使用微软、AWS等第三方供应商提供和维护的基础设施,并根据服务器使用时长付费。
- 云计算提高了执行速度,保证了资源的灵活性,更容易扩展。
- 云计算可用于实现高容错性和高系统可用性,这也可以根据应用程序的基础设施要求动态完成。
2. Azure常见面试题有哪些:能否介绍一下 Azure 云服务?
- Azure 云服务是平台即服务 (PaaS) 的经典示例。这旨在支持那些要求在降低运营成本的限制内具有高可扩展性、可靠性和可用性的应用程序。这些托管在虚拟 VM 上,Azure 通过让开发人员安装必要的软件并使他们能够远程控制来提供对它们的更多控制。
- Azure 云服务用于通过创建云服务实例的方式在 Azure 中部署基于 Web 的多层应用程序。为了分布式处理的目的,还可以定义多个角色,例如 Web 角色、工作者角色等。Azure 云服务有助于更轻松、灵活地扩展应用程序。
- 云服务的每个角色都有自己的用途,因此也有自己的配置和应用程序文件。
3. 云部署有哪些可用的模型?
Azure面试题解析:有 3 种模型可用于云部署:
- 公共云:在此模型中,云基础架构由云提供商公共拥有,并且服务器资源有可能在多个应用程序之间共享。
- 私有云:在这里,云基础设施由我们独家拥有或由云提供商向我们提供独家服务。
- 这包括在我们自己的本地服务器上托管我们的应用程序或在云提供商提供的专用服务器上托管应用程序。
- 混合云:顾名思义,这种模式是私有云和公共云的混合组合。
- 这可能包括使用本地服务器处理机密、敏感数据以及使用公共云功能托管面向公众的应用程序的场景。
在这里,我们利用两全其美来满足我们的要求和优势。
4. 在 Azure 中定义角色实例。
角色实例只不过是一个虚拟机,其中应用程序代码在运行角色配置的帮助下运行。根据云服务配置文件中的定义,一个角色也可以有多个实例。
5.Azure 提供了多少个云服务角色?
云服务角色由一组应用程序和配置文件组成。Azure 提供了两种角色:
- Web 角色:提供属于 IIS(Internet 信息服务)的专用 Web 服务器,用于前端网站的自动部署和托管。
- 辅助角色:这些角色帮助其中托管的应用程序异步运行更长的时间,并且独立于用户交互,并且通常不使用 IIS。它们也是执行后台进程的理想选择。应用程序以独立方式运行。
6. 为什么需要 Azure 诊断 API?
- Azure 诊断 API 帮助我们从 Azure 上运行的应用程序收集诊断数据,例如性能监控、系统事件日志等。
- 为了详细监视数据,必须为云服务角色启用 Azure 诊断。
- 诊断数据可用于构建可视化图表表示以进行更好的监控,也可用于创建性能指标警报。
7. 定义 Azure 服务级别协议 (SLA)?
- Azure SLA 是一种合同,可确保或保证当一个角色的两个或多个角色实例部署在 Azure 上时,至少有 99.95% 的时间可以保证访问该云服务。
- 它还指出,如果角色实例进程未处于运行状态,则将在 99.9% 的时间内检测此类进程并采取纠正措施。
- 如果上述保证在任何时间点未得到满足,Azure 会根据相应 Azure 服务的定价模型将一定比例的月费记入我们。
8. 什么是 Azure 资源管理器?
Azure Resource Manager 是 Azure 提供的一项服务,用于在 Azure 中提供管理和应用程序部署。
资源管理器提供管理层,帮助开发者创建、修改或删除 Azure 订阅帐户中的资源。当我们有管理访问控制、锁定、确保部署后资源的安全性以及这些资源的组织等要求时,此功能会派上用场。
9. 什么是 NSG?
NSG 代表网络安全组,它有一个 ACL(访问控制列表)规则列表,这些规则允许/拒绝到子网或连接到子网或两者的 NIC(网络接口卡)的网络流量。当 NSG 与子网链接时,ACL 规则将应用于该子网中的所有虚拟机。
可以通过将 NSG 直接关联到该 NIC 来限制对单个 NIC 的流量。
10. 可以在通过经典部署创建的虚拟网络中使用 Azure 资源管理器创建 VM。对或错?
错误的。Azure 不支持此操作。
中级Azure面试题和答案合集
11. 什么是 Azure Redis 缓存?
- 它是由 Azure 提供和维护的开源内存 Redis 缓存系统。
- 它通过从后端数据库获取数据并将其存储到 Redis 缓存中来为第一个请求帮助 Web 应用程序提高性能,然后为所有后续请求从 Redis 缓存中获取数据。
- Azure Redis 缓存通过使用 Azure 云提供强大且安全的缓存机制。
12. 定义 Azure 虚拟机规模集
- 这些是可用于部署和管理相同虚拟机 (VM) 集的 Azure 计算资源。
- 这些规模集以相同的方式进行配置,旨在支持应用程序的自动缩放,而无需预配置 VM。
- 它们有助于以更简单的方式构建针对大数据和容器化工作负载的大规模应用程序。
13.你对“可用性集”的理解是什么?
- 可用性集只不过是 VM(虚拟机)的逻辑分组,它允许 Azure 云了解应用程序是如何开发以提供可用性和冗余的。
- Azure 为可用性集中的每个 VM 分配了两种域:
- 故障域:这些定义了共享公共电源和公共网络交换机的 VM 分组。默认情况下,可用性集中的 VM 最多跨 3 个容错域分隔。容错域中虚拟机的这种分离通过减少网络中断、电源中断和某些硬件故障的影响来帮助我们的应用程序可用。
- 更新域:这些表示可以同时重新启动的 VM 和底层硬件的分组。一次只能重新启动一个更新域,但是,重新启动的顺序不是按顺序进行的。在维护另一个更新域之前,先前重新启动的域有 30 分钟的恢复时间,以确保该域已启动。
- Azure 提供了为可用性集配置最多 3 个容错域和 20 个更新域的灵活性。
14. Azure 提供的部署环境有哪些可用选项?
Azure 提供了两种部署环境,它们是:
- 暂存环境:此环境用于验证我们的应用程序的更改,然后再将它们放入主环境中。
- 在这里,应用程序通过 Azure 的 GUID(全局唯一标识符)进行标识,其 URL 为:
GUID.cloudapp.net
- 在这里,应用程序通过 Azure 的 GUID(全局唯一标识符)进行标识,其 URL 为:
- 生产环境:这是我们的应用程序上线的主要环境,可以被目标受众访问,可以通过 DNS 友好 URL 访问:
appName.cloudapp.net
15. 驱动器发生故障时需要做什么?
当驱动器发生故障时,需要执行以下步骤:
- 为确保 Azure 存储正常运行,我们需要确保未安装驱动器。
- 更换驱动器,以便重新安装和格式化驱动器。
16. Azure常见面试题有哪些:是否可以在 Azure 中设计处理连接失败的应用程序?
是的,这是可能的,并且是通过瞬态故障处理块完成的。使用云环境时可能有多种原因导致瞬时故障:
- 由于存在更多负载均衡器,我们可以看到应用程序到数据库的连接会定期失败。
- 在使用多租户服务时,调用会变慢并最终超时,因为其他应用程序正在大量使用资源来访问相同的资源。
- 最后一个原因可能是我们自己作为用户尝试非常频繁地访问资源,这导致服务故意拒绝与我们的连接以支持架构中的其他租户。
应用程序可以识别暂时的错误,而不是定期向用户显示错误,并通常在几秒钟后自动尝试再次执行相同的操作,以期建立连接。通过使用瞬态故障处理应用程序块机制,我们可以生成重试间隔并使应用程序执行重试。在大多数情况下,错误将在第二次尝试时解决,因此用户无需不必要地意识到这些错误。
以下是可用于重试策略的示例代码。此处,如果连接不成功,则根据定义的重试策略重试该操作。有 3 种重试策略 - 固定间隔、增量间隔、指数退避策略。
/***
* Class to detect Transient Blocks - Here
* OperationCancelledException is
* detected and then the retry strategy is employed.
*/
internal class AppTransientDetection : ITransientErrorDetectionStrategy
{
bool IsTransient(Exception exception) =>
exception is OperationCanceledException;
}
/***
* Retry Strategy - Here Fixed Interval Strategy is employed and is retried for 5 times.
*/
RetryStrategy retryStrategy = new FixedInterval(retryCount: 5, retryInterval: TimeSpan.FromSeconds(2));
RetryPolicy retryPolicy = new RetryPolicy(new AppTransientDetection(), retryStrategy);
retryPolicy.ExecuteAction(() => {
try {
string commandText = @”USE FEDERATION User_Federation(ShardId =” + shardId + “) WITH RESET, FILTERING=ON”;
userEntity.Connection.Open();
userEntity.ExecuteStoreCommand(commandText);
} catch (Exception e) {
userEntity.Connection.Close();
SqlConnection.ClearAllPools();
}
});
17.定义azure存储密钥。
- Azure 存储密钥用于身份验证,用于验证 Azure 存储服务的访问权限,以根据项目要求控制数据访问。
- 为验证目的提供了 2 种类型的存储密钥 -
- 主访问密钥
- 二级访问密钥
- 辅助访问密钥的主要目的是避免网站或应用程序停机。
18. Azure中的cspack是什么?
Azure面试题解析:它是一个命令行工具,用于生成服务包文件。该工具还有助于准备在 Microsoft Azure 或计算模拟器中部署的应用程序。
每个云服务类型的项目都有一个.cscfg文件,它基本上是通过cspack工具生成的云服务配置文件,主要用于存储:
- 用于在项目中部署每个角色的角色实例数。
- 证书的指纹。
- 用户定义的配置和设置。
19. 在没有服务器的情况下执行代码的最佳 Azure 解决方案是什么?
- Azure Functions 服务可用于在没有服务器的情况下执行代码。
- 无服务器 Azure Functions 用于简化复杂的编排和具有挑战性的解决方案。它们意味着无国籍和短暂的。
- 它们有助于与其他服务连接,而无需对集成进行硬编码,从而加快开发过程。
- 它可以帮助开发人员编写并专注于业务逻辑代码,从而节省时间和精力。
- 它们还通过 Azure Application Insights 提供监视和分析代码性能的功能,有助于识别应用程序组件中的瓶颈和故障点。
20.Azure 推荐的在多个虚拟机之间具有公共文件共享系统的最佳功能是什么?
Azure 提供称为 Azure 文件系统的服务,该服务用作通用存储库系统,用于在通过使用 SMB、FTPS、NFS 等协议配置的虚拟机之间共享数据。
21. 是否可以不使用密码登录 Linux 虚拟机?
是的,通过使用 Key Vault 映射到任何管理 VM,我们可以登录到另一个 VM 而无需密码。
22. Azure 规模集和可用性集有什么区别?
Azure 规模集和可用性集之间的主要区别如下:
标准 | Azure 规模集 | Azure 可用性集 |
---|---|---|
定义 | 它们是一组相同配置的 VM,它们分布在多个容错域中。 | 它们是分布在各个故障域中的一组离散配置的 VM。 |
默认域 | 默认情况下,它们有 5 个容错域和更新域。 | 默认情况下,它们有 3 个容错域和 5 个更新域。 |
工作负载类型 | 当存在需要自动扩展功能的不可预测的工作负载时使用这些。 | 当有可预测的工作负载需求时使用这些。 |
配置风格 | 在这里,VM 以相同的方式从同一映像配置和创建。 | 在这里,VM 是通过使用不同的映像和配置来创建的。 |
虚拟机计数 | VM 的数量可以根据需求或预定义的时间表增加/减少。 | 只能在创建可用性集时将 VM 添加到可用性集。 |
分配方式 | 在这里,VM 规模集可以分布在多个数据中心或单个数据中心内。 | 在这里,VM 自动分布在数据中心。 |
23. Azure ID 认证过程中达到最大失败尝试次数会怎样?
如果尝试失败次数最多,则 azure 帐户将被锁定,锁定方法取决于分析输入密码和登录请求 IP 地址的协议。
24. 是否可以获得 Azure 内部负载均衡器的公共 DNS 或 IP 地址?
不!顾名思义,Azure 内部负载均衡器仅支持私有 IP 地址,因此无法分配公共 IP 地址或 DNS 名称。
25. 什么是 Azure Blob 存储?
- Azure Blob 存储是 Microsoft 为云提供的对象存储解决方案。Blob 代表“二进制大对象”。基于 Blob 的存储用于以文本或二进制格式存储海量非结构化数据。它非常适合将文档/图像/音频/视频/文本直接提供给浏览器。
- 可以从世界任何地方访问存储在 blob 存储中的数据。通过将 Blob 分组到容器中,将这些 Blob 绑定到用户帐户。Azure Blob 服务有 3 个组件:
- 存储帐户:这可以是在 Microsoft Azure 中注册的常规存储帐户或 Blob 存储帐户。
- 容器:容器用于对 blob 进行分组。我们可以在一个容器中存储无限数量的 blob。容器的名称应以小写开头。
- Blob:Blob 是二进制大对象,类似于任何类型和大小的文件或文档。Azure 支持 3 种 Blob:
- 块 blob:这些用于文本和二进制文件,最多可支持 195GB,即最多 50k 个块,每个块最多 4MB。
- 附加 blob:这些用于附加操作,例如在日志文件中记录数据。
- 页 blob:这些用于频繁的读/写操作。
高级的Azure面试题和答案合集
26、你对Azure Scheduler的理解是什么?
Azure 调度程序帮助我们调用某些后台触发事件或活动,例如调用 HTTP/S 端点或按任何计划在队列中显示消息。
通过使用此 Azure 计划,存在于云中的作业会调用 Azure 内外的服务,以按需执行那些经常重复定期计划的作业,或在未来的指定日期启动这些作业。
27. 是否可以将在 IIS Web 服务器上运行在两个不同端口号(例如 80 和 81)上的 Windows 机器映射到 Azure 负载均衡器?
是的,可以通过在 Azure 中定义单独的负载均衡器角色来完成。
28. 你有一个在本地服务器上运行的应用程序,并且在 Azure 美国东部区域有备份。现在,本地服务器应用程序访问失败。是否可以通过 Azure 环境访问应用程序?
是的,使用 Azure 提供的 Site Recovery 服务完全可以做到。它能够处理本地服务器和 Azure 环境之间的故障转移和故障恢复方案。
29、Azure有什么特性可以解决在流量无人值守的情况下应用高负载的问题?
可以通过定义适当的配置和条件来使用 VM 规模集来阻止此问题,以便在应用程序负载增加时供应新 VM。
- Azure VM 规模集允许开发人员创建和管理一组负载平衡的 VM。规模集的配置方式可以根据应用程序需求或预定义的计划自动增加或减少 VM 的数量。
- Scale Sets 的使用确保了应用程序的高可用性,并允许开发人员集中管理、更新和配置大型 VM,还帮助他们支持支持大数据、大工作负载和计算负载的大型应用程序的开发。
- Azure 规模集最多可支持 1,000 个 VM。如果创建并上传了自定义 VM 映像,则限制为 600 个 VM。
30. Azure常见面试题有哪些:除了Azure 提供的blob 存储之外,还有哪些存储服务类型?
Azure 总共提供 4 种类型的存储服务 - Blob 服务、表存储、队列存储和文件存储服务,如下图所示:
- Azure 表存储:这种类型的存储允许用户使用半结构化数据和基于 NoSQL 的键值存储来部署他们的应用程序。
- 当需要遵循灵活的数据模式的应用程序时使用。
- 表存储专注于企业级数据,并遵循强一致性模型。
- 数据以表格下分组的实体表示。
- Azure 队列存储:该存储提供了一个消息队列系统,通过让用户开发和构建灵活和模块化的应用程序来处理大型工作负载。
- 这种存储可确保应用程序不太容易出现单个组件的故障并且具有可扩展性。
- 借助消息队列,它提供了队列监控功能,帮助应用程序确保满足用户需求。
- Azure 文件存储:此存储类型提供可使用 SMB(服务器消息块)协议访问的文件共享功能。此存储中的数据受 HTTPS 和 SMB 3.0 协议保护。
- 它们用于提高本地应用程序的性能和功能。
- 操作系统部署和硬件管理由 Azure 本身负责。
31.什么是IaaS、PaaS和SaaS?
IaaS:这代表“基础设施即服务”,它提供一组功能,如操作系统、网络连接等,这些功能处于基础设施级别,并以按使用付费政策的形式提供。基础设施用于托管应用程序。示例包括 Azure VM、VNET 等。
PaaS: PaaS 代表“平台即服务”,主要是为开发人员提供底层基础设施抽象,以便更快地开发应用程序,而无需担心托管管理。示例包括 Azure Web 应用程序、存储服务、云服务等。
SaaS: SaaS 代表“软件即服务”,是那些使用服务交付模型交付的应用程序,其中应用程序仅由组织消费和使用。这些应用程序通常通过让组织为其使用付费或通过广告来移动。示例包括 Office 365、Gmail、SharePoint Online 等应用程序。
下表显示了本地服务、IaaS、PaaS 和 SaaS 服务之间的区别。我们可以观察到,随着我们继续前进,开发人员或用户对应用程序的控制级别会降低。
32、Azure表存储和Azure SQL服务有什么区别?
Azure面试题解析:Azure 表存储和 Azure SQL 服务之间的主要区别如下:
表存储服务 | Azure SQL 表 |
---|---|
这遵循 Azure 上的 NoSQL 存储类型。 | 这遵循 Azure 上的关系存储结构。 |
数据以键值格式存储,称为实体。 | 这里的数据以行列组合存储在SQL表中。 |
数据模式不强制用于存储。 | 数据模式被强制用于存储数据,如果发生模式冲突,则会导致错误。 |
表之间的关系是不可能的。 | 表之间的关系是通过外键定义的。 |
每个实体的分区和行键组合被认为是唯一的。 | 唯一性可以由用户通过主键或唯一键来定义。 |
此服务可用于存储日志信息或诊断数据。 | 此服务广泛用于基于事务的应用程序。 |
33. 考虑这样一个场景:应用程序前端托管在 Azure 上完成,但客户出于安全考虑需要在本地服务器上完成数据库托管。对于这种情况,在 Azure 中处理连接的方法是什么?
- 可能性 1:基于 Azure VNET 的“点到站点”服务可能是将一个本地数据库连接到 Azure 托管应用程序的这种方案的正确选择。“点到站点”适用于通过 N 连接的资源数量非常有限的情况。
- 可能性2:如果有大量资源可供连接,则可以考虑“站点到站点”或“快速路线”。
- 由于这些仅通过 Internet(公共基础设施)工作,因此使用“站点到站点”可能会导致 N 网络延迟。在这种情况下,使用“Express Routes”,因为它提供专用的租用线路来克服延迟问题。
- 可能性 3:如果客户不愿意通过 VNET 工作,则可以开发和托管 Windows Communication Foundation (WCF) 服务,这将使 CRUD 操作仅适用于托管在本地的数据库。这通过使用“服务总线中继”选项来开发 Azure 托管的应用程序与 WCF 服务之间的通信以进行数据库访问。
34. Azure 存储队列和 Azure 服务总线队列有什么区别?
Azure 存储队列和 Azure 服务总线队列的主要区别如下:
Azure 存储队列 | Azure 服务总线队列 |
---|---|
在这里,不保证 FIFO(先进先出)顺序。 | 通过会话保证消息的 FIFO 顺序。 |
不支持会话。 | 此处支持消息级别的会话。 |
此处仅支持“至少一次交付”模型。 | 这支持消息的“至少一次”、“最多一次”和“恰好一次”传递模型。 |
这里没有自动检测重复项。 | 这里支持自动重复检测。 |
不支持死字。 | 支持死字。 |
消息的大小为 64KB。 | 消息的大小为 256KB。 |
支持一对一的消息传递。 | 支持一对一和一对多的消息传递。 |
不支持交易。 | 这里支持交易。 |
此队列仅支持批量接收。 | 这支持批量发送和批量接收消息。 |
接收消息的行为是非阻塞的。 | 根据配置,行为可以是阻塞的或非阻塞的。 |
35、客户端应用与缓存断开的可能原因有哪些?
Azure面试题解析:可能有 2 个可能的原因:
- 客户端原因:
- 应用程序可能已重新部署。
- 应用程序可能刚刚执行了缩放操作。
- 客户端网络层已更改。
- 客户端或客户端与服务器之间的网络中可能存在暂时性错误。
- 另一个可能的原因可能是超出了带宽阈值限制。
- 服务器端原因:
- 如果 Azure Redis 缓存服务本身可能会经历从主节点到辅助节点的故障转移,则可能会发生这种情况。
- 部署缓存的服务器实例可能已经过修补或维护。
36、Azure常见面试题有哪些:如何通过Azure CLI创建VM?
az vm create `
--resource-group myResourceGroupName `
--name myVM --image win2016datacenter `
--admin-username AzureuserNAME `
--admin-password AzurePASSWORD
Azure面试题和答案合集结论
Microsoft Azure 已证明自己是增长最快的云平台,因为它提供 200 多种服务产品和按使用付费定价策略的好处。Microsoft Azure 产生的收入从 2015 年的 8.8 亿美元不断增长到 2020 年的 146 亿美元。
Azure 的这种巨大增长通过在技术和非技术领域创造大量机会为许多企业铺平了道路,从而使其成为一个非常有利可图的职业发展领域。