#58 Patoarchitekci Short #16

2023, Jan 20

Sprawdź Patoszkolenia!

➡️ 04.06.2024 Architektura 101

➡️ 18.06.2024 Observability

Tym razem sprawdzamy, co ciekawego słychać w świecie GPT-3 i zabezpieczeń z nim związanych. Dodatkowo trochę o wykorzystaniu mono-repo, GitHubie i Backstage!

Słuchasz Patoarchitektów dzięki Protopii. Sprawdź, jak Patoarchitekci i Protopia mogą Ci pomóc ➡️ protopia.tech

Linki i ciekawe znaleziska:

Transkrypcja

Łukasz Kałużny: Cześć. Słuchacie Patoarchitektów Short! Prowadzą Łukasz Kałużny.

Szymon Warda: I Szymon Warda. Wszystkie linki do tego odcinka: jak zwykle - patoarchitekci.io/58. No to Łukaszu lecimy z linkami. Co masz ciekawego?

Łukasz Kałużny: Dobra, Tylko taka podpowiedź. Szymon mnie ciągle robi tutaj i chce zobaczyć, nagrać reakcję jak to tam się nazywa Blindspot Reaction czy jak to tam się zwało. Czyli nie chce-

Szymon Warda: Nie pokazuje ci linków.

Łukasz Kałużny: Tak, nie pokazuje mi linka dopóki nie będzie… Ale lecimy z moim. Ciekawostka ciągle internet. I pewnie nie tylko w mojej bańce pojawiają się co kolejne wpisy o API z wykorzystaniem GPT Trójki.

Szymon Warda: No, jest wszędzie.

Łukasz Kałużny: Tak, i Chat-GPT, czyli tego DaVinci i w ogóle. I rzecz genialna, że jeżeli AI ma być jedną z ficzerów naszej aplikacji promowaną, to użycie tych API nie jest do końca dobrym pomysłem, bo konkurencja może je bardzo szybko wygrzebać. I bardzo fajny wpis pokazujący nowy rodzaj ataków, bo to prawdopodobnie trafi do jakiegoś OASP-a koniec końców i to dość szybko.

Szymon Warda: Oczywiście, i już tak było parę razy.

Łukasz Kałużny: Tak, ale że trafi teraz coś takiego? Dlaczego mówię OASP? Bo kojarzymy wszyscy SQL Injection.

Szymon Warda: Oj, obecnie jest chyba na drugim miejscu o ile pamiętam, z pierwszego spadło.

Łukasz Kałużny: Tak, ale było zawsze wysoko. Jest to realny problem, o tak, jest to… Był… Przez długi czas był to realny problem, jeżeli ktoś nie korzystał z gotowych frameworków. Tak poleciało na 3 bo aż sprawdziłem szybciutko. No ale wracając, pojawiło się nowe zagrożenie, które się nazywa pięknie prompt injection.

Szymon Warda: Czyli podawanie zmiennych parametrów.

Łukasz Kałużny: Tak - i jest cały pokazany reverse engineering. Jest sobie taki produkt Notion, dość fajny do robienia notatek pracy zespołów, etc. I wprowadzili tam de facto coś co się nazywa NotionAI, czyli jakieś tam zestawy pomocy, żeby przerobił nam nasze notatki, czyli AI Assistance, który “pomóż mi napisać”, “kontynuuj pisanie”, “wymyśl jakiś tam brainstorming, idea, zsumaryzuj, przerób to na listę punktów, minutek ze spotkania, czy zrób z tego agendę. Po prostu taka AI-owa asystentka, co by się trafiało, że to bardzo naturalny kierunek wykorzystania takich produktów.

Szymon Warda: Łatwy, powiedzmy sobie tak naprawdę w ogóle.

Łukasz Kałużny: I ma ułatwić człowiekowi. I teraz, co jest najlepsze. Oczywiście koleś siadł i zrobił reverse engineering tych promptów i pojawiła się publicznie cała lista promptów, z których NotionAI… Jak układa Twój tekst i jakim promptem steruje tym GPT.

Szymon Warda: No OK.

Łukasz Kałużny: I to pokazuje jakie jest zagrożenie, jak łatwo będzie przez takie pokazanie takich pomysłów… Ciekawe jak szybko te produkty dorobią się ochrony. Bo Ty bierzesz sobie, mówisz, że jesteś najlepszy i w ogóle, ale całość polega na tym, że masz w jakiś sposób specyficznie dotrenowany ten model. Dodając swoje rzeczy. Albo wynalazłeś super prompty, którymi wiesz, że przetestowałeś w iluś tam warunkach i wiesz, że działają.

Szymon Warda: Znaczy wydaje mi się, że cały rynek w ogóle ułożenia wokół GPT-3 a potem GPT-4… póki się to nie Ułoży w dobry produkt… Wydaje mi się, że tutaj MS jest na dobrej drodze mimo wszystko generalnie, bo faktycznie już teraz zaczęli to robić. Kto to będzie? Dzika amerykanka kompletnie. To będą próby, tak samo jak były początki. Jak mieliśmy home automation całe, internet of things, to wszystko leciało po zwykłym http, certyfikaty były na urządzeniach itd. Szaleństwo.

Łukasz Kałużny: W sensie układanka architektoniczno… inżynierii oprogramowania… Nie istniała.

Szymon Warda: Tak, to samo będzie z całym AI-em wokół tego. Potrzebujemy kilku lat, podejrzewam, na to. Bo to się nie wydarzy szybciej.

Łukasz Kałużny: Tak. Jeden jest, tylko jestem ciekaw, bo nie zaglądałem - to tylko z announcement’ów… Tak jak nagrywamy. Czyli dzisiaj jest wtoreczek 17’go. To Microsoft już chyba pokazał tego GI’a, Azure, OpenAI Services; jako usługi Enterprisowej. Sądzę, że te bolączki, tą technikę, o której teraz rozmawiamy… Inaczej… Może ręki nie dam sobie obciąć, ale o flaszkę się mogę założyć, że nie ma tam żadnej ochrony przed tym.

Szymon Warda: Ależ oczywiście, że nie ma tam żadnej ochrony przed tym. Tylko pytanie jest takie. Kto ma dostatecznie dużo kasy, żeby przesypać, żeby jak najszybciej te dodatki pododawać. Po prostu. MS ma dużo kasy. Nie oszukujmy się.

Łukasz Kałużny: Raczej wsypał teraz te 10 mld w OpenAI’a.

Szymon Warda: Tak, tak, to się będzie rozwijało.

Łukasz Kałużny: Tak, to się będzie rozwijało, więc ciekawe, czy o czymś takim pomyślą.

Szymon Warda: Są korporacyjni. Pomyślą na pewno.

Szymon Warda: Zresztą nauczyli się jak wypuścili swojego chatbota swego czasu, który zaczął być nazistą, więc wydaje mi się, że mają doświadczenie.

Łukasz Kałużny: Uczył się z Twittera..

Szymon Warda: Nienajlepsze miejsce do nauki

Szymon Warda: ,powiedzmy sobie…

Łukasz Kałużny: Dobra, a Ty co masz?

Szymon Warda: Ja mam link, który zakończy w końcu jedną z wielkich rozmów, dyskusji w całym developmencie i architekturze i układaniu projektów. Jedną z wielkich, wielkich dyskusji.

Łukasz Kałużny: No dobra, dajesz.

Szymon Warda: Ciekawe, jaki temat może być, no nie?

Łukasz Kałużny: No to dajesz.

Szymon Warda: Kojarzysz Ubera? Oczywiście, że kojarzysz Ubera.

Łukasz Kałużny: Kojarzę.

Szymon Warda: No nie? No to Uber słynął swego czasu z tego, że Uber miał tysiące rep i tysiące serwisów i tak dalej.

Łukasz Kałużny: Leciał i developujemy nowy, stary porzucamy, niech umrze.

Szymon Warda: No to uber obecnie ma mono-repo…

Łukasz Kałużny: To taki link na dzisiaj wyciągnąłeś.

Szymon Warda: Ja mam taki link na dzisiaj.

Szymon Warda: Ale link jest naprawdę dobry. Bo o czym jest… to jest z artykułu Ubera, który mówi… bo to jest nie tylko o monorepo, ale generalnie, ale naprawdę jestem pod wrażeniem. To jest o tym, jak stworzyli środowisko remote’owe, zdali środowisko do developmentu, bo czemu przeszli na monorepo? Bo stwierdzili… I w ogóle, jak całą drogę zrobili. To jest niesamowite, ponieważ po pierwsze stworzyli komitet, który ujednolicał wersje paczek.

Łukasz Kałużny: Czy wiesz co… Ja Ci powiem co zrobili. Bo ja teraz oglądam już to, co jest tu pokazane. Oczywiście zostawili pewną dowolność, ale jedna rzecz Szymon, idę o zakład znowu,

Szymon Warda: No…

Łukasz Kałużny: Że w tym komitecie piątka ludzi była z tooling’u z googla.

Szymon Warda: Tak, bo to to śmierdzi googlem na dość dużą odległość, ale teraz drogę jaką zrobili i tu jestem pod wrażeniem. Po pierwsze zrobili komitet, który ustala wersje żeby była jedna wersja tej samej biblioteki we wszystkich produktach. Podziwiam. To jest niesamowity wyczyn.

Łukasz Kałużny: Ale to jest google. Autoupdate’owanie google’a.

Szymon Warda: Znaczy ja to nazywam zamordyzmem. I to jest pozytyw generalnie, bo dużo łatwiej się dogadać na poziomie ludzkim, miękkim niż na takim technicznym, rozwiązując problemy, które nie istnieją. Ale to, co mnie interesuje - do czego doszli, że to repo mają teraz ogromne. Więc teraz stwierdzili, że co, że nie będą de facto robili developmentu na maszynach lokalnych bo to po prostu nie ma w ogóle żadnego sensu, bo to trwa zbyt długo, tylko przeszli całkowicie w tworzenie środowisk zdalnych w chmurze, które chodzą tam właśnie na procesorach… 96 core’ów, chodzą na Ryzenach, powiedzmy sobie szczerze i tam są developowane. I teraz co mnie w tym wszystkim zastanawia, generalnie, bo to, co jak oni, jakie zyski pokazali, to było to, że: zbudowany kesz, ujednolicenie toolingu, sklonowane repo i tak dalej. To nie są rzeczy, które nie dałoby się zrobić lokalnie. To też dałoby się robić lokalnie, ale wydaje mi się też, w jakim to kierunku idzie, jak czasem po prostu pracuję z bankami zagranicznymi - i tam mega często jest wymaganie… Proste…

Szymon Warda: Czy developerzy mają admina lokalnego? Jeżeli mają to my z tobą nie współpracujemy.

Łukasz Kałużny: No dokładnie, jak sobie popatrzysz na tą działkę to są rzeczy o których Ty masz podobną opinię do mnie.

Szymon Warda: Monorepo jest lepsze.

Łukasz Kałużny: Jest lepsze, przy czym to, co powiedziałeś, tam mogą sobie pozwolić na zamordyzm. To jest po pierwsze.

Szymon Warda: Dojrzali.

Łukasz Kałużny: Tak.

Szymon Warda: Organizacje dojrzałe mają monorepo po prostu.

Łukasz Kałużny: Ale druga rzecz, słuchaj, monorepo wymaga o wiele lepszego governance’u i narzędziowo przygotowania się.

Szymon Warda: Tak, i też trochę lepszych ludzi; generalnie uważam mimo wszystko.

Łukasz Kałużny: Tak, bo ja miałem właśnie w ogóle trafiłeś się idealnie, bo w czwartek bodajże jak miałem konsultacje z klientem, rozmawialiśmy właśnie multi repo versus monorepo przy robieniu teraz porządku z systemem i mimo całej mojej miłości do

Łukasz Kałużny: mono repo,

Łukasz Kałużny: Nie dało się inaczej tego zrobić niż multi repo. Ze względu na kompetencje.

Szymon Warda: Multi repo i kompetencje tak? Ale multi repo ma jeszcze drugi problem. Jak masz faktycznie odseparowane, kompletnie odseparowane produkty w organizacji, a tak często jest, to jeszcze można to rozdzielać. Ale to de facto mówimy w tej sytuacji o kilku mono repach de facto, ale nie mówimy o tym, że mamy setki tych rep, po prostu, nie?.

Łukasz Kałużny: Ale patrząc się tak, to jest…

Łukasz Kałużny: Artykuł jest świetny

Łukasz Kałużny: pod tym względem.

Szymon Warda: Teraz do czego wracamy, bo to… monorepo to jest monorepo. Ale zastanawia mnie… Czy nie wracamy do… Znowu nie robimy takiej wielkiej sinusoidy, bo to będzie na przestrzeni 40 lat de facto, że nie powoli nie będziemy szli w kierunku środowisk zdalnych całkowicie, będziesz miał takiego laptopa Thin and Light, na którym praktycznie prawie nic nie będziesz odpalał i odpalasz środowisko które buduje w chmurze, bo co ważne oni tam nie wchodzą remote’em.

Łukasz Kałużny: Wchodzą przez IDE.

Szymon Warda: Tak, dokładnie. Po prostu IDE wszystko wykonuje, i IDE, jest tym terminalem de facto, więc cały ten UI to taki śmietnik, że jak mamy laga to nie istnieje.

Łukasz Kałużny: Ale zobacz, że tak: że to, co zresztą rozmawialiśmy przy GitHub Universe. Code Spaces sprawdza się z Dev Containers. To po prostu działa w większości przypadków. Teraz dołożyli do tego i tutaj. Tak samo jest w tym. Dev Podzie są JetBrainsy oprócz VS Code’a, czyli takie dwa… Powiedzmy, że dla ludzi którzy z VS Code nie walczą jest jedna opcja, a jak ktoś chce ciężkie IDE to są JetBrainsy w takim rozwiązaniu. Więc ta całość tak naprawdę poza scenariuszami developmentu mobilek w tym momencie, bo to trzeba sobie wziąć zawsze przed nawias,

Szymon Warda: Mobilki to jest zupełnie inna bajka, tak.

Łukasz Kałużny: No i twardego hardware’u. Jeżeli robisz embedded software cały, to też jest zupełnie… To jest inna działka.

Szymon Warda: I bym pomyślał nad tym generalnie, bo ten embedded… Tam często też masz dostęp do urządzeń, które nie są tanie, czasami.

Łukasz Kałużny: Ja wiem, ale załóżmy tak jak jeżeli ktoś tam prototypuje, robi cokolwiek, to nadal jest to robione gdzieś z boku. Więc zostawmy ten embedded development, bo to różnie wygląda. Bardzo, z tym. Ale jak popatrzymy, te rozwiązanie jest super, bo wiesz, że z jednej strony można dostarczyć o wiele większą maszynę niż jesteś w stanie upchnąć deweloperami pod biurko, to sobie trzeba powiedzieć. Z drugiej strony kończysz z onboardingiem do projektu.

Szymon Warda: Cały governance, wyciekanie własności intelektualnej…

Łukasz Kałużny: Security to już w ogóle pomijam. Bo to jest w ogóle… Security tylko klaszcze w tym wypadku.

Szymon Warda: O i jeszcze jak generalnie.

Łukasz Kałużny: Więc całość zachodzi. Z ciekawych rzeczy, bo jeszcze tutaj mówimy o całej, o całej tej części. To wystandaryzowali bazelem buildy.

Szymon Warda: Dużo w ogóle zrobili? Ale jak to mówił prof. Farnsworth z Futuramy, generalnie zastanawiam się, czy chcę żyć w takim świecie generalnie, gdzie wszystko będzie lokalne, wszystko będzie zdalne, no bo np. czasami cathode’owanie pociągu czy tam inaczej wchodzi jak najbardziej w grę. A w tej sytuacji Twój laptop to będzie taki Chromebook typowy, na którym po prostu nie masz nic, otwierasz przeglądarkę, albo tam terminal. Generalnie tak naprawdę, nie. Więc to też nie jest jakieś super tak naprawdę. Dla mnie jeszcze jedna rzecz się świeci tutaj bardzo mocno i to mnie bardzo mocno niepokoi. Bo ja znowu teraz więcej mam do czynienia z takim IT, typowym świadczeniem usług IT de facto w ramach organizacji. Utrzymanie tego, żeby to działało, żeby to było zgodne i w wersji, to jest też absurdalny koszt organizacyjny. To naprawdę nie będzie tanie i to będzie trudne do zrobienia. W sensie, Uber to może zrobić. Duże organizacje tak. Nie widzę, żeby to robiły mniejsze firmy.

Łukasz Kałużny: Ty wiesz co, tylko tak. Wrócę sobie do githuba…

Szymon Warda: Inaczej, faktycznie: Wykorzystanie GitHuba jako takie rzeczy to by może zadziałało.

Łukasz Kałużny: Jeżeli skupisz się w tym momencie, żeby nie składać tego z klocków, powiedzmy sobie wprost, żeby nie budować platformy, bo to jest taka już prawdziwa platforma deweloperska, takie raczej developer experience platform, bo tak to bym zakategoryzował, to w tym miejscu masz, żeby mieć taki pełen ciąg, masz tylko GitHuba, który dostarczy Ci, jak popatrzymy jesteś Enterprise’m i chcesz mieć… Czy średniej wielkości firmą… Chcesz to wystandaryzować, masz tylko jeden produkt na rynku w tym momencie.

Szymon Warda: Tak - I teraz wracamy do jednego - załóżmy jak masz outrage GitHuba, albo masz problem GitHuba… To nie dość, że nie masz kodu, nie masz środowisk, nie masz kopii lokalnej, nie masz niczego.

Łukasz Kałużny: No i widzisz; i teraz jest pytanie, czy większość z tych funkcjonalności, nie wiem tylko, czy już codespaces są, czy nie… Są też w tym samodzielnie instalowanym?

Szymon Warda: Tak, ale nie będziesz miał tych wszystkich maszyn, które Ci chodzą, no nie. Komputery deweloperów to będą… Nic, właściwie.

Łukasz Kałużny: Tam są chyba, wiesz, wirtualki i inne rzeczy. Właśnie nie jestem pewny czy już codespaces wjechały, czy nie.

Szymon Warda: Ale nie o to mi chodzi. Chodzi mi o to generalnie, że nie masz tej infrastruktury, która odpali te wszystkie wirtualki.

Łukasz Kałużny: No tak, musisz to sam…

Szymon Warda: Czyli w przypadku outrage’u powiedzmy 4-godzinnego githuba na przykład, nie postawisz tego, nie zrobisz. Generalnie Twój development stoi; więc jak się zdarzy taka sytuacja, że github leży i masz problem na produkcji, to nie masz jak co zrobić, rozkładasz ręce i mówisz: trudno. Sorry.

Łukasz Kałużny: Dokładnie. Więc cała zabawa… Tak? Ewentualnie korzystasz z dev containers. Ale to oznacza, że jednak coś tam masz lokalnie na stacji.

Szymon Warda: Tak, ale to jest ciekawa sytuacja. I znowu wracamy do terminali z lat ‘60, ‘70.

Łukasz Kałużny: Zawsze mówimy, że IT to jest odkrywanie koła na nowo.

Szymon Warda: Tak, jestem bardzo ciekawy co z tego wszystkiego wyjdzie. Po pierwsze w kontekście właśnie monorepo, po drugie w kontekście właśnie takiego remote debugowania. Ewentualnie jestem ciekaw czy po prostu sam git, bo tutaj to git jest częstym problemem de facto; czy sam git… Nie będzie coś co by to ogarnęło, bo są te wirtualne katalogi to MS sobie tak poradził.

Łukasz Kałużny: Wiesz co, ja przypomniałem sobie… Bo to może na następnym shorcie sobie poruszymy, to odkopię, bo w zeszłym roku przelewała się fala hejtu na… Na sam git i sposób jego działania, że już może pora na nowy produkt.

Szymon Warda: Wydaje mi się, że ta pora się zbiera, szczególnie właśnie w kontekście dużych rep, bo git się sprawdza super w małych repach, w dużych… Iii, trochę boli.

Łukasz Kałużny: Ale jest mówione… Tam też była fala właśnie z jednej mówiono, tej technologicznej bariery, jak to wygląda i że trzeba i już go obudowywać w nowe rzeczy; a z drugiej strony, że user experience gita… My jesteśmy do niego przyzwyczajeni, ale nowe pokolenia, które wchodzą już nie za bardzo.

Szymon Warda: No, dosyć ciekawe. Mam jeszcze drugi link, ciekawy. Z serii “nie wiedziałem, że tego potrzebuję”. Może taką serię zrobimy?

Łukasz Kałużny: Backstage’a?

Szymon Warda: Backstage’a.

Łukasz Kałużny: Poruszaliśmy go kiedyś.

Szymon Warda: Ale nie ma, bo teraz wydali z serii: “rzeczy, o których Warda nie wiedział, że potrzebował, a bardzo ich potrzebował”. 5 pluginów dostępnych w backstage’u. O backstage’u mówiliśmy, poprzednie odcinki - śmiało.

Łukasz Kałużny: Ważne: do zakupienia od Spotify.

Szymon Warda: Tak, ale w ogóle cały backstage jest teraz generalnie w CNCF’ie i tak dalej. Ale jest jeden plugin SoundCheck, który mi się bardzo podoba. Co on robi? Wyświetla wszystkie Twoje produkty i pokazuje na jednym dashboardzie poziom ich zgodności ze standardami, bibliotekami itd. Jedno centralne miejsce, które robi globalnego checka. Fenomenalne, żeby teraz pokazywać i wizualnie pokazywać na poziomie całej organizacji i pałować konkretne zespoły - czego nie zrobili, co mają zrobić, której biblioteki używają i tak dalej, i tak dalej. Nie ma nic lepszego niż social pressure i właśnie tego typu dashboard’y. Super.

Łukasz Kałużny: Dobra, to ja chyba… To już skończmy, bo backstage’a wziąć na tapetę któregoś razu, ale to już skończmy. Dobra, to trzymajcie się.

Szymon Warda: Trzymajcie się!

Łukasz Kałużny: Hej!