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

Bootstrap Your Project!

Bootstrap Your Project!

Thorsten Rinne

June 03, 2013

More Decks by Thorsten Rinne

Other Decks in Technology


  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