Publicidad

Webkonf 2013

Chief Architect at GhostMonitor en GhostMonitor
30 de Dec de 2015
Publicidad

Más contenido relacionado

Publicidad

Webkonf 2013

  1. Fejlesztés, tesztelés élesben Papp Dávid … fájdalom mentesen
  2. A következőkről fogok beszélni • Vagrant – Egységes fejlesztési környezet • Jenkins – Automatizált teszt • Capistrano – Élesítés
  3. Miért fáj ha… • … nincs egységes fejlesztői környezet • ( nálam még működött ) • … nincsenek automatizált tesztek • ( a fejlesztő/tesztelő azt mondta mehet… ) • … nincs deployer • ( tuti minden szerverre ki ment a kód? )
  4. Mit tud nyújtani nekünk aVagrant? • Egységes fejlesztői környezetet biztosít • Központilag konfigurálható ( Puppet, Chef ) • Könnyen telepíthető és hordozható • VirtualBox ésVMware támogatás
  5. ..és még (mit adtak nekünk a rómaiak) ? • Decentralizált • Jobb erőforrás kihasználás • A fejlesztő saját sandboxot kap • Cloud friendly
  6. Miért pontVagrant? • Open Source • Pluginekkel könnyen bővíthető • Egyszerű kezelhetőség • VirtualBoxot használ
  7. Negatívumok • Bevezetése erőforrás-igényes lehet • Nem tudunk esetlegesen az élessel megegyező infrastruktúrát építeni • Üzemeltetők részéről Puppet,Chef tudás szükséges lehet • I/O igényes műveleteknél lassú • Csak linuxot támogat
  8. Példa konfig Vagrant.configure("2") do |config| config.vm.hostname = "webconf2013.iamhere.local" config.vm.box = "precise64" config.vm.box_url = "http://files.vagrantup.com/precise64.box" config.vm.network :private_network, ip: "10.1.1.58" config.vm.network :forwarded_port, guest: 80, host: 8080 config.vm.network :forwarded_port, guest: 443, host: 8443
  9. Példa konfig config.vm.provision :puppet do |puppet| puppet.manifests_path = "puppet/manifests" puppet.manifest_file = "base.pp" end config.vm.provider :virtualbox do |vb| vb.gui = false vb.customize ["modifyvm", :id, "--memory", "512"] end end
  10. Demo
  11. Miért jó az automatizált teszt? • Nem kell ott ülni amíg fut a teszt • Hatékonyabbá teszi a tesztelők munkáját • Automatikus teljesítmény, kódminőség figyelés és figyelmeztetés
  12. Miért pont a Jenkins? • Ingyenes és open source • Egyszerű kezelhetőség • Egyszerű bővíthetőség • Nagy community 600+ plugin érhető el
  13. PMD & Duplicate Code
  14. Code Coverage
  15. Test ResultTrend
  16. Negatívumok • Kézzel kell írni a build.xml-t • Sok feladat esetén memória igényes • Nem clusterhezhető • Nehezen upgradelhető ( a pluginek miatt )
  17. Példa <target name="lint" description="Perform syntax check of sourcecode files"> <apply executable="php" failonerror="true"> <arg value="-l" /> <fileset dir="${sourcedir}"> <include name="**/*.php" /> <modified /> </fileset> <fileset dir="${basedir}/src/"> <include name="**/*Test.php" /> <modified /> </fileset> </apply> </target> </target>
  18. Miért használjunk deployert? • Multi staging • Multi node type • Emberi hiba faktor kiszűrése • Minden szerveren a megfelelő kódbázis legyen kint • Rollback képesség
  19. Mi a capistrano előnye? • Könnyen bővíthető • Open Source • Rengetek plugin elérhető ( pl. teljes symfony támogatás ) • Bevezetése egyszerű nem igényel nagyobb infrastrukturális beállítást • Eszközt és módszert add a kezünkbe
  20. Mi a hátránya a Capistranonak? • Kezdetleges cloud és cdn támogatás – … de azt inkább írni kell • Bővítéséhez ruby tudás szükséges
  21. Példa set :application, "webconf" set :deploy_to, "/var/www/webconf" set :repository, "https://github.com/WordPress/WordPress.git" set :scm, :git set :branch, 'master' set :keep_releases, 3 set :use_sudo, false set :update_vendors, false set :deploy_via, :copy role :web, "10.1.1.58" set :user, "www-data" set :copy_exclude, [".git", ".DS_Store", ".gitignore", ".gitmodules","nbproject"] logger.level = Logger::MAX_LEVEL
  22. Kérdések?
  23. Köszönöm szépen a figyelmet!

Notas del editor

  1. Teszt » Ő egy másik verziót tesztelt
  2. Decentiralizált - Nem kell központi szervert biztosítani
Publicidad