Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Bootstrap Your Project!

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

Bootstrap Your Project!

Avatar for Thorsten Rinne

Thorsten Rinne

June 03, 2013
Tweet

More Decks by Thorsten Rinne

Other Decks in Technology

Transcript

  1. THORSTEN RINNE ‣ Diplom-Informatiker (FH) ‣ Senior Developer ‣ Scrum

    Master ‣ Yatego GmbH ‣ Open Source: phpMyFAQ ‣ @ThorstenRinne
  2. $ vagrant box add base http://files.vagrantup.com/lucid32.box [vagrant] Downloading with Vagrant::Downloaders::HTTP...

    [vagrant] Downloading box: http://files.vagrantup.com/lucid32.box [vagrant] Extracting box... [vagrant] Verifying box... [vagrant] Cleaning up downloaded box... $ Vagrant
  3. $ vagrant init A `Vagrantfile` has been placed in this

    directory. You are now ready to `vagrant up` your first virtual environment! Please read the comments in the Vagrantfile as well as documentation on `vagrantup.com` for more information on using Vagrant. $
  4. $ vagrant up [default] Importing base box 'base'... [default] Matching

    MAC address for NAT networking... [default] Clearing any previously set forwarded ports... [default] Forwarding ports... [default] -- 22 => 2222 (adapter 1) [default] Creating shared folders metadata... [default] Clearing any previously set network interfaces... [default] Booting VM... [default] Waiting for VM to boot. This can take a few minutes. [default] VM booted and ready for use! [default] Mounting shared folders... [default] -- v-root: /vagrant $ And done! :-)
  5. sysadmin tasks are often repetive new users deploying hosts managing

    applications configuring daemons monitoring hosts Why Puppet?
  6. What we´re trying... automate different tasks with scripts but it‘s

    getting complex poorly documented customized for each environment rarely scale to large platforms
  7. class nginx::package { anchor { 'nginx::package::begin': } anchor { 'nginx::package::end':

    } case $::operatingsystem { debian,ubuntu: { class { 'nginx::package::debian': require => Anchor['nginx::package::begin'], before => Anchor['nginx::package::end'], } } opensuse,suse: { class { 'nginx::package::suse': require => Anchor['nginx::package::begin'], before => Anchor['nginx::package::end'], } } } }
  8. Why Git? it‘s fast because everyone has the whole history

    supports non linear development no single point of failure like SVN distributed development (office / train / beach) efficient handling of large projects
  9. $ composer update Loading composer repositories with package information Updating

    dependencies (including require-dev) Nothing to install or update Writing lock file Generating autoload files
  10. Bower $ bower install jquery bower cloning git://github.com/components/jquery.git bower caching

    git://github.com/components/jquery.git bower fetching jquery bower checking out jquery#2.0.1 bower copying /Users/thorsten/.bower/cache/jquery/ 29cb4373d29144ca260ac7c3997f4381 bower installing jquery#2.0.1
  11. XP

  12. XP feedback loops Release Plan Iteration Plan Acceptence Test Daily

    Standup Pair Negotiation Unit Test Pair Programming Code months weeks days day hours minutes seconds