在深入了解什么是云架构之前,首先要了解什么是云计算。云计算是指由第三方供应商提供的计算服务,并可通过互联网,即云计算访问。这些服务包括计算、存储、网络、智能等。
此外,人们可以将云计算区分为三种类型。
公共云 - 云计算资源由第三方供应商拥有,底层硬件由供应商的客户共享。在这种情况下,客户强调的是降低成本。
私有云 - 云计算资源由第三方供应商拥有,底层硬件只保留给一个客户。或者,计算资源由公司直接拥有,但位于公司防火墙之外的数据中心。在这种情况下,客户强调的是控制。
混合云 - 这是一个公司将私有云和公有云资源结合起来的方案。
至于云架构,这个概念是指将云计算服务整合到相互连接的服务环境中,形成一个在线平台,应用程序可以在上面运行。总而言之,人们可以把它看作是制造汽车的过程,不同的部件(云服务)按照蓝图(云架构)被组装起来,以建造汽车(云平台/应用)。云架构的另一个值得一提的方面是可用的服务层级。
基础设施即服务(IaaS)层--从供应商那里租用IT基础设施。在这种情况下,除了基础设施由供应商拥有,客户仍然负责设置组件并管理环境。
当客户需要对部署在云上的资源进行非常严格的控制时,这种服务层很有用。Azure上这类服务的例子有虚拟机、存储账户、虚拟网络等。
平台即服务(PaaS)层 - 租用一个按需的环境来创建和管理应用程序。在这种情况下,客户负责管理平台,而不负责底层基础设施。这种服务层对应用开发很有用。Azure上这类服务的例子有数据工厂、SQL数据库、应用程序服务、机器学习服务等。
软件即服务(SaaS)层--通过互联网租赁软件应用。在 这种情况下,供应商主持和管理软件应用程序、底层基础设施,并处理任何维护,而客户则按需访问服务。Azure上这类服务的例子有微软Office 365、Power BI等。
最后,与基于内部资源的解决方案相比,云解决方案有几个属性会对其设计产生影响。以下是对主要属性的总结。
基于云的架构抽象了任何解决方案的物理资产层--无论使用哪一层的云服务,云供应商将负责提供和维护服务运行所需的物理资产,即存储、服务器、机器等。这意味着ICT团队的责任通常会转移,因为不再需要物理维护。
基于云的解决方案在本质上是可以全球访问的--对云的访问是通过互联网进行的,所以云原生应用可以从任何地方访问。虽然这对需要全球分布的解决方案来说是一个优势,但它也意味着开发者不能再假设访问总是发生在内部网络上。因此,安全设计是非常重要的,以确保只有被授权的人才能访问这些应用程序。为了实现这一点,任何云架构都应该利用云供应商提供的众多安全机制。
基于云的架构得益于更高的可扩展性--在云上设计的解决方案不限于在内部数据中心拥有的资产,而且云供应商通常为其服务提供高水平的可扩展性。因此,扩大或淘汰云计算解决方案通常是一个点击几下鼠标的问题。
为了帮助更好地理解所有这些概念是如何结合在一起的,在接下来的章节中我们将解释一些云架构的例子。
云架构实例1:构建企业数据中心
这第一个Azure云架构例子的背景如下。
"PolyR是一家专门生产各种塑料制品的公司。他们的总部在比利时,但他们的生产基地分布在欧洲和亚洲。目前,该公司的所有数据都存储在位于其总部的内部数据中。值得注意的是,该公司为各部门拥有多个系统,这些系统之间没有很好的整合。
ERP系统是由一套内部的数据库支持的
CRM系统最近改成了基于云的服务,所以数据存储在供应商那边
每个工厂都在本地数据库中存储生产数据
在之前的大会上,已经决定公司要建立一个中央数据中心。这个数据中心的目的是集中数据资产,提高整个公司的数据源可视性,并促进跨系统的数据组合。"
在PolyR的大会上定义的要求可以用云上的解决方案来实现。下图是要实现的架构的高级设计。
在这个例子中,云架构设计支持以下功能。
Azure上的数据以Blobs的形式存储在Gen2数据湖存储账户中。这种存储解决方案是高度可用的,在休息时对数据进行加密,并且是可扩展的,这使它成为数据湖的完美候选者。此外,Gen2存储账户支持分层文件夹结构,与POSIX安全组相结合,允许对存储账户进行细粒度的访问控制。因此,PolyR可以使用这个服务来存储其所有的数据,包括原始格式和更标准化的格式。
批量数据的摄取可以用Data Factory来处理。这个数据集成服务很容易使用,有多个内置的服务连接,并且可以到达其他云服务和内部部署的服务。所有这些特点使它成为批量摄取和协调的良好候选者。PolyR可以使用该服务连接到内部服务器,并将原始数据(ERP摘录、工厂的参考数据等)上传到数据湖。此外,由于PolyR的CRM供应商,支持API连接到他们的后端,Data Factory也能够提取CRM数据。最后,数据工厂还可以用来将数据从云端导出到内部,以继续支持内部的应用。
实时数据摄取可以使用Event Hub来处理。这种数据摄取服务使用简单,可扩展,并能与其他服务无缝集成。这使得它成为流媒体数据的良好候选者。虽然还有其他的数据流服务,如Azure IoT Hub,但PolyR需要一个可以流化大小小于1MB的事件的解决方案,而且不需要双向通信。因此,为了从其生产线上的传感器摄取原始数据,Event Hub比IoT Hub更受欢迎。最后,Event Hub有一个功能,可以很容易地将数据持久化到数据湖中,这对长期保留来说是非常完美的。
一旦原始数据登陆云端,就可以使用Databricks进行标准化处理。这种数据处理服务能够对批量和实时数据进行大规模处理,支持Scala、Python、SQL和R的工作流程,并易于扩展。因此,它是处理已登陆数据湖的原始数据的完美候选者,以使其标准化(应用标准结构、转换数据类型、转换文件格式等)。然后,结果可以被送回数据湖的一个策划层。
云架构实例2:自助服务报告
在第二个使用案例中,PolyR希望利用其云数据枢纽来实现报告目的。
"在启动了云数据枢纽计划之后,PolyR的管理层现在想利用这个机会重新定义公司内部的报告标准。目前,每个部门都对自己的报告负责。因此,公司的格局是支离破碎的,多种报告解决方案并存。一些部门使用专门的工具来创建和提供报告,但Excel和PowerPoint因其提供的独立性而受到欢迎。PolyR希望建立一个通用的自助式报告解决方案,仍然允许每个部门有一定程度的自由"。
下图总结了一个可以满足PolyR需求的高层架构。
在这个云架构的例子中,云架构设计支持以下功能。
报告所需的数据可以在Synapse分析工作区进行建模。这个分析服务是SQL引擎、Spark引擎和数据管道的组合,提供了一个工作空间,数据工程师可以用来建模和为其他应用提供数据。由于,PolyR估计数据的大小在1TB以上,而且有必要对来自数据湖的策划数据进行建模,所以这个服务是完成工作的好的选择。数据工程师将能够使用数据管道把数据从中央数据湖复制到SQL中的登陆表。然后使用SQL和Spark引擎对数据进行建模,达到企业级要求。
使用Power BI服务可以将建模的数据提供给消费者。这种云服务是一种软件即服务(SaaS)产品,包括一系列的软件、应用程序和网络门户,可用于显示和管理报告。由PolyR的数据工程师在Synapse中建立的SQL视图,将可以从Power BI中访问。因此,允许用户建立自定义的数据集和报告,他们可以与企业的其他部门分享。虽然Power BI有一个允许客户在内部服务器上托管Power BI服务的产品,但PolyR决定使用云版本,这样它可以不需要管理后端基础设施。
云架构实例 3: 实时分析和预测
在最后一个用例中,PolyR希望利用其现有的云计算基础设施来实施一个数据科学项目。
polyR公司一个工厂的经理在对迄今为止采取的云计算举措感到信服之后,他想利用云计算的优势,以便利用安装在生产线上的传感器提供的数据。这些传感器在塑料生产过程中收集数据,并将其发送到工厂内部的一个数据库中。目前,这些数据被实验室职员用来确保生产质量,但目前的系统已经达到其生命周期的终点,将不得不被替换。此外,经理想利用这个机会促进实验室职员分析数据和使用预测数据模型检测生产缺陷。"
下图总结了一个可以帮助该工厂经理实现这一目标的高层次架构。
Insert Diagram 4
在这个例子中,云架构设计支持以下功能。
现有的数据湖存储可以被用来提供历史事件,这些事件已经被持久化为文件,作为开发机器学习模型的训练数据集。
现有的事件集线器可以作为机器学习模型可以监听的文件的实时输入,以分析工厂中传感器产生的数据。
预测模型可以使用机器学习工作区来创建。这项服务是一个基于云的环境,允许数据科学家训练、部署和跟踪机器学习模型。此外,这项服务还带有操作功能,便于对训练好的模型进行生命周期管理。因此,PolyR的数据科学家将能够使用这项服务来创建分析生产事件所需的模型,存储所产生的图像,然后将它们部署到docker容器上执行。
容器化的模型将在Kubernetes服务上运行。这项服务是 Kubernetes系统的Azure实现,它是一个自动部署、扩展和容器化应用程序管理的工具。 在这种情况下,Kubernetes 将被用来托管机器学习模型,并将监听Event Hub,以获取要处理的数据
机器学习模型的结果将被发送到Cosmos DB。这项服务是一个非关系型数据库,其特点是低延迟、高可用性和自动可扩展性,已经为应用开发进行了优化。这些特点将确保由预测模型处理的结果可以被存储并立即可以使用。
最后,可以利用现有的Synapse Analytics & Power BI服务来提供报告数据。这将确保关键操作数据存储与报告数据存储分离,避免干扰。同时,在数据探索和仪表盘方面提供灵活性。
总结
希望这篇文章达到了它的目的,即介绍云架构的例子,激发人们对这一美妙领域的兴趣。作为结束语,重要的是要强调一个事实,即云是广阔的,为了把想法变成现实,所有种类的组合都是可能的! 虽然本文的重点是强调使用Azure作为云供应商,但这并不意味着项目必须锁定在一个供应商身上。这也不意味着云项目不能成为混合云和内部资源的混合解决方案。
在云项目中,重要的不是云架构本身,而是它对最终解决方案实现期望控制水平的能力,它与业务需求的契合度,以及它最终给企业带来的价值。