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

[PL] Ruby Apps Deployment

mrzasa
March 01, 2016

[PL] Ruby Apps Deployment

Slides for presentation about good and bad practices during deployment of Ruby applications (in Polish). For Ruby Talks at PGS Software.

mrzasa

March 01, 2016
Tweet

More Decks by mrzasa

Other Decks in Programming

Transcript

  1. RUBY DEPLOYMENT HOW NOT TO SHOOT IN YOUR FOOT WHEN

    DEPLOYING RUBY APPS Maciej Rząsa
  2. KONFIGURACJA ENV zmienne środowskowe narzędzia, np Figaro kofiguracja nie commitowana

    > tylko 3 enviroments w Railsach (dev/test/prod), reszta za pomocą ENV + przykładowy plik w projekcie + walidacja
  3. ZEWNĘTRZNE ZASOBY Dobrze # r u b y r e

    d i s _ u r l = E N V [ ' R E D I S _ U R L ' ] # c o n f i g R E D I S _ U R L = ' r e d i s : / / r e d i s . h o s t : 3 4 5 6 / 0 ' Hmmmmm... # r u b y r e d i s _ u r l = " r e d i s : / / r e d i s . h o s t : 3 4 5 6 / # { E N V [ ' R E D I S _ N U M ' ] } " # c o n f i g R E D I S _ N U M = ' 0 '
  4. DATABASE.YML poza repozytorium, database.yml.example w repo > database.yml w repozytorium:

    p r o d u c t i o n : a d a p t e r : p o s t g r e s q l h o s t : < % = E N V [ ' D A T A B A S E _ H O S T ' ] % > e n c o d i n g : u n i c o d e d a t a b a s e : < % = E N V [ ' D A T A B A S E _ N A M E ' ] % > u s e r n a m e : < % = E N V [ ' D A T A B A S E _ U S E R ' ] % > p a s s w o r d : < % = E N V [ ' D A T A B A S E _ P A S S W O R D ' ] % > albo: p r o d u c t i o n : u r l : < % = E N V [ ' D A T A B A S E _ U R L ' ] % >
  5. JESZCZE TYLKO RĘCZNIE USTAWIĘ TĄ ZMIENNĄ... i może przejdą testy

    w jenkinsie a może zadziała na stagingu może nawet produkcja się nie wysypie ;-)
  6. PROCESY RESTART BEZ DEPLOYU zwłaszcza background: sidekiq, rpush, itp ważne

    przy ustawianiu konfiguracji pomocne przy debugowaniu narzędzia: serwisy systemowe (upstart, / e t c / i n i t . d ) odradzam: gem capistrano-sidekiq
  7. ODPORNE NA RESTART SERWERA cała aplikacja włacza się sama po

    restarcie chyba, że chcecie być budzeni telefonem o 5 rano w niedzielę ;-)
  8. LOGI ROTOWANIE LOGÓW oszczędność miejsca ułatwiony dostęp konieczne wymaganie! narzędzia:

    logrotate / h o m e / d e p l o y / A P P N A M E / c u r r e n t / l o g / * . l o g { d a i l y m i s s i n g o k r o t a t e 7 c o m p r e s s d e l a y c o m p r e s s n o t i f e m p t y c o p y t r u n c a t e }
  9. LOKALIZACJA + / v a r / l o g

    / A P P N A M E / + osobna partycja na logi + wszystkie logi w jednym miejscu