API和微服务网关工具的价值

API帮助管理程序。它们允许软件应用程序和数字平台相互交互,从而协调具有自己体系结构的应用程序之间的请求交换。如果管理得当,API可以让开发人员获得整洁、简化的体验。

面临的挑战是确保您在目前的IT操作中正确的管理API。否则,将面临引入 break change,使API暴露于安全漏洞以及其他可能破坏现代业务效率的危险。

微服务网关的力量

API是在分布式网络中通信的重要组成部分。数字化转型和其他主要的组织变革促使公司提供跨设备、跨平台的应用程序,但是如果没有正确的API提供这些平台之间的链接,这些计划就不可能实现。

传统上,应用程序接口用于管理单体应用程序和客户端之间的通信。在当前的Web API时代,开发人员可以集成不同的内部系统来创建分布式微服务应用程序。如果说有什么可以弥补微服务和传统系统之间的差距的话,那就是API。它揭示了微服务的完整可用性,并使它们可以被传统系统使用。

假设您有一个基于微服务的体系结构,其中包含100多个服务。如何为每种服务提供统一的入口点?在API网关的帮助下,可以轻松地进行管理。当每个微服务都有一个公共端点时,可以实现更好的集成,进而更好地实现业务目标。
但是,API管理可能很困难。为了构建一个安全和敏捷的API,您需要采取一种实用的方法。

为什么API网关至关重要

在API前面有一个API网关,您可以为微服务创建一种有序地组织自身的方法。API网关允许开发人员根据用例以多种方式封装应用程序的内部结构。

当开发人员无法保持微服务网关的最新状态时,组织就会陷入困境。每当添加或删除微服务,都需要调整网关。由于这个原因,您的微服务网关的更新过程应该尽可能简单。

大型组织面临着从现有的单片系统迁移到基于微服务的体系结构的挑战。当您想要将现有架构重构为云原生微服务时,需要在不影响用户的情况下进行更改。为了成功做到这一点,需要能够将单体应用程序作为网关。

微服务的一个关键挑战是实现微服务应用程序之间的通信,即让不同的服务相互通信,然后返回数据。面向客户端的微服务前端如何处理用户的请求是一项重要的任务。API提供了接口供外部调用者正确格式化服务请求。

云原生微服务需要快速发布和额外验证,这超出了传统的线性开发流程。这些复杂性只能通过API进行管理。

大型云供应商认识到API在基于容器的应用程序管理中的重要性。在Red Hat看来,分布式集成、容器和API代表了敏捷集成的三大支柱。
一旦将应用程序代码以微服务方式重构,并且在基础结构中分配了容器,下一步的逻辑步骤就是使用有效的API层对它们进行补充。这允许每个服务以可预测和安全的方式暴露于外界。

API管理陷阱

公司比以往任何时候都更加依赖API。因此,负责创建正确API体系结构的开发人员将把重点放在可扩展性上,而不是陷入编程语言中。在这样做时,开发人员应注意避免API管理的某些陷阱。以下是在此方面犯下的最大错误:
引入对现有API端点的break change。break change是指一个API更新后,该更改导致另一个现有API中断。API设计不一致时就会发生这种情况。必须避免break change,而做到这一点的最佳方法是一开始确定您的API设计是什么。无论特定的开发人员属于哪个团队或他们在组织中的资历如何,这都应该是团队中的共享信息。

没有将API与应用程序分离。API网关有一个共同的假设:如果由API驱动的用户应用程序运行良好,那么您的API就是完美的。一旦您的应用程序遇到问题,这些假设就会消失。管理API的工作应该与应用程序分开。这样您可以更轻松地知道API是否按预期工作。

不以最终用户身份测试API。即使API充当两个应用程序或服务之间的接口,也应该将其视为确定的应用程序。检查API是否使集成变得简单,或者是否可以扩展到实际的用户流量。自动化的API测试是一个起点,还应该在各种移动设备上的实际条件下和峰值负载下通过测试API。

安全性不足。在安全性方面,许多API处理不当。如果没有合理的安全规定,最基本的功能将被动摇。随着DDOS、XML Bomb、XSS和其他高级威胁的频繁发生,基本的API密钥身份验证可能还不够。必须添加诸如JSON Web Token和OAuth之类的高级加密技术的组合,以确保零妥协。

没有发现未来的集成事故。一开始,集成看起来似乎很简单。随着应用程序的扩展,工具的不断变化,开发人员在集成的创建和维护中面临许多挑战。例如,最初基于这种需求而建立单向集成的开发人员,在支持双向更新的需求到来时会遇到困难。此外,工具每几个月升级一次。集成中的每项更改都会在可追溯性方面带来更多麻烦。最后,当集成在某个点失败时,整个组织都会受到影响。

遵循不断变化的设计模式和反模式,让测试团队参与进来,然后映射集成是很重要的。这也确保了下一个开发人员在处理其他开发人员创建的API时不会感到陌生。

任何在代码库上工作的人都希望获得更好的代码可维护性,这意味着要使用API。对于任何开始探索微服务的众多优势的人来说,情况也是如此。在这个领域的成功将取决于记住API网关是一个重要的盟友。它们有助于管理交互、适应变化并让开发人员进行开发。

API具有改变您的应用程序交付的潜力。当您避免API管理中的常见错误时,便可以让开发人员腾出时间来构建应用程序体验,API为这些应用程序带来了新的可能性。

原文地址:https://www.cnblogs.com/dc20181010/p/14357955.html