应用程序和计算服务的部署和管理为何选择REST API而不是SOAP?

电子说

1.3w人已加入

描述

简介

VMware vRealize Automation(vRA,以前称为vCloud Automation Center)是VMware公司开发的虚拟环境自动化软件。vRealize提供了一个安全门户,用户可以在其中请求新的IT服务并管理特定的云和IT资源。应用程序开发人员使用vRealize REST(表述性状态传递)API,可以在虚拟、物理和云环境中部署和实现虚拟机/物理机自动化。

本文面向希望使用vRealize Automation REST API以编程方式进行部署和管理vRealize Automation的软件工程师和应用程序开发人员。

本文介绍如何逐步使用vRealize Automation REST API来部署蓝图,包括如何使用REST API服务和资源,如何创建HTTP承载令牌以进行身份验证和授权,以及如何构建REST API服务调用。演示步骤如下所示:

从蓝图部署虚拟机。

在部署过程中监视请求状态。

最后,在过程结束时返回有关已部署虚拟机的网络信息。

目标受众

本文适用于需要创建客户端应用程序、Web界面、Web服务(连接到vAPI端点以使用VMware vSphere Automation SDK进行REST服务)的应用程序开发人员和软件工程师,以及任何想要使用vRA管理其资源但又希望资源部署可适应其当前流程的人员。

为何选择vRealize Automation,而不是vCloud Director (vCD)

VMware已宣布vCloud Director将不再是vCloud Suite 6.x产品许可证的一部分。对于企业客户而言,vCloud Director即将终结。vCloud Director将继续通过云打包中的VMware服务提供商计划(VSPP)提供。

对于目前使用vCloud Director的用户而言,vRealize Automation将是后续替代产品。vRealize Automation可以加快应用程序和计算服务的部署和管理。

为何选择REST API而不是SOAP

SOAP(简单对象访问协议)和REST都是Web服务通信协议。REST通过一个单独、统一的接口来访问命名资源。它在通过互联网发布公有API时,最为常用。SOAP则与之不同,它将应用程序逻辑的组件作为服务发布,而不是数据。

REST允许更多种类的数据格式,而SOAP只允许XML。

通常认为REST与JSON(通常可以更好地处理数据并提供更快的解析)相结合,更易于使用。

REST以JSON格式输出,为浏览器客户端提供更好的支持。

REST提供卓越的性能,特别是缓存未变化的非动态信息时。

它是雅虎、eBay、亚马逊甚至谷歌等主要服务商最常用的协议。

REST通常更快并且占用带宽更少。与现有网站集成也更容易,无需重构站点基础架构。这使开发人员能够更快地工作,无需花时间从头开始重构站点。不仅如此,他们还可以轻松添加功能。

蓝图

蓝图是包含一个或多个物理机、虚拟机或云计算机方案的规范,包括网络配置和相应的生命周期信息。在典型的软件开发过程中,用户调用REST API来部署蓝图。

软件开发

图1. 一个典型的简单蓝图。

vRealize Automation: REST API

Catalog service REST API旨在供服务目录的使用者使用;例如,想要请求目录项的最终用户将是此API的使用者。当最终用户请求目录项时,将调用目录使用者REST API。

我们开发的技术面向希望通过编程管理vRealize Automation以便为软件开发配置VM的开发人员。使用vRA REST API请求目录项的过程有以下五个步骤:

第1步:获取HTTP承载令牌进行身份验证

URL: https:///identity/api/tokens

类型: Get

类型: Post

报头: Content-type: application/json

第2步:使用蓝图名称获取蓝图id

URL: https:///catalog-service/api/consumer/entitledCatalogIt ems?$filter=name+eq+'name'

类型: Get

类报头:
Content-type: application/json,
Authorization: Bearer ,
Accept: application/json

第3步:获取请求目录项所需的JSON模板

URL: https:///catalog-service/api/consumer/entitledCatalogItems/{id}/requests/template

类型: Get

报头:
Content-type: application/json,
Authorization: Bearer ,
Accept: application/json

第4步:请求目录项

URL: https:///catalog-service/api/consumer entitledCatalogItems/{id}/requests

类型: Post

报文: json response received from request template (previous step)

第5步:检查请求状态

URL: https://

类型: Get

软件开发

图2. 请求和部署蓝图的五个步骤。

REST 客户端程序

任何可以发送HTTPS请求的客户端应用程序都可以作为开发工具,来开发用vRealize Automation API开发REST的应用。一些常用的开源软件包括:

CURL(命令行工具和库): curl.haxx.se

Postman application: getpostman.com

API参考

vRealize Automation API参考列出了所有的REST API服务调用。它以Swagger文档的形式提供,可通过以下任一方式获得:

如果在本地安装vRealize: https://{server}/vco/api/docs/index.html

VMware web 资源: pubs.vmware.com/vra-62/index.jsp#com.vmware.vra.restapi.doc/index.html

Cyber Range: 一款ADI公司的实际软件

什么是 Cyber Range?

ADI公司Cyber Range™软件为客户提供可扩展的虚拟化平台,适用于网络安全培训、建模、仿真和高级分析。我们为多家客户提供解决方案,包括美国国防部、新加坡网络安全局(CSA/SITSA)和日本九州大学。

用户单击开始按钮以部署实验室或应对挑战。

Cyber Range软件调用相应的vRA REST API。

REST API调用相应的vRA蓝图。

vRealize开始部署属于特定蓝图的所有VM。

vRealize Orchestrator在VM的生命周期中运行自定义脚本


(如果有)。

REST API将状态返回给Cyber Range软件。

如果状态检查成功,则会显示Windows或Linux图标,从而启用超链接以打开控制台。

软件开发

图3. Cyber Range通过REST API与vRA交互。

结论

vRealize通过使用蓝图,可以作为能够在更直观且用户友好的环境中运行基础架构的仓库。这有助于我们及时定制或添加更多内容以满足用户需求。此外,我们的解决方案集成了vRealize Orchestrator,可提供应用于运行虚拟环境的常见自动化任务,能够被大部分代码所利用。它面向JavaScript,可以帮助我们管理VMware解决方案中的任何自定义脚本,并针对不同的场景进行重复利用。此外,使用vRA REST API部署蓝图,获取部署状态或销毁蓝图可大幅缩短软件开发过程的时间。

作者

Moinul Islam

Moinul Islam 是 ADI 公司可信安全解决方案部门(位于美国佛罗里达州坦帕市)的软件工程师。他在软件工程、设计和开发方面拥有 20 年的经验。1997 年获得俄亥俄州克里夫兰州立大学 MCIS 学位。在坦帕市可信安全解决方案部门,他致力于设计和开发独特的软件解决方案,用于提供能够持续轻松访问网络安全的现实场景和动手练习培训场景以及基础培训内容。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分