QCon SP - ShortTalk - Virtualização e Provisionamento de Ambientes com Vagrant e Puppet

Post on 14-Jan-2015

232 views 2 download

Tags:

description

Você já parou pra pensar que sua stack de desenvolvimento (Apache, PHP, MySQL, etc) consome recursos de sua máquina do trabalho ou pessoal em momentos que você não está desenvolvendo? E quanto ao setup de ambiente e as muitas configurações que precisamos fazer a cada projeto novo que chega ou quando algum membro novo entra no time? Logo depois, como garantir que todos do time estão utilizando exatamente as mesmas versões para garantir máxima compatibilidade entre os diversos ambientes (local, staging, produção, etc)? Venha conhecer como a combinação entre duas tecnologias irá automatizar bastante processo manual economizando tempo e recursos e garantindo maior compatibilidade.

Transcript of QCon SP - ShortTalk - Virtualização e Provisionamento de Ambientes com Vagrant e Puppet

Lucas Arrudalucas@ciandt.com

@lunascarruda

Virtualization and Provisioning with Vagrant and Puppet

Lucas Arrudalucas@ciandt.com

Lucas Arruda

DevOps @ CI&T

Open-Source enthusiast

~10 yrs on the road

Based on Campinas-SP

Zend Certified Engineer PHP 5.3

Drupal architect

Common Scenario

Each developer has its own favorite/predefined stack of technologies.

● OSX/Linux/Windows

● Distros/Versions

● Apache/Nginx

● WAMP/XAMPP/MAMP

● PHP 5.??/Rails/Node.js

● MySQL/MariaDB/SQLite

● Modules/Extensions

● Libraries & Dependencies

● PEAR/PECL/Composer

● Memcache/Varnish

"If you've ever maintained a large application, one of the hardest parts is onboarding new resources."

"Running everything on a home machine and remembering to turn it all off in the end of the day is unfeasible."

"Develop on OSX and deploy on Ubuntu and you’ll be surprised with ugly encoding issues."

● version differences

● platform-related issues

● config and tweaking

● time consuming op.

● home station messed up

BUT IT WORKS ON MY

MACHINE...

It's important to build and maintain a software using the same requirements on all environments it will be deployed.

Forcing developers to use the same OS is going to lead to problems, reduced productivity and promoting nerd-fighting.

ChangeSuggestion

Create and configure lightweight, reproducible and portable development environments.

Vagrant up!

Boxes

Virtualization

Vagrantfile

$ vagrant up

$ vagrant init

$ vagrant suspend

Provisioning

You can easily automate repetitive tasks, quickly deploy critical applications, and proactively manage changes.

Puppet

Declarative Language

Modular

Reusable

Puppet

package { “ruby”:ensure => latest

}

Not Puppet

# yum install ruby

# apt-get install ruby

# ports install ruby

# emerge ruby

# rpm -Uvh ruby-1.x.rpm

# gem install ruby

# up2date ruby

# fink install ruby

# pkg_add ruby

# pkg-get ruby

# rug install ruby

# pkgadd ruby

service { “apache”:ensure => running

}

Q&Aciandt.com

puppetlabs.com

github.com/puppetlabs

forge.puppetlabs.com

docs.puppetlabs.com

vagrantup.com

github.com/mitchellh/vagrant

vagrantbox.es

docs.vagrantup.com

THANKS FOR

BEINGHERE!

ciandt.com

lunascar@gmail.com

@lunascarruda

google.com/+LucasArruda

fb.com/lucasnarruda

linkedin.com/in/larruda

github.com/larruda

coderbits.com/larruda