puppet on a string - nlvmug · puppet on a string. ... puppet chef salt ansible commercial support...

38
© 2014 VMware Inc. All rights reserved. © 2009 VMware Inc. All rights reserved Confidential Alain Geenrits, Sr SE enterprise management, VMware http://bitstream.geenrits.net Puppet on a String

Upload: dinhdung

Post on 26-Jul-2018

233 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

© 2014 VMware Inc. All rights reserved.

© 2009 VMware Inc. All rights reserved

Confidential

Alain Geenrits, Sr SE enterprise management, VMware

http://bitstream.geenrits.net

Puppet on a String

Page 2: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Forward Looking Statement

Statements made in this presentation which are not statements of historical fact are forward-looking statements based upon current expectations. Actual results could differ materially from those projected in the forward-looking statements. Information regarding risk factors that could cause actual results to materially differ are contained in documents filed by VMware with the Securities and Exchange Commission, including reports that VMware may file with the SEC from time to time on periodic reports on Form 10-Q and Form 10-K and current reports on Form 8-K. VMware assumed no obligation to update any such forward-looking statements after the date of this presentation.

Page 3: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

It is not about the tools….

3

Foreman

Page 4: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Lessons Learned from Lean Manufacturing

http://rasmusson.wordpress.com/2008/04/16/batch-vs-continuous-flow-processing/

By changing from a batch process, to continuous flow, the throughput of an

organization can increase 60%

http://www.leanproduction.com/theory-of-constraints.html

Change

What to do about a

bottleneck?

Page 5: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

The Business impact of Dev & Ops Automation

http://blogs.vmware.com/accelerate/tag/journey-survey http://www.informationweek.com/tech-center/it-as-a-service/devops-improves-time-to-

market-and-reven/240161336

DevOps sped up new services and products to market by 20%. With

companies able to respond in the marketplace faster, they increased

the number of customers by 22% and revenues by 19%. Thirty-nine

percent of those surveyed had adopted some form of DevOps; 27%

were planning to do so in the near future.

The Reduction in Clock Time of

DevOps processes has been

associated with about 20%

increase in revenue at

companies

Page 6: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Tenant Summary – DevOps Provisioning

AppOps Team Deploy integrated, complex App Stack instances to support 600 developers.

Challenge Process was manual, siloed, slow, unreliable. Reduced developer efficiency. Increases risk.

Two Fundamentally Different Options

1. Fix the “human middleware” on traditional infrastructure

2. Replace and automate on private cloud SDDC

Results From Choice to Replace and Automate

Process time – dropped from 4 weeks to 36 hours

Developer productivity – increased 20% or more

Project schedule risk - eliminated

Annual infrastructure and operating costs - reduced by $6M

IT invested in Agility and as a result reduced Costs

Page 7: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Human Middleware Problem – Ops View

Global Team

Management

Project manage

around PTO,

holidays,

variable skills

Capacity

Constrained

Only 4-6 projects

in parallel

Slow and

Error Prone

Many manual steps.

Ticketing systems.

Human error.

Handoffs

Silos. Globally

distributed teams.

Multiple application

experts.

Page 8: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Total Cycle Time - Improvements

1. Re-provision instead of repair,

and cross-training teams

2. Improve blueprints to drive down

defects, automate functional and

environmental testing

3. Parallel Provisioning

Plan to get to 24 hour goal

• More automation and management

changes

• Improve QA testing process

Improvements

Provision – 16 hours

QA – 8 hours

Goal – 24 hours

0

20

40

60

80

100

120

140

160

180

200

Test13 Dev14 Test14 Dev15 Test15 Dev16 Test16

1.

2.

3.

Pro

vis

ion

ing tim

e (

ho

urs

)

SDLC Instance - Oracle ERP with Portal (date)

05/07 05/22 05/27 06/19 06/25 07/22 08/05

8

Page 9: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Question - Why Automate Service Provisioning?

Service

Definition

Blueprint

Policy POC1 POC2 Catalog

Provision QA Staging Release

40 work weeks effort – Per Release…

20 work weeks effort – Once!

Run Book

36 hours

Service Request

4 weeks

Answer - It takes less time/effort to convert the runbook into blueprints…

…than it takes to “run” the runbook...

Virtual Server

Software Defined Data Center Service Request

Catalog

Example

Provisioning

Oracle ERP

With Web Portals

Manual Process

Automated Process

Page 10: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Results

Phase 1 Phase 2

Cycle Time Hours per SDLC instance

172

36

Today

Phase 1 Phase 2

Virtual Machines Transitioned To Private Cloud

Phase 1 Phase 2

AppOps Team # of Engineers

Goal – 4000

2,800

2,200

Goal - 5

27

22

Reduced provision time

95% (4 weeks to 36 hours)

Improved productivity

of 600 developers

20%

Reduced

IT operations costs

$1.5M /year

Able to say

“yes” to developer requests

Reduced the cost of

a VM/month

80% ($133 to $20)

Reduced

infrastructure costs

$4.5M/year

672 hours (4 weeks)

Goal – 24 hours

Today Today

Page 11: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Phase 1 Phase 2

Cycle Time Hours per SDLC instance

172

36

Today

Phase 1 Phase 2

Virtual Machines Transitioned To Private Cloud

Phase 1 Phase 2

AppOps team # of Engineers

Goal – 4000

2,800

2,200

Goal - 5

27

22

672 hours (4 weeks)

Goal – 24 hours

Today Today

Reduced provision time

95% (4 weeks to 36 hours)

Improved productivity

of 600 developers

20%

Reduced

IT operations costs

$1.5M /year

Able to say

“yes” to developer requests

Reduced the cost of

a VM/month

80% ($133 to $20)

Reduced

infrastructure costs

$4.5M/year

IT invested in Agility and as a result reduced Costs

Page 12: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

The Problem

Before vCloud Automation Center

Page 13: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

vCloud Automation Center

Operations Virtualization™

VMware Solution

After vCloud Automation Center

Page 14: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Application Director

vCenter

Operations

Mgmt

vCloud Automation Center

IaaS PaaS DaaS

Application

Director

Mgmt

vCloud Director / Connector

vCloud

Networking

and Security

vCenter

Site Recovery

Manager

vSphere

Hardware

vCloud

Service

Providers

Hyper-

visors

Other

Service

Providers

vCloud Hybrid Service

Page 15: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Cloud Automation – vCloud Automation Center

• On-demand access to any infrastructure or

application service

• Comprehensive governance for approvals,

reclamations, cost profiles and transparency

• Initial provisioning and lifecycle management

• Broad support for physical, virtual and cloud

provisioning end points and software mechanisms

• Extensibility through integration with existing

infrastructures and customizable workflows

• Enable business agility through rapid delivery of

IT services

• Provide IT control by governing who provisions

what and where

• Extend existing infrastructure, processes and

environments with a flexible automation solution

Benefits

Overview

Self - Service

IaaS PaaS DaaS XaaS

Cloud Automation Center

Heterogeneous Infrastructure

Policy-Based Governance with Automated Delivery

On-demand self-service access to services

Page 16: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Accelerate PaaS and Application Deployment Streamline the deployment and update process

Leverage pre-built components

Re-use blueprints for various environment

Components

Application Blueprint

Components Components Components

Page 17: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Cloud / System Admin

“Creates Templates &

Deployment Environments”

Middleware Administrator

Creates Middleware Components”

Catalog Administrator

“Creates Catalog &

Approves Components”

Application Architect

“Creates Blueprint”

Deployer

“Deploys Applications

& Changes”

Collaborative Platform for Various Roles

Page 18: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Standardize for IT Control and Compliance

Standardize on a best practices pre-build component library

Avoid manual, differing configurations to reduce complexity

Improve quality of services by capturing best practices in components

Page 19: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Services Catalog ROLE_CATALOG_ADMIN OOTB templates, services, tasks, OS’s, tags Extend the catalog by registering new components or version existing ones

p.71

Page 20: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Cloud Applications Marketplace

Page 21: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Provision Integrated Multi – Tier Applications

VMware provides Enabling technology to provision integrated multi-tier applications into hybrid clouds Marketplace platform for ISV’s, SI’s and SP’s

SP’s plan to provide enterprise services

Any

Application

Any

Cloud

ISV’s provide their technology as components

SI’s provide reference architectures

Page 22: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Application

Rapidly Push Code Changes into Production Automate the Software Development Lifecycle Process

Continuous integration

Rapid application and change deployment

Control Code Change Code

“Ear/War” Files Build Software Automate

Provisioning

Software Source

Control System

“SVN, Clearcase, Perforce”

Continuous Build

Integration System

“Jenkins”

Application Provisioning

And Update

“Application Director”

Page 23: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

CONFIDENTIAL & PROPRIETARY

About Puppet Labs

Page 24: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Puppet Labs At-A-Glance

QUICK STATS

INVESTORS

Radar

Partners

AWARDS &

RECOGNITION

2005 founded

3.5 million downloads in last 12 months

~10 million total nodes under management

~6,000 community members

60,000 nodes in largest deployments

$46 million capital raised

ECOSYSTEM

PARTNERS

Page 25: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

We Automate IT Infrastructure for Sysadmins

APPLICATION STACK

Asset

Management

Capacity Planning

Service Catalog

Billing

Monitoring

Service Desk

Discovery

Provisioning

Configuration

Management

Orchestration

Reporting

IT

Automation

Physical &

Virtual Nodes

Operating

Systems

Middleware

Application

Code & Data

MANAGEMENT STACK

Full stack lifecycle automation for heterogeneous IT environments

Page 26: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Puppet Enterprise Console

Puppet Forge Modules

3rd Party

Systems

Puppet Agent Puppet Agent Puppet Agent

Node Node Node

Puppet Master

The Puppet Platform

Page 27: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Puppet Enterprise Overview

Reporting GUI Workflows Admin &

Security

VM Node Cloud Node Hardware Node

Agent DISTRIBUTED

AGENTS

CENTRALIZED

MANAGEMENT

SERVER

CLOUD-BASED

CONTENT

REPOSITORY 1,200+ Pre-Built

Configurations Puppet Forge

Puppet Master

Agent Agent

Page 28: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

28 | CONFIDENTIAL & PROPRIETARY

1. Define the desired state of the

infrastructure's configuration using

Puppet's declarative language.

2. Simulate configuration changes

before enforcing them.

3. Enforce the deployed desired state automatically, correcting any configuration drift.

4. Report on differences

between actual and desired

states, and any changes

made enforcing the desired state.

Iterate & Increase

Automation Coverage

Desired State Current State

How Puppet Works Declarative, Model-based Automation

service { ‘ssh’:

ensure => running,

enable => true,

subscribe => File[‘/etc/sshd_config’]

}

New in 3.0

~200% performance boost

~100% increase in scalability

Page 29: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

29 | CONFIDENTIAL & PROPRIETARY

High-level status of

nodes

for instant visibility

Time-based display for insight

into rate of change

Detail of node status to

pinpoint specific issues

Puppet Enterprise: Graphical User Interface Easily & Quickly Assess Infrastructure State

Page 30: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

VIRTUAL & CLOUD INFRASTRUCTURE

APPLICATIONS NETWORK & STORAGE DEVICES

Puppet Forge: 1,200+ Pre-Built Automation Solutions

OPERATING SYSTEM RESOURCES

Puppet Forge ~900,000 downloads

NTP SUDO LDAP

RPM SSH USERS

Page 31: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Demo

Puppet Enterprise

Page 32: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

PUPPET ENTERPRISE + VCHS

OVERVIEW

PUPPET ENTERPRISE + VCLOUD AUTOMATION

PUPPET ENTERPRISE + VSPHERE

VMware & Puppet Labs Strategic Partnership

$30 million investment in Puppet Labs

Raghu Raghuram VMware VP & GM, on Board

Dedicated technical resources

Integrated product, marketing, & sales

Three product integrations to-date

VMware’s industry-leading hypervisor

VMware’s PaaS Private Cloud Solution VMware’s Hybrid Cloud Service

Automated provisioning & configuration

of OS and apps on ESX VMs

Automated provisioning & configuration

of OS and apps on VMware’s public cloud service Automated lifecycle management for self-service

apps provisioned with VMware’s PaaS software

Page 33: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Puppet Enterprise 3.0 and vCloud Automation

Self - Service

IaaS PaaS DaaS XaaS

Cloud Automation

Heterogeneous Infrastructure

Policy-Based Governance with Automated Delivery

Drift Remediation

Service Catalog

Multi-Machine Blueprints

Puppet Configuration Language

• Agility through automation

• Control throughout the Lifecycle

• Flexibility to deploy any service into

any heterogeneous environment

VMware Cloud

Management Marketplace

Puppet Forge

Community

Ecosystem

Configuration

Page 34: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Build Multi-Node Blueprint utilizing PE Modules 2013

Import Puppet

modules and

classes as services

Design multi-node

blueprint utilizing

Puppet

Drag and drop

Puppet services

onto canvas

Page 35: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Provision Multi-Node Blueprint 2013

Puppet Master

registered

Set configuration

properties for

deployment

Select

Deployment

Environment

Design Execution Plan

with dependencies

Review for accuracy

and Deploy

Page 36: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Drift Re-mediation with Puppet Enterprise Future

Puppet detects

configuration drift from

blueprint

Puppet fixes

configuration to match

blueprint

Page 37: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Thank you.

Page 38: Puppet on a String - NLVMUG · Puppet on a String. ... Puppet Chef Salt Ansible Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks Core Technology Ruby Ruby; Erlang Python

Open Source Configuration Management Landscape

Puppet Chef Salt Ansible

Commercial Support Puppet Labs Opscode SaltStack AnsibleWorks

Core Technology Ruby Ruby; Erlang Python Python

Communication SSL SSL 0mq SSH; 0mq optional

Control Interface Manifest: proprietary language

Recipe: Ruby States: YAML and other standard template tools

Playbooks: JSON, YAML, INI text files

Dependency Awareness Yes No Yes No

Community Repository Puppet Forge Cookbooks SaltStarters ansible-examples on GitHub

List Price (annual/node) Std: $88 / Prem: $152 Std: $72 / Prem: $? "contact sales" Std: $100 / Prem: $250

Date established Founded 2005; February 2011 first commercial project

January 2009 March 2011 February 2012; AnsibleWorks March 2013

Ref customers eBay, Google, Disney, many more

Facebook, Ancestry.com LinkedIn, HP Cloud Evernote, Rackspace

Strengths Most mature: users, mindshare, integrations

No proprietary language; execution order instead of dependency

Execution speed Few dependencies – easy to get started; agentless, leaves no trace on machines; more readable syntax

Headquarters Portland Seattle Salt Lake City Santa Barbara