Wpis z mikrobloga

Zdarza mi się czasem pracować jako konsultat. Przypomniała mi się dziś jedno fajnie zlecenie którym chyba warto się podzielić.
Trafił mi się projekt ładnych pare lat temu w którym firma przeszła w chmure i koszty poleciały pod sufit. Miało być taniej, a było dużo drożej. Architekt twierdził że to tak ma być, bo duży ruch, koszty instancji etc. Miałem zweryfikować czy to ma sens, bo szef projektu zaczął coś nie ufać swoim "specjalistą". Firma mała ~100 ludzi. Nie bezpośrednio w branży it.
Projekt typowy. Zero dokumentacji architektury, spisanych decyzji po co i dlaczego coś mamy. Przeglądam sobie, sporo kasy idzie w bigqueryh (pewnie dużo danych mają), ale k8s i jakieś maszynki też swoje kosztuą. Widzę że mają parę instancji pod k8s i że hostują w nim aplikację która dostarcza kolejki. Pytam się po co im ta aplikacja zamiast jakiś pub/sub. Dostaje informacje że to dlatego że może być duży ruch, musi być wiele instancji bo wszystko musi zawsze działać. Ok, co to znaczy duży ruch? Deweloper co stawiał instancje nie wiedział xD PO mu tak powiedział, task był, to zrobił. No to pytanie do PO jaki ruch może być ile klientów etc. On powiedział że klientów dużo bo z 300 nawet. Tygodniowo xD. 300 osob korzystało z ich apki w tygodniu wysyłając pewnie po 100-200 requestów, bo to narzędzie wewnętrzne. Ale podobno operują na dużych danych. Jak dużych? Zaraz się dowiem bo mi wysle exela z nimi ;)
Duże dane według PO to takie że exel się nie otwiera na słabszych komputerach. Czy to coś ma wspólnego z kolejką? Nie ma xD, dane wrzucili na bigquery po kolejce latały requesty które triggerowały obliczenia na nich. No dobra to skąd te rachunki tak duże, jak danych tak mało? Mieli mały cron który pobierał statystyki. Po pobieraniu robił on pewną walidację używając do tego frameworka do testów odpalonego na folderze z całym projektem. Przy okazji odpalały się testy całego projektu które pobierały dane z biguqery (testy e2e?). Cron odpalany był pare razy na godzine xD 2k zł dziennie ich to kosztowało xD Dev zdawał sobie z tego sprawę, ale nikt mu nie powiedział że koszty mogą być problemem xD
A wracając do kolejek. Przeglądając jire znalazłem taska z gigantyczną ilością godzin zalogowanych na problemy z kolejkami. Wyglądalo że systematycznie po weekendach coś się psuje. Powiem tylko tyle że ktoś ustawił okno serwisowe podczas których kluster był aktualizowany etc, i aplikacja była źle skonfigurowana. Architekt na debugowanie ustawien okna serwisowego spędził 6 miesiecy (stawka oczywiście godzinowa xD). .Jednym z komentarzy było to że to ktoś z googla im psuje kluster co sobote xD. Nawet tickety w tej sprawie do googla słali ;)

Koniec końców koszty spadły do paru k, szef zwolnił architekta xD #programista15k #it #programowanie
  • 32
  • Odpowiedz
via Android
  • 6
@WyjmijKija Z tym też znam fajna historię. Spotkałem pracownika w dwóch firmach które audytowalem w obrębie paru tygodnii :D Szef nie był zadowolony.
  • Odpowiedz
Koniec końców koszty spadły do paru k


@pkh: A w ujęciu procentowym koszty o ile tak pi razy drzwi spadły, bo jaka była baza? 2k x 30 dni?
  • Odpowiedz
@pkh: mnie raz wzięli do dupnego zagranicznego korpo gdzie wisiały taski od 3 lat nie ruszone. Nie wiem jak pracowała poprzednia zewnętrzna firma, za co im płacili itp. Takie gówno tam mieli... Setki wiszących tasków. Ja nie wiem czy oni rozwiązywali tylko te najprostsze, a resztę zostawiali "na później" czy ki #!$%@?.
  • Odpowiedz
@pkh: Pomijając już, że kolejkę hostowali na kubernetesie i źle ją skonfigurowali, to dlaczego rekomendowałeś zamianę kolejki na pub/sub? Jak się użyje jakiegoś chmurowego dostawcy kolejki (gdzie się płaci za liczbę wiadomości) to chyba nie będzie z nią dużo więcej zachodu ani kosztów niż z pubsubem?
  • Odpowiedz
via Wykop
  • 5
@Ranmus: Z ok 100 do jakies 5-9k. Tam jeszcze sporo kasy szło w k8s ze względu na jakosć kodu produktu, ale to też poprawiono potem.
  • Odpowiedz
via Wykop
  • 4
@cebulowy_krezus: Cennik pub/suba jest dość zagmatwany, ale wiedziać mniej wiecej ile masz danych można policzyć to. I zazwyczaj wychodzi to dużo taniej niż osobna instancja która robia za system kolejkowy. Ale to trzeba już policzyć (chodz tutaj przy takiej małej ilości danych to wychodziły jakieś dosłownie grosze). Dlatego to moim zdaniem lepsze rozwiązanie niż stawianie samemu 3 instancji rabbitta. Plus to że trzeba się na tym znać i wiedzieć jak o
  • Odpowiedz
@pkh: No tak, ale mi chodzi jedynie o to czemu tu preferujesz chmurowy pub/sub od chmurowej kolejki. Chmurową kolejkę możesz dostać nawet za darmo (np amazonowy SQS o ile zmieścisz się w limicie 1 mln requestów/miesiąc). W żadnym razie bym nie chciał samemu stawiać rabbita dla takich małych ilości danych
  • Odpowiedz
Cron odpalany był pare razy na godzine xD 2k zł


@zybyzy: Cronem nazywa się proces, który startuje wg jakiegoś harmonogramu, np 1 raz na tydzień o 5 rano albo 10 minut po każdej pełnej godzinie. Koszt odpalenia crona jest znikomy. Akcja to może być coś bardzo lekkiego, np. spinguj serwer i sprawdź czy nadal odpowiada

Tutaj chodzi o to, że ten ich konkretny cron odpalał się często i miał pod sobą
  • Odpowiedz
  • 0
@cebulowy_krezus dzięki za odpowiedź, jeszcze jak mogę to dopytam. Pytam jako laik więc się nie znam. Czemu coś co (wg mnie) robi się samo/automatycznie - kosztuje te 16zl za akcję?
  • Odpowiedz
@pkh zamiast dołączyć do zespołu i uszczknąć dla siebie poprawiając to kolejne 3 lata to zarznales krowę, ehh amatorka. Ale pewnie uśmiech i uścisk dłoni prezesa to wynagrodził ( ͡º ͜ʖ͡º)

  • Odpowiedz
via Wykop
  • 1
@cebulowy_krezus: a dobra, na gcp masz taski. Kiedy ktoś mówi kolejka to rozumiem usługe googlowską pub/sub. Taski są pewnie lepszym rozwiązaniem przy tak małym ruchu. Ale wydaje mi się że staneło na pub/subie. Ale to było już ponad 3 lata temu i moge się mylić szczerze mówiąc.
  • Odpowiedz
@zybyzy: Robi się automatycznie, ale to się dzieje na serwerach. Dostawca chmury musi te serwery kupić, zapłacić za prąd, zapłacić za konfigurację i utrzymanie, no i jeszcze na tym zarobić.

Alternatywnie jak nie chcesz korzystać z chmury, to musiałbyś sobie kupić komputer, postawić te wszystkie usługi sam, robić aktualizacje sam, konfigurować sam, opłacić prąd samemu itp
  • Odpowiedz
zamiast dołączyć do zespołu i uszczknąć dla siebie poprawiając to kolejne 3 lata to zarznales krowę


@seniorwykopek: Tylko tutaj ten architekt nie był cwaniakiem. On był debilem. Jakby te usługi działały tanio i stabilnie (za to ma płacone architekt) to on by sobie mógł robić taski na poprawianie jakichś głupot a w tym czasie się #!$%@?ć. I nikt by nie zarządził audytu, bo wszystko by działało jak trzeba. A tu wychodzi,
  • Odpowiedz
Koniec końców koszty spadły do paru k, szef zwolnił architekta xD


@pkh: Biedaczek, przez te pare miesiecy zgarnal pewnie pol miliona, jak on sobie poradzi.
  • Odpowiedz