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

VMware Learning. Year 2020. Part 3. Authorized Training: Network Virtualization & Security

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 in VMware and the main training programs in the field of Data Center Virtualization & Hybrid Cloud Infrastructure.

Today we will talk about the main training programs in the field of Network Virtualization & Security.

Direction of training – Network Virtualization & Security includes training programs on technologies VMware NSX, NSX-T.

VMware NSX


VMware NSX is a network virtualization and security platform for software data centers, making it possible to create and run network services on existing network equipment.

The main current training programs for VMware NSX technologies are:

● VMware NSX: Install, Configure, Manage [V6.2 (V6.4)]

  • Duration: 5 days.
  • Level of difficulty: Professional.
  • Target audience: Administrators, Engineers, Architects.
  • Prerequisites: VMware vSphere: Install, Configure, Manage. Understanding of concepts presented in the VMware Data Center Virtualization Fundamentals course. Understanding of the concepts presented in the VMware Introduction to Network Virtualization with NSX course.
  • Certification: VMware Certified Professional 6 – Network Virtualization (VCP6-NV).

The course introduces VMware NSX as part of a data center software. Students will learn how to use logical switches and will also detail logical routing between different virtual environments. The course shows how to use the gateway services, firewall configurations, and security services to protect and optimize the NSX environment.

● VMware NSX: Micro-Segmentation [V6.3]

  • Duration: 3 days.
  • Level of difficulty: Professional.
  • Target audience: Administrators, Engineers.

The course introduces the security-oriented features of VMware NSX 6.3, including the distributed firewall and Service Composer, which will help ensure the successful deployment of microsegmentation.

● VMware NSX: Troubleshooting and Operations [V6.3, (V6.4)]

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

The course provides students with advanced knowledge, skills and tools to achieve operational competency and troubleshooting in VMware NSX V6.3 (V6.4).

VMware NSX-T


VMware NSX-T is a network virtualization platform for next-generation heterogeneous architecture applications.

Key current VMware NSX-T technology training programs are:

● VMware NSX-T Data Center: Install, Configure, Manage [V2.4]

  • Duration: 5 days.
  • Level of difficulty: Professional.
  • Target audience: Administrators, Engineers.
  • Prerequisites: Solid understanding of concepts presented in the following courses: VMware Data Center Virtualization Fundamentals, VMware Introduction to Network Virtualization with NSX, VMware Network Virtualization Fundamentals.
  • Certification: VMware Certified Professional – Network Virtualization 2019 (VCP-NV 2019).

The course provides training on installing, configuring, and managing the VMware NSX-T Data Center environment. It covers the core features and functionality of the NSX-T Data Center offered by NSX-T Data Center 2.4, including common infrastructure, logical segments, logical routers, network and security services, microsegmentation, and firewalls.

● VMware NSX-T Data Center: Troubleshooting and Operations [V2.4]

  • Duration: 5 days.
  • Level of difficulty: Professional.
  • Target audience: Administrators, Engineers.
  • Prerequisites: Before taking this course, you should have completed the VMware NSX-T Data Center: Install, Configure, Manage [V2.4] course.
  • Certification: VMware Certified Professional – Network Virtualization 2019 (VCP-NV 2019).

The course provides advanced knowledge, skills and tools for achieving competency in work and troubleshooting in the VMware NSX-T Data Center environment.

Brief Summary


In this article, we got acquainted with the main training programs in the field of Network Virtualization & Security: VMware NSX, NSX-T.

In the next publication of the cycle “VMware Learning. Year 2020” we will talk about training programs in the field of Virtualization & Cloud Management Platform.

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

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