43
cdi.st configuration as a service

cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

cdi.stconfiguration as a service

Page 2: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

Who’s that guy?

Page 3: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

Topics

● Configurations   Configuration Management→

● Configuration as a Service (CaaS)● cdist: configuration management

Page 4: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

History

● Manual Configurations (~1960)● Configuration Management (~1993)● Configuration as a Service (CaaS) (2014)

Page 5: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

Configuration

A configuration is set of parameters with values that describes a target state.

Page 6: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

Configuration Examples

● Virtual machine web01 runs on host42● Backup for web01 contains /home● User “app” exists on web01● Application Server Ruby on Rails is installed 

on web01● Load Balancing is configured for web01 .. 

web20 Servers

Page 7: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

Applying Configurations

Page 8: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

Configuration Management

Page 9: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

Why Configuration Management?

Page 10: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

Configuration Management

Manage configurations in a well defined way.

● Reproducible● Documentation● Idempotent● Scaling out

Page 11: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

Using Configuration Management

Page 12: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

Developer – no Sysadmins

Page 13: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

Developer does not know CM

Page 14: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

No Configuration Management

Because...

● Developer does not know– How to configure– How to use Configuration Management

● Developers should not know

Page 15: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

Developers cannot configure

Page 16: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

cdi.stconfiguration as a service

Page 17: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

CaaS: Definition (2014)

Configuration as a Service, CaaS:

Apply configurations to your systems with minimum knowledge required for the 

configuration or the configuration management system.

Page 18: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

Avoid Complexity

Page 19: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

Configuration as a Service

Page 20: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

XaaS

X as a Service:

Have somebody else do it automatically for you.

Self Service.

Page 21: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

How it works

Grant cdi.st access to my systems

Page 22: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ Linux Erfa ­ 20140519

Select Configurations

Page 23: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ Linux Erfa ­ 20140519

Configure Selected Hosts

Page 24: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

Have Services Running

Page 25: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

cdi.stbackground information

Page 26: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

cdi.st

● Website based on Ruby on Rails● Backend based on cdist

Page 27: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

Configurations

● Huge existing set of configurations● Ruby on Rails Hosting● cdist configuration management● Web Servers● Database Server● …

Page 28: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

cdistnext generation configuration management

Page 29: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

What is cdist?

● Next Generation Configuration Management● Less Bugs● Learned from mistakes others made● More

– flexible– efficient– fun

Page 30: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

Next generation configuration management?

Huh?

Page 31: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

Configuration Management ­ NG

Lessons learned from the mistakes others made

● Easy to use – no facepalm effect● Simple design – no grey hair effect● Push Support – for coordinated changes● DRY – Reuse existing technologies● FOSS – GPL, not half commercial● Installation support – in 4.0pre branches● Not affiliated with $distro $vendor $evil_vendor_lockin

Page 32: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

Why cdist?

● Requires only ssh on the target host● Core functionality supports different OS● Development started at ETH Zurich● Made in Switzerland● Scalable Design

Page 33: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

cdist history

● 2010­11­10: LISA'10 BoFs● 2011­03­07: First public release of cdist● 2011­09­16: Rewrite cdist core in python● 2013­01­01: Founded ungleich GmbH● …: Many releases, growing community● 2014­05­05: Released cdist 3.1.5

Page 34: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

cdist Features

ProvenTechnologies

Scalable

Secure (SSH)

Simple

Push based

Well documented

Shell Script ZeroDependency

Open Source

Page 35: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

The big picture

Initial manifest

type

manifest

gencode­*

parameter

explorerexplorer

code­*

Page 36: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

cdi.stconfiguration as a service: summary

Page 37: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

Enable Users

Page 38: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

No System Engineer Required

Page 39: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

No Configuration Management

Page 40: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

Reduce Complexity

Past● Users depend on 

System Engineer● Lot of knowledge 

required● Investment into 

development

CaaS● Users can configure 

themselves● Users defines target 

state● Reuse existing 

configurations

Page 41: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

Outcome

● Enable users to configure their systems● Reduced complexity● Focus on core competences● Growing number of configurations

Page 42: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

I want to use cdi.st

● cdi.st public release planned for August 2014● Beta running at customers since June 2014● Send mail to [email protected]

Page 43: cdi.st configuration as a service - USENIX · Nico Schottelius UCMS14 20140619 Configuration Management NG Lessons learned from the mistakes others made Easy to use – no facepalm

Nico Schottelius ­ UCMS14 ­ 20140619

Thank you

● Follow us on Twitter: @ungleich● [email protected]● http://www.ungleich.ch