Upload
lucas-arruda
View
367
Download
3
Tags:
Embed Size (px)
DESCRIPTION
Já pensou que sua stack consome recursos de sua máquina em momentos que você não está desenvolvendo? E o setup de ambiente que precisamos fazer a cada projeto/pessoa nova? Como garantir que todos estão usando as mesmas versões para garantir compatibilidade entre os ambientes? Venha conhecer a combinação entre duas tecnologias que irá automatizar processos manuais tornando-o mais produtivo!
Citation preview
Lucas [email protected]
@lunascarruda
Virtualize yourdev. environmentand be productive!
Lucas [email protected]
Lucas Arruda
Software Architect @ CI&T
Open-Source enthusiast
~10 yrs on the road
Based on Campinas-SP
Zend Certified Engineer PHP 5.3
Drupaler for 4 yrs
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.
ChangeProposal
Create and configure lightweight, reproducible and portable development environments.
Vagrant up!
Boxes
Virtualization
Vagrantfile
$ vagrant up
$ vagrant init
$ vagrant suspend
LET'S PUTSOME
HANDSON!
How Vagrant works
Plug-ins
Bindler
Cachier
Host Manager
AWS / OpenStack / RackSpace
CopyMyConf
Nugrant
Rsync
Windows
Node / NodeMaster / Shell Commander
VBGuest
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
}
How Puppet works
Puppet's Reusable Configuration Model
ciandt.com
PuPHPet
CAN'T WAITTO PUT
MY HANDSON IT!
Alternatives
rove.io
$ dpkg --get-selections > /backup/installed-software.log
# dpkg --set-selections < /backup/installed-software.log && dselect
$ rpm -qa > /backup/installed-software.log
# yum -y install $(cat /backup/installed-software.log)
Debian-based distributions:
RPM-based distributions:
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
@lunascarruda
google.com/+LucasArruda
fb.com/lucasnarruda
linkedin.com/in/larruda
github.com/larruda
coderbits.com/larruda