57
Infrastructure as Code In real life Mantas Klasavičius

Infrastructure as Code @BuildStuff2013

Embed Size (px)

DESCRIPTION

Infrastructure as Code @BuildStuff2013

Citation preview

Page 1: Infrastructure as Code @BuildStuff2013

Infrastructure as Code In real life

Mantas Klasavičius

Page 2: Infrastructure as Code @BuildStuff2013

Adform Digital Advertising Solution

>270 employees

Offices in 12 countries

Page 3: Infrastructure as Code @BuildStuff2013

About me

Page 4: Infrastructure as Code @BuildStuff2013

Developing has changed

Before Now

Page 5: Infrastructure as Code @BuildStuff2013

Developing has changed

Before Now

Page 6: Infrastructure as Code @BuildStuff2013

Deployment

Page 7: Infrastructure as Code @BuildStuff2013

No manual configuration

Page 8: Infrastructure as Code @BuildStuff2013

Configuration Management

Page 9: Infrastructure as Code @BuildStuff2013

Puppet in Adform Why Code?

Page 10: Infrastructure as Code @BuildStuff2013

Puppet in Adform Treat it as code •  Version control •  Branching, Code review

•  Reusability •  Standards, Style guide

•  Profiling

•  Testing

Page 11: Infrastructure as Code @BuildStuff2013

Puppet in Adform Dream

•  Predictable/consistent infrastructure

•  Repeatable and environment friendly

•  Reusable •  Automated

Page 12: Infrastructure as Code @BuildStuff2013

Tool

Page 13: Infrastructure as Code @BuildStuff2013

DevOps

Page 14: Infrastructure as Code @BuildStuff2013

OPS attempt

Page 15: Infrastructure as Code @BuildStuff2013

OPS attempt

Page 16: Infrastructure as Code @BuildStuff2013

OPS result

Page 17: Infrastructure as Code @BuildStuff2013

Culture

An Agile Adoption and Transformation Survival Guide Author: Michael Sahota URL: http://agilitrix.com/agile-adoption-transformation-resource/

Page 18: Infrastructure as Code @BuildStuff2013

In my team

Page 19: Infrastructure as Code @BuildStuff2013

Architecture

Page 20: Infrastructure as Code @BuildStuff2013

Architecture

Page 21: Infrastructure as Code @BuildStuff2013

Environments

Page 22: Infrastructure as Code @BuildStuff2013

Environments

Git Branch == Puppet Environment

Create new Branch == Create new Puppet Environment

Page 23: Infrastructure as Code @BuildStuff2013

Workflow

Page 24: Infrastructure as Code @BuildStuff2013

Code

Page 25: Infrastructure as Code @BuildStuff2013

Puppet(nodes)

Page 26: Infrastructure as Code @BuildStuff2013

Puppet(node)

Page 27: Infrastructure as Code @BuildStuff2013

Puppet(variables)

Page 28: Infrastructure as Code @BuildStuff2013

Storage

Page 29: Infrastructure as Code @BuildStuff2013

Hiera

Page 30: Infrastructure as Code @BuildStuff2013

Hiera

Page 31: Infrastructure as Code @BuildStuff2013

Hiera

Page 32: Infrastructure as Code @BuildStuff2013

Hiera + Puppet

Page 33: Infrastructure as Code @BuildStuff2013

Hiera (GPG back end)

http://www.craigdunn.org/2011/10/secret-variables-in-puppet-with-hiera-and-gpg/

Author: Craig Dunn Web: http://www.craigdunn.org

Page 34: Infrastructure as Code @BuildStuff2013

PuppetDB

Page 35: Infrastructure as Code @BuildStuff2013

Hiera + PuppetDB

Author: Erik Dalén Web: http://www.craigdunn.org https://github.com/dalen/puppet-puppetdbquery

Page 36: Infrastructure as Code @BuildStuff2013

What About Profiling?

Page 37: Infrastructure as Code @BuildStuff2013

Profiling

Author: Tim Sharpe https://github.com/rodjek/puppet-profiler

Page 38: Infrastructure as Code @BuildStuff2013

And Testing?

Page 39: Infrastructure as Code @BuildStuff2013

Puppet-lint

Author: Tim Sharpe https://github.com/rodjek/puppet-lint

Page 40: Infrastructure as Code @BuildStuff2013

rspec-puppet

Author: Tim Sharpe https://github.com/rodjek/rspec-puppet

To Do…

Page 41: Infrastructure as Code @BuildStuff2013

Puppet on Windows?

Page 42: Infrastructure as Code @BuildStuff2013

Puppet on Windows

DISM Puppet Module: https://github.com/puppetlabs/puppetlabs-dism

Page 43: Infrastructure as Code @BuildStuff2013

Puppet on Windows

Author: Josh Cooper https://github.com/joshcooper/puppetlabs-powershell

Page 44: Infrastructure as Code @BuildStuff2013

Puppet on Windows

Page 45: Infrastructure as Code @BuildStuff2013

And the results are

Page 46: Infrastructure as Code @BuildStuff2013
Page 47: Infrastructure as Code @BuildStuff2013

Any Problems?

Page 48: Infrastructure as Code @BuildStuff2013

Time issue

Why use puppet(time issue): •  “Pub by 5 (past 4 preferably)”

•  “Save time”

•  …

Page 49: Infrastructure as Code @BuildStuff2013

Roles issues

Page 50: Infrastructure as Code @BuildStuff2013

Future Plans

Page 51: Infrastructure as Code @BuildStuff2013

The Foreman

Page 52: Infrastructure as Code @BuildStuff2013

Monitoring Nagios/Icinga

Page 53: Infrastructure as Code @BuildStuff2013

Monitoring Nagios/Icinga

Page 54: Infrastructure as Code @BuildStuff2013

Metrics(as logs)

Page 55: Infrastructure as Code @BuildStuff2013

Metrics(graphite)

Page 56: Infrastructure as Code @BuildStuff2013

Finalize…

Page 57: Infrastructure as Code @BuildStuff2013

Thank you!