VMware Practice. Year 2020. Part 1. Hands-on Labs. Review.

Introduction


Recently in the series of articles “VMware Learning. Year 2020” we talked about the training programs for authorized learning VMware 2020 season. Today we will talk about one of the options for gaining practical skills in working with VMware technologies.

During the authorized study, students have access to the laboratory environment in which they perform tasks according to the course scenario. This is enough to gain basic technology skills. However, after the end of the course, this access is terminated, and to consolidate skills, such a laboratory must be constantly available, and training in a productive environment is a very bad idea.

There are several main options: to create a permanent laboratory or even a home one mini data center, or take advantage of a special resource from VMware – Hands-on Labs.

A series of articles about building your own lab and how it later became a home mini data center at the design and writing stage, so today we will open a series of articles “Vmware Practice. 2020” and review VMware Hands-on Labs.

What is HOL (Hands-on Labs)?


So what is a HOL (Hands-on Labs)?

VMware Hands-on Labs provide a quick and easy way to access VMware products and solutions, testing use cases and learning about the latest features with no installation required. There are no special hardware or licenses needed. VMware Hands-on Labs delivers a real, virtualized infrastructure in the cloud using VMware managed infrastructure including vCloud Foundation, vRealize Operations, VMware Learning Platform, Wavefront and more. Best of all, they are provided at no charge and you only need a modern browser to run them. All labs are created by product experts, documented and supported by the VMware Hands-on Labs team and community.

Hands-on Labs types


In general, there are three types of Hands-on Labs:

  • Lightning Labs;
  • Comprehensive Labs;
  • Odyssey Game Labs.

Lightning Labs – The quickest and easiest way to experience VMware products in 30-minutes or less. Lightning Labs help you experience and evaluate VMware products in small segments of time. “Bite-sized” labs allow you to learn about core product features quickly!

Comprehensive Labs – Dive deep into VMware products features and capabilities with full guided labs. Experience the full range of VMware products and learn about new features. Up and running on any browser in minutes and 100% free. No installation, licenses, or special hardware required. Relevant content available and updated year round.

Odyssey Game Labs – Test your knowledge and skills of VMware products by completing tasks. Where will you rank on the leaderboard? VMware Odyssey are short tasks that challenge your knowledge of VMware products and solutions. Go against the clock and players online to top the leaderboard! Get instant feedback on your progress. Sharpen your skills and showcase your technical expertise.

Brief Summary


So, from this short publication you learned about VMware Hands-on Labs, about the types of labs. Since this resource is absolutely free, and only a modern browser is required for access, I advise you to bookmark the address of the resource “VMware Hands-on Labs” and quickly register and read a fairly large catalog of laboratory work.

And in the next publication, we will talk about the main available laboratory work in the direction of Lightning Labs, for a quick introduction to the technologies of VMware.

Follow the news until the meeting is on air in a few days.
Sincerely, AIRRA.

Posted in Education, Practice, Technology, Training, Virtualization, VMware | Tagged , , , , , , , | Leave a comment

Vmware Cloud Foundation as Code… Part 3. Importantly! Introduction. Management and Workloads Domains Architecture as Code. Core Infrastructure Services Architecture as Code. Bill Of Materials. Brief Summary.

Importantly!


The series of articles “Vmware Cloud Foundation as Code…” are organized and digitized notes from the author’s paper diary. Russian hybrid military aggression and invasion prevented the timely publication of the collected and processed material. The author’s service in the army, the evacuation of his home mini-data center and blog away from the fighting, and later problems with power supply due to the destruction of infrastructure by Russian missiles – all this forced this activity to be suspended.

Russia continues its military aggression, missile strikes damage civilian infrastructure, heat and energy supply. The author, as far as possible, does not stop working on organizing articles for the blog in this extremely difficult time for all Ukrainians and is preparing new material.

The publication date of the article in the title is based on the original entries in the author’s diary.

Final revision of the material of this article: October 13, 27, and December 12, 2024.

Introduction


Hello to all readers of the blog about IT Architecture and Education.

We continue the series of articles “Vmware Cloud Foundation as Code…”.

This series of publications aims to reflect the author’s approach to working with the components of the Vmware Cloud Foundation ecosystem versions 4.x, 5.x and necessary third-party services throughout the entire lifecycle of a cloud solution using only code.

In the previous post, we looked at the initial steps of the author’s approach to the storyline “Vmware Cloud Foundation as code…”.

We optimized the first step: we displayed a visual diagram of the Conceptual Aarchitecture of a Software-Defined Data Center using the code SDDCconceptDiagramV2.ps1 and a new Powershell script module: Draw-VisioDiagram.ps1.

The goal of this step was to optimize the code to achieve transparency and ease of use.

Building on previous work, in this post from the “VMware Cloud Foundation as Code…” series, we will continue the architectural theme and now move on to the Management and Workload Domain Architecture as Code model.

Management and Workloads Domains Architecture as Code


Recall that the VMware Cloud Foundation services ecosystem is mature and quite complex. Therefore, to facilitate understanding of their interaction and the correct sequence of actions during design, implementation and operation, the vendor has prepared a set of accompanying documents: VMware Cloud Foundation Documentation 4.x (archive file name – vcf-40-doc.zip), VMware Validated Design 6.0 (archive file name – vmware-validated-design-60x.zip) and diagrams for VMware Validated Design (archive file name – vvd-diagrams -release-6.0.0.zip).

Let’s start with the next step: creating a visual diagram Management and Workloads Domains Architecture using Сode. In the above-mentioned bundles of documentation, it looks approximately like this:

Figure 1: The result of visualization of the Management and Workloads Domains Architecture using Powershell code and Microsoft Visio.

This diagram is constructed using the following PowerShell code:

$DiagramParameters = [xml]@'
<Diagram Name = "Management and Workloads Domains Architecture">
    <Stensils>
	    <Stensil Name="Basic" File="BASIC_M.vss" AlternativePath="false"/>
    </Stensils>
    <MasterItems>
        <MasterItem Stensil="Basic" Item="Rectangle"/>
    </MasterItems>
    <Items>
        <Item Type="General" Master="Rectangle" X="5.5966" Y="4.3169" Width="10.633" Height="8.1304" FillForegnd="RGB(255,255,255)" LinePattern="0" Text="Management and Workloads Domains Architecture" VerticalAlign="0" ParaHorzAlign="0" CharSize="30 pt" CharColor="RGB(0,112,192)"/>
        <Item Type="Line" BeginX="0.2801" BeginY="7.8147" EndX="10.9193" EndY="7.8147" LineWeight="1 pt" LineColor="RGB(0,112,192)"/>
        <Item Type="Line" BeginX="0.3136" BeginY="7.6132" EndX="0.2734" EndY="7.6132" LineWeight="1.5 pt" LineColor="RGB(59,158,206)"/>
        <Item Type="Line" BeginX="10.7903" BeginY="7.6132" EndX="0.3583" EndY="7.6132" LineWeight="1.5 pt" LineColor="RGB(59,158,206)" LinePattern="3"/>
        <Item Type="Line" BeginX="10.9033" BeginY="7.6132" EndX="10.8632" EndY="7.6132" LineWeight="1.5 pt" LineColor="RGB(59,158,206)"/>
        <Item Type="Line" BeginX="10.9026" BeginY="7.6066" EndX="10.9026" EndY="7.5781" LineWeight="1.5 pt" LineColor="RGB(59,158,206)"/>
        <Item Type="Line" BeginX="10.9026" BeginY="7.1266" EndX="10.9026" EndY="7.5366" LineWeight="1.5 pt" LineColor="RGB(59,158,206)" LinePattern="3"/>
        <Item Type="Line" BeginX="10.9026" BeginY="7.0403" EndX="10.9026" EndY="7.0122" LineWeight="1.5 pt" LineColor="RGB(59,158,206)"/>
        <Item Type="Line" BeginX="10.9026" BeginY="7.0071" EndX="10.8632" EndY="7.0071" LineWeight="1.5 pt" LineColor="RGB(59,158,206)"/>
        <Item Type="Line" BeginX="0.4029" BeginY="7.0071" EndX="10.835" EndY="7.0071" LineWeight="1.5 pt" LineColor="RGB(59,158,206)" LinePattern="3"/>
        <Item Type="Line" BeginX="0.3136" BeginY="7.0071" EndX="0.2734" EndY="7.0071" LineWeight="1.5 pt" LineColor="RGB(59,158,206)"/>
        <Item Type="Line" BeginX="0.2734" BeginY="7.0413" EndX="0.2734" EndY="7.0132" LineWeight="1.5 pt" LineColor="RGB(59,158,206)"/>
        <Item Type="Line" BeginX="0.2734" BeginY="7.4935" EndX="0.2734" EndY="7.0834" LineWeight="1.5 pt" LineColor="RGB(59,158,206)" LinePattern="3"/>
        <Item Type="Line" BeginX="0.2734" BeginY="7.6063" EndX="0.2734" EndY="7.5781" LineWeight="1.5 pt" LineColor="RGB(59,158,206)"/>
        <Item Type="Text" X="5.5801" Y="7.295" Width="10.6394" Height="0.2677" Text="Another Solution Add-On" CharSize="18 pt" CharStyle="17" LinePattern="0" FillForegndTrans="100%"/>
        <Item Type="General" Master="Rectangle" X="5.4583" Y="6.8192" Width="0.083" Height="0.083" FillForegnd="RGB(61,69,67)" LinePattern="0"/>
        <Item Type="General" Master="Rectangle" X="5.5966" Y="6.8192" Width="0.083" Height="0.083" FillForegnd="RGB(61,69,67)" LinePattern="0"/>
        <Item Type="General" Master="Rectangle" X="5.7349" Y="6.8192" Width="0.083" Height="0.083" FillForegnd="RGB(61,69,67)" LinePattern="0"/>
        <Item Type="General" Master="Rectangle" X="5.5966" Y="5.7842" Width="10.633" Height="1.5799" FillForegnd="RGB(9,149,212)" LinePattern="0"/>
        <Item Type="Text" X="5.6177" Y="6.3414" Width="10.539" Height="0.2677" Text="Cloud Operations and Automation Solution Add-on" CharSize="18 pt" CharStyle="17" CharColor="RGB(255,255,255)" LinePattern="0" FillForegndTrans="100%"/>
        <Item Type="General" Master="Rectangle" X="1.3077" Y="5.5889" Width="1.7995" Height="0.9936" FillForegnd="RGB(9,149,212)" LinePattern="1" Text="Cross-Region Workspace ONE Access" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="3.4499" Y="5.5889" Width="1.7995" Height="0.9936" FillForegnd="RGB(9,149,212)" LinePattern="1" Text="vRealize Suite Lifecycle Manager" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="5.592" Y="5.5889" Width="1.7995" Height="0.9936" FillForegnd="RGB(9,149,212)" LinePattern="1" Text="vRealize Operations Manager" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="7.7342" Y="5.5889" Width="1.7995" Height="0.9936" FillForegnd="RGB(9,149,212)" LinePattern="1" Text="vRealize Log Insight" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="9.8763" Y="5.5889" Width="1.7995" Height="0.9936" FillForegnd="RGB(9,149,212)" LinePattern="1" Text="vRealize Automation" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="2.0643" Y="2.5025" Width="3.5684" Height="4.4805" FillForegnd="RGB(6,106,144)" LinePattern="0"/>
        <Item Type="Text" X="2.0546" Y="4.4439" Width="3.4126" Height="0.2677" Text="Management Domain" CharSize="18 pt" CharStyle="17" CharColor="RGB(255,255,255)" LinePattern="0" FillForegndTrans="100%"/>
        <Item Type="General" Master="Rectangle" X="1.1501" Y="3.5605" Width="1.5752" Height="1.2161" FillForegnd="RGB(6,106,144)" LinePattern="1" Text="SDDC Manager" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="2.8998" Y="3.5605" Width="1.7221" Height="1.2161" FillForegnd="RGB(6,106,144)" LinePattern="1" Text="Region-Specific Workspace ONE Access" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="2.0616" Y="2.5845" Width="3.3984" Height="0.5575" FillForegnd="RGB(6,106,144)" LinePattern="1" Text="NSX-T" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="2.0616" Y="1.9378" Width="3.3984" Height="0.5575" FillForegnd="RGB(6,106,144)" LinePattern="1" Text="vCenter Server" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="2.0616" Y="1.2911" Width="3.3984" Height="0.5575" FillForegnd="RGB(6,106,144)" LinePattern="1" Text="vSAN" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="2.0616" Y="0.6444" Width="3.3984" Height="0.5575" FillForegnd="RGB(6,106,144)" LinePattern="1" Text="ESXi" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="5.6049" Y="2.5025" Width="3.024" Height="4.4805" FillForegnd="RGB(109,179,68)" LinePattern="0"/>
        <Item Type="Text" X="5.5926" Y="4.4439" Width="2.961" Height="0.2677" Text="Workload Domain" CharSize="18 pt" CharStyle="17" CharColor="RGB(255,255,255)" LinePattern="0" FillForegndTrans="100%"/>
        <Item Type="General" Master="Rectangle" X="5.6049" Y="3.707" Width="2.8094" Height="0.6652" FillForegnd="RGB(109,179,68)" LinePattern="9" Text="VMware Solution for Kubernetes" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="5.6049" Y="2.9526" Width="2.8094" Height="0.6652" FillForegnd="RGB(109,179,68)" LinePattern="1" Text="NSX-T (1:1 or 1:N)" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="5.6049" Y="2.1983" Width="2.8094" Height="0.6652" FillForegnd="RGB(109,179,68)" LinePattern="1" Text="vCenter Server" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="5.6049" Y="1.4439" Width="2.8094" Height="0.6652" FillForegnd="RGB(109,179,68)" LinePattern="1" Text="Shared Storage
(vSAN, NFS, VMFS)" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="5.6049" Y="0.6895" Width="2.8094" Height="0.6652" FillForegnd="RGB(109,179,68)" LinePattern="1" Text="ESXi" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="7.3647" Y="2.5025" Width="0.083" Height="0.083" FillForegnd="RGB(61,69,67)" LinePattern="0"/>
        <Item Type="General" Master="Rectangle" X="7.503" Y="2.5025" Width="0.083" Height="0.083" FillForegnd="RGB(61,69,67)" LinePattern="0"/>
        <Item Type="General" Master="Rectangle" X="7.6413" Y="2.5025" Width="0.083" Height="0.083" FillForegnd="RGB(61,69,67)" LinePattern="0"/>
        <Item Type="General" Master="Rectangle" X="9.4011" Y="2.5025" Width="3.024" Height="4.4805" FillForegnd="RGB(109,179,68)" LinePattern="0"/>
        <Item Type="Text" X="9.4068" Y="4.4439" Width="3.0111" Height="0.2677" Text="Workload Domain" CharSize="18 pt" CharStyle="17" CharColor="RGB(255,255,255)" LinePattern="0" FillForegndTrans="100%"/>
        <Item Type="General" Master="Rectangle" X="9.4011" Y="3.707" Width="2.8094" Height="0.6652" FillForegnd="RGB(109,179,68)" LinePattern="9" Text="VMware Solution for Kubernetes" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="9.4011" Y="2.9526" Width="2.8094" Height="0.6652" FillForegnd="RGB(109,179,68)" LinePattern="1" Text="NSX-T (1:1 or 1:N)" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="9.4011" Y="2.1983" Width="2.8094" Height="0.6652" FillForegnd="RGB(109,179,68)" LinePattern="1" Text="vCenter Server" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="9.4011" Y="1.4439" Width="2.8094" Height="0.6652" FillForegnd="RGB(109,179,68)" LinePattern="1" Text="Shared Storage
(vSAN, NFS, VMFS)" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="9.4011" Y="0.6895" Width="2.8094" Height="0.6652" FillForegnd="RGB(109,179,68)" LinePattern="1" Text="ESXi" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
    </Items>
</Diagram>
'@
.\Draw-VisioDiagram.ps1 -VCFasCodeHomeFolder "D:\VCFasCode" -DiagramFileName "Mgmt&WrkldDomainsArchitecture.vsd" -DiagramParameters $DiagramParameters

As we can see, the result fully meets our expectations.

The current version of this code is available on the GitHub resource at this link: Mgmt&WrkldDomainsArchitecture.ps1

Core Infrastructure Services Architecture as Code


For the VMware Cloud Foundation services ecosystem to function effectively, some so-called Core Infrastructure Services will be required: Active Directory, DNS, NTP, Certificate Infrastructure, E-Mail services, etc.

These services will be deployed on the Microsoft Windows platform.

The Architecture diagram of the Core Infrastructure Services planned for integration with VMware Cloud Foundation is shown in the following figure:

Figure 2: The result of visualization of the Core Infrastructure Services Architecture using Powershell code and Microsoft Visio.

The PowerShell code for creating this diagram is:

$DiagramParameters = [xml]@'
<Diagram Name = "Core Infrastructure Services Architecture">
    <Stensils>
	    <Stensil Name="Basic" File="BASIC_M.vss" AlternativePath="false"/>
    </Stensils>
    <MasterItems>
        <MasterItem Stensil="Basic" Item="Rectangle"/>
    </MasterItems>
    <Items>
       
        <Item Type="General" Master="Rectangle" X="5.5156" Y="6.4254" Width="10.5312" Height="3.9133" FillForegnd="RGB(255,255,255)" LinePattern="0" Text="Core Infrastructure Services Architecture Diagram" VerticalAlign="0" ParaHorzAlign="0" CharSize="30 pt" CharColor="RGB(0,112,192)"/>
        <Item Type="Line" BeginX="0.2801" BeginY="7.8147" EndX="10.7812" EndY="7.8147" LineWeight="1 pt" LineColor="RGB(0,112,192)"/>
        <Item Type="General" Master="Rectangle" X="5.5156" Y="6.0852" Width="10.5312" Height="3.2328" FillForegnd="RGB(0,32,96)" LinePattern="0"/>
        <Item Type="Text" X="5.5966" Y="7.4495" Width="3.3984" Height="0.2677" Text="Core Infrastructure Services" CharSize="18 pt" CharStyle="17" CharColor="RGB(255,255,255)" LinePattern="0" FillForegndTrans="100%"/>
        <Item Type="General" Master="Rectangle" X="2.0332" Y="6.848" Width="3.3984" Height="0.5575" FillForegnd="RGB(0,176,240)" LinePattern="1" Text="Network Time Protocol Service (NTP)" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="1.1199" Y="5.8531" Width="1.5752" Height="1.2161" FillForegnd="RGB(0,176,240)" LinePattern="1" Text="Active Directory Domain Services (AD DS)" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="2.8696" Y="5.8531" Width="1.7221" Height="1.2161" FillForegnd="RGB(0,176,240)" LinePattern="1" Text="Primary DNS" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="2.0332" Y="4.8668" Width="3.3984" Height="0.5575" FillForegnd="RGB(0,176,240)" LinePattern="1" Text="Secondary DNS" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="5.5174" Y="6.8499" Width="3.3984" Height="0.5575" FillForegnd="RGB(0,176,240)" LinePattern="1" Text="E-Mail and Workflow" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="5.5174" Y="5.8531" Width="3.3984" Height="1.2161" FillForegnd="RGB(0,176,240)" LinePattern="1" Text="Active Directory Certificate Services
(AD CS)" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="5.5174" Y="4.8668" Width="3.3984" Height="0.5575" FillForegnd="RGB(0,176,240)" LinePattern="1" Text="IP Address Space Management (IPAM)" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="8.9899" Y="6.8514" Width="3.3984" Height="0.5575" FillForegnd="RGB(0,176,240)" LinePattern="1" Text="Windows Server Update Services (WSUS)" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="8.0884" Y="5.8604" Width="1.5752" Height="1.2161" FillForegnd="RGB(0,176,240)" LinePattern="1" Text="Windows Admin Center" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="9.8382" Y="5.8604" Width="1.7221" Height="1.2161" FillForegnd="RGB(0,176,240)" LinePattern="1" Text="Monitoring
and
Audit" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="8.9899" Y="4.8668" Width="3.3984" Height="0.5575" FillForegnd="RGB(0,176,240)" LinePattern="1" Text="Privilege and Access Management" VerticalAlign="1" ParaHorzAlign="1" CharSize="14 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
    </Items>
</Diagram>
'@
.\Draw-VisioDiagram.ps1 -VCFasCodeHomeFolder "D:\VCFasCode" -DiagramFileName "CoreInfraServices.vsd" -DiagramParameters $DiagramParameters

The current version of this code is available on the GitHub resource at this link:  CoreInfraServicesArchitecture.ps1

Bill Of Materials


During the work on this article was used:

  • Dell Vostro 3500 notebook with Microsoft Windows 10 Pro version 22H2 Operating system, 64 bit;
  • Software: Microsoft Visio 2021 MSO (Version 2407 Build 16.0.17830.20166) 64-bit;
  • Task automation and configuration management scripting language: Powershell 5.1.19041.4780;
  • Powershell script module: PSVisio v3.8;
  • Powershell script module: Draw-VisioDiagram.ps1 v3.4;
  • Code for creating the Management and Workloads Domains Architecture diagram: Mgmt&WrkldDomainsArchitecture.ps1;
  • Code for creating the Core Infrastructure Services Architecture diagram: CoreInfraServicesArchitecture.ps1.

All used artifacts are located on the VCFasCode GitHub resource.

Brief Summary


The main theses of this and previous articles were the initial steps of the author’s approach to the storyline “VMware Cloud Foundation as Code…”.

We applied the Architecture as Code concept and created two more diagrams:

  • Management and Workload Domains Architecture Diagram as Code;

and

  • Core Infrastructure Services Architecture Diagram as Code, required to create a multi-functional VMware Cloud Foundation solution.

In the next publications of the “VMware Cloud Foundation as Code…” series, we will focus on the following topics:

  • Design diagram of the initial lab environment model for deploying VMware Cloud Foundation solution services, as Code;
  • Deploying and configuring the initial lab environment components using code;
  • etc.

Follow the news until the meeting is on air in a few days.
Sincerely, AIRRA.

Posted in Architecture, Cloud, Code, Microsoft, Programming, Technology, VMware | Tagged , , , , , , , , , , , , , , , , , , , , , , , , | Leave a comment

VMware Learning. Year 2020. Part 5. Authorized Training: Desktop, Application Virtualization & Mobility. Summary.

Introduction


Hello to all readers of my blog!

In previous articles in the series “VMware Learning. Year 2020” we reviewed the list of areas and specifics of authorized training VMware and the main curricula of Data Center Virtualization & Hybrid Cloud Infrastructure, Network Virtualization & Security and Virtualization & Cloud Management Platform.

Today we will talk about the main training programs in the field of Desktop, Application Virtualization & Mobility.

Direction of training – Desktop, Application Virtualization & Mobility includes training programs on VMware Horizon, Workspace ONE technologies:

VMware Horizon


Convert desktop and application virtualization. VMware Horizon is revolutionizing traditional virtual desktop infrastructure (VDI) with unprecedented simplicity, flexibility, speed and scalability.

Core VMware Horizon Technology Education Program:

● VMware Horizon 7: Install, Configure, Manage [V7.7 (V7.10)]

  • Duration: 5 days.
  • Level of difficulty: Professional.
  • Target audience: Administrators, Engineers.
  • Prerequisites: VMware vSphere: Install, Configure, Manage course. Attendees should also have the following Microsoft Windows system administration experience:
    • Configure Active Directory services, including DNS, DHCP, and time synchronization;
    • Restrict user activities by implementing Group Policy objects;
    • Configure Windows systems to enable Remote Desktop Connections;
    • Build an ODBC connection to an SQL Server database.
  • Certification: VMware Certified Professional – Desktop and Mobility 2019 (VCP-DTM 2019).

The course provides knowledge about the technologies for delivering virtual desktops and applications through a single platform of virtual desktop infrastructure. This course develops skills in installing, configuring, and managing VMware Horizon 7.x. Students will learn how to configure and deploy virtual machine pools, manage machine access and security, and provide a custom desktop environment for end users.

VMware Workspace ONE


VMware Workspace ONE is a convenient and secure enterprise platform for providing and managing any applications on any smartphone, tablet or laptop.

● VMware Workspace ONE: Deploy and Manage [V19]

  • Duration: 5 days.
  • Level of difficulty: Professional.
  • Target audience: Administrators, Engineers.
  • Certification: VMware Certified Professional – Digital Workspace 2019 (VCP-DW2019).

In this course, students will configure VMware Workspace ONE components and provide a single point of registration and authentication, as well as how to integrate industry-recognized enterprise technologies with VMware Workspace ONE. The principles of enterprise mobility, unified entry points and identity management are discussed throughout the course.

Summary


As we can see, the list of relevant training programs turned out to be quite large. It should be noted that these articles also do not mention complex programs such as Fast Track and some rare training programs at the expert level. There is also no information on new training courses that are currently in beta. I will touch on this topic in future publications.

I hope this cheat sheet will help you decide on the necessary training yourself and offer the customer the best way to learn.

To be continued…

See you on the air!

Sincerely, Andrey Romanenko

Posted in Education, Technology, Training, Virtualization, VMware | Tagged , , , , , , , , , , , , , , , , | Leave a comment

VMware Learning. Year 2020. Part 4. Authorized Training: Virtualization & Cloud Management Platform.

Introduction


Hello to all readers of my blog!

In previous articles in the series “Vmware Learning. Year 2020” we reviewed the list of areas and specifics of authorized training VMware and the main training programs in the areas of Data Center Virtualization & Hybrid Cloud Infrastructure and Network Virtualization & Security.

Today we will talk about the main training programs in the field of Virtualization & Cloud Management Platform.

Direction of training – Virtualization & Cloud Management Platform includes training programs on VMware vRealize technologies: Operations, Log Insight, Automation, Orchestrator.

VMware vRealize


VMware provides a comprehensive cloud management platform that can manage hybrid (multi-cloud) environments that run everything from traditional to containerized (cloud) workloads. The VMware vRealize family of products accelerates the provision of IT services through automation and predefined policies, providing a high level of flexibility for developers and business lines while maintaining management and control.

The main current training programs for VMware vRealize technologies are:

● VMware vRealize Automation: Install, Configure, Manage [V7.6].

  • Duration: 5 days.
  • Level of difficulty: Professional.
  • Target audience: Administrators, Engineers.
  • Prerequisites: This course requires completion of the following course: VMware vSphere: Install, Configure, Manage.
  • Certification: VMware Certified Professional – Cloud Management and Automation 2019 (VCP-CMA 2019).

During this, students focus on installing, configuring, and managing VMware vRealize Automation, and how vRealize Automation can be used to automate the delivery of virtual machines, applications, and personalized IT services to various data centers and hybrid cloud environments.

● VMware vRealize Automation: Orchestration and Extensibility [V7.6]

  • Duration: 5 days.
  • Level of difficulty: Expert.
  • Prerequisites: VMware vSphere: Install, Configure, Manage, VMware vRealize Automation: Install, Configure, Manage courses.
  • Target audience: Administrators, Engineers.

The course aims to use VMware vRealize Orchestrator to extend the functionality of VMware vRealize Automation. Students will learn how to provide something as a service (XaaS) and implement machine life cycle extensibility using the vRealize Automation Event Broker. Also, how to create vRealize Orchestrator workflows. Functions include a basic script implementation along with logical processing to implement various functions used in a virtual environment. This course describes the implementation of debugging, loops, conditions, and user interaction in vRealize Orchestrator.

● VMware vRealize Operations: Install, Configure, Manage [V6.6, V7.x]

  • Duration: 5 days.
  • Level of difficulty: Professional.
  • Target audience: Administrators, Engineers.
  • Prerequisites: VMware vSphere: Install, Configure, Manage, VMware vSphere: Optimize and Scale.

The course is intended for experienced users of VMware vSphere®, will teach you how to use VMware vRealize Operations as a tool for analysis and forecasting. Based on VMware ESXi 6.5 (6.7), VMware vCenter Server 6.5 (6.7), and vRealize Operations 7.x (8.0), this course includes information on advanced features, including configuration and management.

Data Center Automation with vRealize Orchestrator and vSphere PowerCLI

  • Duration: 5 days.
  • Level of difficulty: Expert.
  • Target audience: Administrators, Engineers.
  • Prerequisites: VMware vSphere: Install, Configure, Manage course.

This course provides experienced VMware vSphere® administrators with knowledge of the automation tools that all vSphere clients have access to. Using real-world use cases, students will learn how to automate day-to-day administration tasks with VMware vSphere PowerCLI and VMware vRealize Orchestrator.

● VMware vRealize Log Insight: Deploy and Manage [V4.7]

  • Duration: 2 days.
  • Level of difficulty: Professional.
  • Target audience: Administrators, Engineers.
  • Prerequisites: VMware vSphere: Install, Configure, Manage course.

The course is based on the deployment, use and management of VMware vRealize Log Insight. Students will learn about the configuration and use of vRealize Log Insight to collect and manage the logs of various VMware and third-party products. This course discusses how vRealize Log Insight interacts with other systems to monitor, troubleshoot, and secure your data center.

Brief Summary


In this article, we got acquainted with the main training programs in the field of Virtualization & Cloud Management Platform.

In the next publication of the series “Vmware Learning. Year 2020” we will talk about training programs in the field Desktop, Application Virtualization & Mobility.

Follow the news, before the meeting on air traditionally for a few days.
Sincerely, AIRRA

Posted in Education, Technology, Training, Virtualization, VMware | Tagged , , , , , , , , , , , , , , , , , , , , | Leave a comment

Vmware Cloud Foundation as Code… Part 2. Importantly! Introduction. Transparency and code reuse. SDDCconceptDiagramV2. Draw-VisioDiagram. Conceptual Architecture of a SDDC as Code V2. Bill Of Materials. Brief Summary.

Importantly!


The series of articles “Vmware Cloud Foundation as Code…” are organized and digitized notes from the author’s paper diary. Russian hybrid military aggression and invasion prevented the timely publication of the collected and processed material. The author’s military service, the evacuation of his home mini-data center and blog away from the fighting, and later problems with power supply due to the destruction of infrastructure by Russian missiles, all this forced this activity to be suspended.

Now we are all used to and adapted to living in these difficult times, and I am returning to this work. For the opportunity to write and publish this article, I am indebted to many fallen comrades! Eternal memory to them!

The publication date of the article in the title is based on the original entries in the author’s diary.

Final revision of the material of this article: September 11, 29 and December 5, 2024.

Introduction


Hello to all readers of the blog about IT Architecture and Education.

We continue the series of articles “Vmware Cloud Foundation as Code…”.

This series of publications aims to reflect the author’s approach to working with the components of the Vmware Cloud Foundation ecosystem versions 4.x, 5.x and necessary third-party services throughout the entire lifecycle of a cloud solution using only code.

In the previous post, we looked at the initial steps of the author’s approach to the storyline “Vmware Cloud Foundation as code…”.

We reminded ourselves of the understanding of the life cycle of any IT solution. The PSVisio Powershell script module was described, which will be actively used to visualize various architectural levels of the VMware Cloud Foundation ecosystem and third-party systems necessary for its operation.

We have completed the first step: creating a visual diagram of the conceptual architecture of a software-defined data center using code.

It is clear that this approach when using this code example has a significant drawback – it is a large number of parameters that form the properties of the diagram objects among the code functions. This creates a problem with code transparency and reusability.

Therefore, in this publication of the series “Vmware Cloud Foundation as code…” we will first focus on this point.

Transparency and code reuse


We will start optimizing the code for transparency and ease of use by transforming SDDCconceptDiagram.ps1, which was described in the previous part of this series of articles. Let me remind you that it was written to create a Conceptual Architecture of a Software-Defined Data Center Visio diagram using PowerShell code.

First, we will output a description of all Visio diagram objects and their parameters into an XML variable, which will be passed to the input of the Draw-VisioDiagram.ps1 function, the task of which is to create the desired Visio diagram. Then, by manipulating only the input parameters, which are much easier to understand and change, we achieve the appropriate level of code purity.

SDDCconceptDiagramV2


The result of the transformation is displayed in the following code:

$DiagramParameters = [xml]@'
<Diagram Name = "SDDC Conceptual Architecture">
    <Stensils>
	<Stensil Name="Basic" File="BASIC_M.vss" AlternativePath="false"/>
        <Stensil Name="VMware" File="vmw_Icons.vssx" AlternativePath="true"/>
        <Stensil Name="VMwareVCO" File="VMware_vCenter_Orchestrator_Shapes.vssx" AlternativePath="true"/>
    </Stensils>
    <MasterItems>
        <MasterItem Stensil="Basic" Item="Rectangle"/>
        <MasterItem Stensil="VMware" Item="Public Cloud"/>
        <MasterItem Stensil="VMware" Item="vRealize Automation"/>
        <MasterItem Stensil="VMware" Item="vRealize Orchestrator"/>
        <MasterItem Stensil="VMware" Item="VM Server"/>
        <MasterItem Stensil="VMware" Item="Resource Pool"/>
        <MasterItem Stensil="VMware" Item="vCenter Server"/>
        <MasterItem Stensil="VMware" Item="Rack Server"/>
        <MasterItem Stensil="VMware" Item="Datastore"/>
        <MasterItem Stensil="VMware" Item="Physical NIC"/>
        <MasterItem Stensil="VMware" Item="Calendar"/>
        <MasterItem Stensil="VMware" Item="vRealize Operations"/>
        <MasterItem Stensil="VMware" Item="vRealize log Insight"/>
        <MasterItem Stensil="VMware" Item="VMware Cloud Solution"/>
        <MasterItem Stensil="VMware" Item="vCloud Availability"/>
        <MasterItem Stensil="VMware" Item="Site Recovery"/>
        <MasterItem Stensil="VMware" Item="Data Protection"/>
        <MasterItem Stensil="VMware" Item="VR"/>
        <MasterItem Stensil="VMware" Item="Secure State"/>
        <MasterItem Stensil="VMware" Item="Identity"/>
        <MasterItem Stensil="VMware" Item="Book"/>
        <MasterItem Stensil="VMware" Item="License"/>
        <MasterItem Stensil="VMwareVCO" Item="OK"/>        
    </MasterItems>
    <Items>
        <Item Type="General" Master="Rectangle" X="7.3125" Y="7.2733" Width="14.125" Height="7.0467" FillForegnd="RGB(255,255,255)" LinePattern="0" Text="Software Defined Data Center Conceptual Diagram" VerticalAlign="0" ParaHorzAlign="0" CharSize="30 pt" CharColor="RGB(0,112,192)"/>
        <Item Type="Line" BeginX="0.25" BeginY="10.229" EndX="14.25" EndY="10.2294" LineWeight="1 pt" LineColor="RGB(0,112,192)"/>
        <Item Type="General" Master="Rectangle" X="2.8675" Y="9.0947" Width="5.2344" Height="1.9801" FillForegnd="RGB(152,203,225)" LinePattern="0"/>
        <Item Type="Text" X="1.1043" Y="9.7391" Width="1.7085" Height="0.6912" Text="Cloud Automation" CharSize="18 pt" CharStyle="17" LinePattern="0" FillForegndTrans="100%"/>
        <Item Type="General" Master="Rectangle" X="1.125" Y="8.8089" Width="1.5" Height="1.1804" FillForegnd="RGB(255,255,255)" LinePattern="0"/>
        <Item Type="General" Master="Public Cloud" X="1.1043" Y="9.047" Width="0.5612" Height="0.5612"/>
        <Item Type="General" Master="vRealize Automation" X="0.7436" Y="8.5256" Width="0.4531" Height="0.4531"/>
        <Item Type="General" Master="vRealize Orchestrator" X="1.3621" Y="8.5256" Width="0.4531" Height="0.4531"/>
        <Item Type="General" Master="Rectangle" X="3.6749" Y="9.7286" Width="3.3828" Height="0.5174" FillForegnd="RGB(152,203,225)" LinePattern="1" Text="Service Catalog" VerticalAlign="1" ParaHorzAlign="1" CharSize="18 pt" LineWeight="1 pt"/>
        <Item Type="General" Master="Rectangle" X="3.6749" Y="9.1083" Width="3.3828" Height="0.5174" FillForegnd="RGB(152,203,225)" LinePattern="1" Text="Self-Service Portal" VerticalAlign="1" ParaHorzAlign="1" CharSize="18 pt" LineWeight="1 pt"/>
        <Item Type="General" Master="Rectangle" X="3.6749" Y="8.4769" Width="3.3828" Height="0.5174" FillForegnd="RGB(152,203,225)" LinePattern="1" Text="Orchestration" VerticalAlign="1" ParaHorzAlign="1" CharSize="18 pt" LineWeight="1 pt"/>
        <Item Type="General" Master="Rectangle" X="2.8675" Y="6.9564" Width="5.2344" Height="1.9801" FillForegnd="RGB(58,158,207)" LinePattern="0"/>
        <Item Type="Text" X="1.1043" Y="7.6008" Width="1.7085" Height="0.6912" Text="Virtual Infrastructure" CharSize="18 pt" CharStyle="17" CharColor="RGB(255,255,255)" LinePattern="0" FillForegndTrans="100%"/>
        <Item Type="General" Master="Rectangle" X="1.125" Y="6.6648" Width="1.5" Height="1.1804" FillForegnd="RGB(255,255,255)" LinePattern="0"/>
        <Item Type="General" Master="VM Server" X="1.1043" Y="6.9285" Width="0.5612" Height="0.5612"/>
        <Item Type="General" Master="Resource Pool" X="0.7436" Y="6.356" Width="0.4531" Height="0.4531"/>
        <Item Type="General" Master="vCenter Server" X="1.3621" Y="6.3565" Width="0.4531" Height="0.4531"/>
        <Item Type="General" Master="Rectangle" X="3.6748" Y="7.5903" Width="3.3828" Height="0.5174" FillForegnd="RGB(58,158,207)" LinePattern="1" Text="Hypervisor" VerticalAlign="1" ParaHorzAlign="1" CharSize="18 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="3.6748" Y="6.97" Width="3.3828" Height="0.5174" FillForegnd="RGB(58,158,207)" LinePattern="1" Text="Pools of Resources" VerticalAlign="1" ParaHorzAlign="1" CharSize="18 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="3.6748" Y="6.3386" Width="3.3828" Height="0.5174" FillForegnd="RGB(58,158,207)" LinePattern="1" Text="Hypervisor" VerticalAlign="1" ParaHorzAlign="1" CharSize="18 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="2.8625" Y="4.8378" Width="5.2344" Height="1.9801" FillForegnd="RGB(0,105,143)" LinePattern="0"/>
        <Item Type="Text" X="1.1043" Y="5.4822" Width="1.7085" Height="0.6912" Text="Physical Infrastructure" CharSize="18 pt" CharStyle="17" CharColor="RGB(255,255,255)" LinePattern="0" FillForegndTrans="100%"/>
        <Item Type="General" Master="Rectangle" X="1.125" Y="4.5462" Width="1.5" Height="1.1804" FillForegnd="RGB(255,255,255)" LinePattern="0"/>
        <Item Type="General" Master="Rack Server" X="0.8125" Y="4.8583" Width="0.5612" Height="0.1837"/>
        <Item Type="General" Master="Rack Server" X="1.4694" Y="4.8583" Width="0.5612" Height="0.1837"/>
        <Item Type="General" Master="Datastore" X="0.789" Y="4.375" Width="0.4531" Height="0.4531"/>
        <Item Type="General" Master="Physical NIC" X="1.4375" Y="4.375" Width="0.4531" Height="0.4531"/>
        <Item Type="General" Master="Rectangle" X="3.6748" Y="5.4717" Width="3.3828" Height="0.5174" FillForegnd="RGB(0,105,143)" LinePattern="1" Text="Compute" VerticalAlign="1" ParaHorzAlign="1" CharSize="18 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="3.6748" Y="4.8514" Width="3.3828" Height="0.5174" FillForegnd="RGB(0,105,143)" LinePattern="1" Text="Storage" VerticalAlign="1" ParaHorzAlign="1" CharSize="18 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="3.6748" Y="4.22" Width="3.3828" Height="0.5174" FillForegnd="RGB(0,105,143)" LinePattern="1" Text="Network" VerticalAlign="1" ParaHorzAlign="1" CharSize="18 pt" LineWeight="1 pt" CharColor="RGB(255,255,255)" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="6.9729" Y="6.9684" Width="2.7531" Height="6.2451" FillForegnd="RGB(226,232,241)" LinePattern="0"/>
        <Item Type="Text" X="6.9859" Y="9.7286" Width="1.9719" Height="0.2878" Text="Cloud Operations" CharSize="18 pt" CharStyle="17" LinePattern="0" FillForegndTrans="100%"/>
        <Item Type="General" Master="Rectangle" X="6.9674" Y="8.6529" Width="2.5312" Height="1.1808" FillForegnd="RGB(255,255,255)" LinePattern="0"/>
        <Item Type="General" Master="Calendar" X="6.9688" Y="8.7695" Width="0.9375" Height="0.8359"/>
        <Item Type="General" Master="OK" X="7.4375" Y="8.375" Width="0.4363" Height="0.4363"/>
        <Item Type="General" Master="Rectangle" X="6.97" Y="7.3064" Width="2.5312" Height="1.0825" FillForegnd="RGB(226,232,241)" LinePattern="1" LineWeight="1 pt"/>
        <Item Type="General" Master="Rectangle" X="6.1352" Y="7.3064" Width="0.5937" Height=" 0.5937" FillForegnd="RGB(255,255,255)" LinePattern="0"/>
        <Item Type="General" Master="vRealize Operations" X="6.1333" Y="7.3064" Width="0.4708" Height="0.4708"/>
        <Item Type="Text" X="7.2812" Y="7.3064" Width="1.3725" Height="0.2878" Text="Monitoring" CharSize="18 pt" LinePattern="0" FillForegndTrans="100%"/>
        <Item Type="General" Master="Rectangle" X="6.97" Y="5.8955" Width="2.5312" Height="1.0825" FillForegnd="RGB(226,232,241)" LinePattern="1" LineWeight="1 pt"/>
        <Item Type="General" Master="Rectangle" X="6.1352" Y="5.8955" Width="0.5937" Height="0.5937" FillForegnd="RGB(255,255,255)" LinePattern="0"/>
        <Item Type="General" Master="vRealize log Insight" X="6.1333" Y="5.8788" Width="0.4708" Height="0.5102"/>
        <Item Type="Text" X="7.2812" Y="5.8955" Width="1.3725" Height="0.2878" Text="Logging" CharSize="18 pt" LinePattern="0" FillForegndTrans="100%"/>
        <Item Type="General" Master="Rectangle" X="6.97" Y="4.4952" Width="2.5312" Height="1.0825" FillForegnd="RGB(226,232,241)" LinePattern="1" LineWeight="1 pt"/>
        <Item Type="General" Master="Rectangle" X="6.1352" Y="4.524" Width="0.5937" Height="0.5937" FillForegnd="RGB(255,255,255)" LinePattern="0"/>
        <Item Type="General" Master="Public Cloud" X="6.1347" Y="4.5453" Width="0.5431" Height="0.5102"/>
        <Item Type="General" Master="Rectangle" X="6.1438" Y="4.3984" Width="0.3682" Height="0.0781" FillForegnd="RGB(255,255,255)" LinePattern="0"/>
        <Item Type="General" Master="VMware Cloud Solution" X="6.1408" Y="4.4053" Width="0.3214" Height="0.3105"/>
        <Item Type="Text" X="7.2969" Y="4.5227" Width="1.7813" Height="0.5102" Text="Life Cycle Management" CharSize="18 pt" LinePattern="0" FillForegndTrans="100%"/>
        <Item Type="General" Master="Rectangle" X="9.9231" Y="6.9741" Width="2.7531" Height="6.2451" FillForegnd="RGB(29,62,125)" LinePattern="0"/>
        <Item Type="Text" X="9.8831" Y="9.7286" Width="1.2663" Height="0.5174" Text="Business Continuity" CharSize="18 pt" CharStyle="17" CharColor="RGB(255,255,255)" LinePattern="0" FillForegndTrans="100%"/>    
        <Item Type="General" Master="Rectangle" X="9.9208" Y="8.6529" Width="2.5312" Height="1.1808" FillForegnd="RGB(255,255,255)" LinePattern="0"/>
        <Item Type="General" Master="vCloud Availability" X="9.9677" Y="8.7447" Width="0.956" Height="0.8166"/>
        <Item Type="General" Master="Rectangle" X="9.9232" Y="7.3064" Width="2.5312" Height="1.0825" FillForegnd="RGB(29,62,125)" LinePattern="1" LineWeight="1 pt" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="9.1094" Y="7.3064" Width="0.5937" Height="0.5937" FillForegnd="RGB(255,255,255)" LinePattern="0"/>
        <Item Type="General" Master="Site Recovery" X="9.1104" Y="7.3007" Width="0.4708" Height="0.4708"/>
        <Item Type="Text" X="10.3125" Y="7.3192" Width="1.6875" Height="0.9875" Text="Fault Tolerance & Disaster Recovery" CharSize="18 pt" CharColor="RGB(255,255,255)" LinePattern="0" FillForegndTrans="100%"/>
        <Item Type="General" Master="Rectangle" X="9.9232" Y="5.8955" Width="2.5312" Height="1.0825" FillForegnd="RGB(29,62,125)" LinePattern="1" LineWeight="1 pt" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="9.1094" Y="5.8955" Width="0.5937" Height="0.5937" FillForegnd="RGB(255,255,255)" LinePattern="0"/>
        <Item Type="General" Master="Data Protection" X="9.1227" Y="5.8822" Width="0.4708" Height="0.4708"/>
        <Item Type="Text" X="10.3404" Y="5.9019" Width="1.3725" Height="0.5102" Text="Backup & Restore" CharSize="18 pt" CharColor="RGB(255,255,255)" LinePattern="0" FillForegndTrans="100%"/>    
        <Item Type="General" Master="Rectangle" X="9.9232" Y="4.5227" Width="2.5312" Height="1.0825" FillForegnd="RGB(29,62,125)" LinePattern="1" LineWeight="1 pt" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="9.1094" Y="4.5227" Width="0.5937" Height="0.5937" FillForegnd="RGB(255,255,255)" LinePattern="0"/>
        <Item Type="General" Master="VR" X="9.1083" Y="4.5227" Width="0.4708" Height="0.4708"/>
        <Item Type="Text" X="10.3737" Y="4.5215" Width="1.3725" Height="0.2878" Text="Replication" CharSize="18 pt" CharColor="RGB(255,255,255)" LinePattern="0" FillForegndTrans="100%"/>    
        <Item Type="General" Master="Rectangle" X="12.8734" Y="6.9741" Width="2.7531" Height="6.2451" FillForegnd="RGB(100,177,69)" LinePattern="0"/>
        <Item Type="Text" X="12.8512" Y="9.7286" Width="1.4225" Height="0.5174" Text="Security and Compliance" CharSize="18 pt" CharStyle="17" CharColor="RGB(255,255,255)" LinePattern="0" FillForegndTrans="100%"/>    
        <Item Type="General" Master="Rectangle" X="12.8734" Y="8.6529" Width="2.5312" Height="1.1808" FillForegnd="RGB(255,255,255)" LinePattern="0"/>
        <Item Type="General" Master="Secure State" X="12.8863" Y="8.7447" Width="0.956" Height="0.8166"/>
        <Item Type="General" Master="Rectangle" X="12.8607" Y="7.3064" Width="2.5312" Height="1.0825" FillForegnd="RGB(100,177,69)" LinePattern="1" LineWeight="1 pt" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="12.0544" Y="7.3064" Width="0.5937" Height="0.5937" FillForegnd="RGB(255,255,255)" LinePattern="0"/>
        <Item Type="General" Master="Identity" X="12.0505" Y="7.3062" Width="0.4708" Height="0.3668"/>
        <Item Type="Text" X="13.2012" Y="7.3192" Width="1.6875" Height="0.9875" Text="Identity and Access Management" CharSize="18 pt" CharColor="RGB(255,255,255)" LinePattern="0" FillForegndTrans="100%"/>     
        <Item Type="General" Master="Rectangle" X="12.8607" Y="5.8955" Width="2.5312" Height="1.0825" FillForegnd="RGB(100,177,69)" LinePattern="1" LineWeight="1 pt" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="12.0544" Y="5.8955" Width="0.5937" Height="0.5937" FillForegnd="RGB(255,255,255)" LinePattern="0"/>
        <Item Type="General" Master="Book" X="12.0521" Y="5.8947" Width="0.4708" Height="0.4708"/>
        <Item Type="Text" X="13.2291" Y="5.9019" Width="1.3725" Height="0.5102" Text="Industry Regulations" CharSize="18 pt" CharColor="RGB(255,255,255)" LinePattern="0" FillForegndTrans="100%"/>    
        <Item Type="General" Master="Rectangle" X="12.8607" Y="4.5227" Width="2.5312" Height="1.0825" FillForegnd="RGB(100,177,69)" LinePattern="1" LineWeight="1 pt" LineColor="RGB(255,255,255)"/>
        <Item Type="General" Master="Rectangle" X="12.0544" Y="4.5227" Width="0.5937" Height="0.5937" FillForegnd="RGB(255,255,255)" LinePattern="0"/>
        <Item Type="General" Master="License" X="12.0625" Y="4.5227" Width="0.4708" Height="0.4708"/>
        <Item Type="Text" X="13.2513" Y="4.5215" Width="1.3725" Height="0.5102" Text="Security Policies" CharSize="18 pt" CharColor="RGB(255,255,255)" LinePattern="0" FillForegndTrans="100%"/>    
    </Items>
</Diagram>
'@
.\Draw-VisioDiagram.ps1 -VCFasCodeHomeFolder "D:\VCFasCode" -DiagramFileName "SDDCConceptDiagramV2.vsd" -DiagramParameters $DiagramParameters

Draw-VisioDiagram


The code for the Draw-VisioDiagram.ps1 function is given below:

<#
.SYNOPSIS
    Microsoft Powershell functions for generate Visio Drawing from xml variable parameters.

.DESCRIPTION
    Microsoft Powershell functions for generate Visio Drawing from xml variable parameters.
    Using PSVisio.ps1 script functions and input parameters for create and rendering Visio Drawing.

.PARAMETER VCFasCodeHomeFolder
    Folder Path for VCF as Code scripts and others artefacts.

.PARAMETER DiagramFileName
    Name of Visio Diagram file.

.PARAMETER DiagramParameters
    XML Variable Parameters for create and rendering Visio Drawing.
  
.NOTES
    Version:        0.1
    Author:         Andrii Romanenko
    Website:        blogs.airra.net
    Creation Date:  28.09.2007
    Purpose/Change: Initial script development
    
...

    Version:        3.2
    Author:         Andrii Romanenko
    Website:        blogs.airra.net
    Creation Date:  07.09.2022
    Purpose/Change: Begin Reorganize script.

...
   
.EXAMPLE

    Generate Visio Drawing with xml variable and others parameters: 

    .\Draw-VisioDiagram.ps1 -VCFasCodeHomeFolder "D:\VCFasCode" -DiagramFileName "SDDCConceptDiagramV2.vsd" -DiagramParameters $DiagramParameters
#>

Param ( 
    [Parameter(Mandatory)]
    [string]$VCFasCodeHomeFolder,
        
    [Parameter(Mandatory)]
    [string]$DiagramFileName,
    
    [Parameter(Mandatory)]
    [xml]$DiagramParameters        
)

# Step 1.
# Set Location
# Load Script Functions
Set-Location $VCFasCodeHomeFolder
. .\PSVisio.ps1 # Warning! Running scripts must be enabled on your system.

# Step 2.
# Create Visio Application
# Create Document from Blank Template
# Set Active Page
New-VisioApplication | Out-Null
New-VisioDocument | Out-Null
Set-VisioPage | Out-Null

# Step 3.
# Add All Visio Stensils
$StensilsNodes = $DiagramParameters.Diagram.Stensils.ChildNodes
ForEach ($StensilNode in $StensilsNodes) {

    If ($StensilNode.Attributes['AlternativePath'].value -eq 'true') {

        $StensilFilePath = $VCFasCodeHomeFolder + "\" + $StensilNode.Attributes['File'].value
        Add-VisioStensil -Name $StensilNode.Attributes['Name'].value -File $StensilFilePath
    }
    
    Else {
   
        Add-VisioStensil -Name $StensilNode.Attributes['Name'].value -File $StensilNode.Attributes['File'].value
 
    }

}

# Step 4.
# Set Masters Items
$MasterItemsNodes = $DiagramParameters.Diagram.MasterItems.ChildNodes
ForEach ($MasterItemsNode in $MasterItemsNodes) {
 
        Set-VisioStensilMasterItem -Stensil $MasterItemsNode.Attributes['Stensil'].value -Item $MasterItemsNode.Attributes['Item'].value

}

# Step 5.
# Draw items
$ItemsNodes = $DiagramParameters.Diagram.Items.ChildNodes
ForEach ($ItemNode in $ItemsNodes) {

    Switch ($ItemNode.Attributes['Type'].value) {

        "General" { 
                
            Draw-VisioItem -Master $ItemNode.Attributes['Master'].value `
                -X $ItemNode.Attributes['X'].value `
                -Y $ItemNode.Attributes['Y'].value `
                -Width $ItemNode.Attributes['Width'].value `
                -Height $ItemNode.Attributes['Height'].value `
                -FillForegnd $ItemNode.Attributes['FillForegnd'].value `
                -LinePattern $ItemNode.Attributes['LinePattern'].value `
                -Text $ItemNode.Attributes['Text'].value `
                -VerticalAlign $ItemNode.Attributes['VerticalAlign'].value `
                -ParaHorzAlign $ItemNode.Attributes['ParaHorzAlign'].value `
                -CharSize $ItemNode.Attributes['CharSize'].value `
                -CharColor $ItemNode.Attributes['CharColor'].value `
                -LineColor $ItemNode.Attributes['LineColor'].value
        }

        "Line" { 
                
            Draw-VisioLine -BeginX $ItemNode.Attributes['BeginX'].value `
                -BeginY $ItemNode.Attributes['BeginY'].value `
                -EndX $ItemNode.Attributes['EndX'].value `
                -EndY $ItemNode.Attributes['EndY'].value `
                -LineWeight $ItemNode.Attributes['LineWeight'].value `
                -LineColor $ItemNode.Attributes['LineColor'].value 
                
        }
                
        "Text" { 
                
            Draw-VisioText -X $ItemNode.Attributes['X'].value `
                -Y $ItemNode.Attributes['Y'].value `
                -Width $ItemNode.Attributes['Width'].value `
                -Height $ItemNode.Attributes['Height'].value `
                -Text $ItemNode.Attributes['Text'].value `
                -CharSize $ItemNode.Attributes['CharSize'].value `
                -CharStyle $ItemNode.Attributes['CharStyle'].value `
                -CharColor $ItemNode.Attributes['CharColor'].value `
                -LinePattern $ItemNode.Attributes['LinePattern'].value `
                -FillForegndTrans $ItemNode.Attributes['FillForegndTrans'].value 
                
        }
    }

}

# Step 6.
# Resise Page To Fit Contents
Resize-VisioPageToFitContents | Out-Null

# Step 7.
# Save Document
$SaveDiagramFileName = $VCFasCodeHomeFolder + "\" + $DiagramFileName
Save-VisioDocument -File $SaveDiagramFileName | Out-Null

# Step 8.
# Quit Application
Close-VisioApplication | Out-Null

Since the creation of the module in 2007 and until today, the code has hardly changed, only cosmetic changes have been made. You are free to use any fragments of this code in your activity.

The current version of the code is available on the GitHub resource at this link: Draw-VisioDiagram.ps1

Conceptual Architecture of a SDDC as Code V2


Based on the previous work, we will recreate a visual diagram of the Conceptual Architecture of the Software-Defined Data Center V2 using the code:

Figure 1: The result of visualization of the Conceptual Architecture of a Software-Defined Data Center V2 using Powershell code and Microsoft Visio.

As we can see, the result fully meets our expectations. Later, of course, we will need to optimize the logic of the Draw-VisioDiagram.ps1 script, but for now, let’s focus on other tasks.

Bill Of Materials


During the work on this article was used:

  • Dell Vostro 3500 notebook with Microsoft Windows 10 Pro version 22H2 Operating system, 64 bit;
  • Software: Microsoft Visio 2021 MSO (Version 2407 Build 16.0.17830.20166) 64-bit;
  • Task automation and configuration management scripting language: Powershell 5.1.19041.4780;
  • Powershell script module: PSVisio v3.7;
  • Powershell script module: Draw-VisioDiagram.ps1 v3.2;
  • Code for creating the diagram Conceptual Architecture of a Software Defined Data Center: SDDCconceptDiagramV2.ps1;
  • Visio stensils icon libraries: vmw_icons.vssx and VMware_vCenter_Orchestrator_Shapes.vssx files.

All used artifacts are located on the VCFasCode GitHub resource.

Brief Summary


The main theses of this article and the previous one were the initial steps of the author’s approach to the storyline “Vmware Cloud Foundation as code…”.

We optimized the first step: re-created the visual diagram of the Conceptual Architecture of the Software-Defined Data Center using the code SDDCconceptDiagramV2.ps1 and using the new Powershell script module: Draw-VisioDiagram.ps1.

The goal of this step is to optimize the code to achieve transparency and ease of use.

Building on previous work, in the next publications of the “Vmware Cloud Foundation as Code…” series, we will focus on the following topics:

  • VCF Architecture Diagram: Management and Workload Domains as Code;
  • Architecture diagram of the third-party services required to build the VCF solution, as code;
  • Architecture diagram of the initial lab environment model for deploying VCF solution services, as code;
  • Deploying and configuring the initial lab environment components using code;
  • etc.

Follow the news until the meeting is on air in a few days.
Sincerely, AIRRA.

Posted in Architecture, Cloud, Code, Microsoft, Programming, Technology, VMware | Tagged , , , , , , , , , , , , , , , , , , , , , | Leave a comment