Programowanie w Ruby Wykład 14 Marcin Młotkowski 23 stycznia 2015
Konfiguracja produkcyjnych wersji Plan wykładu 1 Konfiguracja produkcyjnych wersji 2 Marcin Młotkowski Programowanie w Ruby 2 / 21
WEBrick Konfiguracja produkcyjnych wersji szybki; małe wymagania; jednowątkowy Marcin Młotkowski Programowanie w Ruby 3 / 21
Konfiguracja produkcyjnych wersji Popularne serwery Apache Lighthttpd Marcin Młotkowski Programowanie w Ruby 4 / 21
Konfiguracja produkcyjnych wersji Wielowątkowe aplikacje Ruby Ruby process Apache Lighthttpd Ruby process Ruby process Marcin Młotkowski Programowanie w Ruby 5 / 21
Konfiguracja produkcyjnych wersji Opis architektury Jest kilka procesów obsługujących Ruby Frontowy serwer WWW przekazuje żądania do procesów Ruby Frontowy serwer obsługuje cache, load-balancing i inne Uruchamianie procesów Ruby FastCGI Proxy HTTP Marcin Młotkowski Programowanie w Ruby 6 / 21
Konfiguracja produkcyjnych wersji Inna architektura Mongrel Serwer WWW Obsługuje tylko jedno żądanie http w danym czasie Obsługuje produkcyjną bazę danych Można go uruchamiać w klastrach Marcin Młotkowski Programowanie w Ruby 7 / 21
Konfiguracja produkcyjnych wersji Uruchomienie klastra Mongrela mongrel_rails cluster::configure -e production -p 8000 -a 127.0.0.1 -N 2 -c /<ścieżka> Opis parametrów -a 127.0.0.1 lokalne nasłuchiwanie -p 8000 nasłuch na portach od 8000 w górę -N 2 dwie instancje serwera Marcin Młotkowski Programowanie w Ruby 8 / 21
Konfiguracja produkcyjnych wersji Obsługa klastra $ mongrel cluster ctl start $ mongrel cluster ctl status $ mongrel cluster ctl stop Marcin Młotkowski Programowanie w Ruby 9 / 21
Konfiguracja produkcyjnych wersji Współpraca Mongrela z Apache Konfiguracja <Proxy balancer://mongrel_cluster> BalancerMember http://127.0.0.1:8000 BalancerMember http://127.0.0.1:8001 </Proxy> Marcin Młotkowski Programowanie w Ruby 10 / 21
Konfiguracja produkcyjnych wersji Zarządzanie Dzienniki zdarzeń Mongrel zapisuje logi w katalogu /<ścieżka>/log/ Podglądanie istniejącej aplikacji: $ ruby script/console production irb(mian) p = Wyklad.find by title( Ruby ) irb(main) p.etcs = 12 irb(main) p.save Marcin Młotkowski Programowanie w Ruby 11 / 21
Konfiguracja produkcyjnych wersji Powiadamianie o zdarzeniach Powiadamianie emailem: Instalacja wtyczki: $ ruby script/plugin install exception notification Konfiguracja kontrolera głównego: class ApplicatonController < ActionController include ExceptionNotifiable Konfiguracja pliku z adresami: environment.yml Marcin Młotkowski Programowanie w Ruby 12 / 21
Plan wykładu Konfiguracja produkcyjnych wersji 1 Konfiguracja produkcyjnych wersji 2 Marcin Młotkowski Programowanie w Ruby 13 / 21
RubyGems Konfiguracja produkcyjnych wersji Menadżer pakietów w Ruby on Rails. Marcin Młotkowski Programowanie w Ruby 14 / 21
Gems Konfiguracja produkcyjnych wersji Gemy: pakiety rozszerzające możliwości standardowej instalacji RoR Marcin Młotkowski Programowanie w Ruby 15 / 21
Gdzie są gemy Konfiguracja produkcyjnych wersji Wszędzie, np. http://rubygems.org Marcin Młotkowski Programowanie w Ruby 16 / 21
Gdzie są gemy Konfiguracja produkcyjnych wersji Wszędzie, np. http://rubygems.org Ale nie musimy nic wiedzieć o tym portalu. Marcin Młotkowski Programowanie w Ruby 16 / 21
Konfiguracja produkcyjnych wersji Polecenia instalacji gemów $ gem list --remote Dostaniemy ok 94 tys. wyników $ gem install devise Wymaga uprawnień administratora Marcin Młotkowski Programowanie w Ruby 17 / 21
Uwierzytelnienie Konfiguracja produkcyjnych wersji Devise CanCan Authlogic OmniAuth Marcin Młotkowski Programowanie w Ruby 18 / 21
Testowanie Konfiguracja produkcyjnych wersji RSpec Capybara Marcin Młotkowski Programowanie w Ruby 19 / 21
Inne Konfiguracja produkcyjnych wersji Nokogiri Parser HTML, XML, SAX, XPath, CSS3. Marcin Młotkowski Programowanie w Ruby 20 / 21
Capistrano Konfiguracja produkcyjnych wersji Środowisko do zlecania zadań na innych maszynach poprzez ssh. Marcin Młotkowski Programowanie w Ruby 21 / 21