Skip to content

Latest commit

 

History

History
242 lines (142 loc) · 19.9 KB

File metadata and controls

242 lines (142 loc) · 19.9 KB

一、探索微软 Azure 云

人们经常因为术语云计算的模糊性而感到困惑。 这里,我们不是指云存储解决方案,如 OneDrive、Dropbox 等。 相反,我们指的是组织、公司甚至个人使用的实际计算解决方案。

Microsoft Azure(原名Windows Azure)是微软的公共云计算平台。 它提供广泛的云服务,包括计算、分析、存储、网络等等。 如果您仔细查看 Azure 提供的服务列表,您会发现您几乎可以使用任何服务——从虚拟机到人工智能和机器学习。

从虚拟化的简要历史开始,我们将解释物理硬件到虚拟化硬件的转换如何在许多方面超越经典数据中心的边界。

之后,我们将解释云技术中使用的不同术语。

以下是我们将讨论的关键话题:

  • 计算、网络、存储虚拟化
  • 云服务
  • 云的类型

云计算基础

当你第一次在信息技术(IT)学习一门新学科时,你通常会从学习基本概念(即理论)开始。 然后您将熟悉这个体系结构,并且迟早您将开始尝试并亲自动手看看它在实践中是如何工作的。

然而,在云计算中,如果您不仅理解概念和体系结构,而且了解它的来源,就会非常有帮助。 我们不想给你上历史课,但我们想告诉你,过去的发明和想法仍然在现代云环境中使用。 这将使您更好地理解什么是云以及如何在组织中使用云。

以下是云计算的关键基础:

  • 虚拟化
  • 软件定义数据中心(SDDC)
  • 面向服务的体系结构(SOA)
  • 云服务
  • 云的类型

让我们来看看每一个并理解这些术语指的是什么。

虚拟化

在计算领域,虚拟化是指以虚拟的形式创建设备或资源,例如服务器、存储设备、网络甚至操作系统。 虚拟化的概念是在 IBM 于 20 世纪 60 年代末和 70 年代初开发分时解决方案时出现的。 分时是指在一大群用户之间共享计算机资源,提高用户的工作效率,无需为每个用户购买计算机。 这是计算机技术革命的开始,购买新计算机的成本大大降低,组织可以利用他们已经拥有的未充分利用的计算机资源。

现在,这种类型的虚拟化已经发展成基于容器的虚拟化。 虚拟机有自己的操作系统,它是在物理服务器上虚拟化的; 另一方面,一台机器(物理或虚拟)上的容器都共享相同的底层操作系统。 我们将在第 9 章,Azure 中的容器虚拟化中更多地讨论容器。

快进到 2001 年,VMware 等公司引入了另一种类型的虚拟化,称为硬件虚拟化。 在他们的产品 VMware Workstation 中,他们在现有的操作系统上增加了一个层,该操作系统提供了一组标准硬件和内置软件,而不是运行虚拟机的物理元素。 这一层被称为hypervisor。 后来,他们建立了自己的操作系统,专门运行虚拟机:VMware ESXi(原名 ESX)。

在 2008 年,微软通过 Hyper-V 产品进入了硬件虚拟化市场,作为 Windows Server 2008 的一个可选组件。

硬件虚拟化就是将软件从硬件中分离出来,打破硬件和软件之间的传统界限。 管理程序负责在物理资源上映射虚拟资源。

这种类型的虚拟化是数据中心革命的推动者:

  • 由于有标准的硬件集,每个虚拟机都可以在安装了管理程序的任何物理机器上运行。
  • 由于虚拟机之间是相互隔离的,所以如果某个虚拟机崩溃,它不会影响运行在同一管理程序上的任何其他虚拟机。
  • 因为虚拟机只是一组文件,所以可以进行备份、移动虚拟机等等。
  • 可以使用新的选项来提高工作负载的可用性,包括高可用性(HA),以及迁移虚拟机的可能性,即使虚拟机仍在运行。
  • 新的部署选项也变得可用,例如,使用模板。
  • 对于中央管理、编配和自动化也有新的选择,因为这些都是由软件定义的。
  • 必要时隔离、保留和限制资源,可能时共享资源。

SDDC

当然,如果您可以将硬件转换为用于计算的软件,那么有人会意识到您也可以对网络和存储进行同样的操作,这只是时间问题。

对于网络,一切都始于虚拟交换机的概念。 就像所有其他形式的硬件虚拟化一样,它只不过是在软件中而不是在硬件中构建一个网络交换机。

互联网工程任务组(IETF)开始工作在一个项目叫做转发和控制元件分离**,这是一个建议标准接口来解耦控制平面和数据平面。 2008 年,第一个真正实现这一目标的交换机是在斯坦福大学使用 OpenFlow 协议实现的。 软件定义网络(SDN)通常与 OpenFlow 协议相关联。**

使用 SDN,你有类似的优势,在计算虚拟化:

  • 中央管理、自动化和编制
  • 通过流量隔离和提供防火墙和安全策略,提供更细粒度的安全性
  • 整形和控制数据流量
  • 可用于 HA 和可伸缩性的新选项

2009 年,Scality、Cleversafe 等多家公司开始开发软件定义存储(SDS)。 同样,它是关于抽象的:将服务(逻辑卷等)与物理存储元素解耦。

如果您了解 SDS 的概念,就会发现一些供应商在虚拟化的现有优势上增加了一个新特性。 您可以为虚拟机添加策略,定义您想要的选项:例如,数据复制或限制每秒的输入/输出操作次数(IOPS)。 这对管理员来说是透明的; 管理程序和存储层之间有通信来提供功能。 后来,一些 SDN 供应商也采用了这个概念。

您实际上可以看到,虚拟化慢慢地将不同数据中心层的管理转变为面向服务的方法。

如果您可以虚拟化一个物理数据中心的每个组件,那么您就有了一个 SDDC。 网络、存储和计算功能的虚拟化使其能够超越单个硬件的限制。 SDDC 通过将软件从硬件中抽象出来,使得超越物理数据中心的边界成为可能。

在 SDDC 环境中,一切都是虚拟化的,并且通常由软件完全自动化。 它完全改变了数据中心的传统概念。 服务托管在哪里或者它可用多长时间(24-7 或随需应变)并不重要。 此外,还可以监控服务,甚至可以添加自动报告和计费等选项,这些都让最终用户感到满意。

SDDC 和云不一样,甚至不是运行在你的数据中心中的私有云,但你可以争辩说,例如,微软 Azure 是 SDDC - Azure 的全面实现,根据定义,它是软件定义的。

soa

在硬件虚拟化成为数据中心主流、SDN 和 SDS 开发开始的同一时期,基于 web 的应用软件开发领域出现了一些新的东西:SOA,它提供了一些好处。 以下是一些关键点:

  • 可以相互通信的最小服务,使用的协议是简单对象访问协议****(SOAP)。 它们一起交付了一个完整的基于 web 的应用。
  • 服务的位置并不重要; 服务必须知道其他服务的存在,仅此而已。
  • 服务是一种黑盒; 终端用户不需要知道盒子里有什么。
  • 每个服务都可以被另一个服务替换。

对于最终用户来说,应用位于何处或者它由几个较小的服务组成并不重要。 在某种程度上,它类似于虚拟化:看起来是一个物理资源,例如,一个存储**LUN****(逻辑单元号)**实际上可以包含多个位置的多个物理资源(存储设备)。 如前所述,如果一个服务知道另一个服务的存在(它可能在另一个位置),它们将一起行动并交付应用。 我们每天接触的许多网站都是基于 SOA 的。

虚拟化与 SOA 结合的强大功能在可伸缩性、可靠性和可用性方面为您提供了更多的选择。

在 SOA 模型和 SDDC 之间有许多相似之处,但也有一个区别:SOA 是关于不同服务之间的交互; SDDC 更多的是关于向最终用户交付服务。

SOA 的现代实现是微服务,由云环境(如 Azure)提供,独立运行或在虚拟化容器(如 Docker)中运行。

云服务

这里有一个神奇的词:云服务是由云解决方案或计算提供商(如 Microsoft Azure)提供给组织、公司或用户的任何服务。 如果你想提供以下服务,云服务是合适的:

  • 是高度可用的,并且总是随需应变。
  • 可通过自助服务进行管理。
  • 具有可伸缩性,允许用户向上扩展(使硬件更强大)或向外扩展(添加额外的节点)。
  • 具有弹性—能够根据业务需求动态扩展或收缩资源数量。
  • 提供快速部署。
  • 可以完全自动化和协调。

除此之外,还有用于监控资源的云服务和新的计费选项:大多数时候,您只需要为您使用的内容付费。

云技术是关于通过互联网交付服务,以便让组织访问资源,如软件、存储、网络和其他类型的 IT 基础设施和组件。

云可以为您提供多种服务类型。 以下是最重要的几点:

  • 基础设施即服务(IaaS):托管虚拟机的平台。 部署在 Azure 中的虚拟机就是一个很好的例子。
  • 平台即服务(PaaS):一个开发、构建和运行应用的平台,无需构建和运行自己的基础设施。 例如,有 Azure 应用服务,你可以在其中推送你的代码,而 Azure 会为你托管基础设施。
  • 软件即服务(SaaS):随时可用的应用,运行在云中,如 Office 365。

即使上述的主要支柱是云服务,你可能也听说法**(函数作为服务),中国农科院**(容器作为服务),【显示】SECaaS(安全即服务), 随着云服务的数量日益增加,这个列表还在继续。 Azure 中的功能应用是 FaaS 的一个例子,Azure 容器服务用于 CaaS, Azure 活动目录用于 SECaaS。****

****### 云类型

云服务可以根据其位置或服务托管的平台进行分类。 如前一节所述,基于平台,我们可以将云服务分为 IaaS、PaaS、SaaS 等; 但是,根据位置,我们可以将云分为:

  • 公有云:所有服务由服务提供商托管。 微软的 Azure 就是这种类型的实现。
  • 私有云:您自己的数据中心云。 微软最近为此开发了一个特殊版本的 Azure: Azure Stack。
  • 混合云:公有云和私有云的结合。 一个例子是结合 Azure 和 Azure Stack 的强大功能,但您也可以考虑新的灾难恢复选项,或者在临时需要更多资源时将服务从数据中心转移到云上。
  • 社区云:社区云是指多个组织在相同的共享平台上工作,前提是它们具有相似的目标。

选择其中一种云实现取决于几个因素; 举几个例子:

  • 成本:根据资源使用情况,在云中托管服务可能比在本地托管服务更贵。 另一方面,它可能更便宜; 例如,您不需要实现复杂且昂贵的可用性选项。
  • 法律限制:一些组织将无法使用公共云。 例如,美国政府有自己的 Azure 服务,称为 Azure Government。 同样,德国和中国也有自己的 Azure 产品。
  • 互联网连接:仍然有一些国家,必要的带宽甚至连接的稳定性都是一个问题。
  • 复杂性:混合云环境尤其难以管理; 对应用和用户管理的支持可能具有挑战性。

了解微软 Azure 云

现在您已经对虚拟化和云计算有了更多的了解,现在是时候向您介绍云的微软实现:Azure。

再次从一些历史开始,在本节中,您将了解 Azure 背后的技术,以及 Azure 对您的组织来说是一个非常好的解决方案。

微软 Azure 云的简史

2002 年,微软启动了一个名为 Whitehorse 的项目,以简化 SOA 模型中应用的开发、部署和实现。 在这个项目中,重点是交付小型的、预先构建的 web 应用,以及将它们转化为服务的能力。 这个项目在 2006 年左右悄无声息地结束了。

从那个项目中学到的许多经验教训以及Amazon Web Services(AWS)的出现,都是微软在 2006 年启动一个名为RedDog的项目的驱动因素。

一段时间后,微软为这个项目增加了其他三个开发团队:

  • . net Services:为使用 SOA 模型的开发人员提供的服务。
  • Live Services 和 Live Mesh:SaaS 项目,使 pc 和其他设备能够通过互联网相互通信。
  • SQL Services:一个 SaaS 项目,通过互联网交付 Microsoft SQL。

2008 年,微软宣布了 Azure 的开始,并在 2010 年发布了它的公开版本,Azure 已经准备好交付 IaaS 和 PaaS 解决方案。 RedDog 这个名字存活了一段时间:经典的门户也被称为RedDog 前端(RDFE)。 经典的门户基于服务管理模型。 另一方面,Azure 门户基于Azure 资源管理器(ARM)。 这两个门户基于两个不同的 api。

如今,Azure 是微软三大云之一(另外两个是 Office 365 和 Xbox),用于交付不同类型的服务,比如虚拟机、web 和移动应用、活动目录、数据库等等。

在功能、客户和可用性方面,它仍在增长。 Azure 可以在超过 54 个地区使用。 这对于可伸缩性、性能和冗余非常重要。

拥有这么多区域还有助于遵守法律和安全/隐私政策。 有关安全性、隐私性和合规性的信息和文档可通过微软的信任中心:https://www.microsoft.com/en-us/TrustCenter获得。

Azure 架构

Microsoft Azure 运行在 Hyper-V 的自定义、精简和加固版本上,也称为Azure Hypervisor

在这个管理程序之上,有一个云层。 该层(或结构)是由 Microsoft 数据中心中的许多主机组成的集群,负责基础设施的部署、管理和运行状况。

这个云层由 fabric 控制器管理,它负责资源管理、可伸缩性、可靠性和可用性。

该层还通过构建在 REST、HTTP 和 XML 上的 API 提供管理接口。 另一种与 fabric 控制器交互的方式是通过 Azure 资源管理器由 Azure 门户和软件(如 Azure CLI)提供。

下面是 Azure 架构的图示:

Azure architecture

图 1.1:Azure 架构

这些用户界面服务(Azure 门户、PowerShell、Azure CLI 和 API)将通过资源提供者与 fabric 通信。 例如,如果您想创建、删除或更新计算资源,用户将与Microsoft 交互。 计算资源提供者,也称为计算资源提供者(CRP)。 同样,网络资源通过网络资源提供商(NRP)或Microsoft 进行通信。 网络资源提供商与存储资源通过存储资源提供商(SRP)或Microsoft 进行通信。 存储资源提供者。

这些资源提供者将创建所需的服务,例如虚拟机。

Azure 在您的组织

Azure 可以交付 IaaS:很容易部署虚拟机(手动或自动),并使用这些虚拟机来开发、测试和托管应用。 有许多额外的服务可以让您更轻松地作为系统工程师,例如备份和恢复选项、添加存储和可用性选项。 对于 web 应用,甚至可以在不创建虚拟机的情况下交付服务!

当然,Azure 也可以用于 PaaS 解决方案; 与 IaaS 一样,PaaS 包括基础设施的所有组件,但增加了对云应用完整生命周期的支持:构建、测试、部署、管理和更新。 还有预定义的应用组件; 您可以节省将这些组件和代码一起转换为您想要交付的服务的时间。 容器可以是 PaaS 解决方案的另一部分。 Azure 容器服务使用 Kubernetes 或其他编排器(如 Mesos)简化了容器的部署、管理和操作。

如果你是一个想在 Azure 中托管 SaaS 解决方案的公司或组织,可以使用 AppSource。 您甚至可以提供与其他 Microsoft 产品的集成,例如 Office 365 和 Dynamics。

2017 年,微软发布了Azure Stack。 现在你可以在自己的数据中心运行 Azure,也可以在自己选择的服务提供商的数据中心运行 Azure,以提供 IaaS 和 PaaS。 它为您提供了 Azure 在可伸缩性和可用性方面的强大功能,而无需担心配置。 您只需要在需要时添加更多的物理资源。 如果您愿意,还可以将其用于与公共 Azure 的混合解决方案中,以在云和本地部署中实现灾难恢复或一致的工作负载。

Azure Stack 并不是混合环境中惟一可以使用的东西。 例如,您可以将本地 Active Directory 与 Azure Active Directory 连接起来,或者使用 Azure Active Directory 应用为本地和托管的 web 应用提供单点登录(SSO)。

Azure 和开源

2009 年,甚至在 Azure 上市之前,微软就开始支持 PHP 等开源框架;2012 年,由于许多客户的请求,微软增加了对 Linux 虚拟机的支持。

那时候,微软并不是开源社区的大朋友,而且可以说他们真的不喜欢 Linux 操作系统。 2014 年前后,情况发生了变化,萨蒂亚·纳德拉接替史蒂夫·鲍尔默成为微软的首席执行官。 同年 10 月,他甚至在旧金山的微软会议上宣布微软热爱 Linux!

从那时起,Azure 已经成长为一个非常友好的开源环境:

  • 它为许多开源解决方案提供了一个平台,例如 Linux 实例、容器技术和应用/开发框架。
  • 它通过提供开放和兼容的 api,提供与开源解决方案的集成。 例如,Cosmos DB 服务提供了一个与 mongodb 兼容的 API。
  • 文档、软件开发工具包(SDK)和示例都是开源的,可以在 GitHub 上获得:https://github.com/Azure
  • 微软正在与开源项目和供应商合作,同时也是许多开源项目代码的主要贡献者。

2016 年,微软以铂金会员的身份加入了 Linux 基金会组织,以确认他们对开源开发的兴趣和参与在稳步增长。

2017 年 10 月,微软表示,Azure 中超过 40%的虚拟机都运行 Linux 操作系统,Azure 正在运行许多集装箱化的工作负载。 从目前的统计来看,工作量已经达到 60%以上。 除此之外,微服务都使用开源编程语言和接口。

微软对开源技术、开源 PowerShell 和许多其他产品都非常重视。 并不是 Azure 中的每个 Microsoft 产品都是开源的,但至少您可以在 Linux 上安装并运行 Microsoft SQL,或者您可以获得 Microsoft SQL 的容器映像。

总结

在本章中,我们讨论了虚拟化的历史和云的概念,并解释了在云环境中使用的术语。

有些人认为微软进入云世界有点晚,但实际上,他们在 2006 年就开始研究和开发技术,并且许多工作在 Azure 中幸存了下来。 有些项目夭折了,因为它们还为时过早,而且当时许多人对云计算持怀疑态度。

我们还介绍了 Azure 云的架构以及 Azure 可以为您的组织提供的服务。

在本章的最后一部分,我们看到 Azure 是一个非常友好的开源环境,并且微软投入了大量的努力使 Azure 成为一个考虑到互操作性的开放的、标准的云解决方案。

在下一章中,我们将开始使用 Azure 并学习如何在 Azure 中部署和使用 Linux。

问题

  1. 物理数据中心中的哪些组件可以转换为软件?
  2. 容器虚拟化和硬件虚拟化之间的区别是什么?
  3. 如果您想在云中托管一个应用,哪种服务类型是最好的解决方案?
  4. 假设您的一个应用需要严格的隐私政策。 在您的组织中使用云技术仍然是一个好主意吗?
  5. 为什么 Azure 中有这么多可用的区域?
  6. Azure Active Directory 的目的是什么?

进一步阅读

如果你想了解更多关于 Hyper-V 的知识,以及如何使用 Azure 和 Hyper-V 来进行站点恢复和工作负载保护,请查阅Windows Server 2016 Hyper-V Cookbook, Second Editionby pack Publishing。

关于虚拟化和云计算的历史以及它们之间的关系,有很多很好的技术文章。 我们真正想提到的是虚拟化和云计算之间关系的正式讨论(ISBN 978-1-4244-9110-0)。

别忘了访问本章提到的微软网站和 GitHub 知识库!****