Rest API 设计、管理、监控和分析

Rest Api Design, Management, Monitoring & Analytics

REST API 原理与设计。使用 Kong API Gateway、Docker、Zipkin、Elasticsearch、Kibana 的实用 API 管理工具

你会学到什么

  • API 管理与设计的理论与最佳实践
  • 使用开源工具管理 API:Kong
  • 这不是编码课程。我们不会在这里学习如何创建 REST API。我们将学习如何管理它们。
  • 使用 Elasticsearch、Logstash 和 Kibana (ELK Stack) 进行 API 分析
  • 当您的服务出现问题(例如停机或高负载)时,实时监控并通知您的团队
  • 跟踪分散在不同机器上的 API 调用
  • Docker容器技术的简单使用

要求

  • 如果你想学习,你只需要一个网络浏览器。对于运行工具和动手操作,需要特定的硬件(请参阅课程描述或第一讲中的硬件要求)。
  • 熟悉命令提示符 (Windows) 或终端 (Mac / Linux)
  • 熟悉JSON格式

描述

笔记:

  • 不是编码课程。重点是使用现成(即用)软件的 API 管理工具
  • 您不需要任何信用卡或付款即可使用本课程中的工具。所有软件(包括 API 管理器本身)均提供免费版本。有些人甚至可能会开源他们的代码。

———————————————- ———————————————- ———————————-

2020 年 11 月更新

重大更新

  • 使用 Kong 2、Elastic 7 和最新的软件版本(截至 2020 年)
  • 添加:OAuth2
  • 添加:代理缓存
  • 改进了所有讲座的音频

———————————————- ———————————————- ———————————-

在我们开始之前

如果你想学习,你只需要一个网络浏览器。对于运行工具和动手操作,需要特定的硬件和软件。请参阅第一讲的要求(标题为自述文件优先:需要硬件和软件)。

先决条件

我们将使用 Docker(即容器技术)来安装此 API 管理课程所需的工具。在本课程中,您将学习 Docker 的基础知识。要安装 docker,您需要熟悉:

  • Windows:基本命令提示用法和命令,管理员访问
  • Mac / Linux:基本终端使用和命令,root / sudo 访问

我提供 Windows 10 专业版的 Docker 安装说明。对于任何其他操作系统(包括其他版本的 Windows),我提供了对官方文档的参考,但不提供视频。对此我很抱歉,因为我没有 Mac / Linux 机器。

别担心,官方文档很完整而且很容易理解。

———————————————- ———————————————- ———————————————- —

使用 REST API

您的工作场所采用现代架构并依赖于 REST API。拥有 REST API 会带来好处,但好处是有代价的。对于大多数团队而言,在其 API 中设置和执行标准或策略的过程完全是手动的。该过程通常涉及多个团队或团队成员,并且随着 API 数量的增加而变得更加痛苦。 

现在您已经配置了您的 API,您还需要了解您的 API。随着时间的推移,您的 API 流量趋势如何?哪个 API 使用最多?哪个API错误率大?拥有这些数据将帮助您分析并为进一步的 API 开发做出正确的决定。

可以通过在 API 上编写额外的逻辑来实施政策、证券或分析。您甚至可以编写自己的分析工具来监控和分析您的 API。但这些过程将是多余且耗时的。为什么我们不找到一种更有效的方法,让开发人员可以专注于业务需求?这最终将最大限度地提高基于 API 的开发人员的工作效率,进而为公司带来好处。   

API管理软件

API 管理工具可以是一个答案。市场上的 API 管理器工具可能提供常见的 API 功能,例如:

  • API 网关,用于访问 API 的单一通信点
  • 访问API的基本安全
  • 流量控制,如速率限制或配额
  • 监控 API 健康状况(API 是否可访问或关闭?)
  • 负载均衡
  • API分析(命中率、错误率)
  • 记录您的流量
  • 开发人员门户,充当 API 文档。常见的 API 文档格式是 swagger / Open API specification

像 Google、IBM 或 Axway 这样的大公司提供了很好的 API 管理功能——如果你愿意支付一些钱的话。但如果您更喜欢开源、从小处着手的方法(但仍然不错),市场上也有几种 API 管理器工具,其中之一是 Kong API Manager(我们在本课程中使用)。

在本课程中,我们将使用多种工具学习 API 管理。所有软件均提供免费版。有些带有升级到具有更多功能的高级版的选项。我们将在这里学习的工具是:

  • Kong API 管理

    这是本课程的重点。

  • 码头工人和码头工人组成

    流行的容器技术来加速我们的安装和配置。但是,本课程不是 docker 课程,因此我们不会深入探讨 docker。

  • 齐普金

    一个开源的 REST API 跟踪工具。对不同服务的分布式跟踪很有用,即使 API 服务分散在多台机器上。

  • 弹性搜索、Logstash 和 Kibana

    流行的搜索引擎及其可视化工具。本课程是介绍如何使用这些堆栈来分析您的 API 流量的入门课程。但是本课程并不关注 Elastic Stack。

  • 普罗米修斯和格拉法纳

    用于收集性能指标并将这些指标显示为时间序列图表的开源监控工具。

API 管理的好处(工程和业务)

让我们面对现实:我们有时间限制。业务需要那些 API。他们需要它快。

编写功能正常但不安全或技术上有缺陷的 API 迟早会带来麻烦。也许有人在您的 API 中发现了一个安全漏洞,并利用了它们。或者你在一个地方工作,API 在很多地方被很多人/系统使用?如果没有透明的 API 分析(使用情况、错误率等),就很难知道您的 API 是否正常工作或需要改进。

编写用于实现 API 安全、分析或其他一些技术方面的代码非常好。无论是资深程序员还是新手,都会喜欢编写此类代码并解决复杂问题的挑战。

但是时间限制很重要。编写此类代码可能非常耗时。将开发人员的精力集中在交付业务逻辑上是一件好事,这反过来又使业务保持领先。

API 管理可用于帮助您解决常见的 API 问题,例如安全性、分析或谁可以访问哪些 API。大多数时候,您不需要编写任何代码。将您的 API 置于某些 API 管理之后,并将其配置为与您的 API 一起使用。

这意味着,生产力提高了。无论您在公司担任什么角色,生产力总是一件好事,而 API 管理(甚至开源)可以帮助您提高生产力。

香港 API 管理

Kong 为具有插件架构的 REST API 提供 API 网关,使用户能够向核心 Kong 网关添加功能。Kong 的 API 管理平台非常精简。它应该吸引具有基本功能的用户

希望获得一个初始平台的需求,然后他们可以随时添加,或者

使用 Kong 或社区提供的插件,或使用他们自己的开发(是的,可以根据您自己的要求开发 Kong 插件,尽管我们在本课程中不涉及)。公司的目标是使用 Kong API 管理平台可以快速启动,正如您在课程中看到的那样 – 不到 1 小时即可完成设置和运行。

希望执行数字策略的用户会发现 Kong 对于启用他们的平台非常有用。

API 监控与分析

在本课程中,我们不仅将学习使用 Kong API Manager 进行分析和监控,还会学习其他一些工具,最重要的是如何将它们集成。一个工具就很强大,但集成会给我们带来更多好处

API 管理工具通常带有 API 分析模块。我们可以使用分析来获得整个 API 生态系统的可见性。分析将自动并持续收集所有 API 流量数据,例如性能时间、命中率(每秒命中多少次)、错误率。通过利用 API 分析,我们可以了解有关哪些 API 具有良好价值以及哪些需要改进的数据。

在运营端,我们可以使用API​​监控工具主动检测API流量和性能问题。想象一下,如果一项服务在上午 10 点停机,直到一个小时后才知道,这意味着问题已经出现,并且可能已经失去了一些商机。利用开源的 Kong API 管理(以及其他几个免费工具),我们可以在服务出现问题后不到 5 分钟内收到通知。

本课程适合谁:

  • 构建 REST API 后端的开发人员
  • 想知道何时以及如何使用和管理 REST API 的开发人员/操作人员
  • 想要利用和使用 API 管理平台的软件架构师/经理,在本例中为开源平台
  • 想要了解如何利用开源工具进行 API 管理的开发人员/运营人员
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。