#Gość #LXC #Proxmox #Hetzner #Self-hosting #Cost Optimization
“Jak ktoś to słyszy z branży IT, to już w tym momencie pewnie wyłączy podcast: gość gada głupoty i tyle.” Jakub Mrugalski aka Unknown o postawieniu hostingu na IPv6 i dzieleniu jednego IPv4 między setki użytkowników. Witamy w świecie, gdzie WordPress staje na 18 MB RAM-u, a najtańszy VPS kosztuje 35 zł rocznie. 🎯
Mikrus to 15 tysięcy płacących użytkowników i ~100 maszyn bare metal u Hetznera: LXC zamiast Dockera, VDO zamiast ZFS-a, CPU rozdawane na zasadzie fair play (wewnętrznie: “benchmark volkswagen mode”), a backup? “Nie istnieje i nie musisz za niego płacić.” Sześć osób ogarnia całe to zoo. ⚠️
Od strat i piwnicy Hackerspace’a Kraków do siedmiocyfrowych przychodów rocznie. Cost optimization hostingu doprowadzona do granic absurdu - i dlaczego działa lepiej niż u konkurencji?
Linki i ciekawe znaleziska
Transkrypcja
Jakub Mrugalski Najtańszy pakiet kosztuje 35 zł rocznie, co daje nam niecałe 3 złote miesięcznie. To nie jest obniżenie kosztów poprzez jakość, tylko to jest obniżenie kosztów poprzez sprytne zarządzanie zasobami. Nawet ludzie mówią działa mi lepiej niż u konkurencji, a mam mniejsze parametry. Jak ktoś to słyszy z branży IT, to już w tym momencie pewnie wyłączy podcast, gość gada głupoty i tyle. Przez wiele lat pracowałem w hostingu, który miał ponad 60 tysięcy klientów i ogarnialiśmy go w 4 osoby, więc można powiedzieć, że u mnie jest przesadnie dużo. Da się to ogarnąć. Bardzo dużo idziemy w automatyzację i to bardzo pomaga.
Łukasz Kałużny: Cześć, słuchacie Patoarchitektów. Prowadzą Łukasz Kałużny…
Szymon Warda: Szymon Warda.
Łukasz Kałużny: I jest z nami dzisiaj Jakub Mrugalski albo szerzej znany jako Unknown.
Jakub Mrugalski Cześć wszystkim.
Łukasz Kałużny: Cześć. Dzisiaj edycja specjalna. Prowadzimy z InfoShare’a, gdzie Kuba też miał prelekcje. To jest jedna rzecz.
Szymon Warda: A odnośnie konferencji.
Łukasz Kałużny: A, przy okazji jak jesteśmy przy konferencjach, to zapraszamy na konfę 16 czerwca z okazji 200 odcinka Patoarchitektów.
Szymon Warda: Właśnie, zapraszamy!
Łukasz Kałużny: Dobra, słuchaj, to Kuba, ja sobie tak spisałem parę rzeczy o Tobie, żeby to spróbować skrócić. Ja Ciebie kojarzę z unknowNewsów.
Jakub Mrugalski Zgadza się.
Łukasz Kałużny: Twojego newslettera, Mikrusa, o którym dzisiaj porozmawiamy, Niebezpiecznik i kupę cebulowych deali Twoich starych, czyli tych grup i notyfikacji o super tanich rzeczach z Aliexpressu.
Jakub Mrugalski Tak, też były takie.
Szymon Warda: Zacząłeś o Mikrusie. To będzie nasz temat, o którym będziemy rozmawiali trochę dzisiaj. Więc czym w ogóle jest Mikrus?
Jakub Mrugalski W takim uproszczeniu Mikrus to jest środowisko dla developerów, którzy chcą gdzieś hostować swój projekt, ale nie projekt koniecznie produkcyjny, tylko chcą mieć bardziej środowisko developerskie i najlepiej środowisko, które mogą do woli stawiać, niszczyć, konfigurować. Spora elastyczność i ważna rzecz, żeby to było tanie. Chciałem tak obniżyć cenę, żeby przeciętny student na przykład mógł sobie to kupić i mało tego, nie kupić na miesiąc na przykład do zabawy, ale załóżmy na rok, dwa, a nawet trzy lata, jeżeli tylko ma taką ochotę.
Łukasz Kałużny: Wiesz co…
Szymon Warda: My tam trzymamy produkty.
Łukasz Kałużny: Mamy tam parę rzeczy.
Jakub Mrugalski Ale nie jesteście jedyni, naprawdę.
Łukasz Kałużny: Ja sobie zdaję sprawę. Powiedz, bo niektórzy nie dowierzają, jakbyś rzucił tą cenę jedną z przykładowych cen.
Jakub Mrugalski Najtańszy pakiet kosztuje 35 złotych rocznie, co daje nam niecałe 3 złote miesięcznie. No i można zapytać: ale dobra, to jaka jakość za to będzie? Najprościej sprawdzić. Nawet na takich rozwiązaniach ludzie stawiają swoje blogi, strony firmowe, jakieś proste automatyzacje domowe. W większości przypadków to wystarcza. To nie jest obniżenie kosztów poprzez jakość, tylko to jest obniżenie kosztów poprzez sprytne zarządzanie zasobami, poprzez wybór odpowiedniego środowiska, poprzez cięcie rzeczy, które moim zdaniem, są mniej potrzebne takim początkującym ludziom. To nie jest rozwiązanie dla wszystkich i do wszystkiego, ale do takich rzeczy, jakie tam ludzie stawiają, w zupełności wystarcza.
Łukasz Kałużny: Dobra, słuchaj, to zanim wejdziemy sobie w technikalia, bo są ciekawe. W ogóle polecam Wam Kuby też prezentację z Jesieni Linuksowych pooglądać, bo tam jest dobry deep dive. Ale jakbyś powiedział o skali tego, bo to nie jest już skala hobbystycznego projektu.
Jakub Mrugalski Tak, zaczęło się od takiej mikroskali. To znaczy był jeden serwer na Kimsufi na OVH i miał 60 użytkowników. Potem się to rozrosło, trochę więcej było. Był taki moment przejściowy, gdy hostowałem się, w zasadzie kolokowałem w piwnicy jednego z Hackerspace’ów, Hackerspace Kraków, więc takie początki bardzo fajne, piwniczne i tam już było 600 użytkowników. Jeden serwer nie wystarczył, tylko wtedy trzeba zaznaczyć tam były ekstremalnie małe te parametry, bo tam pakiet rozszerzony miał 64 MB RAM-u. To służyło do postawienia Crona, do odpalenia IRC-a, tego typu rzeczy. A obecnie użytkowników płacących jest chyba 15-16 tysięcy, jakoś tak. Do tego jest około 8000 darmowych kont. No i cały czas rośnie tak naprawdę. Dziennie wpada nawet tam paręnaście, parędziesiąt nowych użytkowników.
Łukasz Kałużny: Z ciekawości, ile to jest bermetalu, jak policzysz teraz na sztuki w tych dedykach?
Jakub Mrugalski Na sztuki dochodzimy do setki. 100 maszyn. Tak, tylko tutaj też trzeba zwrócić uwagę na to, jeżeli ktoś by tak matematycznie to rozłożył, jest coś takiego jak kompresja danych, deduplikacja danych. Jest wszystko związane z pamięcią, zarządzaniem.
Szymon Warda: To jeszcze drugi element skali. Ludzie. Ile ludzi to utrzymuje?
Jakub Mrugalski Aktualnie jest to 6 osób. Dopiero od czerwca, czyli od następnego miesiąca, jedna osoba przejdzie na 100% już, będzie pracować. To już jest ten moment, gdy trzeba mieć pracownika po prostu. Ale to w zupełności wystarcza. Ja, wiesz, przez wiele lat pracowałem w hostingu, który miał ponad 60 tysięcy klientów i ogarnialiśmy go w 4 osoby, więc można powiedzieć, że u mnie jest przesadnie dużo. Da się to ogarnąć. Bardzo dużo idziemy w automatyzację i to bardzo pomaga.
Szymon Warda: O tym jeszcze będziemy rozmawiali, bo to jest też w ogóle ciekawy temat.
Łukasz Kałużny: Dobra, wiesz co Kuba, to wejdźmy na początek w detale, bo jesteś chyba największym osobą mówiącą, że używa LXC, patrząc się nawet. I teraz na ten pragmatyzm. Bo wiesz, świat sobie idzie, te wszystkie Dockery, kontenery, MicroVM-ki, firecrackery, można tego wymieniać jak wiesz całego stosu. A Ty bardzo mocno optymalizujesz to wokół LXC, czyli Linux Containers, tych takich klasycznych, które powstały przed Dockerem, na długo przed Dockerem.
Jakub Mrugalski Zależało mi na kilku rozwiązaniach. Dlaczego nie Docker? Docker z założenia nie jest persystentny. Można mu tam podpiąć jakiś wolumen. Ale ludzie co chcą zrobić? Chcą postawić swój system operacyjny, chcą go aktualizować, chcą mieć coś, co będzie cały czas dla nich. Więc Docker, nie bardzo w tą stronę. Są inne rozwiązania. Zaczynałem od OpenVz-ta, takie oldschoolowe, już strasznie wycofane. LXC sprawdza się całkiem nieźle, zwłaszcza LXC w implementacji z Proxmoxa, tam jest dużo dodatkowych jakichś opcji. Ma wszystkie te rzeczy związane z limitowaniem zasobów, które mi są potrzebne i nie ma żadnego takiego nadmiarowego limitowania. W sensie nie ma czegoś takiego, co powoduje narzut dodatkowy. Więc te VM-ki są bardzo lekkie. I przez to, że są lekkie, nie ma też czegoś takiego, że jak podnoszę kolejną VM-kę na przykład, to pewna ilość RAM-u jest po prostu marnowana na to, że ona po prostu wstaje. Można powiedzieć, że pamięć jest bardzo optymalnie dzielona na użytkowników. A dla użytkowników też jest jeden bardzo duży benefit. Bo jeżeli ktoś mówi: dobra, co możesz postawić na VM-ce, która ma na przykład 1 GB. I dlaczego ludzie o to pytają? Bo jak masz 1 GB w jakiejkolwiek innej firmie, to mniej więcej tam 300 MB musisz odciąć na system operacyjny.
Łukasz Kałużny: Tak.
Jakub Mrugalski Ale w momencie jak kupujesz kontener LXC to jest jak Docker. Jak ustawiłem tam limit 1 GB, to masz do użycia 1 GB. Więc można powiedzieć dostajesz jeszcze w tej cenie 30% gratis.
Szymon Warda: Żeby nie było, żeby to wybrzmiało. Zarówno ja jak i Łukasz jesteśmy absolutnymi fanami cebula mode i mamy to udokumentowane swoimi wpisami na różnych blogach, że generalnie to jest coś, co można łatwo zobaczyć problem skali tej skali nie mając. Więc ten element nauki jest, uważam, że fenomenalny.
Łukasz Kałużny: Słuchaj, wiesz co, to jedno bym pytanie pociągnął, bo masz tam mnóstwo, ja sobie słucham Twojej prezentacji, więc od strony Linuxa jest to hack na haku można powiedzieć, że mało kto tego korzysta. I powiedz, które Cię, tak jak popatrz z tej perspektywy Twoich wszystkich historii, które limity Cię najbardziej bolały i haki w tych elementach, których robiłeś?
Jakub Mrugalski Ja bym powiedział tak, że rzeczy związane z dyskiem. Dysk wydaje się, że jest rzeczą tanią. Ale dopóki nie zastosowałem właśnie kompresji, deduplikacji tutaj, aktualnie jedziemy na czymś takim, co się VDO nazywa. Dlaczego nie ZFS, ktoś powie? Bo ZFS jest taki topowy.
Łukasz Kałużny: Cool, tak.
Jakub Mrugalski Trzeba mieć całkiem mocny procek pod ZFS-a. Jeżeli teraz tniemy na procku, to musimy ciąć na czymś innym. A jeżeli chcemy zachować tą samą jakość kompresji, a jednocześnie mniej obciążać CPU, to inna technologia musi być. I testując różne technologie VDO wygląda tutaj całkiem fajnie. Jest z tym sporo problemów, ale jest ok. Były też problemy na przykład z limitami dysku. To znaczy tam inode’y na przykład. Aktualnie to rozwiązujemy w ten sposób, że jest jeden wolumen LVM per kontener, więc każdy jest zamknięty na takim jednym wolumenie. Jak się zapchają inode’y, to dla niego, a nie dla wszystkich na przykład. Jest też takie coś jak podział czasu procesora. Jeżeli mamy dużo tych VM-ek, to w takim razie nie ma czegoś takiego na Mikrusie jak sztywny przydział procesora. Dlatego niektórzy są zachwyceni, że jak uruchamiają sobie jakieś benchmarki, to ten benchmark leci w kosmos. My to nazywamy taki benchmark volkswagen mode. Ale to nie jest do oszukiwania. Powiem Wam, o co chodzi. Chodzi o to, że my przymykamy oko jako admini na większość rzeczy, które się dzieją na Mikrusie. To znaczy masz stanowczo za duży przydział CPU w stosunku do tego, za co płacisz. Zakładamy, że nie będziesz tyle tego używał. Czyli na zasadzie takiego fair play. Dajemy Ci, bo wiemy na przykład, że jako użytkownik będziesz kompilować coś, będziesz instalować, będziesz robić, ale nie będziesz kopał kryptowalut, mamy nadzieję. Jak będziesz, to się odezwiemy. Więc to jest przydział, który jest zrobiony w ten sposób, że przesadnie dużo dostaje użytkownik i zwykle nie czuje tych limitów. To znaczy jak coś instaluje, robi coś, to po prostu działa świetnie i nawet ludzie mówią: działa mi lepiej niż u konkurencji, a mam mniejsze parametry. No bo nie jesteś limitowany. Limitujemy tylko wtedy, gdy zauważymy, że ktoś naprawdę mocno już przesadza.
Łukasz Kałużny: Znaczy wiesz co, ja widzę jako użytkownik akurat w tym miejscu, że to jednak dość dobrze działa. Wiesz co, masz stworzony portable cloudowy bez kredytów, ja tak na to patrzę trochę.
Jakub Mrugalski Trochę to można tak nazwać. Tak z przymrużeniem oka oczywiście, ale no tak może to wyglądać.
Łukasz Kałużny: Tak, z tych rzeczy, bo chyba w ogóle w optymalizacjach chyba pamiętam było, nie pamiętam, mam zapisane, że 18 MB RAM-u, rekordzista wtedy co da się upchnąć na osiemnastu… Jakbyś wziął rozwinął ten wątek może jeszcze.
Jakub Mrugalski To chyba wspominał o takich początkach Mikrusa. Jak była pierwsza wersja Mikrusa to zrobiłem taki konkurs na zasadzie kto zbuduje stack do postawienia WordPressa najmniejszy jaki tylko się da. I tam na start w ogóle było ograniczenie takie, że dostajesz w ogóle VM-kę, która ma 32 MB RAM-u. No nie da się nic postawić, bo jak robisz apt install tam mysql to już się wywala. Ale na tym trzeba było postawić WordPressa. No i okazuje się, że gość to tak zoptymalizował, że do 18 mniej więcej MB zszedł i to działało całkiem nieźle. To nie mówimy oczywiście o skali typu tysiąc osób czytało, ale konkurs polegał na tym, że ma się odpalić, a jury ma móc przeklikać przez całego bloga. I to działało świetnie. I nawet jak skakał tam jakiś RAM, to tam nie do 20 mega. Więc to też pokazuje, że takie środowiska bardzo hardcore’owe uczą optymalizacji, bo nie da się tego zoptymalizować metodą: będę próbował i jakoś to wyjdzie. Musisz wiedzieć dokładnie z czego się składa na przykład, nie wiem, czy to Apache, czy Nginx, czy MySQL, a czym są bufory.
Szymon Warda: Nakłania do usuwania magii.
Jakub Mrugalski Tak.
Szymon Warda: Ale też jest jeszcze jeden element, bo też robisz dość ciekawe rzeczy z IP-kami. Jakbyś mógł właśnie to rozwinąć? Właśnie przydziały, IP-ki, porty.
Jakub Mrugalski Tak, tutaj, jak zacząłem tworzyć Mikrusa, to największy problem to było IPv4 czyli kończąca się pula. No i cena adresów IP jest gigantyczna. Jeżeli ktoś by chciał wejść teraz do branży hostingowej, to ma kilka wyborów. Pierwsze, to jest wypożyczyć od kogoś taką pulę, to kosztuje drogo. Albo kupić taką pulę, to kosztuje ekstremalnie drogo. I wtedy jak sobie liczymy, wszystko wrzucamy do Excela, to nie dla psa kiełbasa, nie wejdziesz do tej branży, nie ma szans. Ja podszedłem do tego taką metodą, jest takie coś, dawno temu czytałem książkę, nazywa się “Metoda błękitnego oceanu”. To znaczy to polega na tym, taka marketingowa, czyli spróbuj wypłynąć na taki ocean na zasadzie gdzie nikt nie działa i zmienić zasady gry. Czyli na przykład zasada gry jest taka: żeby wejść do hostingu, trzeba mieć IPv4. Zadałem sobie pytanie: a co jakbym nie miał IPv4? Albo żeby wejść do hostingu musisz mieć tam jakiś równy przydział CPU, bo inaczej ludzie się zajadą. A co jakbym nie miał tego? Za każdym razem jakby co i tak dalej. No i stwierdziłem tak: co jest zamiennikiem za IPv4? IPv6. Jak ktoś to słyszy z branży IT, to już w tym momencie pewnie wyłączy podcast: gość gada głupoty i tyle. Jeżeli postawimy coś na IPv6, to mniej więcej tak 80% Polaków nie będzie miało do tego dostępu. No tak to wygląda, tak wygląda wdrożenie w naszym kraju. Nie wiem jak ogólnie na świecie, ale…
Łukasz Kałużny: W naszym chyba inaczej. Jeżeli nie masz w tym momencie telefonu komórkowego, bo telefonia komórkowa bardzo mocno idzie na IPv6. Bo jak dziś patrzyliśmy nawet dla klienta, że tak naprawdę chyba poza internetem mobilnym to chyba w Playu jeszcze, Ci, którzy zostali do CGNATa zmuszeni, o, może tak powiedzmy, Ci, którzy zostali schowani za CGNAT-ami mają IPv6 teraz.
Jakub Mrugalski Tak, ale gdybyśmy tak ogólnie powiedzieli, to raczej to rozwiązanie nie będzie działać. No i teraz oferować komuś hosting, który raczej nie będzie działał, to jest kiepskie wyjście. Zastanowiłem się tak: dobra, to jak zmienić zasady gry? Ja dostałem razem z serwerem dedykowanym jeden adres IP. I teraz jak można go podzielić? Na kilka sposobów. Można użyć reverse proxy. Można użyć przekierowanych adresów, w sensie portów TCP, UDP. Więc każdy użytkownik, który kupuje Mikrusa, dostaje pulę adresów, na których może postawić swoje usługi. Jeżeli ktoś powie: dobra, ale ja nie chcę mieć strony działającej na porcie 1, 2, 3, 4, 5. No to są takie usługi, które podmieniają te porty. Są usługi, które dają Ci na przykład domenę developerską podpiętą pod to i tego nie zauważysz nawet, nie. Więc większość osób, która kupiła Mikrusa, to są osoby początkujące i one nie mają zielonego pojęcia co to jest IPv4, nie mają pojęcia co to jest IPv6 i żyją bez problemu, a ich usługi są dostępne dla wszystkich. Więc to jest sporo kombinacji, ale to było konieczne do obniżenia kosztów.
Szymon Warda: Ty też nakłaniasz do tego właśnie, żeby ludzie korzystali nie tylko z Twoich usług, ale też właśnie z całego ekosystemu, który istnieje i dzięki temu to może działać. Między innymi Cloudflare, którego też bardzo, bardzo lubimy.
Łukasz Kałużny: Wiesz co, to pociągnijmy sobie poza siecią, bo tam masz jako użytkownik Mikrusa też parę rzeczy, bo zacząłeś budować usługi wokół mikrusa, żeby odciążyć tą infrę i odciążyć… Jakbyś rozwinął temat, po co to robisz, jak robisz właśnie to odciążenie Mikrusa?
Jakub Mrugalski Powodów jest kilka. Pierwszy powód jest taki, że jeżeli ktoś kupi najsłabszy możliwy serwer, który ma tam 384 MB RAM-u i chciałby na tym postawić załóżmy tego WordPressa, co wspomniałem, to jeżeli postawi to metodą apt install enter, enter, enter, na tej zasadzie, to to zmieści się jako tako, ale będzie ciasno. Jak nie ma jakichś zdolności optymalizacyjnych będzie kiepsko. Większość osób, tak jak powiedziałem, to są osoby początkujące. Więc w takim razie stwierdziłem tak: można by im dać zewnętrzną bazę danych, zewnętrzną bazę danych, czyli MySQL-a, Postgresa i MongoDB i te trzy bazy danych są dostępne dla użytkowników Mikrusa. I to zdejmuje mi też jedną rzecz. Bo jeśli użytkownicy stawiali swoje własne bazy danych wewnątrz serwera, to też zajeżdżali dysk, bo one zupełnie nie były optymalizowane. Bo jeżeli…
Łukasz Kałużny: Lecieli na default’cie.
Jakub Mrugalski Często podejście jest takie: kto bogatemu zabroni? Kupię sobie najmocniejszy serwer, zrobię apt install mysql, enter, nie czytam co to są indexy, co to są jakieś tam cache. Nie, nie, to mnie nie jest potrzebne, bo to się mieszczę w RAM-ie, nie. A serwer w tym momencie umiera. To jeżeli ja dam takiemu użytkownikowi zewnętrzną bazę danych, to ktoś powie: tracisz pieniądze. No nie, zyskuję pieniądze, bo w tym momencie zdejmuję obciążenie, więcej tych użytkowników się tam zmieści, a sam użytkownik będzie bardziej zadowolony, bo dostał usługę zoptymalizowaną pod niego. Więc takie usługi zewnętrzne się opłacają i tych usług jest sporo. Są usługi właśnie, tak jak wspomniałem, bazy danych, jest na przykład współdzielony VPN, jak ktoś potrzebuje tylko z WireGuarda na przykład wyjść sobie na świat, to też coś takiego jest. Jest współdzielony serwer proxy, jeżeli ktoś potrzebuje tylko przepuścić ruch do swojej strony. Jest coś, co się Cytrusem nazywa. Cytrus to jest serwer webowy współdzielony. Jeżeli ktoś by nie chciał wcale instalować webowego serwera u siebie, tylko podawać pliki, to podaje nazwę katalogu: z tego katalogu podaj moje pliki i nagle magicznie ten katalog jest wystawiany na świat. Więc takich rozwiązań jest sporo i ludzie sobie to chwalą. Dlatego to jest też nazywane bardziej nie jako VPS a jako takie bardziej środowisko z VPS-em w pakiecie.
Szymon Warda: Jasne, mówisz właśnie o skali, mówisz o tym, ile to kosztuje, mówisz o tym, co się dzieje. Ale to raczej nie jest projekt, który Ty robisz dla pieniędzy, powiedzmy sobie generalnie, to nie jest raczej projekt, który jest dla Ciebie bardzo też dochodowy. Skąd w ogóle motywacja i jakbyś mógł ująć Mikrusa w ogóle w liczbach?
Jakub Mrugalski Okej, to powiem tak, Mikrus przez pierwsze lata przynosił duże straty. Duże straty na zasadzie koszty mojej pracy, koszty serwerów, koszty wszystkiego. Udało mi się trochę wyzerować to w momencie współpracy z Hackerspacem, bo dostałem hosting w zasadzie gratis. Też zapewnili tam maszyny, więc to jedyne co wymagało to jest praca moja i tam kilku adminów. Potem było to takie dopłacanie do usługi. Czyli typowy prywaciarz dopłaca do biznesu. To trwało mniej więcej jakieś 2 lata. A też wtedy zatrudniałem adminów, płaciłem im normalnie. I to było tak trochę, no nie wiem, trochę traktowałem to jako biznes hobbystyczny. Ale pojawił się też taki przełom, że bardzo szybko Mikrus zaczął się rozwijać. Bardzo szybko, to znaczy tak, że jak dawniej na przykład kupowałem 2 serwery dedykowane rocznie albo tam 1 rocznie, to teraz kupuję na przykład 2 miesięcznie, tak to wygląda. Więc to jest szybki rozwój. Aktualnie, jeśli chodzi o liczby, Mikrus zarabia rocznie siedmiocyfrowe kwoty. Więc to jest dużo. I to już nie jest projekt taki typowo hobbystyczny w rozumieniu, że gdzieś po godzinach można go robić, bo ilość czasu jaką pochłania, to jest już full time job i to nie job jednej osoby, tylko już zespołu. No i niestety koszty rosną, zatrudnienie rośnie, ale pod względem hobbystycznym nadal mi to sprawia niesamowitą przyjemność, więc siedzę, dłubię tam i rozbudowuję, tak to wygląda.
Łukasz Kałużny: Dobra, pójdźmy sobie w kolejne pytanie, to jest rzecz, którą wszyscy robimy, czyli AI trochę. Ale u Ciebie jest fajna rzecz, bo Ty też dość mocno wykorzystujesz od tej strony takiej integracji w części supportowej i wspierania użytkowników. Jakbyś w ogóle rozwinął te dwa wątki supportu, jak i na przykład tego generatora skryptów, bo masz tam parę takich elementów, fajnych.
Jakub Mrugalski Generator skryptów tak naprawdę to jest bardziej eksperyment, czasami ludzie z niego korzystają. Na czym to polega dla tych, co nie znają? Polega to na tym, że można opisać swój problem, co chce się uzyskać na Mikrusie. Generowany jest skrypt. Ten skrypt można odpalić na swoim serwerze. I ten skrypt może na przykład co robić? Powiem jaką domenę chcę hostować z użyciem jakiego serwera, jaka technologia i to zostanie postawione. I pod spodem to wykorzystuje po prostu modele Anthropica. Jest to w cenie. Tak to wygląda. Jeśli chodzi o inne automatyzacje. Z takich co bardzo odciążają to jest na przykład support, co znaczy system ticketowy. Jest napisany przez nas taki prosty system ticketowy, ale on sprawdza na przykład to, że jeżeli ktoś wystawi ticketa, to pierwsza rzecz jest pisane podsumowanie dla admina, co on w ogóle ma tam zrobić? Co użytkownik miał na myśli? Bo uwierzcie mi, że czasami ludzie piszą tak, że…
Szymon Warda: Wierzymy.
Jakub Mrugalski Pokazujemy sobie nawzajem i pytanie co ja mam z tym zrobić? AI sobie z tym całkiem nieźle radzi. Ale dlaczego sobie radzi? Nie dlatego, że jest inteligentniejszy, tylko dlatego, że jak podsumowuje tego ticketa, to zaciąga kontekst, czyli jakie domeny ma użytkownik, jakie ma usługi i kim on jest, co mu działa, co nie działa i na podstawie tego skleja to z tekstem i mówi: on chce restart, na tej zasadzie. Więc to też odciąża. Też automatycznie jest pisane odpowiedź na ticketa, ale to jest jako sugestia, którą trzeba zmienić, tam uzupełnić, bardziej jest taka templatka. Czyli że jeżeli w tickecie jest powiedziane, że na przykład usługa nie działa, to jest powiedziane na przykład, że działa, a czasami jest na przykład rozpisane, co zostało zrobione, aby to działało. Przy czym co zostało zrobione, to jest bardziej sugestia od AI, co powinno się zrobić, tak to wygląda. Jest też taki jeden moduł na stronie głównej Mikrusa jest ankieta: który Mikrus jest dla Ciebie? I to działa w ten sposób, że uczy się na poprzednich odpowiedziach, które do tej pory wysyłaliśmy ręcznie i jak ktoś tam wypełni tą ankietę, co chce zrobić na Mikrusie i tam jest takie pole Freeform, można napisać co się chce, to jest wysyłana odpowiedź do mnie. Ja widzę co ma lecieć do użytkownika i tam jest pełna analiza jego potrzeb, wszystko powiedziane. Jest też cebulowa analiza, czyli najmniejszy możliwy model, który powinien go zaspokoić i to jest wysyłane wtedy do użytkowników. Dlaczego to jest oszczędność czasu? Ja sobie policzyłem, że rocznie mniej więcej takich maili nam przychodzi między 2 a 3 tysiące, takich zapytań: który Mikrus jest dla mnie? I niestety wszystkie przechodziły przeze mnie. A teraz to jest tylko next, next, next i w zasadzie bez zmian można to wysyłać.
Łukasz Kałużny: Wiesz co, ja to poruszę, bo miałem taki dodatkowy Szymon, to się wtrącę i poruszę jeden ten. Bo masz wysoki bus factor w tym będąc sobą. W ogóle zastanawiałeś się co by było gdybyś, przepraszam, ale wpadł na przykład pod tramwaj, o tak?
Jakub Mrugalski Wbrew pozorom to nie jest aż takie, jakby to powiedzieć, bardzo nie do ogarnięcia, bo sporo rzeczy w firmie jest ogarnianych przez innych adminów. To znaczy ludzie kojarzą, że Mikrus równa się Mrugalski, co jest dużym problemem czasami, bo tickety zaczynają się od “Cześć Kuba”, a ja prawie ich nie robię. Ale są na przykład usługi, które ja nie wiem do końca jak działają. W sensie zostały kiedyś przeze mnie zaprojektowane, zostały przebudowane przez osoby, które są mądrzejsze ode mnie i teraz ja się uczę, jak one działają, aby o nich opowiedzieć na przykład, albo żeby umieć je debugować. Więc sporo rzeczy jest albo od zera postawionych przez kogoś innego, utrzymywanych przez kogoś innego. Ja bym powiedział, że pełnię taką rolę ogarniacza papierów, ogarniacza płatności, wiadomo, ale technologicznie jest to całkiem ładnie delegowane. Myślę, że zespół by sobie poradził technologicznie z utrzymaniem tego, tylko właśnie formalnie tutaj jest jeszcze do ogarnięcia.
Szymon Warda: Mówiliśmy sobie o AI-u. AI to są czasami oczywiście wpadki, bo to popłynie, poleci i tak dalej. Tych wpadek miałeś trochę, publikowałeś publicznie. Która Cię tak najbardziej dotknęła, albo jakbyś mógł ten temat przybliżyć?
Jakub Mrugalski Z AI-owych wpadek, to…
Szymon Warda: Albo w ogóle wpadek tak naprawdę.
Jakub Mrugalski Mieliśmy dwie wpadki związane z dyskami twardymi. Polegało to na tym, że hostujemy się u Hetznera. Hetzner także jest cebulą i wypracował swoją metodę podłączenia dysków twardych. I dyski twarde SSD NVMe podłączane są po prostu przez taką Hetznerową przejściówkę. I polega to na tym, że niestety jeżeli coś się stanie, jakiś tam przeskok energetyczny albo inne takie rzeczy, to mogą wszystkie dyski umrzeć. I pomimo tego, że stosowane są np. RAID 5, RAID 10 i tak dalej, to zdarzyło nam się i to dwa razy w historii Mikrusa, że po prostu spaliły się wszystkie dyski twarde w całym RAID-zie i to była wpadka niezła. Mamy coś takiego na stronie jak zakładka Idea Mikrusa. Tam jest podsumowane jak Mikrus działa, o co dokładnie chodzi. Jest jedna rzecz: dlaczego Mikrus jest taki tani? Jest powiedziane: zawartość Twojego VPS-a nie jest backupowana. Backupowanie jest po Twojej stronie. Jeżeli korzystasz z usług współdzielonych, to w tym momencie one są przez nas backupowane, ale nie zaglądamy do wnętrza Twoich serwerów, Ty backupujesz, tak to działa. My ze swojej strony robimy redundancję dysków twardych i tyle. Ale tak jak powiedziałem, 2 razy się zdarzyło, że to po prostu się posypało. Teraz pracujemy nad tym, żeby to się nie działo, to znaczy żeby też mieć taki backup bardziej na potrzeby adminów, nie na potrzeby użytkowników. Dla użytkowników dalej będzie komunikacja “nie ma backupu”, ale dla nas w razie jakichś takich wpadek bardziej Hetznerowych, żebyśmy się mogli z tego uratować. Tak to wygląda.
Łukasz Kałużny: Wiesz, z tymi backupami ja też, jakby niektórzy wreszcie SLA chmur poczytali…
Szymon Warda: To też jest po stronie użytkowników, nie oszukujmy się.
Łukasz Kałużny: Nie, dlatego właśnie mówię, że lubię akurat historię z GCP i kasowane duże konta przez przypadek po oflagowaniu.
Jakub Mrugalski Wiesz, to jest też taki rozrzut między hosting, chmura, VPS. Bo np. VPS-y są bardziej podobne do hostingu pod względem tego, że większość firm VPS-owych po prostu backupuje dane użytkowników. I koszt tych backupów jest doliczany do rachunku, tak to wygląda. A w przypadku chmur często jest tak, że backup nie istnieje…
Łukasz Kałużny: Bo musisz za niego zapłacić oddzielnie.
Jakub Mrugalski Musisz za niego zapłacić. A w przypadku Mikrusa nie istnieje i nie musisz płacić. No tak to wygląda. Znaczy w sensie bardziej to jest w stronę patrzeć jak chmura, którą na zasadzie stawiasz, działa, jest ok, ale gdzieś to masz jeszcze zbackupowane. Planujemy wprowadzić usługę backupu dodatkowego. Znaczy mamy teraz taki backup darmowy, że tam ktoś może jakieś pliki konfiguracyjne wrzucić, inne rzeczy, ale to jest bardziej symboliczne. Ale taki bardziej backup, żeby całą VM-kę przerzucić sobie gdzieś i trzymać.
Łukasz Kałużny: Wiesz co, to z takich rzeczy jeszcze przy automatyzacji jakbym ruszył. Bo też w niektórych miejscach mówisz o dość puszczanym, także sam wykorzystujesz dość mocno te podejście agentowe na przykład do automatyzacji i innych rzeczy, że na suma summarum nawet mimo jakichś tam wpadek jest duża wartość. Jak Ty podchodzisz do używania tego? Czy używasz właśnie na przykład Claude’a, że go wpuszczasz gdzieś na serwer przez SSH, pozwalasz mu coś robić, konfigurować? Czy jak do tego sam teraz podchodzisz?
Jakub Mrugalski Wiesz co, do debugowania nie używam w ten sposób, ale mam na przykład oddzielną maszynę dedykowaną, która jest kopią jednego z Mikrusów. I na przykład jeżeli robię jakieś prace rozwojowe i chcę zrobić testy tam obciążeniowe, albo jak coś będzie działało, to czasami robię tak, że na przykład robię przygotowanie, brainstorming, jak powinna wyglądać infrastruktura: weź mi to wdróż na takiej testowej maszynie. Ja przeglądam to ręcznie, jak to wygląda. Raz mi zaorało taką maszynę zupełnie. To znaczy ja tam po prostu, to jest maszyna testowa, więc tak jak mówię, tam jest zawsze yolo mode włączone i spoko. Puściłem tam Opusa: zrób mi analizę, zrób mi tam wszystko, zrób crash testy. A gdzie są moje dyski twarde? Więc z jednej strony mnie to zachwyciło, bo to co on robił, to on robił dokładnie to co ja chciałem zrobić. To znaczy to, co by mi zajęło wiele godzin, on zrobił w ciągu, nie wiem, 5 minut. Ale z drugiej strony trzeba mieć taką wiedzę, żeby akceptować każdą rzecz i powiedzieć, kiedy jest ten stop. Bo w momencie jak on robi sobie jakieś testy zapisu na dysku twardym za pomocą DD, to dało się to zrobić lepiej. Ale pomaga to czasami pod kwestie optymalizacyjne, czyli wrzuć wszystkie configi na przykład z NGINX-ów, tam mamy jakiś współdzielony reverse proxy i pytanie brzmi: jak zredukować na przykład ilość RAM-u o 50%? Jak on to przeglądnie, to czasami daje naprawdę fajne rezultaty, tylko człowiek musi to przetestować.
Szymon Warda: Dobra, ale Mikrus to też nie jest całkowicie… Masz tam też inicjatywy, które są powiedzmy bardziej miłe, przyjemne. Masz Nightscouta. Jakbyś mógł coś o tym powiedzieć, bo to jest bardzo fajna inicjatywa.
Jakub Mrugalski Nightscout to jest taki soft, który służy do monitorowania cukrów u dzieci. Czyli jeżeli dziecko ma założony taki czujnik specjalny, który raportuje przez tak zwaną pętlę do jakiegoś urządzenia, do telefonu najczęściej, jaki ma cukier, to rodzic, który siedzi w domu, chce na przykład wiedzieć, jaki jest poziom cukru u takiego dziecka z cukrzycą, jak ono jest na przykład na wyjeździe, na kolonii albo w szkole po prostu i chce wiedzieć na przykład, czy jakaś dawka insuliny została podana, czy też nie. To nie jest soft do sterowania tymi pompami, to jest też ważne, a przynajmniej do tego nie używają, nie powinien być, bo można sobie tam trochę przekonfigurować to. Ale chodzi o to, że rodzice, którzy dostają taki hardware, oni potrzebują mieć gdzieś software zdeployowany do sterowania tym. I były różne rozwiązania. Przez długi czas na Heroku się hostowali na wersji free. Pierwszy problem był taki, że ich wywalali stamtąd, bo to powoduje zbyt duże obciążenie. Drugi problem był taki, że wersja darmowa przestała istnieć. Przenieśli się na Fly.io i niestety im powiedzieli, że mają zrobić fly, bo to też jest za duże obciążenie, nie chcą ich tam trzymać. Wszyscy polecali: dlaczego nie Oracle 24 GB za free? No to to jest najszybszy sposób na bana, czyli odpalić tam Nightscouta. Nightscout jest aplikacją ciężką. Jest złożona tak naprawdę z trzech części, tam są trzy aplikacje złożone w całość. Ale podeszliśmy do tego tak, że odezwał się do nas jeden człowiek i zapytał, czy moglibyśmy to hostować. Jak odpaliłem, to stwierdziłem, że nie ma szans. To jest naprawdę ciężkie. Ale pojawił się człowiek, który zoptymalizował instalator tak, żeby dostosować to do Mikrusa i to obniżyło obciążenie drastycznie, bo to było skrojone tylko pod nasz hosting. Ale pomyślałem nadal mnie to będzie bardzo boleć hostowanie tego. I my wtedy zoptymalizowaliśmy jeszcze system operacyjny. System operacyjny skrojony tylko pod Nightscouta, nawet dystrybucja się nazywa Ubuntu Nightscout. I ona jest po prostu instalowana w momencie jak ktoś Nightscoutem chce zainstalować ten soft. I wtedy to już jest naprawdę lekki soft. To znaczy może nie taki bardzo lekki, ale chodzi o to, że jeżeli jest wszystko dobrze skonfigurowane, to da się to hostować i prawdopodobnie Mikrus jest taką najbardziej cebulową wersją, gdzie to można trzymać. Też jest współpraca nawiązana z taką grupą Technologie Diabetyka, która gromadzi użytkowników Nightscouta. I tam polega na tym, że oni mają po prostu mocne serwery w cenie najtańszych możliwych serwerów oferowane. Więc tak naprawdę płacą za miejsce, a dostają dedykowany soft, dedykowaną dystrybucję, dedykowane wszystko. Tak to działa. No i adminów.
Łukasz Kałużny: A powiedziałbyś jedną rzecz, bo ja pamiętam z Twoich materiałów, że też miałeś ciekawe rozkminy prawne na temat tego, żeby…
Jakub Mrugalski Tak.
Łukasz Kałużny: Jakbyś powiedział też od strony takiej…
Jakub Mrugalski Od strony prawnej.
Łukasz Kałużny: Problem, który miałeś, bo jest ciekawy w tym miejscu.
Jakub Mrugalski Problem polega na tym, że Nightscout służy do monitorowania czynności życiowych, jest softem, który jest medyczny. Nie można tego hostować tak legalnie, na zasadzie nie mogę oferować hostingu tego typu. Ale jak się to da obejść? To też było konsultowane z prawnikami. Polega to na tym, że dystrybucja jest gotowa do użycia, ale użytkownik, czyli taki rodzic, musi wejść na serwer, oni nie umieją po SSH, więc dla nich jest wystawione WebSSH i tam po prostu odpala sobie instalator, sam konfiguruje, sam stawia. I w momencie jeżeli użytkownik robi to sam, to to jest jego soft. To już nie jest SaaS, to już nie jest nic, on po prostu zainstalował to.
Łukasz Kałużny: Nie jest coś, nie świadczysz usługi do danych medycznych.
Jakub Mrugalski Nie jest to usługa medyczna, więc wtedy można to zrobić. Jest to pewne obejście, ale niestety się nie da. Jest podobna inicjatywa w Niemczech na przykład, ale tam jest zupełnie inne prawo i tam można to świadczyć, tylko oni kasują grubszą kasę za to i to się nie opłaca. Tak to wygląda.
Szymon Warda: Dobra, bo w sumie Mikrusa już ciągniesz jakiś czas. Też miałeś inne wpisy odnośnie tego właśnie, że część właśnie vibe’ujesz odnośnie (ns) i tak dalej. Gdybyś teraz startował od zera, co byś zmienił? I ile by Ci to zajęło mniej więcej?
Jakub Mrugalski Najważniejsza rzecz to nastawić się na skalę. Bo Mikrus był przeliczony tak, że 2 serwery powinien zająć mniej więcej. Jak będzie dobrze, to 3. I pierwszą wpadkę jaką zrobiłem była taka, że jak nazwać serwery? No ja byłem bardzo kreatywny, to znaczy po prostu nazwałem je literkami: serwer A, B, C. Problem jest w tym, że alfabet się szybko kończy. I jak cała infrastruktura bazuje na alfabecie i to takim polskim alfabecie, to się sypnie. Przy dojściu do literki Z, to już jest bardzo źle i to wymagało przepisania całego softu. To jest duży problem. Śmieszny może, ale to było absurdalne. Nie zakładałem, że tego tyle będzie. Kolejna rzecz, nie startowałbym na pewno w firmie, w której startowałem na początku. Szedłbym od razu w dyski SSD NVMe, bo okazuje się, że na Mikrusie procesor raczej się nudzi, a dyski twarde są zajeżdżane bardzo. I startowanie na dyskach typowych talerzowych było błędem, bardzo dużym błędem, więc w ogóle bym tego nie dotykał. Więc znalazłem najtańszego dostawcę największych dysków, które nie są talerzowe i poszedłem w technologię, która zdecydowanie jest rozwijana, a nie na wymarciu. Bo jak ja zaczynałem prowadzić Mikrusa, to wybrałem OpenVZ-ta, bo akurat w poprzedniej firmie na tym pracowaliśmy, ale już wtedy to było end of life. No i to było duże ograniczenie. A przejście z technologii, która umiera, na technologię, która jeszcze działa, to też jest mnóstwo pracy, mnóstwo przepisywania softu. Gdybym miał to streścić, myśleć przyszłościowo, to się kiedyś, jest szansa, że rozwinie. I zadać sobie pytanie na przykład: a co by było jakby to miało 10 000 użytkowników? Gdzie będzie wąskie gardło? Tak bym na to patrzył.
Szymon Warda: Jasne. Dobrze.
Łukasz Kałużny: To co, kończymy chyba, było fajne parę takich ciekawostek i przemyśleń. Dzięki, że znalazłeś dzisiaj czas, bo Kuba był strasznie zabiegany.
Jakub Mrugalski Dzięki za zaproszenie.
Szymon Warda: Dzięki. Hej!
Łukasz Kałużny: Trzymajcie się, hej!
Jakub Mrugalski Hej!

Wypełnij poniższy formularz, aby być na bieżąco ze wszystkimi
odcinkami Patoarchitektów
i uzyskać dostęp do dodatkowych
materiałów.