the evolving design patterns of puppet enterprise - puppetconf 2014

62
THE EVOLVING DESIGN PATTERNS OF PUPPET ENTERPRISE

Upload: puppet-labs

Post on 18-Jun-2015

606 views

Category:

Technology


1 download

DESCRIPTION

The Evolving Design Patterns of Puppet Enterprise - Jonathan Spinks, Sourced Group & John Painter, Sourced Group

TRANSCRIPT

Page 1: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

T H E E V O LV I N G D E S I G N PAT T E R N S O F P U P P E T E N T E R P R I S E

Page 2: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

John Painter Jon SpinksSolutions Architect Solutions Architect

sourcedgroup.com

www.linkedin.com/in/painterj www.linkedin.com/in/jonspinks

Page 3: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

Sourced Group architect and deploy a globally distributed multi-master puppet solution for a large investment bank

February 2011

Page 4: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

CUSTOMER REQUIREMENTS

• Provide a single point of control for a globally distributed IT environment

• Reduce overall configuration drift in the existing fleet

• Provide a change control process to manage code updates

Page 5: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

DESIGN PATTERN 1 Global Multi Master

Page 6: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

C E N T R A L M G M T. SYDNEY

Puppeteer

Puppet Master

LDAP ENC

Puppet Master

Puppet Console

NEW YORK

Puppet Master

LDAP ENC

Puppet Master

Puppet Console

HONG KONG

Puppet Master

LDAP ENC

Puppet Master

Puppet Console

LDAP ENC Master

LONDON

Puppet Master

LDAP ENC

Puppet Master

Puppet Console

Page 7: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

USA: 6pm - 8amEurope: 6pm - 8amASIA: 6pm - 8am

Global risk management, simplified releases

Follow-the-Sun Code Release

Client Client

Puppet Master

Client Client

Puppet Master

Client Client

Puppet Master

Page 8: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

AUDITING GOVERNANCE SIMPLIFIED CONTROL

Control and report on the point of truth

Page 9: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

K E Y TA K E A W AY S

• LDAP is a great distributed ENC • Puppet Reports can be large en masse • A Puppet Master can used to manage other

Puppet Masters • Version control is critical as a basis for a change

control process

Page 10: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

Sourced Group architect and deploy a globally distributed multi-master puppet solution for a large investment bank

February 2011

Page 11: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

Sourced are the first to onboard an Asia Pacific

telecommunications company onto AWS, powered by Puppet

Enterprise

February 2012

Page 12: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

CUSTOMER REQUIREMENTS

• Provide a single point of control for instance provisioning

• Provide infrastructure orchestration • Maintain portability of applications to the

traditional data centre

Page 13: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

E V E R Y T H I N G I S P R O G R A M AT I C

S TA N D A R D I S AT I O N O F I N F R A S T R U C T U R E

Page 14: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

DESIGN PATTERN 2 Puppet Managing AWS Compute

Page 15: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

Puppet CloudPack

EC2 only support circa 2012

Page 16: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

Compute Compute

Compute Compute

Public IP Public IP

Public IP Public IP

EC2

Customer

IP Whitelisting

Page 17: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

Virtual Private Cloud!Private IP Space

Compute Compute

Compute ComputeCustomer

VPN / Direct Connect

Public IP

VPC

Page 18: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

Bootstrap Agent

Classify Node

Application DeployedCreate Instance

Page 19: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

K E Y TA K E A W AY S

• Puppet Masters can be used for OS instance delivery

• CloudPack supports EC2 and VPC

Page 20: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

Sourced are the first to onboard an Asia Pacific

telecommunications company onto AWS, powered by Puppet

Enterprise

February 2012

Page 21: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

“Using Puppet Enterprise Edition as Heterogeneous Cloud Glue”

PuppetConf 2012

Page 22: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

C L O U D PA C K U P L I F T

• Uplifted the existing Puppet CloudPack to support AWS VPC

• Left Puppet Enterprise in the middle of the provisioning and lifecycle management

• Supported Multi-cloud provisioning

• http://www.youtube.com/watch?v=mwiBjJZWraA

Page 23: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

“Using Puppet Enterprise Edition as Heterogeneous Cloud Glue”

PuppetConf 2012

Page 24: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

Sourced implement a masterless Puppet Enterprise Edition solution for a financial

services organisation

March 2013

Page 25: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

CUSTOMER REQUIREMENTS

• Harness transient compute while enforcing compliance

• Provide OS and application state transparency

Page 26: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

S TA N D A R D I S AT I O N A N D C O N S O L I D AT I O N

Page 27: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

DESIGN PATTERN 3 Masterless Puppet with AWS Integration

Page 28: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

C L O U D C O M P U T I N G I S F U N D A M E N TA L LY D I F F E R E N T

Page 29: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

V1.0 V1.0

myapp.com

Page 30: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

V1.0 V1.0

myapp.com

V2.0 V2.0

Page 31: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

myapp.com

V2.0 V2.0V1.0 V1.0

Page 32: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

W E B A P P V. 1

T E S T

B A K E

L A U N C H

T E A R D O W N

W E B A P P V. 2

T E S T

B A K E

L A U N C H

T E A R D O W N

W E B A P P D E V - V. 1

T E S T

B A K E

L A U N C H

T E A R D O W N

UAT

Production

Page 33: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

UAT

ProductionA P P V 1 . 1

A P P V 1 . 0

V 1 . 1

Features

V 2 . 0

V 1 . 1

V 2 . 0

Page 34: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

Infrastructure, deployment, and configuration have standardised

!

It was not just servers that were transient, it was entire application stacks

!

Cloud computing has significantly changed the application lifecycle

Page 35: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

– N I G E L K E R S T E N - P U P P E T C A M P S Y D N E Y 2 0 1 4

“18 months really sucks”

Page 36: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

- E V E R Y S I N G L E P R O D U C T M A N A G E R . E V E R .

“18 months really sucks”

Page 37: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

Weekly/Monthly -> Hourly

Page 38: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

Load

Time

$

$

$ $

$

$

Page 39: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

PROBLEM SPACE

• Puppet Masters were designed to manage long lived OS instances

• Transient compute doesn’t really need a dashboard • Puppet Console accuracy was impacted by stale

instance data • Requirement to simplify the Auto Scale process

Page 40: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

• CloudFormation for orchestration • AWS EC2 Instance Tags provide node definition • Facter is extended to understand AWS Instance

Metadata • Manifests and modules are bundled and centrally

managed • Centralised logging to provide state data

MASTERLESS COMPONENTS

Page 41: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

Version Control

Instance Instance

CI/CD

AW S S 3

Centralised Logging

InstanceInstance

Page 42: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

Application Configuration

Configuration Managent

Governance and Compliance

Page 43: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

Configuration Managent

Governance and ComplianceApplication Configuration

Page 44: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

K E Y TA K E A W AY S

• Cloud Computing is fundamentally different • Harnessing transient compute is extremely

valuable • Losing the Puppet Master reduces overall

visibility when considering long lived and transient instances as a whole

Page 45: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

DESIGN PATTERN 4 Puppet Master and Transient Compute

Page 46: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

D ATA B U I L D S T R A N S PA R E N C Y

Getting the Puppet Master Back in the Loop

Page 47: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

A W S C O M P U T E T Y P E S

Transient Compute

Stateful!Compute

Page 48: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

P U P P E T A W S A U T O S C A L I N G B R O K E R

Page 49: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

Instance Instance

Simple Notification Service (SNS)

Autoscaling Group

SNS Topic

Simple Queue Service (SQS)Autoscale BROKER

Instance Instance

Page 50: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

K E Y TA K E A W AY S

• Using a Puppet Master as a point of control for all compute builds transparency

• The Puppet Master framework is very extensible • PuppetDB is very valuable • Leverage AWS Auto Scale orchestration features

Page 51: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

A LOOK FORWARD Heterogeneous Puppet Governance

Page 52: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

Hardware

Operating System

Runtime

Application

Page 53: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

Hardware

Operating System

Runtime

Application

Page 54: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

Rather than making the OS a good candidate for the application, we are now tailoring the

applications to be a good citizen of a standardised compute platform.

Page 55: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

Docker

Pivotal CF

OpenShift

Azure Pack

Examples of higher-level application delivery frameworks that can run on AWS

Page 56: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

T H E F R A M E W O R K S S T I L L N E E D T O B E G O V E R N E D

Page 57: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

H Y B R I D C L O U D

On Premise Managed

Stateful Compute

Transient Compute

Page 58: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

GOVERNANCE

GOVERNANCE

GOVERNANCE

GOVERNANCE

GOVERNANCE

GOVERNANCE

Page 59: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

In an ideal world with true vendor arbitrage we would be able to deliver an application to AWS, OpenShift on Rackspace and Docker running on

managed VMware using only CI/CD tooling

Page 60: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

APP APP APP APP

Puppet + Autoscale Broker + Global Distribution + Multi Cloud

AWS - Sydney

Puppet Master

APP DELIVERY FRAMEWORK

APP DELIVERY FRAMEWORK

APP DELIVERY FRAMEWORK

AWS - USA

Puppet Master

APP DELIVERY FRAMEWORK

APP DELIVERY FRAMEWORK

APP DELIVERY FRAMEWORK

<CLOUD> - Singapore

Puppet Master

APP DELIVERY FRAMEWORK

APP DELIVERY FRAMEWORK

APP DELIVERY FRAMEWORK

Runtime

Puppet Master

APP DELIVERY FRAMEWORK

APP DELIVERY FRAMEWORK

APP DELIVERY FRAMEWORK

Your Datacenter

Page 61: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

K E Y TA K E A W AY S

• Through the adoption of PaaS the bar of commoditisation continues to rise

• Governance and compliance are still critical • Application delivery performance continues to

increase

Page 62: The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014

S O U R C E D G R O U P. C O M