VMware Fundamentals for Developers

Classroom Schedule
- Format: Classroom
- Length: 3.5 Days
This course provides foundational information for any partner or other developer using any of VMware's
announced SDKs and their APIs. It is the place to start if you are unfamiliar with developing in VMware's
VMware currently sells more than 60 products, and the list is growing. It currently has over a dozen
separate SDKs with associated APIs for various language bindings. Some of the APIs and their SDKs are
gated, meaning that access to those APIs / SDK is only given to organizations that are members of a specific
VMware developer program.
Developing solutions requires you to deploy a specific minimum of VMware's products. Further,
developing solutions that use certain VMware SDKs requires that you deploy additional VMware products,
perhaps vCloud Network and Security Manager or vCenter Orchestrator Manager.
Further, VMware's product and SDK documentation assumes that you are familiar with basic virtualization
For organizations and / or developers that are new to the VMware Ecosystem, this may be overwhelming.
You may ask, "Where do I go to learn the fundamentals I need to get started developing in VMware's
Ecosystem?" The answer is, "Start with this course! Its why we wrote it."

Objectives:    The strategic objective of this course is to teach developers the concepts and skills they must master to
effectively and efficiently develop products in the VMware ecosystem, regardless of the SDKs and
associated APIs that they use.

To achieve the strategic objective, by the end of this course, students should be able to:

* Define common terms and concepts associated with virtualization, including (but not limited to):
virtualization itself, server virtualization, hypervisor, nested hypervisor, storage virtualization, network virtualization, virtual switch, desktop virtualization, virtual host, virtual machine, full virtualization, partial virtualization, para-virtualization, and virtual appliance

* List the types of virtualization available in the industry today and their benefits
* Differentiate between full virtualization, para-virtualization, and partial virtualization
* List the advances in x86 hardware that have increased server virtualization adoption, including the
Intel and AMD-specific technologies
* Define: IaaS, PaaS, and SaaS, public cloud, private cloud, and hybrid cloud, and explain the use of each
n Define the terms: Software-defined data center, Software-defined networking, and Software-defined storage and explain the advantages of each
* Understand the benefits of becoming a VMware partner
* Understand the work flow for becoming a VMware partner
* Understand the various repositories of VMware "bits" on developer-related VMware web sites
* Create accounts on developer-related VMware web sites, including My VMware and, if necessary,
Partner Central.
* List each of VMware's key infrastructure products. For each product:
  - Define its purpose, benefits, key features, and licensing (including which features are license dependent)
* Plan a minimal development environment for creating solutions with VMware APIs, including all of
the items below, then execute the plan. Planning includes:
  - Listing and choosing the required VMware products
  - Listing and choosing the deployment options for said products
  - Listing and choosing the minimum and recommended hardware and software requirements for running ESXi 5.5 and vCenter Server 5.5, given the various deployment options
* Deploy a basic infrastructure development environment, including:
  - Download and install ESXi 5.5, both on bare metal as well as in a nested hypervisor environment:
ESXi on ESXi, ESXi on Fusion and ESXi on Workstation
  - Download and install vCenter Server 5.5 both as a virtual appliance and as a Service under
  - Configure two (or more) instances of ESXi into a basic cluster for both load balancing and high
  - Apply cluster policies to VMs that prevent them from migrating in a clustered environment
* Locate the page on Developer Center that contains the list of tools available to developers, including
VMware Workbench
* Distinguish between the various Workbench deployment options
* Locate the page on Developer Center that contains the names of VMware's announced SDKs
* For each SDK:
  - Describe its purpose and functionality
  - Indicate whether it is gated by a program
* If it is gated, give the name of the program name and the email address to which you send initial
program application requests
Intended Audience:    Anyone who is developing, or is planning to develop, solutions in the VMware Ecosystem, especially VMware Partners.
Prerequisites:    Students must have certain skills and knowledge before attending this course. Having such knowledge and
skills does not guarantee successful completion. Failure to have the required knowledge will make
successful completion very difficult, if not impossible.

Students must have the following knowledge before attending this course:

* General understanding of operating system principles, including: processes, multi-tasking, file systems, storage (including RAID), clustering, and shared storage for clusters
* General understanding of networking, especially in a datacenter, including: IPv4 addressing concepts,
bridging, routing, switching, and unicast/broadcast/multicast packets
* Developer-level skills working with a Windows, Mac, or Linux operating system, including using
supported browsers and development tools
* Basic administrative-level skills working with a Windows, Mac or Linux operating system, including
system tools for installing software
Outline:    The course chapters include:
1 - Course Overview
2 - Understanding Virtualization
3 - Developing with VMware - Becoming a VMware Partner and Creating Necessary Accounts
4 - Understanding VMware's Key Infrastructure Products
5 - Deploying Basic vSphere Development Infrastructure
6 - Understanding and Accessing VMware's Developer Tools, SDKs and APIs