Odoo.sh to środowisko PaaS, które znacząco ułatwia hosting Odoo. Warto jednak pamiętać o pewnych kwestiach, aby nie dopuścić do problemów z serwerem.

Odoo.sh i zarządzanie wersją Odoo

Bardzo lubię pracę w środowisku Odoo.sh. To prosta nakładka na serwer, ale sprawia, że zarządzanie wersjami, wdrożenie zmian w kodzie, a nawet migracja wersji głównych są o wiele prostsze. Odoo.sh jako platforma pozwala wybrać, na jakiej wersji Odoo działa nasza instancja (w ramach wersji głównej). Jest to rozwiązanie Platforma jako Serwis - w ramach tego, można na niej ustawić automatyczne aktualizacje w ramach wersji patch. I tutaj pojawia się pytanie - czy warto to robić?

Automatyczne aktualizacje wersji na Odoo.sh

Do repozytorium Odoo oraz Odoo Enterprise nowe zmiany trafiają praktycznie co kilkanaście minut. Odoo używa wersjonowania semantycznego, i tylko wersje patch trafiają jako automatyczne aktualizacje na platformie Odoo.sh. W teorii, zmiany te powinny być kompatybilne z wcześniejszymi wersjami API. W teorii. Przy tak dużym systemie, rozumiem trudności z utrzymaniem tej obietnicy, ale moje doświadczenie w tworzeniu oprogramowania pokazuje, że jednak lepiej dmuchać na zimne. W Pythonie, Go i innych językach oprogramowania zawsze korzystałem z zafixowanych wersji bibliotek, z ręczną aktualizacją. I uważam to za dobrą praktykę oraz sposób na uniknięcie wielu problemów - które co gorsza, jeśli się pojawią, to pojawią się znikąd... i mija trochę czasu, zanim ktoś zrozumie, o co chodzi.

Ustawienie Odoo.sh - wybór wersji

Piszę oczywiście o ustawieniu "Revision", które można znaleźć w Panelu Odoo.sh w ustawieniach (Settings):

Ustawienie Revision w panelu Odoo.sh - wersja 17.0 ustawiona na "Latest"

Tutaj ustalamy, na jakiej wersji Odoo działa nasza instancja. Kiedy wybrane jest Latest, zezwalamy Odoo na zarządzanie wersją i automatyczne aktualizacje, które zazwyczaj wykonują się w niedzielę wieczór. Nad czasem updatu nie mamy żadnej kontroli - jest on z góry narzucony.

Automatyczny upgrade do Latest na Odoo.sh - ale dlaczego!?

Na jednej z instancji ustawiona była konkretna wersja (wersje mają format major.minor.YYYYMMDD) - czyli byliśmy bezpieczni, bez auto updatu. Czy na pewno? Otóż nie. Poniedziałek zacząłem nie od przeglądu emaili, ale od odpowiedzi na wiadomość, że część systemu (ważna) nie działa. Po jakimś czasie znalazłem przyczynę, naprawiłem i posprzątałem kod. Chciałem przejść do ustawień - żeby zmienić je na bezpieczne "Fixed Version" (by nie dopuścić ponownie do przestoju systemu). I jakie było moje zdziwienie, kiedy okazało się, że już wcześniej mieliśmy ustawioną określoną wersję, ale była nieaktualna od 3 miesięcy - system zdecydował więc, że trzeba zmienić ustawienia. Bez wcześniejszego przypomnienia.

Rozumiem potrzebę aktualizacji między innymi ze względu na łatki bezpieczeństwa (Odoo.sh posiada politykę wymuszania aktualizacji dla rewizji starszych niż około 90 dni) - ale w tym przypadku użytkownik nie dostaje żadnego ostrzeżenia wcześniej. Tylko informacje post-factum. To nie jest bezpieczne zachowanie systemu i mam nadzieję, że szybko zostanie naprawione (zostało to zgłoszone).

Jednak rada dla wszystkich korzystających z Odoo.sh - sprawdźcie, jak ustawiona jest rewizja, zaplanujcie update. Dobrą praktyką jest ręczne podnoszenie rewizji co miesiąc na środowisku Staging, uruchomienie testów i dopiero wtedy przepięcie Produkcji. To lepsze niż chaotyczny początek tygodnia i szybkie fixowanie produkcji.

Umów spotkanie