Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

Continous Integration and Deployment

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Próximo SlideShare
Alumni Release Process
Alumni Release Process
Cargando en…3
×

Eche un vistazo a continuación

1 de 27 Anuncio
Anuncio

Más Contenido Relacionado

Similares a Continous Integration and Deployment (20)

Anuncio

Continous Integration and Deployment

  1. 1. Arkon Zrt. Nagy Károly
  2. 2.  2 rendszer  3 környezet  14 alkalmazásszerver  16 alkamazás  35 svn repository
  3. 3. •Honnan indultunk? Régmúlt •Koncepció •Folyamatok Múlt •Problémák •Alapelvek •Megoldások Jelen •Eredmények •Meddig jutottunk? •Hova tovább? Konklúzió
  4. 4. •Honnan indultunk? Régmúlt •Koncepció •Folyamatok Múlt •Problémák •Alapelvek •Megoldások Jelen •Eredmények •Meddig jutottunk? •Hova tovább? Konklúzió
  5. 5. Két fázis: 1. Teszt 2. Live • Projektenkénti jogosultságok kezelése • Naplózás • Deploy után serverchecker
  6. 6.  Inkonzisztens kód a webszervereken  Konkurenciakezelés nem megoldott  Nincs kód-minőségellenőrzés és trending  Rsync alatt is ment rá forgalom  Központi config nehézkes  Push a pull helyett  Nem atomi műveletek  Nehéz és lassú rollback
  7. 7. •Honnan indultunk? Régmúlt •Koncepció •Folyamatok Múlt •Problémák •Alapelvek •Megoldások Jelen •Eredmények •Meddig jutottunk? •Hova tovább? Konklúzió
  8. 8.  A legfontosabb műveletek legyenek atomi műveletek  Legyen staging környezet  Egyszerű és gyors rollback  Code Quality ellenőrzésére legyen lehetőség  Konkurenciakezelés  Pull működés
  9. 9. 1. Jenkins build indítása 2. SVN update és Ant script futtatása 1. SVN externals update 2. Clean 3. Symfony cc 4. Lintest 5. PHP Depend, PHP MD, PHP CS, PHP Loc 6. PHPUnit 7. Package 3. Deploy to staging 4. Release teszt 5. Share
  10. 10.  Deploy (build)  Staging gépre update-eli a kódot  SVN-es kódon ANT build és Code Quality  Ant által készített csomagot deployolja a staging gépre  Central configból módosítja a kódot  Scripteket futtat  Distribute (share)  Prescript futtatása  Csomagot kirakja az éles szerverekre  Billentés  Postscript futtatása
  11. 11.  Minden esetben komplett csomag kerül kihelyezésre a szerverekre  Atomi művelettel váltás régi és új kód között  Előnyök ◦ Folyamatosan felügyelhető config paraméterek ◦ „Tiszta” kód ◦ Integritás megőrzése ◦ Egyszerű rollback
  12. 12.  A rollback művelet egy könyvtárváltással végrehajtható  Csomagokat váltunk, nem revisiont
  13. 13.  Jenkins ◦ Ant build ◦ Syntax check ◦ PHP MD ◦ PHP Unit ◦ Code Coverage ◦ PHP Loc ◦ Checkstyle  Project-Matrix authorizáció ◦ Nagyon finom felbontásig hangolható
  14. 14.  Inf.arkon.hu ◦ Share queue
  15. 15.  Inf.arkon.hu ◦ Python (Django) ◦ Deployment és monitoring ◦ A share funkciót valósítja meg ◦ Queueban tárolt job-ok percenként indulnak el, ha nincsen konkurens share folyamat ◦ Site-onkénti jogosultság ◦ LDAP authentikáció
  16. 16.  Csomagtovábbítás ◦ A csomagokat az ANT script állítja elő tar.gz formában ◦ A deploy kicsomagolja és alkalmazza rajta a felülírásokat ( central config stb.) ◦ Kész csomag továbbítódik a szerverekre ◦ Pre- és postscriptek biztosítják a további testre szabhatóságot  Pl.: check.txt törlése, php-fpm restart stb.
  17. 17.  PHP-FPM APC alatt „beragadt” inode-ok ◦ Prescripttel leállítjuk a php-fpm-et ◦ Postscripttel indítjuk újra  TMPfs az átnevezett könyvtárban zárolva tartotta az inode-ot.  Időzítés precíz hangolása szükséges a Haproxy miatt (eszközleterhelés vs tartalomkihelyezés)  SVN externals nem frissült  Időszinkron Jenkinsben
  18. 18.  Ingatlan.com ◦ Több build folyamat során elkapott hiba ◦ Stabilabb deploy folyamat ◦ Kifinomultabb ellenőrzés, így megelőzhető vagy előbb észlelhető hibák ◦ Tesztesetek
  19. 19.  Koponyeg.hu ◦ PHP depend piramis ◦ PMD hibák trendje ◦ Unstable-ből stable ◦ PHP package-ek használata ◦ Kódolási szemlélet váltás
  20. 20. •Honnan indultunk? Régmúlt •Koncepció •Folyamatok Múlt •Problémák •Alapelvek •Megoldások Jelen •Eredmények •Meddig jutottunk? •Hova tovább? Konklúzió
  21. 21.  Inkonzisztens kód a webszervereken   Konkurenciakezelés nem megoldott   Nincs kód minőségellenőrzés és trending   Rsync alatt is ment rá forgalom   Központi config nehézkes   Push a pull helyett   Nem atomi műveletek   Nehéz és lassú rollback 
  22. 22.  Integritásvédelem ◦ Check.txt-be verziószám  Release management a CI helyett  DB változások kezelése  Funkcionális tesztek futtatása Jenkins build- ből (symfony)
  23. 23. Arkon Zrt. Nagy Károly

×