Temat: Multiplatformowosc projektow django/python
Jeśli faktycznie istnieje problem niekompatybilności z uwagi na zewnętrzne moduły to polecam maszynę wirtualną z systemem możliwie zbliżonym do środowiska produkcyjnego.
W pracy używamy
Vagranta i polecam każdemu. W skrócie idea przedstawia się następująco - każdy członek zespoły ma dostęp do odpowiednio przygotowanego obrazu (najlepiej z tym samym systemem który użyty jest na produkcji), konfiguracji Vagranta i "provisioning skryptów". I jedną komendą zestawia środowisko robocze na dowolnym host systemie tak, że kod źródłowy projektu współdzielony jest między systemem gospodarza a maszyną wirtualną (dzięki czemu developer może wciąż używać swoich ulubionych narzędzi w procesie developmentu). Serwer chodzi na maszynie wirtualnej, która uruchamia system operacyjny "gościa" w trybie headless mode (niskie zużycie zasobów host systemu). Porty odpowiednich usług są przekierowane z systemu gościa na gospodarza tak, że np. możliwy jest dostęp do web servera (chodzącym w systemie operacyjnym gościa, w maszynie wirtualnej) z systemu gopsodarza (wszystko to ustawia się w konfiguracji Vagranta). Kolejną zaletą jest to, że można współdzielić wspomniane "provisioning skrypty" pomiędzy środowiskiem developerskim a produkcyjnym (więc można łatwo je przetestować zanim zostaną użyte w produkcji).
Powyższe rozwiązanie jest szczególnie przydatne w przypadku projektów posiadających dużą ilość zależności wymagających specyficznej instalacji/konfiguracji, gdy w projekcie uczestniczy duża liczba developerów używających różnych systemów operacyjnych na swoich stacjach roboczych. Odpada wiki ze szczegółowym opisem instalacji i czasochłonny support (zwłaszcza gdy do teamu dochodzi nowy developer).
Tomasz Elendt edytował(a) ten post dnia 24.11.12 o godzinie 16:00