vSphere

 View Only
  • 1.  Query Regarding Differences Between vSphere Automation SDK for REST and vSphere Management SDK

    Posted Mar 28, 2024 09:40 AM

    I'm currently exploring the vSphere SDKs provided by VMware and would like to understand the practical differences between the vSphere Automation SDK for REST and the vSphere Management SDK, focusing on their functionalities beyond their underlying protocols.

    While I understand that the vSphere Automation SDK for REST operates over RESTful APIs and the vSphere Management SDK utilizes SOAP-based APIs, I'm particularly interested in learning about the distinctions based on the tasks they perform within VMware environments.

    Could someone please provide insights into the unique capabilities, use cases, and practical scenarios where one SDK might be preferred over the other based on the tasks they facilitate?



  • 2.  RE: Query Regarding Differences Between vSphere Automation SDK for REST and vSphere Management SDK
    Best Answer

    Posted Mar 28, 2024 12:31 PM

    Hi,

    The following answer is Copilot-based.

    As a developer, join VMware Code and have a look to Code Samples and PowerCLI Example Scripts | VMware - VMware {code}. On a regular basis there are code sessions announced and you can ask VMware developers. They know things.

    Be patient. Actually the whole VMware platform is migrating. So, discovery (hands-on-lab), techpartnerhub/oem portal, etc. might not be available 7x24h because of maintenance work.

    Have fun!

    ---

    Certainly! Let’s delve into the practical differences between the vSphere Automation SDK for REST and the vSphere Management SDK, considering their functionalities beyond their underlying protocols.

    1. vSphere Automation SDK for REST:

      • Protocol: Operates over RESTful APIs.
      • Capabilities:
        • Newer APIs: The vSphere Automation SDK for REST provides access to newer features introduced by VMware. It’s the go-to choice for interacting with the latest capabilities.
        • Focused Areas: It covers areas such as VCSA (vCenter Server Appliance) management, virtual machines, tagging, and content library management.
        • JSON-RPC: Utilizes JSON-RPC as one of its protocols.
      • Use Cases:
        • Modern Integrations: Ideal for modern integrations, cloud-native applications, and automation workflows.
        • Lightweight Clients: Suited for lightweight clients that prefer RESTful communication.
        • VMware Cloud: Well-suited for managing resources in VMware Cloud environments.
      • Scenarios:
        • Automating VM Deployment: Use the vSphere Automation SDK for REST to automate VM deployment, configuration, and lifecycle management.
        • Tagging and Categorization: For tasks related to tagging and categorization of VMs and other objects.
        • Content Library Operations: When working with content libraries (templates, ISOs, etc.).
    2. vSphere Management SDK:

      • Protocol: Utilizes SOAP-based APIs.
      • Capabilities:
        • Broad Coverage: The vSphere Management SDK provides access to a wide range of vSphere features.
        • Parity with vSphere UI: It closely mirrors the functionality available through the vSphere UI.
        • Mature APIs: These APIs have been around for a while and are well-established.
      • Use Cases:
        • Legacy Systems: Suitable for legacy systems or environments where SOAP-based communication is preferred.
        • Existing Integrations: If you have existing integrations built on the vSphere Management SDK, it makes sense to continue using it.
        • Complex Scenarios: For more complex scenarios that require fine-grained control.
      • Scenarios:
        • Advanced Configuration: Use the vSphere Management SDK for tasks like advanced configuration, resource pool management, and networking settings.
        • Historical Data Retrieval: When retrieving historical performance data or detailed statistics.
        • Custom Monitoring Tools: For building custom monitoring tools or dashboards.

    In summary, choose the vSphere Automation SDK for REST for modern, lightweight, and specific use cases, while the vSphere Management SDK remains relevant for broader coverage and legacy scenarios. Consider your environment, integration requirements, and the specific tasks you need to perform when making your choice. 



  • 3.  RE: Query Regarding Differences Between vSphere Automation SDK for REST and vSphere Management SDK

    Broadcom Employee
    Posted 14 days ago

    Hello,

    You can find overview of the different vCenter APIs in the An Introduction to vSphere APIs publication.

    Also note that starting with vCenter  8.0u1 there is a REST-like rendering of the vCenter Web Service (VIM) SOAP API called VI/JSON. You can find some more info at Virtual Infrastructure JSON API. Also. there are several blog posts on the subject to get you started https://blogs.vmware.com/code/api/

    In terms of functionality the REST APIs (Automation API) cover well new feature of vCenter like tagging, content library, Kubernetes integration, install and upgrade of ESXi and vCenter, certificate management, Virtual Machine Guest DataSets etc.

    The SOAP aka vSphere Web Service API (VIM) API covers data centers operations, hosts, cluster management, virtual machine management, network configurations, virtual machine encryption, events, alarms, performance metrics.

    It is important to note that there are few more APIs coming with vCenter. These include storage APIs like VSAN, Policy Management, First Class Disk (VSLM), Storage Device Management (Storage Monitoring Service),  ESX Agent Manager, Single Sign On.

    Beyond this there are APIs you can use from within the Virtual Machines to obtain settings or push data to the virtualization layer i.e. the Guest APIs. There is also library for manipulating VMDKs i.e. the Virtual Disk API.

    These days vCenter is usually coupled with other components as part of VMware Cloud Foundation like SDDC Manager, vRealize Operations, NSX, Disaster Recovery, Aria Automation, vCloud Director, VM Operator etc. These have their own APIs that you can use at a higher level of abstraction.