Top Banner
The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services Nan Liu, VMware Nicholas Weaver, VMware PHC5640 #PHC5640
85

VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

Aug 07, 2015

Download

Technology

VMworld
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

The Story Behind Designing and Building

a Distributed Automation Framework for

vCloud Hybrid Services

Nan Liu, VMware

Nicholas Weaver, VMware

PHC5640

#PHC5640

Page 2: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

2

Who Are We?

project zombie

Page 3: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

3

About Nan

Nan Liu

(bio + background)

Likes: attempting … to grow beards

Twitter: @sesshin

Linkedin: www.linkedin.com/in/nanliu

Blog: nanliu.github.io

Page 4: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

4

About Nick

Nicholas Weaver

(bio + background)

Likes: clouds, clouds, clouds

Twitter: @lynxbat

Linkedin: www.linkedin.com/in/nicholasweaver

Blog: nickapedia.com

Page 5: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

5

What Is vCloud Hybrid Service?

Page 6: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

6

vCloud Hybrid Service: Extending to the Cloud

VMware vCloud

Hybrid Service

Your Data Center

Any Application… No Changes

Software-Defined

Data Center

VMware vSphere &

vCloud Suite

Existing & New Apps

Seamless Networking

Common Management

One Support Call

IaaS cloud owned and operated by VMware based on VMware software

Page 7: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

7

What Do We Do?

Page 8: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

8

Automation

Page 9: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

9

Page 10: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

10

Page 11: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

11

Page 12: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

12

Effort Evolution

Page 13: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

13

Why Is Automation Important for vCHS?

Page 14: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

14

What Are We Really Doing?

Page 15: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

15

Page 16: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

16

Page 17: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

17

Page 18: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

18

Page 19: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

19

The Problem with Success Is…

Page 20: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

20

Page 21: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

21

Nothing Stays the Same

Page 22: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

22

Page 23: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

23

Page 24: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

24

We Are Not the First

Page 25: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

25

Page 26: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

26

Page 27: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

27

Page 28: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

28

Page 29: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

29

We Need Automation Special Sauce

Page 30: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

30

project zombie

Page 31: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

31

Key Principles

Page 32: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

32

Scale

Page 33: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

33

Extensibility

Page 34: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

34

Simplicity

Page 35: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

35

Resiliency

Page 36: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

36

Page 37: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

37

Page 38: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

38

What is Project Zombie?

Page 39: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

39

Page 40: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

40

Page 41: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

41

Page 42: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

42

Page 43: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

43

Rez

Page 44: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

44

Distributed Resource Management

• Resources

• State

• Configuration

• Location

• Distributed Locking

• Ownership

• Event History

Page 45: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

45

Distributed Resource Management

Razor

Razor

Storage

Manager

Storage

Manager

Page 46: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

46

Engine

Page 47: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

47

Zombie Engine DSL – ZED

-------------- 1 ---------------Init VPC- Engine - API Call

------------- 3 --------------Install ESXiEngine Broker Plugin - RazorInputs: - Razor IP - Blade - Hostname - Network InformationTasks: - Create Policy - Boot Blade

------------- 3 --------------Prep TLMEngine Broker Plugin - Puppet vCenterInputs: - TLM VCSA IP - TLM VCSA Creds - TLM DVS - Portgroup Name - Portgroup VLAN - Portgroup Settings - Ports: 128 - Load Balancing: IP Hash - Reset at Disconnect: EnabledTasks: - Create PGs - d#p#v#-dmz-pg-## - d#p#v#-esx-pg-## - d#p#v#-pvt-pg-##

----------- 4 ------------Deploy VPC VCSAEngine Broker Plugin - OVFToolInputs: - OVA - TLM vCenter IP - TLM vCenter Creds - Cluster - Datastore - VM Name - Network - VM Hardware Settings - Memory: 16384Tasks: - Deploy VPC VCSA - d#p#v#-mgmt-vc0 - Update VM Hardware

----------- 4 ------------Deploy VPC VSE Pub PairEngine Broker Plugin - Puppet vShieldInputs: - TLM VSM IP - TLM VSM Creds - Edge Settings - Name - Hostname - Enable HA - Declare Dead Time: 6 - Interface 1 - Heartbeat IP Addresses - TLM Datacenter - TLM Cluster - TLM Shared Datastore - Size: Compact - Interface Settings - Interface 0 - Name - Type - Portgroup - Subnet Settings - Interface 1 - Name - Type - Portgroup - Subnet SettingsTasks: - Create VPC Pub Edge - d#p#v#-mgmt-vse-pub

----------- 4 ------------Deploy VPC VSE Priv PairEngine Broker Plugin - Puppet VMware-vShieldInputs: - TLM VSM IP - TLM VSM Creds - Edge Settings - Name - Hostname - Enable HA - Declare Dead Time: 6 - Interface 2 - Heartbeat IP Addresses - TLM Datacenter - TLM Cluster - TLM Shared Datastore - Size: Compact - Interface Settings - Interface 0 - Name: InterVPC - Type - Portgroup - Subnet Settings - Interface 1 - Name: DMZ - Type - Portgroup - Subnet Settings - Interface 2 - Name: PVT - Type - Portgroup - Subnet Settings - Interface 3 - Name: ESX - Type - Portgroup - Subnet SettingsTasks: - Create VPC Priv Edge - d#p#v#-mgmt-vse-priv

----------- 5 ------------Configure VPC VSE Pub PairEngine Broker Plugin - Puppet vShieldInputs: - TLM VSM IP - TLM VSM Creds - Edge Settings - DNS Settings - Firewall Settings - IPsets - Application Groups - Applications - Firewall Rules - Load Balancer Settings - Enable - Pools - VIPs - Default Route - SyslogTasks: - Configure VPC VSE Pub Pair

----------- 5 ------------Configure VPC VSE Priv PairEngine Broker Plugin - Puppet VMware-vShieldInputs: - TLM VSM IP - TLM VSM Creds - Edge Settings: - Syslog - DNS - Firewall Settings - IPsets - Application Groups - Applications - Firewall Rules - Load Balancer Settings - Enable - Pools - VIPs - Default RouteTasks: - Configure VPC VSE Priv Pair

----------- 7 ------------Init VPC VCSAEngine Broker Plugin - Puppet VMware-VCSAInputs: - Credentials - NTP Settings - Syslog Settings - DB Settings - Sizing: LargeTasks: - Init VPC VCSA

----------- 4 ------------Deploy VPC VSMEngine Broker Plugin - OVFToolInputs: - OVA - TLM vCenter IP - TLM vCenter Creds - Cluster - Datastore - VM Name - NetworkTasks: - Deploy VPC VSM - d#p#v#-mgmt-vsm0

----------- 9 ------------Configure VPC VSMEngine Broker Plugin - Puppet VMware-vShieldInputs: - VPC VSM IP - VPC VSM Creds - VPC VCSA IP - VPC VCSA Creds - NTP - SyslogTasks: - Configure VPC VSM

----------- 4 ------------Deploy VPC vCloudEngine Broker Plugin - ??Inputs: - TLM vCenter IP - TLM vCenter Creds - Cluster - Datastore - VM Names - VM Settings - NetworkTasks: - Deploy VPC vCloud Cells - Deploy VPC vCloud NFS - Deploy VPC vCloud DB

-------------- 2 -----------------Reserve VPCEngine Broker Plugin: - RezInputs: - VPC #

----------- 8 ------------Configure VPC vCenterEngine Broker Plugin - Puppet VMware-vCenterInputs: - VPC VCSA IP Address - VPC VCSA Credentials - Licenses - vCenter - ESXi - vCloud Net & Sec - Retention Policies - Task: Enabled - Event: Enabled - Datacenter Name - Cluster Settings - Name - DRS Settings - EVC Settings? - DVS Configuration - Name: d#p#v# - Settings - Uplinks: 4 - MTU: 9000 - Enable NIOC - Portgroup settings - Name - VLAN - Settings-Tasks: - Configure VPC VCSA - Configure DVS

----------- 7 ------------Init VPC VSMEngine Broker Plugin - ??Inputs: - VPC VSM Network SettingsTasks: - Init VPC VSM

----------- 6 ------------VPC VCSA Port CheckEngine Broker Plugin - UtilInputs: - VPC VCSA IPTasks: - VPC VCSA Port Check

----------- 6 ------------VPC VSM Port CheckEngine Broker Plugin - UtilInputs: - VPC VSM IPTasks: - VPC VSM Port Check

----------- 6 ------------Verify VPC ESXiEngine Broker Plugin - Puppet Util?Inputs: - VPC ESXi IP - VPC ESXii CredsTasks: - Verify VPC ESXi

----------- 9 ------------Add ESXi to VPC DatacenterEngine Broker Plugin - Puppet VMware-vCenterInputs: - VPC ESXi IP - VPC ESXii Creds - VPC VCSA IP - VPC VCSA Creds - VPC Datacenter NameTasks: - Add ESXi to VPC Datacenter

----------- 10 ------------Configure VPC ESXiEngine Broker Plugin - Puppet VMware-vCenterInputs: - VPC VCSA IP - VPC VCSA Creds - DNS Settings - NTP Settings - Syslog Settings - VMK Configuration - vMotion - Storage - FT - ???Tasks: - Configure ESXi - Add to DVS - Add VMK Networking

----------- 11 ------------Add Storage to VPC ESXiEngine Broker Plugin - Puppet VMware-vCenterInputs: - VPC VCSA IP - VPC VCSA Creds - iSCSI Settings - LUN InformationTasks: - Configure iSCSI - Add LUNs

------------- 3 ---------------Configure VNX VPC Storage GroupEngine Broker Plugin: - Storage ControllerInputs: - VPC # - LUN IDs - ESXi iSCSI informationTasks: - Create VPC Storage Group - Configure VNX Host registrations - Add LUNs to VPC Storage Group

----------- 6 ------------VPC vCloud Cell Port CheckEngine Broker Plugin - UtilInputs: - VPC vCloud Cell IPTasks: - VPC vCloud Cell Port Check

----------- 6 ------------VPC vCloud Cell Port CheckEngine Broker Plugin - UtilInputs: - VPC vCloud Cell IPTasks: - VPC vCloud Cell Port Check

----------- 6 ------------VPC vCloud NFS Port CheckEngine Broker Plugin - UtilInputs: - VPC vCloud Cell IPTasks: - VPC vCloud NFS Port Check

----------- 6 ------------VPC vCloud DB Port CheckEngine Broker Plugin - UtilInputs: - VPC vCloud Cell IPTasks: - VPC vCloud DB Port Check

----------- 7 ------------Configure VPC vCloud NFSEngine Broker Plugin - ??Inputs: - VPC vCloud NFS IP - VPC vCloud NFS Creds - NFS Export Settings - ???Tasks: - Config VPC vCloud NFS

----------- 7 ------------Configure VPC vCloud DBEngine Broker Plugin - ??Inputs: - VPC vCloud DB IP - VPC vCloud DB Creds - vCloud Database Config - ???Tasks: - Configure VPC vCloud DB

----------- 8 ------------Configure VPC vCloud CellEngine Broker Plugin - ??Inputs: - VPC vCloud Cell IP - VPC vCloud Cell Creds - VPC vCloud NFS Config - VPC vCloud Installation Responses.properties - VPC vCloud Cell Cert - NTP SettingsTasks: - Install and Configure NTP - Install VPC vCloud Cert - Configure vCD - Configure vCD Transfer Service

----------- 9 ------------Configure VPC vCloud CellEngine Broker Plugin - ??Inputs: - VPC vCloud Cell IP - VPC vCloud Cell Creds - VPC vCloud Installation Responses.properties - VPC vCloud NFS Config - VPC vCloud Cell Cert - NTP SettingsTasks: - Install and Configure NTP - Install VPC vCloud Cert - Configure vCD - Configure vCD Transfer Service

----------- 12 ------------Create VPC VM Storage ProfileEngine Broker Plugin - Puppet VMware-vCenterInputs: - VPC VCSA IP - VPC VCSA Creds - Storage Profile NameTasks: - Create VPC VM Storage Profile - Tag VPC Datastores

----------- 13 ------------Add VPC vCenter to vCloudEngine Broker Plugin - Puppet VMware-vCloudInputs: - VPC vCloud IP - VPC vCloud Creds - VPC VCSA IP - VPC VCSA Creds - ???Tasks: - Add VPC vCenter to VPC vCloud

----------- 10 ------------Configure VXLANEngine Broker Plugin - Puppet VMware-vShieldInputs: - VPC VSM IP - VPC VSM Creds - Multicast Information - VPC DVS Information - VPC Cluster - ???Tasks: - Configure VXLAN

----------- 11 ------------Reconfigure VXLAN VMK PortsEngine Broker Plugin - Puppet VMware-vCenterInputs: - VPC VCSA IP - VPC VCSA Creds - VXLAN VMK Network SettingsTasks: - Configure VXLAN VMK Ports

----------- 14 ------------Configure VPC vCloudEngine Broker Plugin - Puppet VMware-vCloudInputs: - VPC vCloud IP - VPC vCloud Creds - Provider VDC Name - External Org Network Name - ???Tasks: - Configure VPC vCloud

----------- 12 ------------Configure VPC Cluster HAEngine Broker Plugin - Puppet VMware-vCenterInputs: - VPC VCSA IP - VPC VCSA Creds - VPC ESXi Hosts - VPC Cluster - HA Settings - Failure: percentageTasks: - Add VPC ESXi hosts to Cluster- Configure VPC Cluster HA Settings

----------- 5 ------------Prep VPC vCloud CellEngine Broker Plugin - Puppet vCenter - ??Inputs: - VPC VCSA IP - VPC VCSA Cred - VPC vCloud Cell Name - Static RoutesTasks: - PowerOn VM - Set Hostname - Set Static Routes - Configure Networking

----------- 5 ------------Prep VPC VCSAEngine Broker Plugin - ??Inputs: - Credentials - Network SettingsTasks: - Configure Networking

----------- 5 ------------Prep VPC vCloud CellEngine Broker Plugin - Puppet vCenter - ??Inputs: - VPC VCSA IP - VPC VCSA Cred - VPC vCloud Cell Name - Static RoutesTasks: - PowerOn VM - Set Hostname - Set Static Routes - Configure Networking

----------- 5 ------------Prep VPC VSMEngine Broker Plugin - ??Inputs: - VPC VCSA IP - VPC VCSA Cred - VPC VSM name - Network SettingsTasks: - PowerOn VM - Configure Networking

Page 48: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

48

Zombie Engine DSL – ZED

Puppet

Apply

MCollective

MCollective

Puppet

Apply

MCollective

API Query

OVFTool

Page 49: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

49

Zombie Engine DSL – ZED

Reserve Compute

Install ESXi

Add To Cluster

Add Compute

Reserve Compute

Install ESXi

Add To Cluster Replace Compute

Un-Reserve Compute

Remove From Cluster

Page 50: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

50

Distributed and Location-aware Execution

Work to do

Concurrent

Work Concurrent

Work Concurrent

Work

Concurrent

Work Concurrent

Work Concurrent

Work

P

P

P

B

B B

B B

Datacenter: Dallas

Datacenter: Singapore

Work to do

Page 51: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

51

VPC Deployment

Page 52: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

52

Deployment

Diagram -> Deployment

-------------- 1 ---------------Init VPC- Engine - API Call

------------- 3 --------------Install ESXiEngine Broker Plugin - RazorInputs: - Razor IP - Blade - Hostname - Network InformationTasks: - Create Policy - Boot Blade

------------- 3 --------------Prep TLMEngine Broker Plugin - Puppet vCenterInputs: - TLM VCSA IP - TLM VCSA Creds - TLM DVS - Portgroup Name - Portgroup VLAN - Portgroup Settings - Ports: 128 - Load Balancing: IP Hash - Reset at Disconnect: EnabledTasks: - Create PGs - d#p#v#-dmz-pg-## - d#p#v#-esx-pg-## - d#p#v#-pvt-pg-##

----------- 4 ------------Deploy VPC VCSAEngine Broker Plugin - OVFToolInputs: - OVA - TLM vCenter IP - TLM vCenter Creds - Cluster - Datastore - VM Name - Network - VM Hardware Settings - Memory: 16384Tasks: - Deploy VPC VCSA - d#p#v#-mgmt-vc0 - Update VM Hardware

----------- 4 ------------Deploy VPC VSE Pub PairEngine Broker Plugin - Puppet vShieldInputs: - TLM VSM IP - TLM VSM Creds - Edge Settings - Name - Hostname - Enable HA - Declare Dead Time: 6 - Interface 1 - Heartbeat IP Addresses - TLM Datacenter - TLM Cluster - TLM Shared Datastore - Size: Compact - Interface Settings - Interface 0 - Name - Type - Portgroup - Subnet Settings - Interface 1 - Name - Type - Portgroup - Subnet SettingsTasks: - Create VPC Pub Edge - d#p#v#-mgmt-vse-pub

----------- 4 ------------Deploy VPC VSE Priv PairEngine Broker Plugin - Puppet VMware-vShieldInputs: - TLM VSM IP - TLM VSM Creds - Edge Settings - Name - Hostname - Enable HA - Declare Dead Time: 6 - Interface 2 - Heartbeat IP Addresses - TLM Datacenter - TLM Cluster - TLM Shared Datastore - Size: Compact - Interface Settings - Interface 0 - Name: InterVPC - Type - Portgroup - Subnet Settings - Interface 1 - Name: DMZ - Type - Portgroup - Subnet Settings - Interface 2 - Name: PVT - Type - Portgroup - Subnet Settings - Interface 3 - Name: ESX - Type - Portgroup - Subnet SettingsTasks: - Create VPC Priv Edge - d#p#v#-mgmt-vse-priv

----------- 5 ------------Configure VPC VSE Pub PairEngine Broker Plugin - Puppet vShieldInputs: - TLM VSM IP - TLM VSM Creds - Edge Settings - DNS Settings - Firewall Settings - IPsets - Application Groups - Applications - Firewall Rules - Load Balancer Settings - Enable - Pools - VIPs - Default Route - SyslogTasks: - Configure VPC VSE Pub Pair

----------- 5 ------------Configure VPC VSE Priv PairEngine Broker Plugin - Puppet VMware-vShieldInputs: - TLM VSM IP - TLM VSM Creds - Edge Settings: - Syslog - DNS - Firewall Settings - IPsets - Application Groups - Applications - Firewall Rules - Load Balancer Settings - Enable - Pools - VIPs - Default RouteTasks: - Configure VPC VSE Priv Pair

----------- 7 ------------Init VPC VCSAEngine Broker Plugin - Puppet VMware-VCSAInputs: - Credentials - NTP Settings - Syslog Settings - DB Settings - Sizing: LargeTasks: - Init VPC VCSA

----------- 4 ------------Deploy VPC VSMEngine Broker Plugin - OVFToolInputs: - OVA - TLM vCenter IP - TLM vCenter Creds - Cluster - Datastore - VM Name - NetworkTasks: - Deploy VPC VSM - d#p#v#-mgmt-vsm0

----------- 9 ------------Configure VPC VSMEngine Broker Plugin - Puppet VMware-vShieldInputs: - VPC VSM IP - VPC VSM Creds - VPC VCSA IP - VPC VCSA Creds - NTP - SyslogTasks: - Configure VPC VSM

----------- 4 ------------Deploy VPC vCloudEngine Broker Plugin - ??Inputs: - TLM vCenter IP - TLM vCenter Creds - Cluster - Datastore - VM Names - VM Settings - NetworkTasks: - Deploy VPC vCloud Cells - Deploy VPC vCloud NFS - Deploy VPC vCloud DB

-------------- 2 -----------------Reserve VPCEngine Broker Plugin: - RezInputs: - VPC #

----------- 8 ------------Configure VPC vCenterEngine Broker Plugin - Puppet VMware-vCenterInputs: - VPC VCSA IP Address - VPC VCSA Credentials - Licenses - vCenter - ESXi - vCloud Net & Sec - Retention Policies - Task: Enabled - Event: Enabled - Datacenter Name - Cluster Settings - Name - DRS Settings - EVC Settings? - DVS Configuration - Name: d#p#v# - Settings - Uplinks: 4 - MTU: 9000 - Enable NIOC - Portgroup settings - Name - VLAN - Settings-Tasks: - Configure VPC VCSA - Configure DVS

----------- 7 ------------Init VPC VSMEngine Broker Plugin - ??Inputs: - VPC VSM Network SettingsTasks: - Init VPC VSM

----------- 6 ------------VPC VCSA Port CheckEngine Broker Plugin - UtilInputs: - VPC VCSA IPTasks: - VPC VCSA Port Check

----------- 6 ------------VPC VSM Port CheckEngine Broker Plugin - UtilInputs: - VPC VSM IPTasks: - VPC VSM Port Check

----------- 6 ------------Verify VPC ESXiEngine Broker Plugin - Puppet Util?Inputs: - VPC ESXi IP - VPC ESXii CredsTasks: - Verify VPC ESXi

----------- 9 ------------Add ESXi to VPC DatacenterEngine Broker Plugin - Puppet VMware-vCenterInputs: - VPC ESXi IP - VPC ESXii Creds - VPC VCSA IP - VPC VCSA Creds - VPC Datacenter NameTasks: - Add ESXi to VPC Datacenter

----------- 10 ------------Configure VPC ESXiEngine Broker Plugin - Puppet VMware-vCenterInputs: - VPC VCSA IP - VPC VCSA Creds - DNS Settings - NTP Settings - Syslog Settings - VMK Configuration - vMotion - Storage - FT - ???Tasks: - Configure ESXi - Add to DVS - Add VMK Networking

----------- 11 ------------Add Storage to VPC ESXiEngine Broker Plugin - Puppet VMware-vCenterInputs: - VPC VCSA IP - VPC VCSA Creds - iSCSI Settings - LUN InformationTasks: - Configure iSCSI - Add LUNs

------------- 3 ---------------Configure VNX VPC Storage GroupEngine Broker Plugin: - Storage ControllerInputs: - VPC # - LUN IDs - ESXi iSCSI informationTasks: - Create VPC Storage Group - Configure VNX Host registrations - Add LUNs to VPC Storage Group

----------- 6 ------------VPC vCloud Cell Port CheckEngine Broker Plugin - UtilInputs: - VPC vCloud Cell IPTasks: - VPC vCloud Cell Port Check

----------- 6 ------------VPC vCloud Cell Port CheckEngine Broker Plugin - UtilInputs: - VPC vCloud Cell IPTasks: - VPC vCloud Cell Port Check

----------- 6 ------------VPC vCloud NFS Port CheckEngine Broker Plugin - UtilInputs: - VPC vCloud Cell IPTasks: - VPC vCloud NFS Port Check

----------- 6 ------------VPC vCloud DB Port CheckEngine Broker Plugin - UtilInputs: - VPC vCloud Cell IPTasks: - VPC vCloud DB Port Check

----------- 7 ------------Configure VPC vCloud NFSEngine Broker Plugin - ??Inputs: - VPC vCloud NFS IP - VPC vCloud NFS Creds - NFS Export Settings - ???Tasks: - Config VPC vCloud NFS

----------- 7 ------------Configure VPC vCloud DBEngine Broker Plugin - ??Inputs: - VPC vCloud DB IP - VPC vCloud DB Creds - vCloud Database Config - ???Tasks: - Configure VPC vCloud DB

----------- 8 ------------Configure VPC vCloud CellEngine Broker Plugin - ??Inputs: - VPC vCloud Cell IP - VPC vCloud Cell Creds - VPC vCloud NFS Config - VPC vCloud Installation Responses.properties - VPC vCloud Cell Cert - NTP SettingsTasks: - Install and Configure NTP - Install VPC vCloud Cert - Configure vCD - Configure vCD Transfer Service

----------- 9 ------------Configure VPC vCloud CellEngine Broker Plugin - ??Inputs: - VPC vCloud Cell IP - VPC vCloud Cell Creds - VPC vCloud Installation Responses.properties - VPC vCloud NFS Config - VPC vCloud Cell Cert - NTP SettingsTasks: - Install and Configure NTP - Install VPC vCloud Cert - Configure vCD - Configure vCD Transfer Service

----------- 12 ------------Create VPC VM Storage ProfileEngine Broker Plugin - Puppet VMware-vCenterInputs: - VPC VCSA IP - VPC VCSA Creds - Storage Profile NameTasks: - Create VPC VM Storage Profile - Tag VPC Datastores

----------- 13 ------------Add VPC vCenter to vCloudEngine Broker Plugin - Puppet VMware-vCloudInputs: - VPC vCloud IP - VPC vCloud Creds - VPC VCSA IP - VPC VCSA Creds - ???Tasks: - Add VPC vCenter to VPC vCloud

----------- 10 ------------Configure VXLANEngine Broker Plugin - Puppet VMware-vShieldInputs: - VPC VSM IP - VPC VSM Creds - Multicast Information - VPC DVS Information - VPC Cluster - ???Tasks: - Configure VXLAN

----------- 11 ------------Reconfigure VXLAN VMK PortsEngine Broker Plugin - Puppet VMware-vCenterInputs: - VPC VCSA IP - VPC VCSA Creds - VXLAN VMK Network SettingsTasks: - Configure VXLAN VMK Ports

----------- 14 ------------Configure VPC vCloudEngine Broker Plugin - Puppet VMware-vCloudInputs: - VPC vCloud IP - VPC vCloud Creds - Provider VDC Name - External Org Network Name - ???Tasks: - Configure VPC vCloud

----------- 12 ------------Configure VPC Cluster HAEngine Broker Plugin - Puppet VMware-vCenterInputs: - VPC VCSA IP - VPC VCSA Creds - VPC ESXi Hosts - VPC Cluster - HA Settings - Failure: percentageTasks: - Add VPC ESXi hosts to Cluster- Configure VPC Cluster HA Settings

----------- 5 ------------Prep VPC vCloud CellEngine Broker Plugin - Puppet vCenter - ??Inputs: - VPC VCSA IP - VPC VCSA Cred - VPC vCloud Cell Name - Static RoutesTasks: - PowerOn VM - Set Hostname - Set Static Routes - Configure Networking

----------- 5 ------------Prep VPC VCSAEngine Broker Plugin - ??Inputs: - Credentials - Network SettingsTasks: - Configure Networking

----------- 5 ------------Prep VPC vCloud CellEngine Broker Plugin - Puppet vCenter - ??Inputs: - VPC VCSA IP - VPC VCSA Cred - VPC vCloud Cell Name - Static RoutesTasks: - PowerOn VM - Set Hostname - Set Static Routes - Configure Networking

----------- 5 ------------Prep VPC VSMEngine Broker Plugin - ??Inputs: - VPC VCSA IP - VPC VCSA Cred - VPC VSM name - Network SettingsTasks: - PowerOn VM - Configure Networking

Page 53: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

53

Documentation Fail

Page 54: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

54

Click Fail

Add VPC Hosts to VCSA

Continuing from the vCenter view of the vSphere Web Client

In the main content pane, click Related Objects > Clusters

Click on VPC on the list

Click the second plus icon to add a host

• Host name: Enter first host FQDN

• Location: Confirm the location is set

• Click NEXT

Repeat Manually?

Page 55: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

55

Script Fail

Easy from clean slate

Repeat?

Resume?

Modular?

Different Environment?

Page 56: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

56

Puppet Configuration

Idempotent

Declarative

Small Components

Compose Infrastructure

Page 57: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

57

Puppet Example

Page 58: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

58

Mass Production

Page 59: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

59

With Customization

Page 60: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

60

Mass Customization

Data

+

Configuration Modules

Page 61: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

61

Data

Information about environment

Page 62: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

62

Configuration Module

How to deploy a specific service

Page 63: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

63

Mass Customization

Data > Configuration Modules

# Compute * How to deploy ESX

Page 64: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

64

Beyond Operating Systems

Managing Services though APIs:

• vCenter: vSphere API (SOAP)

• vCNS: vShield API (REST/XML)

• vCD: vCD API (REST)

Page 65: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

65

Managing Appliances and Services

Puppet Management Server

VMware vCenter

SSH

Puppet Management Server

VMware vCenter

vSphere API

Datacenter

Folders

Datacenter

ESX

Page 66: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

66

Managing vSphere/vShield/vCD APIs

Puppet Management Server

VMware vCenter

VMware vShield

Datacenter

ESXESX

ESX

Datacenter

ESXESX

vSphere API

vShield API

Edge

Page 67: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

67

No Manual Interaction

Page 68: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

68

VPC Initialization

Software Defined Networking deployment

• Network Load Balancers

• Firewall

• Routing

Compute (ESX)

Storage

vCenter + vCNS

vCD

VM/OS Deployment and Configuration

Application Deployment and Configuration

Page 69: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

69

Does It Work?

Page 70: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

70

Page 71: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

71

Cloud Build A

Maximum capacity per week:

Man hours: 72

2

Time to delivery: 6 days

Page 72: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

72

Maximum capacity per week:

Man hours: 1.5

336 x Zombie Engine instance count

Time to delivery: 2.5 hours*

Cloud Build A

Page 73: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

73

Details (per job):

• ~120 individual tasks (plugin calls)

• ~2700 discrete configuration points

• ~1400 managed resources

• Dynamically sized (pick the # of compute and storage)

• Controls: vCloud Director, vCenter, ESXi, EMC VNX,

Razor, vShield Manager, vShield Edge, Linux and

Windows operating systems

Cloud Build A

Page 74: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

74

Cloud Build A

Page 75: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

75

So Yeah… It Works

Page 76: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

76

What’s Next?

Page 77: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

77

SDN

Big Data

Datacenter Automation

Faster, Faster, Faster

project zombie

Page 79: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

79

Coming Soon…

vCloud Director

• PVDC Management

• External networks

• Roles

• Users

• Standard switch to distributed switch migration

Page 80: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

80

Bring Your Own Licenses

Bring Your Own VMs

Bring Your Own Tools

Customer Components

VMware vCloud

Hybrid Service

Hybrid Service Delivery Components

Infrastructure Hardware & Facilities

Compute Storage Networking &

Security

OS Catalogs

Application Catalogs

Infrastructure Management

Web Console vCloud API

Page 81: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

81

project zombie

Q & A

Page 82: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

82

Other VMware Activities Related to This Session

HOL:

HOL-HBD-1303

vCloud Hybrid Service - Manage Your Cloud

PHC5640

Page 83: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

THANK YOU

Page 84: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services
Page 85: VMworld 2013: The Story Behind Designing and Building a Distributed Automation Framework for vCloud Hybrid Services

The Story Behind Designing and Building

a Distributed Automation Framework for

vCloud Hybrid Services

Nan Liu, VMware

Nicholas Weaver, VMware

PHC5640

#PHC5640