热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

云服务的抽象路由模型

云服务路由的诉求在PaaS或SaaS领域内,云服务是PaaS与SaaS中第二个S(Service)的实现者,一个看似简单的云服务,其实现上通常是很复杂的,且并不是独立的。典型的如亚

云服务路由的诉求

在PaaS或SaaS领域内,云服务是PaaS与SaaS中第二个S(Service)的实现者,一个看似简单的云服务,其实现上通常是很复杂的,且并不是独立的。

典型的如亚马逊的S3服务,S3本身是一个跨地域对全球提供服务的服务,S3服务内部之间需要互相通信交换数据与指令,同时S3又依赖AWS内的其他基础服务(IAM、CloudWatch等)。

这些众多的数据与消息交换,需要有一个稳定、快速的路由总线,路由总线好比高速公路,高速公路修好了,汽车(消息或数据)才能畅通无阻。

本文定义了路由总线的DNA,抽象出了云服务的典型路由总线模型,分析了模型中各个部件的属性,对通用的云服务具备普适性,可参考。

路由总线的DNA

访问点

路由总线中各个访问点是关键,外部或内部与云服务交互,都是从访问点进入,在云服务路由总线设计时候,需要明确有多少个访问点,每个访问点的用途、协议。

接口认证方式

接口暴露到访问点上,需要明确接口的认证方式,用户通过什么凭证访问接口。

接口注册方式

云服务的接口通过什么方式注册到路由总线上,如何将不同的接口注册到不同的访问点,并设定认证模式。

路由抽象模型:5 Layers,6 Endpoints

云服务的抽象路由模型插图

5 Layers

路由总线抽象模型分为5层,每一层有明确的职责。

L1: APIGWLB/UILB

用户访问云服务API或界面顶层Load Balancer,负责接收用户请求并转发到系统内。L1是纯粹的LB能力,通常是4层转发。典型的实现方式是等价路由+LVS+Nginx集群。

L2: APIGW

云服务暴露对外接口的API网关,APIGW挂接在L1的LB之下,负责处理外部API请求。APIGW通常具备API编排与治理(流控,认证)等能力,注册到APIGW上的API需要指定认证方式,典型的AWS的API认证方式为AK/SK。

部分APIGW还具备认证凭证转换的能力,典型的如将AK/SK转换为内部的Token,对内部系统屏蔽外部的认证凭证差异。

为什么会有认证凭证差异?因为不同场景下需要不同的认证凭证。典型的UI API的认证凭证是Session(通过用户密码登录后换得的),APIGW还可以将Session也换成内部的Token。

L3: ServiceLB

由于APIGW通常不带LB能力,因此发布到APIGW上的API访问点必须是LB的访问点,所以需要一个ServiceLB。Service LB挂接在L2的APIGW之下,负责接收APIGW转发过来的请求。

ServiceLB还有一个用途是云服务内部服务之间通信使用。

L4: Internal Router

Internal Router 用于服务内微服务之间通信使用,它的存在是为了方便管理API。服务内部的API不对其他服务开放,因此变更时候好管控。

L5: TenantLB

Tenant LB用于场景比较特殊,在同时提供IaaS服务的云服务场景下使用,如果IaaS也是同一个供应商提供的,那么用户可以使用TenantLB这个通道访问云服务API,TenantLB这个通道是内部通道,在虚拟机没有连接到Internet的情况下,也可以访问到云服务。由于是内部通道,因此对于有在客户虚拟机上部署的Agent的云服务,Agent也走此通道。

6 Endpoints

E1: Tenant North API

用户通过Internet访问云服务API的通道,认证方式可以多样。

E2: UI API

用户通过Internet访问云服务UI的通道,通常使用用户密码认证。

E3: Service API

云服务内部服务之间互相访问通道。

E4: Micro Service API

云服务内部微服务之间互相访问通道。

E5: Tenant Agent API

云服务部署在用户通过IaaS分配的虚拟机上的Agent访问云服务的通道,内部通道,不需要通过Internet。

E6: Tenant South API

IaaS分配的虚拟机上访问云服务通道,内部通道,不需要通过Internet。

本文链接:http://www.yunweipai.com/22856.html


推荐阅读
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 在 Vue 应用开发中,页面状态管理和跨页面数据传递是常见需求。本文将详细介绍 Vue Router 提供的两种有效方式,帮助开发者高效地实现页面间的数据交互与状态同步,同时分享一些最佳实践和注意事项。 ... [详细]
  • 本文深入解析了Spring Cloud路由网关Zuul的核心功能及其典型应用场景。通过对方志朋老师教材的学习和实践,详细探讨了Zuul在微服务架构中的重要作用,包括请求路由、过滤器链管理以及服务动态扩展等关键特性。同时,结合实际案例,展示了Zuul在高并发和复杂业务场景下的应用优势,为读者提供了全面的技术参考。 ... [详细]
  • 深入探索Node.js新框架:Nest.js第六篇
    在本文中,我们将深入探讨Node.js的新框架Nest.js,并通过一个完整的示例来展示其强大功能。我们将使用多个装饰器创建一个基本控制器,该控制器提供了多种方法来访问和操作内部数据,涵盖了常见的CRUD操作。此外,我们还将详细介绍Nest.js的核心概念和最佳实践,帮助读者更好地理解和应用这一现代框架。 ... [详细]
  • Ceph API微服务实现RBD块设备的高效创建与安全删除
    本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
  • Envoy 流量分配策略优化
    在本研究中,我们对Envoy的流量分配策略进行了优化,旨在提高系统的稳定性和性能。实验环境包括一个前端代理服务(Envoy,IP地址为172.31.57.10)和五个后端服务。通过调整Envoy的配置,实现了更高效的流量分发和负载均衡,显著提升了整体系统的响应速度和可靠性。 ... [详细]
  • LVS-DR数据包流向分析介绍
    下文给大家带来LVS-DR数据包流向分析介绍,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍, ... [详细]
  • 【Linux332】LVS的DR配置详解(ipvsadm+arptables)
    文章目录1.DR简 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • Nacos 0.3 数据持久化详解与实践
    本文详细介绍了如何将 Nacos 0.3 的数据持久化到 MySQL 数据库,并提供了具体的步骤和注意事项。 ... [详细]
  • Flutter 2.* 路由管理详解
    本文详细介绍了 Flutter 2.* 中的路由管理机制,包括路由的基本概念、MaterialPageRoute 的使用、Navigator 的操作方法、路由传值、命名路由及其注册、路由钩子等。 ... [详细]
  • 该大学网站采用PHP和MySQL技术,在校内可免费访问某些外部收费资料数据库。为了方便学生校外访问,建议通过学校账号登录实现免费访问。具体方案可包括利用学校服务器作为代理,结合身份验证机制,确保合法用户在校外也能享受免费资源。 ... [详细]
  • 在PHP中实现腾讯云接口签名,以完成人脸核身功能的对接与签名配置时,需要注意将文档中的POST请求改为GET请求。具体步骤包括:使用你的`secretKey`生成签名字符串`$srcStr`,格式为`GET faceid.tencentcloudapi.com?`,确保参数正确拼接,避免因请求方法错误导致的签名问题。此外,还需关注API的其他参数要求,确保请求的完整性和安全性。 ... [详细]
  • 2012年9月12日优酷土豆校园招聘笔试题目解析与备考指南
    2012年9月12日,优酷土豆校园招聘笔试题目解析与备考指南。在选择题部分,有一道题目涉及中国人的血型分布情况,具体为A型30%、B型20%、O型40%、AB型10%。若需确保在随机选取的样本中,至少有一人为B型血的概率不低于90%,则需要选取的最少人数是多少?该问题不仅考察了概率统计的基本知识,还要求考生具备一定的逻辑推理能力。 ... [详细]
author-avatar
小辉0110_737
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有