开发者社区 问答 正文

云API与底层IaaS的架构关系(调用关系)

想了解下api和iaas的架构关系。
如:在界面上创建某资源,经过哪些组件,请求最终到达底层iaas服务。

展开
收起
swjtufei_ 2019-05-22 09:36:12 612 分享 版权
阿里云 AI 助理回答

API(Application Programming Interface)和IaaS(Infrastructure as a Service)之间的架构关系可以从云服务的整体分层结构中理解。API作为软件系统交互的接口,提供了对底层基础设施资源的访问和操作能力,而IaaS则为这些资源提供了实际的计算、存储和网络支持。以下是它们在架构中的关系及请求流经的主要组件的详细说明:


1. API与IaaS的关系

API是连接用户或上层应用与底层IaaS资源的桥梁。通过API,用户可以以标准化的方式调用IaaS提供的资源管理功能,例如创建虚拟机、分配存储空间或配置网络。这种设计实现了模块化与解耦,使得用户无需直接操作底层硬件,而是通过API完成资源的管理和调度。

  • API的作用:提供统一的接口,定义了如何访问和操作IaaS资源。
  • IaaS的作用:提供虚拟化的计算、存储和网络资源,支持按需分配和弹性扩展。

2. 请求流经的主要组件

当用户通过界面或客户端调用API创建某资源时,请求会经过多个组件,最终到达底层IaaS服务。以下是典型的请求流程:

(1) 用户界面或客户端

用户通过图形化界面(如控制台)或命令行工具发起资源创建请求。例如,在界面上点击“创建虚拟机”按钮,实际上会触发一个API调用。

(2) API网关

API网关是请求的第一站,负责接收、验证和转发用户的API请求。它执行以下关键任务: - 认证与授权:验证用户身份并检查权限,确保只有合法用户可以调用API。 - 流量控制:限制请求频率,防止因过载导致系统崩溃。例如,当请求达到流量控制阈值时,系统会返回Throttling错误码。 - 参数校验:对请求参数进行初步校验,过滤掉不合法的请求,降低后端服务的压力。

(3) 服务管理层

API网关将请求转发到服务管理层,该层负责协调和调度资源。具体包括: - GW Controller:处理页面操作,将数据推送给核心业务系统。 - Mosng:核心业务系统,负责提供RPC(远程过程调用)能力,将请求映射到具体的后端服务。

(4) IaaS层

最终,请求到达IaaS层,由底层基础设施执行具体的资源分配和管理操作。IaaS层的主要职责包括: - 计算资源管理:根据请求创建虚拟机实例或调整计算资源。 - 存储资源管理:分配存储空间或挂载磁盘。 - 网络资源管理:配置网络规则、分配IP地址等。


3. 示例:创建虚拟机的请求流程

以下是一个具体的示例,展示用户通过界面创建虚拟机时,请求如何流经各组件并最终到达IaaS层:

  1. 用户操作:用户在云服务器ECS控制台点击“创建实例”按钮。
  2. API网关
    • 接收请求并验证用户身份。
    • 校验请求参数(如实例类型、镜像ID等)。
    • 将合法请求转发至服务管理层。
  3. 服务管理层
    • GW Controller将请求数据推送给Mosng。
    • Mosng解析请求,并将其映射到具体的后端服务。
  4. IaaS层
    • 调用计算服务创建虚拟机实例。
    • 调用存储服务分配磁盘空间。
    • 调用网络服务配置安全组和IP地址。

4. 关键点与注意事项

  • 请求聚合:为了提高效率,建议在调用API时尽可能批量完成资源的查询或操作。
  • 退避策略:当请求被限流时,应采用退避策略(如1 QPS的速度)进行可用性探测。
  • 安全性:API网关通过认证、授权和参数校验等方式保障系统的安全性。
  • 弹性扩展:IaaS层支持资源的弹性扩缩容,能够根据实际需求动态调整资源分配。

5. 总结

API和IaaS的架构关系体现了云服务的分层设计理念。API作为上层应用与底层资源之间的桥梁,提供了标准化的访问方式,而IaaS则负责提供实际的基础设施支持。通过API网关和服务管理层的协同工作,用户请求能够高效、安全地到达IaaS层,完成资源的创建和管理操作。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: