61
© 2011 VMware Inc. All rights reserved Nicholas Weaver - Cloud Automation Architect VMware vCloud Hybrid Service VMware vCHS, Puppet, and Project Zombie

VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

Embed Size (px)

DESCRIPTION

"VMware vCHS, Puppet, and Project Zombie" by Nicholas Weaver, Cloud Automation Architect, Hybrid Cloud Service, VMware. Speaker Bio: Nicholas Weaver is the Cloud Automation Architect for VMware's vCloud Hybrid Service (vCHS) platform and the primary architect behind the vCHS automation framework (Project Zombie). He is also a co-creator of the Puppet Labs Razor project and many VMware-specific free tools. He previously worked in the CTO office for EMC, in the EMC field as a vSpecialist, and as a infrastructure engineer in financial, media, and retail companies. Nick loves software-driven control, hacking prototypes together, speaking at user groups, and demonstrating automation innovation to the masses. Nick can be found on Twitter and Github as @lynxbat.

Citation preview

Page 1: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

© 2011 VMware Inc. All rights reserved

Nicholas Weaver - Cloud Automation ArchitectVMware vCloud Hybrid Service

VMware vCHS, Puppet, and Project Zombie

Page 2: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

2

About me

Page 3: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

3

About Nick

Nicholas Weaver

• VMware – Cloud Automation Architect, vCHS

• (formerly) EMC – Office of the CTO, Global Alliances, vSpecialist, Demo-builder

• (formerly) VMware/EMC Architect: Financial, Retail

• Co-creator Project Razor

• Twitter: @lynxbat

• Blog: nickapedia.com

• LinkedIn: www.linkedin.com/in/nicholasweaver

Page 4: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

4

What is vCloud Hybrid Service?

Page 5: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

5

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 6: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

6

What do I do?

Page 7: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

7

Automation

Page 8: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

8

Page 9: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

9

Page 10: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

10

Page 11: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

11

Effort Evolution

Page 12: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

12

Why is automation important for vCHS?

Page 13: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

13

What is it really doing?

Page 14: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

14

Page 15: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

15

Page 16: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

16

The problem with success is…

Page 17: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

17

Page 18: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

18

Nothing stays the same

Page 19: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

19

Page 20: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

20

Page 21: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

21

We are not the first

Page 22: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

22

Page 23: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

23

Page 24: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

24

Page 25: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

25

Page 26: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

26

We need automation special sauce

Page 27: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

27

?

Page 28: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

28

project zombie

Page 29: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

29

Key principles

Page 30: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

30

Scale

Page 31: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

31

Extensibility

Page 32: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

32

Simplicity

Page 33: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

33

Resiliency

Page 34: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

34

Page 35: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

35

Page 36: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

36

What is Project Zombie?

Page 37: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

37

Page 38: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

38

Page 39: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

39

Page 40: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

40

Page 41: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

41

Page 42: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

42

Rez

Page 43: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

43

Distributed Resource Management

Stuff

• Resources

• State

• Configuration

• Location

• Distributed Locking

• Ownership

• Event History

Page 44: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

44

Distributed Resource Management

Stuff

Razor

Razor

StorageManager

StorageManager

Compute Storage

Page 45: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

45

Engine

Page 46: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

46

Zombie Engine DSL - ZED

Page 47: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

47

Zombie Engine DSL - ZED

PuppetApply

MCollective

MCollective

OVFTool

PuppetApply

MCollective

API Query

Page 48: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

48

Zombie Engine DSL - ZED

Reserve Compute

Install ESXi

Add To Cluster

Add Compute

Reserve Compute

Install ESXi

Add To ClusterReplace Compute

Un-Reserve Compute

Remove From Cluster

Page 49: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

49

Distributed and location-aware execution

Work to doConcurrent

WorkConcurrentWorkConcurrent

Work

ConcurrentWorkConcurrent

WorkConcurrentWork

P

P

P

B

B B

BB

Datacenter: Dallas

Datacenter: Singapore

Work to do

Page 50: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

50

Why we use Puppet

• Greater investment in building modules than scripting

• Much greater return on investment with evolution of the product

• 13 in-house Puppet Modules so far (small example)

• vCloud Director

• vShield Networking

• vSphere

• We use a total of 47 modules for everything

• We have Puppet modules for installing Zombie in Production, Integration, and Development (including Vagrant + Puppet use for laptops)

• Project Zombie itself uses Puppet to do work, and is installed and upgraded using Puppet

Page 51: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

51

Why we use Puppet

Puppet 1st Rule

Page 52: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

52

Cool things we do with Puppet

• Engine can stage changes using MCollective to an environment

• We can update that environment throughout job execution

• We can apply the environment against a target at any time

• We have the ability to load balance/scale both Engine execution and Puppet execution

• Processes that would be complex to order in Puppet can be staged much easier with Zombie Engine + Puppet

• ZED allows for iteration using configuration data into execution concurrency and queuing. Very cool layer on top of Puppet.

Page 53: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

53

Does it work?

Page 54: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

54

Page 55: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

55

Cloud Build A

Maximum capacity per week:

Man hours: 72

2

Time to delivery: 6 days

Page 56: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

56

Maximum capacity per week:

Man hours: 1.5

336 x Zombie Engine instance count

Time to delivery: 2.5 hours*

Cloud Build A

Page 57: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

57

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 58: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

58

Cloud Build A

Page 59: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

59

So yeah… it works

Page 60: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

60

What’s next?

Page 61: VMware vCHS, Puppet, and Project Zombie - PuppetConf 2013

61

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 StorageNetworking &

Security

OS Catalogs

Application Catalogs

Infrastructure Management

Web Console vCloud API