Kategorie: Ruby on Rails, Go, Perl, Ruby, Erlang, inne języki programowania
Ruby został stworzony przez Yukihiro Matsumoto (Matz) i po raz pierwszy opublikowany w 1995 roku. Jest to nowoczesny, interpretowany język programowania dostępny na wiele platform. Jest w pełni obiektowym językiem, który zaczerpnął wiele swoich właściwości z języka Smalltalk. Ruby on Rails jest zaawansowanym środowiskiem (frameworkiem) pozwalającym na szybkie i bezstresowe tworzenie efektownych i zaawansowanych serwisów / aplikacji internetowych (stron WWW).
Podczas intensywnego, dwudniowego kursu uczestnicy poznają wady i zalety różnych metod konfiguracji i utrzymywania środowiska produkcyjnego aplikacji Ruby on Rails. Omówione zostaną metody szybkiego wdrażania nowych wersji aplikacji, optymalizacji środowiska pod kątem wydajności, diagnozowania błędów i unikania awarii. Przedstawione zostaną również aspekty związane z bezpieczeństwem aplikacji w Ruby on Rails (i aplikacji WWW ogólnie).
Kurs przeznaczony jest zarówno dla administratorów systemów, którzy chcieliby poznać aspekty zarządzania aplikacjami Ruby on Rails, jak i dla programistów, którzy planują samodzielnie zająć się administracją i utrzymaniem swoich aplikacji w środowisku produkcyjnym.
Czas trwania
2 dni
Program
- Podstawowe definicje
- najistotniejsze wymagania wydajnościowe aplikacji Ruby on Rails
- przypomnienie podstaw protokołu HTTP
- pobieżne omówienie języka Ruby
- kluczowe pojęcia i technologie związane z aplikacjami WWW
- omówienie podstaw i charakterystyki środowiska Ruby on Rails
- środowisko aplikacji w języku Ruby
- podstawowe metody instalacji języka
- środowiska wirtualne instancji języka (rvm, rbenv)
- biblioteki zewnętrzne (Gemy) i Bundler
- binarne zależności bibliotek (Gemów) Rubiego
- konfiguracja strefy czasowej i ustawień językowych (locale)
- Wdrażanie aplikacji Ruby on Rails
- systemy kontroli wersji (git)
- migracje w ActiveRecord
- różne środowiska aplikacji (test, development, staging, production)
- automatyzacja aktualizacji i wdrażania: capistrano, chef
- aktualizowanie wersji języka Ruby i bibliotek (testy i regresja)
- Serwery WWW w środowisku produkcyjnym
- różne serwery www (apache, nginx)
- warianty serwera aplikacyjnego
- polecane: phusion passenger, unicorn
- alternatywne: puma, mongrel, thin
- jruby (tomcat)
- Wydajność, skalowanie
- pamięć podręczna (cache): Memcache, Redis
- odwrotne proxy (Varnish)
- rozkładanie obciążenia na wiele maszyn
- Monitorowanie aplikacji
- automatyczne restartowanie komponentów (monit, god, bluepill)
- metody logowania komunikatów z aplikacji Rails i powiązane narzędzia systemowe (logrotate)
- śledzenie wyjątków (Errbit)
- narzędzia zewnętrzne (NewRelic RPM)
Training also available in English - for more information see here.
Przeznaczenie i wymagania
Program kursu zakłada co najmniej podstawową znajomość pracy i zarządzania środowiskiem systemowym opartym o standard POSIX (Linux/BSD). Uczestnik powinien również w stopniu podstawowym znać specyfikę i sposób działania protokołu HTTP oraz potrafić w postawowy sposób skonfigurować serwer WWW. Niezaprzeczalnym plusem dla uczestnika będzie doświadczenie w administracji dowolnymi aplikacjami WWW w innych, popularnych technologiach (PHP, Python, Java). Poniżej znajduje się podsumowanie wymagań/zaleceń co do wstępnej wiedzy i umiejętności uczestników:
- podstawowa znajomość zagadnień związanych z administracją systemami Linux/BSD
- swobodna praca w środowisku terminalowym (powłoki) systemu Linux/BSD
- podstawowa znajomość programowania w języku powłoki (Bash)
- rozumienie protokołu HTTP oraz powiązanych zagadnień (sesje, SSL, bezstanowość, metody, przekierowania)
- administracja systemami baz danych i podstawy SQL
- znajomość języka Ruby jest niewątpliwą zaletą, aczkolwiek nie jest konieczna
Certyfikaty
Uczestnicy otrzymują certyfikaty ukończenia kursu sygnowane przez ALX. Każdy uczestnik po zakończeniu szkolenia będzie posiadał następujące umiejętności / wiedzę:
- konfiguracja środowiska produkcyjnego dla aplikacji w Ruby on Rails
- monitoring pracy aplikacji w czasie rzeczywistym
- umiejętność szybkiego diagnozowania awarii
- diagnozowanie problemów wydajnościowych i planowanie rozbudowy infrastruktury
- planowanie wykorzystania zasobów systemowych na podstawie spodziewanego ruchu
- rozumienie zalet i wad różnych metod działa aplikacji w Ruby on Rails
- konfiguracja środowiska pod kątem bezpieczeństwa danych i aplikacji