翻译:Eolinker——国内流行的高效API网关
来历:Medium
这些年来,API网关正在履历一些有关他们是否真的起到作用的质疑。
• 它们是否会合、同享软件测试了资源,然后促进了A软件PI关于外部服务器是什么调用的处理?
• 它们是否集群进口(ingress)的操控器,然后可以严运营厉处理用户进入或脱离集群吗?
• 或者它们是否某种API的链接器,然后让API在指定的客户端上更便当运用?

布景

跟着技能发展日新月异,整个职业经过技能和架构办法的推陈出新进行快速洗牌,假定你说“悉数这些都使我头大”,也可以了解。在本文中,我期望总结出“ API网关”的不同身份,阐明日常运用中,哪些团体可以运用API网关(或许一部人正碰到并在查验处理这个问题),并再次侧重那些底子原则。

在深入探讨之前,让咱们先清楚软件商铺装置API一词的含义。
我对API的界说:
一个有着清楚界说运营是做什么的作业内容是什么而且毕竟目的清楚的接口,经过网络调用,使软件开发人员可以软件库便当安全的对方针数据和功用进行程序拜访。

这些接口笼统了断数据库体系的特点束它们的技能架构细节。关于这些规划好了的网络节点,咱们期望取得必定程度的运用指引、以及老到的向下兼容性。
相反,假数据库设仅仅是可以经过网络与另一软件进行交互,并不必定意味着安全期那些长途节点便是契合此界说的API。许多体系彼此交互服务器回绝拜访,可是这些交互比较随意,而且由于体系之间耦合性和其他一些要素的联络,数据库体系概论期末考试题往往在软件工程即时性方面会受到影响。
咱们创立API来为事务的各个部分供给完善的笼统服务,以完毕新的事务功用以及偶尔安全教育渠道登录入口发现一两个立异之举。
在谈论API网关时,首先要提到的是API处理。

API处理

许多人从API处理的角度考虑API网关。这是合理的。可是,让咱们先快速看一下此类网关的功用。
经过API 处理,咱们查验去处理“怎样操控给其他人运用其时有的API”的问题,例如,怎样盯梢谁在运用这些API、对谁能运用这些API进行权限操控、树立一套完善的处理办法进行运用授权和认证,同时创立一个服务目录,可以在规划时运用,提高运营是做什么的对API的了解并为软件今后的有用处理奠定根底。
咱们想处理“咱们有一些优异的API,而且咱们期望别人来运用这些API,可是期望他们依照咱们的服务器回绝拜访规则去运用”数据库办理体系的问题。
API处理当然也起到一软件商铺些很好的用途服务器租借多少钱一年,例如,它容许用户(潜在的API运用安全期者)进行自助服务,签署不同的API运用计划(请考虑:在给定时间范围内,在指定价格点上,每个端点每个用户的调用次数)。有才软件工程专业干完毕这些处理功用的根底架构便是网关(API流量所经过的)。在网关层,咱们可以实行身份验证,速率捆绑安全期计算器,方针搜集,其它战略实行等一系列操作。
【翻译】关于API网关的一些质疑和考虑

在这个层级,咱们考虑的是API(如上界说)是怎样最好地处理和容许对其进行拜访安全教育渠道。咱们没有考虑其他角度,例如服务器、主机、端口、容器乃至服务(这是另一个很难界说清楚的词!)。
API处理(以及它们相应的网关),一般会被严峻把控,并安全教育渠道登录入口作为一种“途径组件”、“一体化组件”和API的其他根底组件一起收效。
需求留心的一件事:咱们要小心千万别让服务器任何事务运营助理的作业内容逻辑进入这一层。
如前一段所述,API处理是同享的根底架软件商铺装置构,可是由于咱们的API流量经过了它,因软件工程而它倾向于从头运营是做什么的创立“大包大揽的全能型”(认为是企业服务总线)网关,这会导致咱们有必要与之和谐安全教育来更改咱们的服务。从理论上讲,这听起来不错。实际上,这毕竟或许成为安排的瓶颈。

集群进口

为了构建和完毕API,咱们将关键放在代码、数据、生产力结构等方面。可是,要想使运营总监这些作业中的任何一个发生价值,就有必要对其进行查验,安顿到生产中并进行监控。当咱们开始安顿到云途径时,咱们开始考虑安顿、容器、服务、主机、端口等,并构建可在此环境中工作的运用程序。咱们或许正数据库文娱q31.661安全期是月经后几天规划作业流(CI)和管道(CD),以运用云途径快速搬家、更改的特征,将其快速展现在客户面前等等。
在这种环境中,咱们安全或许会构建和保护多个集群来承载咱们的运用服务器地址在哪里看程序,而且需求某种办法直接来拜访这些集群中的运用程序和服务。以Kubernetes为例考虑。咱们或许会经过一个Kubernetes 进口操控器来数据库体系概论期末考试题拜访Kubernetes集群(集群中的其它悉数内容都无法从外部拜访)。这样,咱们就可以经过界说清楚的规则(例如域/虚拟主机、端口、协议等),严峻操控哪些内容可以进入(乃至脱离)咱们的集群。
在这个层级,咱们或许期望某种“进口网关”成为容许央求和音讯进入集群的流量监控人。在这个层级,考虑更多的是“我的集群中有此服务,我需求集群外的人可以调用它”。这或许是服务(戳穿API)、现有的整体软件工程组件、gRPC服务,缓存、音讯行列、数据库等。有安全期计算器些人选择将其称为API网关,而且实际上或许软件商铺会做比操控流量进/出而言更多的作业,但关键是这个层级的问题是归于集群操作等级的。
【翻译】关于API网关的一些质疑和考虑

此层级的集群进口操控器由途径组件操作,可是,这部分根底架构一软件应用般与更加分布式、自助服务的作业流相关联(运营总监正如您对云途径所期望的那样)软件技能

API网关办法

关于“ API网关”一词安全手抄报的另一种扩展是我在听到该术语时一般想数据库体系概论期末考试题到的,它是与API网关办法最相似的。简而言之,API网数据库体系工程师关办法是针对不同类别的运用者来优化API的运用。这个优化触及一个API直接拜访。您或许会听到另一个代表API网关办法的术语是“前端的后端”,其中“前端”可以是字符终端(UI)、移动客户端、IoT客户端乃至其它服务/运用程序开发人员。
在API网关办法中,咱们显着简化了对服务器租借一组API的调用,以模仿针对安全特定用户、客户端或运用者的“运用程序”内聚API。回想一下,当咱们运用微服务构建体系时,“运用程序”的概念就消失了。API网关办法有助于恢复此概念。这儿的关键是API网关,一安全教育渠道登录旦完毕,它将成为客户端和运用程序的API,并担任与任何后端API和其他运用程序软件库网络节点(不满足上述API界说的节点)进行通讯交互。
与上一节中的进口操控器不同,此API网关更靠近开发人员的视角,而较少重视哪些端口或服务会戳穿以供集群外运用。此“ API网关”运营证哪里考也不同于咱们处理现有API的API处理视角。此API网关将对后端的调用聚合在一起,这服务器租借多少钱一年或许会戳穿API,但也或许会触及到一些API描绘较少的东西,例如对旧体系的RPC调用,运用不契合“ REST”的协议的调用(如经过HTTP但不运用JSON),gRPC,SOAP,GraphQL、websockets和音讯行列。这种类型的网关也可用来进行音讯级转化、凌乱的路软件库由、网络弹性/回退以及照应的聚合。
假定您熟悉REST API的Richardson Maturity模型,就会发服务器品牌前十大排名现比较Level 1–3,完毕了API网关办法的API网关集成了更多的Level 0央求(及其之间的悉数内容)。
【翻译】关于API网关的一些质疑和考虑

这些类数据库是什么型的网关完毕仍需求处理运营是做什么的作业内容是什么速率捆绑、身份验证/授权、电路断路、度量软件技能搜集、流量路由等问题。这服务器体系些类型的网关可以在集群边运营是做什么的作业内容是什么缘用作集群进口操控器,也可以在集群内部用作运用程序网关。
【翻译】关于API网关的一些质疑和考虑

由于这运营办理种类型的API网关与运用和服务的开发紧密相关,因而咱们希运营是做什么的作业内容是什么望开发人员可以安全期参加帮忙指定API网关戳穿安全期的API,了解所触及的任何聚合逻辑以及可以快速查验和更改此API根底架构的才华。咱们还期望运维人员或工程师对API网服务器关的安全性、弹性和可查询性配备有一些主见。这种层级的根底架构还有必要习气不断发展的、按需的、自主服务开发人员的作业流。可以通运营是做什么的过查看GitOps模型获取更多这方面信息。

进入服务网格(Service Mesh)

在云根底架构上工作服务架构的一部分难点安全期计算器是,怎样在网络中构建数据库体系概论第五版课后答案正确等级的可查询性和操控。在处理此问题的早年迭代中,咱们运用了运用程序库和一些专业的开发人员处理来完毕此目的。可是,服务器品牌前十大排名在大规模和多种开发言语环境下,服务网格技能的出软件工程专业现供给了更好的处理计划。服务网格经过透明地完毕为途径及其组成服务带来以下功用:数据库体系概论期末考试题
• 服务到服务(即东西向流量)的弹性
• 安全性包含毕竟用户身份验证、彼此TLS、服务到服务RBAC / ABAC
• 黑盒服务的可查询性(专注于网络通讯),运营总监例如央求/秒、央求推迟、央求失利、软件测试熔断事情、分布式盯梢等
• 服务到服务速率安全捆绑,配额实行等
数据库体系的特点明的读者会认识到,API网关和服务网格在功用上好像有所堆叠。服务网格的目的是经过在L7透明地处理悉数服务/运用程序的这些问题。换句话说,服务网格期望融合到服务中(实际上它的代码并没有嵌入到服务中)。另一方面,API网关位于服务网软件技能专业格之上,和运用程序一起(L8?)。服务网格为服务、主机、端口、协议等(东西向流量)之间的央求流带来了价值运营办理。它们还可以供给底子的集群进口功用,以将某些此功用引进南北向。可是,这不应与API网关可以带来北/南流量的功用相稠浊。(一个在集群的南北向和一个是在一组运用程序的南北向)
服务网格和API网关在某些方面在功用上堆叠,可是在它们在不同层面互补,分别担任处理不同的问题。志向的处理计划是将每个安全教育组件(API处理、API网关、服务网格)服务器反常是什么意思适宜的安顿到您的处理方软件技能专业案中,并根据需求在各组件间树立软件应用出色的距离(或在软件技能不需求时扫除它们)。相同重要的数据库体系的特点是找到适宜的办法去分布式的处理这些组件,给安全教育渠道登录到相应的开发人员和运营作业流。即便这些不同组件的术语和标安全手抄报数据库体系概论期末考试题存在稠浊,咱们也应该依托底子原理,并了解这些组件在咱们的体系结构中带来的价值,然后来承认它们怎样独立存在和互补并存。
【翻译】关于API网关的一些质疑和考虑