加上加入门德莱

应用程序编程接口和连接的系统

瑞克斯特姆, ...朱莉克雷格,英寸 数字企业中的应用性能管理2017年月日

示例API用例:微服务和应用程序编程接口

微服务是具有API依赖关系的最新应用程序的一个很好的示例。从业务支持的角度来看,微服务体系结构加快了新功能和特性的上市时间,因为组件化的形式因子支持应用程序/服务创建的构建块方法。从IT的角度来看,它们支持基于负载的响应式扩展。从发展的角度来看,它们很适合敏捷的与许多公司运行的单一企业应用程序相比,开发和修改速度更快。

通常与集装箱化使用诸如码头工人,容器-基于微服务它们是可移植的,因为它们能够在任何支持Docker的服务器上运行,通常是基于Linux的服务器。在微服务体系结构中,单片应用程序被分解成小服务(或者,新代码作为小服务开发),每个微服务执行一组特定的任务并作为自己的进程运行(请参见图11.2).

图11.2.微服务体系结构支持基于负载的响应式扩展。它们还可以加快新服务的交付,加快新功能和功能的上市时间。

通常被吹捧为适合敏捷业务的新架构模型,微服务形式的软件组件可以通过api连接在一起(编排)。然后,编排的服务作为工作流执行,其方式与传统事务和应用程序的运行方式基本相同(请参见图11.3).

图11.3.微服务通过应用程序编程接口连接编成应用程序/事务。

微服务交付的所有好处都取决于连接它们的api的性能。microservices体系结构用成百上千个基于API的连接取代了单片(或分布式)应用程序交付。从这个角度来看,性能和/或可用性问题必然会发生;唯一的问题是什么时候。这些挑战突出了对集成的生产级网关和APM解决方案的需求,这些解决方案能够支持API连接服务的执行。

阅读整章
网址:https://www.sciencedirect.com/science/article/pii/b97801280040188000115

边缘云——推动移动云的边界

迪江,慧君,英寸 移动云计算2018年月日

分配

传统上,微服务都位于云中。在物联网系统中,我们期望微服务可以与设备、边缘云或网关组件相关联,或者部署在更大的互联网云中。由于这种分布,API网关也可能分布在边缘,包括在个人局域网或智能手机上。这些网关可以有多种形式,可以是独立的物理机器,也可以是部署在路由器或服务器上的软件组件。

由于本地性和数据流管理,在云中分布微服务和网关的优势之一是性能更好。在许多物联网场景中,将所有设备生成的数据传输到集中的远程云中进行处理和决策的成本大于收益。例如,一些物联网应用可能对延迟敏感,或者设备生成的数据量超过可用的网络带宽,这就要求我们在设备附近运行微服务。智能手机内的API网关可以从以高数据速率提供事件数据的联网可穿戴设备中聚合数据,但它可能只将汇总、聚合或“汇总”的数据中继回云微服务。边缘云和雾计算将传统的云计算范式扩展到物联网的边缘,从而实现新类型的应用[67,78]。在我们的架构中,edge cloud或fog是一个虚拟化平台,作为靠近设备或数据源的微服务的按需执行环境,这与在设备上运行微服务不同。提供边缘云或雾平台还可以提供更好的架构灵活性。例如,微服务可以从设备卸载或迁移到边缘云或雾,以满足不断变化的服务性能需求。

阅读整章
网址:https://www.sciencedirect.com/science/article/pii/b97801280964130089

移动云卸载模型

迪江,慧君,英寸 移动云计算2018年月日

微服务

A微服务 [100] [179] [261] [214]是一个独立开发和部署的最小功能服务模块,微服务体系结构是由一个微服务组成的分布式软件模块的体系结构,它是一种从成功的现场实践中发展而来的软件工程模式,而不是一种发明的原则。微服务的主要特点包括:小型的、集中的、自包含的组件化服务、松散耦合的体系结构、清晰的上下文边界、与软件体系结构一致的开发团队、分散的治理、针对失败的设计等。这些体系结构特征带来了许多好处,如异构技术的集成能力、连续交付、弹性、可扩展性,最终形成快速演化的体系结构。

微服务模式主要在基于web的大型应用环境中讨论,而物联网系统的研究较少。很有趣看他们有很多相似的特征[70] [172]首先,它们有一个类似的松散耦合架构。一个典型的物联网系统将集成来自不同供应商的许多设备和软件组件,每个设备和组件都有自己的生命周期。其次,大多数物联网系统需要集成在不同硬件设备上实现的异构软件组件。为了应对快速发展的技术,其中一些可能会在不受系统其他部分影响的情况下进行更改或更新。第三,物联网系统中不同软件模块之间的通信通常基于定义良好的面向消息的接口(restapi),这类似于调用服务。第四,他们都试图在实地维持最低限度的部署和管理工作。服务越小,卸载就越容易。尤其是在物联网设备上,它比智能手机更受资源限制,因此可能需要将任务转移到其他设备上。此外,物联网设备的数量可能远大于手机,这就导致了可扩展性研究课题的负担。

阅读整章
网址:https://www.sciencedirect.com/science/article/pii/b978012809641300077

移动云服务模型

迪江,慧君,英寸 移动云计算2018年月日

3.4.2条 物联网微服务模式

我们希望朝着一个远景努力,在未来,我们能够有效地开发出互操作性、灵活性和安全性极高的物联网系统。视觉的结构由一个高层次的抽象模型组成微服务-基于物联网系统,以及人们可能期望在任何给定物联网系统的设计和部署中采用的解决方案模式。

图3.3展示了使用微服务模式的物联网系统整体抽象模型的可视化。在下面的小节中,我们将重点关注微服务和API网关这两种主要模式,微服务和API网关。

图3.3

图3.3.使用微服务构建物联网系统的抽象模型。

微服务

我们要”微服务“-基于物联网系统由一个或多个独立的独立可部署软件组件组成,即通过抽象为方法调用(例如,web服务调用或消息RPC)的消息或通过发布/订阅事件相互交互的微服务。

从服务消费者的角度来看,微服务不过是api的集合。为了便于讨论这些api的组织,我们提出了一个抽象的微服务的内部结构模型,可以映射到各种协议上,如MQTT[254],辅佐[242号],AMQP公司[253],或REST API。在我们的模型中,一个微服务包含一个或多个虚拟对象,我们认为它们类似于面向对象编程(OOP)语言中的对象。虚拟对象可以有两种类型的服务api:方法或事件通道。方法类似于OOP语言中的方法或restapi中的服务:它们提供远程过程调用(RPC)。事件通道实现了发布者-订阅者模型,这样当事件生产者发布事件时,订阅事件通道的任何人都将收到通知。

具有传感能力的传感器和设备就是典型的事件生产者。它们发布的事件通常是间歇性的,它们的流量通常是推送式的。云中的执行器和服务是事件消费者和方法提供者(被调用方)的例子。它们通常是连续在线的,其通信方式通常是请求-响应。一个事件或方法调用可能会生成一系列附加事件或方法调用。只要方法和事件通道在数据格式和语义上兼容,不返回任何内容的方法就可以用作事件使用者。微服务可以动态创建虚拟对象、事件通道和方法。

API网关

API网关是在两个或多个之间中继调用或请求的接口微服务.API网关可以将多个微服务的API聚合到一个客户端接口中,还可以将调用或请求从一个入口点分发或路由到多个目标微服务。与允许微服务之间的直接通信不同,可以在它们之间放置一个API网关,它可以通过网关。然后通过注册建立微服务连接;当微服务注册到API网关时,它会创建一个或多个具有唯一标识的端点,这些端点可以通过与API网关的静态配置或动态协商进一步绑定到事件通道或方法。除了微服务之外,任何用户或机器客户机也可以被要求将其标识作为标识符的名称来与API网关交互以访问其关联的微服务。身份管理和身份验证服务可以利用管理帐户的现有系统,例如单点登录(SSO)或OAuth[127号].

从API网关的角度来看,每个端点都是唯一可标识的,其中标识可以表示为唯一名称,也可以仅表示为标识符。这样的端点名称或标识符只存在于模型中,API网关实现需要将其映射到实际的协议中,例如restapi或CoAP中的URL、AMQP中的队列或交换或MQTT中的主题。在上例所述的云支持体重管理物联网系统中,体重管理计划虚拟对象可以映射到云服务器上运行体重管理和推荐微服务的REST resource URL,该虚拟对象的方法和参数格式可以映射到HTTP方法。在这种方法的典型用法中,方法名被编码在JSON负载中,以增加有限类型的HTTP方法。这种映射对我们的模型施加了额外的约束,比如要求会话中的连续方法调用必须是“非粘性的”

阅读整章
网址:https://www.sciencedirect.com/science/article/pii/b978012809641300041

5G驱动程序

斯特凡罗默, ...凯瑟琳穆利根,英寸 5G核心网2020年

2.3 新技术

许多新技术推动了5G的发展,在本节中,我们将非常简要地讨论主要技术:

(一)

虚拟化,

(二)

本地云,

(三)

容器,

(四)

微服务,和

(五)

自动化

2.3.1条 虚拟化

传统上,移动核心网络元素的功能设计是分布式应用程序,水平扩展并在专用硬件(如机箱中的处理器刀片)上运行。网元体系结构内部分布在执行特定任务的特定类型的刀片上。例如,执行负责网络元素总体管理的软件的刀片服务器与执行管理移动核心用户实际工作的刀片服务器相比。缩放主要通过工作叶片的内部水平缩放来实现。

虚拟化的第一个主要步骤是将这些特定于应用程序的刀片迁移到虚拟化资源,如虚拟机(vm)和更高版本的容器。ETSI NFV(网络功能虚拟化)和OPNFV的创建旨在通过协调运营商之间的方法来促进和推动电信网络的虚拟化。然后,网络元素可以实现为一个分布在多个虚拟主机之间的应用程序。因为应用程序不再受物理机箱的资源和容量的限制,所以这一步允许更大的灵活性来部署和协调已安装的硬件。例如,操作员可以部署更大(甚至更小)的网元实例。这第一步主要是为了证明虚拟化主机环境可以适当扩展以满足当今移动核心的用户和容量需求。然而,在这个阶段的大多数应用程序都像一个2层应用程序设计,其中第二层(逻辑)应用程序本身与它所需的状态存储紧密耦合。维护状态的存储设计是从物理系统移植来的,其中每个刀片都有自己的内存。

移动核心架构演进的下一步是云本地设计,以利用云技术和功能提供的灵活性。在这一步中,移动核心网络元素的设计被紧密地集成在预先定义的单元和比率中,现在在逻辑和物理上都进行了解耦,以提供更大的灵活性和独立的可扩展性。例如,这个步骤进一步分离了网络功能的控制平面和用户平面。同样,在云计算的演进中,移动核心功能开始实现web应用的网络架构。

2.3.2条 本地云

在过去的几年里,云计算本地架构引起了人们的广泛兴趣,而服务运营商试图模仿所谓的超规模计算(如Facebook、Google、Amazon)所获得的效率,这一领域的兴趣也大大提高。简单地说,架构和技术(基于服务的接口,微服务,容器等)在web规模的应用程序中使用给网络基础设施带来了弹性、健壮性和部署灵活性方面的好处。云原生应用程序和基础设施不应被视为是尚未完全启动和运行的云转换之上的另一个复杂程度;相反,它应该被视为当今电信业正在进行的云转型的自然演变。

因此,云本地策略允许服务提供商通过支持DevOps等实践来加快新服务的开发和部署,而快速扩展或缩小服务的能力允许实时优化资源利用率,以响应流量峰值和一次性事件。

有几种云本地设计原则适用于所有安装,包括:

基础设施不可知:云原生应用程序是独立的,不受任何底层基础设施和资源的影响。

软件分解和生命周期管理:利用微服务架构,软件被分解成更小、更易于管理的部分。每个组件都可以使用CaaS(容器即服务)环境进行单独部署、缩放和升级。

弹性:在传统应用程序中,硬件的平均无故障时间(MTBF)一直是衡量恢复能力的基本指标。在云计算中,我们依赖于使用自动伸缩和修复的软件组件的分布和独立性。这意味着应用程序中的故障只会导致暂时的容量损失,而不会升级到完全重新启动和服务丢失。

状态优化设计:我们如何管理状态取决于状态/数据的类型和状态的上下文。因此,没有“一刀切”的方式来处理状态和数据,但应该在性能、弹性和灵活性之间取得平衡。

编排和自动化:云本地应用程序的一个巨大好处是通过例如基于Kubernetes的CaaS层来提高自动化程度。CaaS能够自动扩展微服务,自动修复失败的容器,并在大规模部署之前进行软件升级,包括金丝雀测试(小规模测试)。

2.3.3 容器

虚拟化彻底改变了IT基础设施,使技术供应商能够为消费者提供各种基于IT的服务。从一个简单的角度来看,系统级虚拟化允许操作系统(OS)的实例在一个服务器上同时运行,该服务器位于hypervisor之上。hypervisor是一种创建和运行虚拟机的计算机软件。系统级虚拟化允许在虚拟机监控程序上的单个服务器上运行多个操作系统实例。

另一方面,容器彼此隔离,并在所有容器之间共享操作系统内核。容器广泛应用于需要优化硬件资源以运行多个应用程序、提高灵活性和生产率的部门。此外,针对集装箱环境的生态系统和工具,例如Kubernetes正在迅速扩展。

容器对于电信应用尤其有用

低延迟、弹性和可移植性是关键要求,例如在边缘计算环境中。

实现短期服务,即高度敏捷的应用程序部署。

在机器学习或人工智能中,当把一个问题分解成一组小任务是有用的,因此容器将在一定程度上帮助实现自动化。

2.3.4款 微服务

微服务是一种软件开发的体系结构和组织方法,其中软件由通过定义良好的api进行通信的小型独立服务组成,而不是以单一的方式开发。它通常被认为是面向服务的体系结构方法的变体。微服务体系结构的总体目标是使应用程序更易于扩展和开发,支持创新并加快新功能的上市时间。然而,它们也带来了一些增加的复杂性,包括管理、编排和创建新的数据管理方法。

微服务分解有几个好处:

微服务实例的功能范围要小得多,因此可以更快地开发更改。

一个单独的功能预计将应用于一小部分微服务,而不是整个分组和5GC功能。

可以根据需要添加/删除微服务实例,以增加/减少其功能的可伸缩性。

微服务可以有独立的软件升级周期。

因此,与部署复制的预打包功能实例不同,通过微服务,运营商可以按需部署所需规模的功能。这种方法进一步提高了资源利用效率。它还大大简化了新功能的部署,因为运营商可以在一组微服务上添加功能/执行升级,而不会影响相邻的服务。

2.3.5款 自动化

核心网络发展的主要驱动因素之一是提供利用自动化技术的网络的愿景。在更广泛的信息和通信技术领域,机器学习、人工智能和自动化正在提高系统构建和运行的效率。在3GPP领域中,Release 15和Release 16中的自动化主要指自组织网络(SON),它提供自我配置、自我优化和自我修复。这三个概念为最终用户提供了更高的可靠性,为服务提供商提供了更少的停机时间。这些技术通过消除对网络元素的手动配置以及动态优化和故障排除,最大限度地降低了移动网络的生命周期成本。

使用sonforlte的运营商已经报告了加速推出时间、简化网络升级、减少掉话次数、提高呼叫设置成功率、提高最终用户吞吐量、缓解特殊事件期间的拥塞、提高用户满意度和忠诚度,以及运营效率——例如节省能源和成本,以及将无线电工程师从重复的手工任务中解放出来(2018年SNS电信与IT).

然而,5G面临着独特的挑战,这使得配置、优化和修复的自动化成为任何服务提供商网络的核心部分。驱动因素包括多个无线网络同时运行和连接到不同核心的复杂性、所需基础设施扩展的广度以及网络切片、动态频谱管理等概念的引入,预测性资源分配和上述虚拟化资源部署的自动化。

此外,我们预计在未来几年内,机器学习和人工智能将进一步融合到移动系统的各个方面。

阅读整章
网址:https://www.sciencedirect.com/science/article/pii/B9780081030097000028

连续体系结构原理

穆拉特埃代尔,皮埃尔普雷乌尔,英寸 连续体系结构2016年月日

原则4:变革架构师利用“小的力量”

连续体系结构的第三个原则意味着体系结构和系统设计将随着需求(尤其是非功能性需求)的出现而改变。变化是不可避免的;挑战是在实现架构一致性的同时对其进行改进。但是架构师如何创建一个基于项目开始时已知的几个非功能性需求的设计,并且能够适应变化呢?

这就是连续体系结构的第四个原则来拯救我们的地方。答案在于将架构建立在更小、松散耦合的组件上,并在新需求出现时替换(而不是更改)这些组件。使用松散耦合的组件并不是一个新的想法;它至少从20世纪80年代就开始了。事实上,davidparnas早在20世纪70年代早期就在信息隐藏和模块化编程方面引入了这个概念,Simula语言在20世纪60年代实现了类似的思想。

但是什么是松耦合?根据维基百科的说法,“在计算和系统设计中,松散耦合的系统是指其每个组件对其他独立组件的定义知之甚少或根本不知道。”这个概念是由卡尔·韦克于1976年提出的。耦合是指一个组件对另一个组件的直接了解程度。使用松耦合的目的是降低在一个组件将导致另一个组件出现意外行为。限制组件之间的互连有助于隔离问题并简化测试、维护和故障排除。

一个松散耦合的系统被分解成一组高度独立的组件,这些组件可以被独立地替换。当组件之间或组件之间需要高度交互时,松耦合会带来挑战。例如,在一些移动应用程序中,为了在前端和后端之间实时同步数据,需要高度的元素交互。为了满足苛刻的响应时间要求并保持设计简单,架构师可能需要在前端和后端组件之间实现一些直接调用,从而增加这些组件之间的耦合。

因此,与任何其他设计方法类似,松散耦合需要在充分理解需求的情况下谨慎使用。松耦合和可替换性的另一个好处是,通过替换不同的服务实现,它们可以延迟设计决策,甚至可以逆转某些决策。为此,必须将服务划分为适当的独立关注点。

简而言之,为变更而设计架构需要在避免耦合的同时实现互操作性。记住健壮性原则是一个很好的连续体系结构实践!

稳健性原则,也称为波斯特定律

在这个原则上,你所接受的是“你所接受的”是保守的8换句话说,向其他机器(或同一台机器上的其他程序)发送命令或数据的代码应该完全符合规范,但是接收输入的代码应该接受不一致的输入,只要含义明确。

但是使用小部件呢?根据Wikipedia的说法,“Unix哲学强调构建简短、简单、清晰、模块化和可扩展的代码,这些代码可以由开发人员(而不是创建者)轻松地维护和重新调整用途。Unix的哲学倾向于可组合性,而不是维基百科的“Unix哲学”微服务“是将这种设计理念应用到Unix操作系统之外的一个很好的例子。使用这种方法,许多服务被设计成小而简单的代码单元,责任尽可能少(单一的责任是最佳的),但是当它们一起使用时,它们可以变得非常强大。“微服务”方法可以看作是面向服务体系结构(SOA)的改进。

Amazon很好地说明了这种方法,因为它非常致力于微服务。使用这种设计理念,需要对系统进行架构,使其每个功能都可以独立地按需使用。这种设计方法背后的概念是,应用程序应该由能够很好地完成一些事情的组件构建,这些组件很容易理解,并且在需求发生变化时易于替换。这些部件应该易于理解,并且足够小,以便在必要时丢弃和更换。

实际上,完全从微服务构建一个系统可能是一个很大的挑战,因为随着微服务的数量呈指数级增长,集成和部署方面的挑战将变得势不可挡。然而,在管理和部署微服务方面正在取得重大进展,在不久的将来,完全使用微服务构建一个大型系统将成为一个可行的提议。同时,可以利用微服务来设计系统中最有可能发生变化的部分,从而使整个应用程序更能适应变化。微服务是连续体系结构工具箱中的一个关键工具,因为它们支持服务的松散耦合以及可替换性,因此能够快速可靠地交付新功能。

连续体系结构与“紧急体系结构”

请注意,我们并不是在讨论一些敏捷项目的“紧急架构”过程。这些项目适用敏捷宣言原则11(“最好的架构、需求和设计来自自组织的团队”),这导致架构在新需求出现时通常需要大量重构。

这种方法可能适用于较小的项目,但对于较大的系统,需要预先进行一定数量的架构规划和治理,以确保满足质量属性要求,并确保及时提供适当的基础设施来支持开发、测试和实现活动。

阅读整章
网址:https://www.sciencedirect.com/science/article/pii/B9780128032848000026

NFV基础设施管理

灰色,托马斯D。纳多,英寸 网络功能虚拟化2016年月日

PaaS对NFV的影响

PaaS对网络运营商部署NFV的影响很难估计,但使用这种方法进行部署时,它可能具有潜在的革命性,因为:

它可以允许在一个功能之间没有太多重复的环境,从而优化服务的资源占用。根据他们的定义,微服务是相对原子的,所以不需要有多个类似的“微服务”,除非它是为了扩展/扩大服务的总资源能力而做的。这是在效率方面的明显进步。

它可以用来从供应商那里创建“完整的报价”,这些供应商将IaaS覆盖在它下面,并在MANO块旁边工作,从而创建一个服务如何构建的新视图。当基于一个开放的框架时,这个环境有可能被扩展到包括运营商的定制微服务或其他合作伙伴的微服务。在今天的商业PaaS产品中,比如amazonweb服务的媒体服务,都可以找到这样的例子。此服务包括他们自己的工具以及来自Elemental的一组集成工具。像Netflix这样的OTT服务可以构建他们的定制在上面通过扩展或添加这些服务为环境增加价值。

一旦我们在微服务级别,我们现在有许可证和自由来改变我们对服务创建的看法,以及如何构建不围绕传统功能边界构建的新服务。我们在下面的一个例子中对此进行了说明。

它可能会改变我们在服务创建中考虑“链接”的方式,因为不是每个微服务都需要看到原始数据包来呈现整个服务!22

后一点在图5.11。在图中,有几个微服务,每个微服务都由一系列类似颜色的框表示,每个框都是一个容器。

图5.11.NFV服务通过微服务和PaaS实现。

每个微服务的容器集群不一定都在包路径中。它们必须是尽可能优化的容器。也就是说,为了最大限度地利用底层资源,容器应该只包含实现其目标所需的最少的功能和过程。这也促进了最大限度的重用,以及整个系统的规模。

服务A可以通过外部负载平衡或内部路由来处理传入/传出数据包事件,将数据包分解为多个数据字段(并在出口处重新组合)。

大多数工作都可以在中完成,但代码集中的例外情况是生成由其他服务处理的进一步工作,这些服务都可以扩展以处理需求,并且所有服务都有自己的拥有相互关系。A-B、A-C、A-D、A-B-C、A-B-D等都是构成完整服务(或整个服务功能的子集)的微服务的潜在交互。

每一个服务都可能有自己的互连,以提供协作状态管理以及相关的数据存储库。微服务B和D表现出这种行为。

在底层网络中,它们的容器可能位于不同的主机上(这是资源放置、生命周期管理和PaaS框架元素之间的其他交互所涉及的算法问题),因此存在潜在的网络事务来服务于请求。

应用于我们目前对NFV的理解的最大区别在于,这些微服务实际上是通过消息总线在应用层链接起来的。他们通常在处理一个“工作单元”——一个事务,而不一定是原始数据包。23它们的关系由ServiceBroker管理,并通过消息总线进行连接。

我们不需要像关注IaaS的“服务”方法那样,从服务链的角度来考虑内部的、底层的网络转换

NFV的IaaS和PaaS范例都依赖于一种资源优化或打包算法,该算法可以在保持特定SLA的同时最大化资源“装箱”。例如,为了最大化特定物理服务器的CPU/内存资源,此资源优化器可以在同一主机上放置尽可能多的容器,而不会过度占用其资源,从而不会违反总体服务SLA。

使用PaaS方法,NFV服务可以在消费者看来是一个单一的、有点不规则的网络元素,就像web服务一样。

具有讽刺意味的是,对网络和应用程序级别方法差异的解释完全忽略了环境作为一个持续开发/部署平台的优势,而这正是我们必须进行的文化转变的一部分。这包括微服务作为多个服务的组件的可重用性.

考虑PaaS方法的一个简单方法可能是看看云驱动的企业如何看待当今网络运营商提供的服务之一。

例如,考虑一个新的竞争对手可能会如何对待安全服务。他们是否会将一系列标记为“防火墙”、“入侵检测”、“网络安全”的物理或虚拟设备链接在一起,模拟这些服务的物理等价物并将它们物理地连接在一起,或者用一组协作的功能来彻底革新安全概念,这些功能使用消息总线而不是固定管道进行通信,并且使用的部署方式比“拓扑约束”更“情况感知”。当然,在他们的方法基础上,他们将拥有与NFV当前目标相同的弹性和资源效率目标。

说到NFV,PaaS定向是对我们今天的IaaS关注的补充。如果采用额外的抽象层,就可以消除IaaS的一些专业知识负担,这些负担在我们前面关于OpenStack的主要章节中已经提到过,对于将成为服务功能开发人员的网络运营商子集来说。并为这些问题提供了一个抽象层来处理这些问题。

阅读整章
网址:https://www.sciencedirect.com/science/article/pii/b97801820119400055

基于云的视频流媒体服务综述

香波, ...麦迪巴尤米,英寸 计算机进展2021年

4.2 基于云的视频流计算平台

当流请求到达时,请求的视频流将从云存储服务器获取,并在中解释了操作工作流第2.2节在将它们传输给观众之前,对它们进行表演。这些流程通常以独立服务的形式实现,称为微服务[108],通常以松散耦合的方式部署在云数据中心的独立服务器上。web服务器、视频摄取、编码、转码和打包等服务都是部署在数据中心用于视频流的微服务的示例。为了提高系统的可靠性和容错性,这些微服务都部署在多个服务器上,形成一个大型分布式系统。每个微服务的服务器都部署了负载平衡器。负载平衡器将流任务分配给适当的服务器,目标是最小化延迟并覆盖服务器中可能出现的故障。

上述微服务通常通过容器技术实现[109],可能使用无服务器计算模式[110]. Docker容器的扩展和缩小比虚拟机快得多,并且具有更快的启动(启动)时间,这使它们在处理波动的视频流需求方面具有优势。此外,Docker容器用于视频打包、处理到达的流请求(称为请求摄取),以及在视频流中/之间插入广告。

链轮[110]是基于AWS Lambda实现的无服务器系统吗[111]使开发人员能够以模块化和可扩展的方式对视频内容编程一系列操作。程序员实现自定义操作,从简单的视频转换到更复杂的计算机视觉任务,并使用管道规范语言构建自定义视频处理管道。然后,Sprocket以并行方式跨操作管理底层访问、编码和解码以及视频和图像内容的处理。为视频流部署无服务器(aka-function-as-a-service)计算范式(如AWS Lambda)的另一个优势是减轻流提供商的调度、负载平衡、资源供应和资源监控挑战。

除了用于视频流的计算平台类型(例如基于虚拟机和基于容器的),用于处理流任务的机器类型也会影响流的延迟和产生的成本。例如,云提供具有不同配置的各种VM类型(例如,GPU基、CPU基、IO基和内存基)或各种保留类型(如按需、spot和advance reservation)。

阅读整章
网址:https://www.sciencedirect.com/science/article/pii/S0065245821000280

实践中的连续体系结构

穆拉特埃代尔,皮埃尔普雷乌尔,英寸 连续体系结构2016年月日

利用“小规模的力量”来设计变革

团队现在面临着自计算机发明以来几乎每一个IT项目都面临的常见挑战:需求中不可避免的变化怎么办?因为他们不想在设计中猜测和构建“以防万一”的能力,他们如何适应变化?这是哪里原则4:变革架构师利用“小的力量”来救他们。正如我们在中对连续体系结构原则的讨论中所解释的那样第二章,团队的目标是基于更小、松散耦合的组件来设计他们的架构。松耦合减少了组件间的依赖性,并允许我们的团队快速地用一个组件替换另一个组件。

例如,如果他们在“MobileShopping”系统生命周期的某个时刻发现,他们需要以合理的成本扩展到超出最初选择的数据库管理系统所能提供的水平,则不使用任何特定于供应商的SQL扩展将允许他们将一个数据库管理系统(DBMS)替换为另一个数据库管理系统(DBMS)。类似地,使用小的松散耦合组件(甚至微服务如果可能的话;查看Glossary for a definition for microservices)允许他们在必要时替换组件,而不是试图增强组件,或者引入一些新的缺陷。还要记住,更改现有代码会增加服务的复杂性,使其更难理解,当然,如果需要,也更难替换。使用小型松散耦合组件的其他优点包括:

独立组件可以单独释放。

它们使用轻量级的、标准的行业接口,如代表性状态转移(REST)。

它们可以用不同的语言透明地实现。

如果需要,他们可以透明地使用自己的数据库。

它们以业务为导向,而不是以技术为导向。

它们可以单独测试。

它们可以根据需要进行复制。

它们在云中是可伸缩的(无论是内部还是外部)。

它们可以逐步释放,而不是一次全部释放。

我们的团队需要用新的服务来扩充现有的服务层(中间层),以实现“MobileShopping”应用程序提供的新功能,而不是以与现有服务相同的方式设计新服务,团队选择将这些新服务实现为可以与现有集成和业务服务共存的微服务。系统的最终架构如所示图7.4.

图7.4.具有新组件的“MobileShopping”系统的概念架构。

阅读整章
网址:https://www.sciencedirect.com/science/article/pii/b978012803284800075

智能系统和环境的数字孪生范式:行业用例

维迪亚洪古德,森蒂尔库马尔阿鲁纳恰兰,英寸 计算机进展2020年

4 边缘计算的发展趋势

5G网络和通信能力的出现将对物联网边缘分析和驱动力产生决定性影响,从而催生下一代以人和流程为中心的应用程序。

网络功能虚拟化(NFV)和软件定义网络(SDN)的快速成熟使得边缘网络资源的管理、利用和优化成为可能。

微服务体系结构(MSA)是为了实现大量的fog/edge设备微服务。机器和深度学习算法以及计算机视觉、自然语言处理(NLP)的强大功能将在边缘设备云中显现出来。Docker支持的集装箱化的压倒性采用和改编是为了促进将集装箱化软件部署到边缘设备及其网络中。多容器边缘应用将是边缘计算的核心。

容器化和服务化。Istio和其他弹性框架有助于实现面向可靠边缘环境的弹性边缘服务。增强云(edge云和企业云的混合版本)的实现是必须的。区块链技术与物联网时代的融合,为无信任环境下的物联网安全提供了保障。

阅读整章
网址:https://www.sciencedirect.com/science/article/pii/S0065245819300580