Problem:
Ostatnio branża IT i oprogramowanie przeznaczone na strony internetowe uległy znacznym zmianom, które niestety sprawiły, że utrzymanie średniego poziomu funkcjonalności, jakiego doświadczyliśmy, stało się trudne.
Dlaczego? Oto kilka przykładów:
-
Aby nasze forum działało poprawnie, niezbędne jest zastosowanie OpenSearch lub ElasticSearch. Minimalna ilość RAM potrzebna do prawidłowego funkcjonowania tego modułu to aktualnie 4 GB, zalecane jest jednak 8 GB. Starsze wersje radziły sobie z mniejszą ilością pamięci, ale niestety były podatne na awarie.
-
W ostatnim czasie coraz więcej oprogramowania opiera się na modułach, które świetnie sprawdzają się w przypadku dużych projektów, ale są trudne do zastosowania w małych i średnich, ze względu na duże zapotrzebowanie na pamięć. Ponadto, nie można ich łatwo zaimplementować na serwerze, który używaliśmy przez lata (MyDevil).
-
Wiele programów przeszło na model subskrypcyjny, co może być uciążliwe. Z kolei niektóre usługi, takie jak ElasticSearch, są dostępne w chmurze, ale są bardzo kosztowne (90 USD miesięcznie za najtańszy pakiet).
Jak to wyglądało u nas:
MyDevil przez długi czas sprawdzał się całkiem dobrze, ale niestety stał się ślepą uliczką. Uruchamianie różnych programów stało się coraz trudniejsze, a niektóre z nich były niestabilne.
Od około 9 miesięcy forum działało na CX21 od https://www.hetzner.com/cloud. Miesięczny koszt to około 6 euro, co było akceptowalne. Niestety, mimo kilku prób zainstalowania ElasticSearch 4 GB na całym serwerze, okazało się to niewystarczające. Nawet po zmianie konfiguracji, czasami brakowało pamięci, co powodowało restart niektórych usług i kilkuminutowe przerwy w działaniu forum. Nawet lekka dystrybucja k8s zużywała trochę pamięci. Próby rozbudowy serwera napotykały na problemy. Po 2-3 miesiącach zdałem sobie sprawę, że to nie będzie dobre rozwiązanie. Podniesienie RAM-u do przynajmniej 16 GB wydawało się niezbędne, ale znacząco zwiększało koszty.
Problemem był również fakt, że czasami potrzebujemy dużej ilości miejsca, na przykład do przesyłania dużych plików z modami. Ostatecznie trafiają one na stosunkowo tani serwer, ale najpierw muszą być przekazane na serwer, na którym działa główna aplikacja (wiem, można zamontować S3 lokalnie, ale były z tym problemy). Dlatego od pewnego czasu pliki wrzucam prawie ręcznie, kiedy @Agrael daje znać.
Ostatnio zastanawiałem się, czy optymalnym rozwiązaniem nie byłaby hybryda. Podstawowe funkcje mogłyby działać na zewnętrznym serwerze, a dodatkowe moduły, które potrzebują dużo miejsca lub pamięci, mogłyby działać na serwerze u mnie w domu. Koszt 64 GB RAM-u czy dysków kilka TB nie stanowiłby dziś problemu. Koszty związane z prądem wyniosłyby około 30-50 zł miesięcznie. Rozwiązanie wydawało się dobre, a awaria jednego z serwerów skutkowałaby najwyżej chwilowym brakiem dostępu do niektórych funkcji, na przykład wyszukiwarki.
Niestety konfiguracja i wiele innych aspektów okazały się dużo bardziej skomplikowane i problematyczne. W międzyczasie pojawił się pomysł na użycie darmowego serwera od Oracle Cloud, o następujących parametrach:
Ostatecznie dziś bo wielu nieudanych próbach udało się uruchomić taką hybrydę. Główny serwer to darmowa maszyna z Oracle Cloud. Niestety nie ma ona zbyt rozbudowane mechanizmu kopii zapasowych a Oracle ponoć lubi czasami kasować maszyny bez powodu (takie uroki tak dobrej maszyny za darmo). Dlatego też cały czas wszystkie dane są replikowane na moje maszyny w domu. Podejrzewam że to nie koniec. Najbardziej obawiam się jak taka replikacja wpłynie na wydajność. Forum teraz działa wolno ale mam nadzieję że to głównie z powodu trwającej replikacji bazy danych oraz czystego cache. Szczególnie wolno jeszcze działają operację które powodują dużo zapytań do bazy. Proszę o zgłaszanie wszelki problemów.
Wyszukiwarka jeszcze jest po staremu. Nie chce wrzucać nic co dodatkowo teraz jeszcze obciąży replikację.
Na koniec coś do poczytania:
Niestety model licencyjny IPB zmienia się na jeszcze bardziej niekorzystny. Będzie trzeba podjąć jakieś decyzja bo niestety trzeba będzie zrobić aktualizacja niedługo