monitoring configuration management - from dev to prod

30
monitoring configuration, release & configuration management Christoph Oelmüller <[email protected]> *

description

talk at monitoring workshop 2014

Transcript of monitoring configuration management - from dev to prod

Page 1: monitoring configuration management - from dev to prod

monitoring configuration,

release & configuration management

Christoph Oelmüller

<[email protected]>

*

Page 2: monitoring configuration management - from dev to prod

*

*say hello

*monitoring design considerations

*monitoring configuration management

*the problem

*two approaches to solve the problem

*1:n approach

*n:m approach

*a quick n:m approach howto

*summary: 1:n versus n:m

Page 3: monitoring configuration management - from dev to prod

*

*physicist

*2008 - 2013: linux consultant

*2014 : operations engineer at EPost-

Development GmbH

*linux infrastructure, identity management,

configuration management, monitoring...

Page 4: monitoring configuration management - from dev to prod

*

Page 5: monitoring configuration management - from dev to prod

*

*requirement analysis

*technical requirements

* revision controlled configurations

* rollback

* automization

*organizational requirements

* feasable workflow

* keep it simple stupid (KISS)

Page 6: monitoring configuration management - from dev to prod

*

*infrastructural requirements

*design your staging

* complete?

* identical?

Page 7: monitoring configuration management - from dev to prod

*

*time & material & risk

*cost of a false alarm

*cost of a grumpy admin

Page 8: monitoring configuration management - from dev to prod

devmonitor

tstmonitor

prdmonitor

*

separate your stages!

Page 9: monitoring configuration management - from dev to prod

*

what to configure?

Page 10: monitoring configuration management - from dev to prod

*

*hosts

*add host to monitoring

master

*services

*add service to

monitoring master

*deploy check/plugin

on node

Page 11: monitoring configuration management - from dev to prod

dev-mastertst-

masterprd-

master

dev-nodetst-

nodeprd-node

*

Page 12: monitoring configuration management - from dev to prod

*

*all stages are identical

*all stages are complete

*one monitoring master/stage

*call it 1:n approach

*1 master

*n nodes

CODE YOUR CONFIG

CLONE YOUR CONFIG

Page 13: monitoring configuration management - from dev to prod

*

*stages aren‘t identical

*stages are incomplete

*stages are only implemented via different

monitoring masters

*call it n:m approach

*n master

*m nodes

Page 14: monitoring configuration management - from dev to prod

*

dev-master

dev-node 1

dev-node 2

tst-master

tst-node 1

tst-node 2

prd-master

prd-node 1

prd-node 2

nodes

dev-master

tst-master

prd-master

Page 15: monitoring configuration management - from dev to prod

*

*no staging related false alarms

*checks can‘t go amok in production

*configuration is tested properly in prd

*we‘ve talked about this...

*puppet & icinga, exported resources

monitoring configuration is completely described bypuppet

Page 16: monitoring configuration management - from dev to prod

*

*stages are only reflected in monitoring masters

*non-prod doesn‘t alarm

*agent configuration is done via

puppet/package/however

*master configuration is done natively

*KISS

CLONE YOUR CONFIG!

Page 17: monitoring configuration management - from dev to prod

*a quick howto

Page 18: monitoring configuration management - from dev to prod

*

1. transfer prd stage to dev stage (files...)

2. edit configuration files/generate files (check_MK!)

3. sync files to VCS repository

* add/remove/modify

4. merge/copy dev-repo to prd-repo

* svn copy/svn merge/git branching

5. sync prd-repo to prd-filesystem

* again: add/remove/modify

workflow is done on dev-master

Page 19: monitoring configuration management - from dev to prod

*

Page 20: monitoring configuration management - from dev to prod

*

*local operations (on dev-master)

*checkout VCS

*checkin VCS

* remote operations (on prd-master)

*checkout VCS

*VCS operations

*transfer repositories (svn merge/git merge/...)

*operations are wrapped

*directly called for local operations

*puppet exec resources for remote operations

Page 21: monitoring configuration management - from dev to prod

*

*checkout VCS

*from which repository?

* use a fact „stage“!

* a monitoring master can only checkout/sync its own stage

repository

*transfer repositories

*from where to where? the workflow knows...

*puppet runs on remote hosts are triggered by

mCollective

*addressing is done via „stage“ fact

Page 22: monitoring configuration management - from dev to prod

*

*remote execution framework

*a simple ssh loop won‘t do it...

*message subscribe architecture

*parallel job execution

*a job => mCollective plugin

*ping, service, puppet, your own plugin

*watch out

*mco agent = subscriber

*mco client = message sender

Page 23: monitoring configuration management - from dev to prod
Page 24: monitoring configuration management - from dev to prod

*

*each directory is a repository

*??? => monitoring configuration is spread over the

filesystem

*ask cmk --paths

*the assignment dir to repo is configured in

„locations.cfg“

*configuration directories are working copies

Page 25: monitoring configuration management - from dev to prod

*

file{‘/etc/mon/locations.cfg‘:

ensure => present,

source => puppet:///...,

notify => Exec[‘mon_checkout‘]

}

exec{‘mon_checkout‘:

command => ‘/usr/local/bin/mon checkout‘,

notify => Service[‘nagios‘],

}

service{‘nagios‘:

ensure => running,

}

Page 26: monitoring configuration management - from dev to prod

*

*dirty little secrets

*only complete directories

*puppet run feedback?

*file permissions

*distributed/simultaneous work

Page 27: monitoring configuration management - from dev to prod

*1:n versus n:m – the battle...

Page 28: monitoring configuration management - from dev to prod

1:n n:m

separation complete separation partial separation

transfer

dev2prd

via release management

tools

on request

puppetization

level required

high low

risk low ...a bit more

complexity

(KISS)

high low

configuration via puppet natively

Page 29: monitoring configuration management - from dev to prod

*

*risk versus implementation effort

risk

implementation effort

1:n

n:m

Page 30: monitoring configuration management - from dev to prod

*

mailto:[email protected]

http://slideshare.net/christophoelmuller/