Why nobody in their right mind builds a large monolith today?

Поділитися
Вставка
  • Опубліковано 19 гру 2024

КОМЕНТАРІ • 48

  • @danieldaniel4663
    @danieldaniel4663 Рік тому +2

    Bardzo dużo konkretnej wiedzy, przekazane krótko zwięźle. Brawo!

  • @krzysztofbardzinski
    @krzysztofbardzinski Рік тому +12

    Świetna odpowiedź o bezsensie szacowania przy braku wiedzy z przeszłości

  • @abartosz
    @abartosz 7 місяців тому +3

    Smuci mnie jak wiele z tych antypaternów, o których wspominałeś występowało w mojej poprzedniej pracy... Ale cieszy mnie, że zmieniłem pracę na BEC. Liczę, że skoro zaprosili takiego prelegenta, to dbają o dobrą architekturę.

    • @CzyDe
      @CzyDe 3 місяці тому

      I jak wrażenia?

  • @j-krolik
    @j-krolik Рік тому +1

    1:26:09 czy ktoś wie o jakim konkretnie nagraniu mowa?

    • @JakubNabrdalik
      @JakubNabrdalik Рік тому

      Chodziło mi o stronę en.wikipedia.org/wiki/Fallacies_of_distributed_computing

    • @j-krolik
      @j-krolik Рік тому

      @@JakubNabrdalik dziękuje!

  • @krzysztofwroblewski9417
    @krzysztofwroblewski9417 Рік тому +1

    1:08:48 wspominany jest pattern którego nazwy że słuchu nie udało mi się rozkodować. Można prosić o zapisanie?

    • @hawi74
      @hawi74 Рік тому +2

      Strangler pattern

  • @paweskarzynski8068
    @paweskarzynski8068 Рік тому +8

    1:1:50 - niech rzuci kamieniem ten, kto we własnym jednoosobowym projekcie nie musiał rozwiązywać merge conflictów ;-)

  • @korniszon68
    @korniszon68 Рік тому +2

    Git człowiek!

  • @Mathes881
    @Mathes881 Рік тому

    Skad najlepiej czerpac wiedze dotyczaca tych pul wątków (na request, bazy danych itp), zuzycia cpu itp? Od teorii po praktyke? Zeby moc sie tym pobawic w lokalnych warunkach.

    • @ArekTheBoss
      @ArekTheBoss 6 місяців тому

      Co masz konkretnei ma nysli? Teorię dotyczącą pól wątków? W zależności od technologii w któej pracujesz to w dokumentacji (trudna ściezka dla nowicjusza) lub różnego rodzaju kursach online (któe co prawda często są ogólne i prawie zawsze nei wyczerpują tematu ale dla nowicjusza to imho ok). Jeżeli chodzi o praktykę to, zakładając, że masz jakąś aplikację która działa i jest od nie jakich ruch, możesz ywykorzystać metryki (grafana, prometheus itp) gdzie możesz sobie wizualizować właśnie takie rzeczy jak utylizacja wątków itp.

  • @BookBacklog8511
    @BookBacklog8511 Рік тому +2

    jak zrobić spójny backup danych w sytuacji 10^X mikroservisów z własnymi bazami ?

    • @JakubNabrdalik
      @JakubNabrdalik Рік тому +3

      Co to jest spójny backup mikroserwisów?
      I do czego ma służyć?

    • @mrngwozdz
      @mrngwozdz Рік тому +1

      Możliwe, że bazy danych są oparte o sequencery i w takim przypadku spójny backup danych jest niezbędny ponieważ istnieje ryzyko że dane pomiędzy serwisami się rozsynchronizuja i będą wskazywać na id, zupełnie innego rekordu niż pierwotnie.
      W takim scenariuszu to nie backup jest problemem tylko niepoprawnie zaprojektowane mikro serwisy/tabele bazodanowe. W sumie nie za często spotykam się z omawianiem tego problemu na prezentacjach, a źle zaprojektowana baza danych z mojego doświadczenia to największa kula u nogi projektu.

    • @JakubNabrdalik
      @JakubNabrdalik Рік тому

      ​@@mrngwozdz Ciekawa uwaga. Ale się z nią nie zgadzam. Nie widziałem przypadku by ktoś wykonywał backup baz wszystkich mikroserwisów na raz i oczekiwał w tym backupie spójności. No bo niby czemu miałoby to służyć, skoro cały system i tak musi być zbudowany w oparciu o effectively-once delivery, oraz przywracanie danych każdego mikroserwisu jest kompletnie niezależne od pozostałych?
      Chyba nie mówimy o tym samym. Wspominasz o źle zaprojektowanej bazie jako problemie projektu, podczas każdy z mikroserwisów ma swoje własne bazy, enkapsuluje dane, ma swoje własne read-modele (zawsze nieaktualne), i idealnie powinien mieć w dupie co się dzieje w pozostałych mikroserwisach (resiliency).
      Pewnie łatwiej byłoby się dogadać jakbyśmy przyjeli jakieś założenia (np: event-driven na k8s z PostgreSQL, Redis lub MongoDB per serwis i Kafką z topic'ami z nieskończoną retencją gdzie pasuje + read modele w oparciu o compacted topics i Kafka Streams). Na przykład takie coś gitlab.com/jakubn/usage-analyzer/-/blob/main/README.md?ref_type=heads
      Możesz na tym przykładzie wytłumaczyć do czego miałby służyć "spójny backup danych"?

    • @mrngwozdz
      @mrngwozdz Рік тому

      ​@@JakubNabrdalik Dzięki za odpowiedź. Zacznijmy od tego że rozmawiamy o problemie który faktycznie występuje w projektach, ale nie powinien istnieć w przypadku prawidłowo wykonanej architektury mikrousługowej.
      Spróbuję wyjaśnić prawdopodobny problem kolegi @mariuszgodziszewski8511 na przykładzie z życia, gdzie sam ostatnio miałem "przyjemność" pracować przy projekcie gdzie taki "spójny backup danych" występował.
      Projekt całkiem spory, wszystko na rhelu z openshiftem na pokładzie (Self-managed) i oczywiście mikrousługami. Problem pojawił się taki, że osoby które prowadziły ten projekt wcześniej pracowali na monolitach i wszystkie tabele w bazach danych były na sequencerach. Dane pomiędzy serwisami często były powiązane właśnie po nich co doprowadziło do sytuacji gdzie w jednym module, odpowiedzialnym za raporty coś się mocno podziało nie tak, na tyle że trzeba było przywracać bazę danych.
      Gdyby została przywrócona tylko baza danych w module raportującym, okazałoby się że serwis, który wiązał po id z raportami zacząłby dostawać nie swoje raporty (do czasu wyrównania sequencerów do stanu poprzedniego).
      I tak o to powstała potrzeba przywracania baz danych dla wszystkich mikrousług, bo jeden z serwisów miał problem.
      Pewnie dla Ciebie opisana sytuacja jest niedorzeczna bo jest to zwyczajnie kardynalny, podstawowy błąd. No ale cóż, tak to wygląda w wielu projektach szczególnie gdy ktoś przechodzi z pisania monolitów do mikrousług.
      Podsumowując "spójny backup danych" jest odpowiedzią na problem, który nie powinien istnieć przy dobrze zaprojektowanej architekturze, co zresztą udowadniasz dziwiąc się na tak zadane pytanie.
      Także @mariuszgodziszewski8511 - jeżeli doszło do sytuacji, że potrzebujecie takiej funkcjonalności to znaczy że coś mocno poszło nie tak.

    • @JakubNabrdalik
      @JakubNabrdalik Рік тому

      @@mrngwozdz Wow, dzięki za odpowiedź. To faktycznie sytuacja chora w samych założeniach.

  • @maciej12345678
    @maciej12345678 9 місяців тому

    2:31 os/360 IBM do 1979 roku większość projektów upadała więc matematycy (KNUTH) (kryzys programowania) zajęli się sprawą żeby uporządkować sprawy a inny wymyślili programowanie obiektowe w c++ (sorry C) 6:32 tak jak pisałem (ale cicho sza o kryzysie programowania) a teraz rozwiąniem ma być ML i w ogóle wszyscy na bruk... coś co nie potrafi między 2 a 4 zdaniem dostrzec sprzeczności z drugiej strony taki system jest chyba nie możliwy według niezupełności arytmetyki tw. Godla .. czyli niemożność zautomatyzowania matematyki .. ale lepiej nie mówić o tym co nie działa albo jest sprzeczne i trudne do odkręcenia grunt że nowe rzeczy powstają nowe typy procesorów PCM zamiast HBM może kiedyś memrystory ... nowy hype AGI za 3 lata.. a ja myślę że Winter is Comming Again AI Winter.. 14:14 to nic innego jak modele w logice i podejście no właśnie formalizacji do matematyki bazując na kryzysie po 1930 czyli tworzenie modeli.. meta meta meta ... model może zautomatyzować te meta.. no tak ML ... end

  • @krzysztoft5897
    @krzysztoft5897 10 місяців тому

    2:22:55 - mega szacunek Jakub za ten tekst, to właśnie pokazuje patologię pod tytułem "outsourcing". Inaczej zwany al...ierą :)

  • @marcinb7578
    @marcinb7578 9 місяців тому

    Jakiego tabletu używa tutaj Pan Jakub, że tak fajnie może rysować LIVE?

    • @ArekTheBoss
      @ArekTheBoss 6 місяців тому

      ja tam widzę makbuka

    • @marcinb7578
      @marcinb7578 6 місяців тому

      @@ArekTheBoss Musisz mieć bardzo dobry wzrok 😄W której minucie?

    • @MateuszSiemieniuk97
      @MateuszSiemieniuk97 6 місяців тому

      @@ArekTheBoss Bardzo prawdopodobne. W 1:10:44 wspomina o AirPlay. :)

    • @rafald5097
      @rafald5097 5 місяців тому

      ipad, ale nie wiem, który pewnie pro

  • @mariuszsiera
    @mariuszsiera Рік тому

    Smutne/zabawne jest to, że z tego powodu, że programiści nie potrafią się dogadać, tworzą skomplikowane (rozproszone) architektury, żeby uniknąć bólu związanego z komunikacją z ludźmi...

    •  Рік тому

      Conway's law

    • @seNick7
      @seNick7 11 місяців тому +5

      Dogadać? Jak masz 50,100,200 osób w projekcie to nie nazwałbym tego "dogadaniem". A co dopiero w ogromnych projektach? To jest niewykonalne. Do 20 osób może można się "dogadać".

  • @ForgottenKnight1
    @ForgottenKnight1 7 місяців тому +1

    Title in English, video in Polish. Good job, kurwa :)

  • @qbakuba2057
    @qbakuba2057 Рік тому +5

    Gościu zna się na rzeczy

    • @krystianlaskowski
      @krystianlaskowski Рік тому +1

      Skąd wiesz? Bo brzmi mądrze? 😅

    • @qbakuba2057
      @qbakuba2057 Рік тому +5

      @@krystianlaskowski bo mówi o moim doświadczeniu. Przerabiałem to co on i się z tym zgadzam. To co proponuje jest lepszym rozwiązaniem niż popełnianie błędów które są w necie i wielu firmach IT.

  • @nunu-p8s
    @nunu-p8s Рік тому +6

    Jaki cel ma nawiązanie w tytule do zdrowia psychicznego?

    • @nanoGPT
      @nanoGPT Рік тому +2

      clickbait
      microservice dobre
      dzielenie roboty
      (1h)

    • @Rafa-wf3ui
      @Rafa-wf3ui Рік тому

      Na confiturze prowadzil prezentacje bardziej na temat zdrowia psychicznego ;)

    • @JakubNabrdalik
      @JakubNabrdalik Рік тому +4

      W książce podanej w 5:45 masz odpowiedź

    • @EASYPWNAGE
      @EASYPWNAGE Рік тому

      @@JakubNabrdalikczy prezentacja jest może dostępna pod jakimś URL?

    • @ArekTheBoss
      @ArekTheBoss 6 місяців тому

      Na confiturze 2023 jest talk jakuba o zdrowiu psychicznemu i wymienia tam kilka rzeczy któe pozwalają lepiej o nie zadbać dzięki mikroserwisom (continuous deployment, observability, autonomy, tdd itp). Pracowałem w zespole rozwijającym mikroserwis który miała utonomię i przykładał uwagę do testów -> teraz pracuję w zespole dopisującym ify w monolicie bez testów z releasem raz na kwartał i manualnymi testerami którzy są klikaczami i jednak poziom wygody a przez to stresu pogorszył się o kilka rzędów wielkości przez co myślę o zmianie.

  • @JuniorJavaReady
    @JuniorJavaReady Рік тому

  • @ambrozykleks626
    @ambrozykleks626 Рік тому +1

    Bo nie umieją. Cieniasy. Nie obejrzałem minuty i już wiem dlaczego..

    • @takiezycie11
      @takiezycie11 10 місяців тому +2

      Dzban detected

    • @ambrozykleks626
      @ambrozykleks626 9 місяців тому

      @@takiezycie11 Pan Jakub nie zasłużył na takie słowa. Popitolił, ale jest fajny.

    • @ArekTheBoss
      @ArekTheBoss 6 місяців тому

      @@ambrozykleks626 xD

  • @piotrz9546
    @piotrz9546 2 місяці тому

    3:33 Panie Nabrdalik ach, no tak, bo przecież prawdziwy dział QA to elita, a testerzy manualni to tylko tacy od klikania przycisków. Jakież to wzniosłe podejście! Zapewne każda aplikacja naprawi się sama, jeśli tylko dostatecznie długo popatrzymy na wykresy i automatyczne testy, prawda?