Witajcie w Międzynarodowy Dzień Solidarności Ludzi Pracy. My nie robimy sobie wolnego i mamy dla Was informacje o nowym zaangażowaniu FAANGu w Rusta i WebAssembly, smutne wieści dotyczące Crypto oraz trochę detali na temat implementacji silnej spójności AWS S3.
1. Wsparcie języków przez TheBigTech trwa – Rust & WebAssembly Edition
Dzisiejszą edycje zaczynamy od interesujących ogłoszeń związanych z zaangażowaniem dużych graczy w rozwój języków – ostatnio mamy wysyp tego typu wiadomości, ciekawe czy jest w tym element jakiejś większej strategii, FOMO panujące wśród TheBigTech czy też może zwykły przypadek?
Zacznijmy od Rusta. Od kiedy nasz ulubiony język 10x Developerów (przepraszam jeśli macie mnie za zdartą płytę, ale ten żart nigdy nie przestanie mnie śmieszyć) trafił pod skrzydła fundacji, coraz więcej istotnych graczy postanowiło zaopiekować się jego rozwojem. Do zacnego grona min. Google, Amazona i Microsoftu dołączył w zeszłym tygodniu Facebook. Jako “wiano”, oprócz beczki dolarów, wnosi opowieść o tym jak wyglądała adopcja rdzawego języka w ich organizacji, co na pewno ośmieli niejedną firmę do zaryzykowania z tym dalej dość świeżym ekosystemem.
To jednak nie koniec tego typu ogłoszeń. Również w zeszłym tygodniu, Microsoft oraz Mozilla zdecydowały się dołączyć do Bytecode Alliance, fundacji której celem jest rozwój i promocja WebAssembly. Jest to naprawdę ważny sygnał i potężne wsparcie dla standardu, który od lat stara się wykroić dla siebie sensowną niszę. Do tej pory bowiem, ze wszystkich dużych twórców przeglądarek tylko Google wspierało Bytecode Alliance. Teraz sytuacja zmieniła się diametralnie – wyłącznie Apple ze swoim WebKitem nie dołączyło jeszcze do wspomnianego “przymierza”. Może powinniśmy wkrótce oczekiwać podobnego ogłoszenia z ich strony, ale co ja się łudzę – nie bez kozery nazywa się Safari nowym Internet Explorerem.
A jak już wspomnieliśmy Microsoft, lekko powiązana “wrzutka” – otóż przejęli oni Kinvolk, firmę założoną przez dawnych inżynierów pracujących nad CoreOS (który został dość brutalnie potraktowany przez RedHata w zeszłym roku). Ich flagowym produktem jest Flatcar Container Linux, zdobywająca dużą popularność wśród dostawców chmurowych alternatywa do ich wcześniejszego dzieła. Widać jak na dłoni jak istotna dla firmy z Redmond jest kontrola nad kluczowymi aspektami infrastruktury, mimo że zapowiadają oni iż nie należy spodziewać się zmian w sposobie licencjonowania Flatcara.
Jak tam, macie już nową kartę grafiki? Nie? To nie będziecie mieć też darmowego CI. Kryptowaluty stają się jednym z najbardziej znienawidzonych tematów branży technologicznej.
Przez lata jako programiści byliśmy dosyć “rozpieszczani” przez ekosystem. Masa narzędzi miała całkiem rozsądne darmowe wersje, pozwalające hobbystom na eksperymentowanie – sam hostowałem swego czasu swoje małe projekciki na Heroku (autowybudzanie instancji zawsze w moim sercu ❤️), a AWS Lambda stanowiła swego czasu podwaliny pod mój bieda-smartdom.
Sytuacja zmienia się diametralnie. Praktycznie wszystkie podmioty udostępniające cokolwiek darmowego aktualnie atakowane są przez nadużycia ze strony kopaczy kryptowalut. Okazuje się, że tworzenie automatów zakładających darmowe konta w ilościach masowych jest niezwykle opłacalne z powodu ciągle rosnących (mimo ostatnich fluktuacji trend jest dość widoczny) cen kryptowalut opartych o tak zwane Proof-of-Work – “paleniu” mocy obliczeniowej. LayerCI na swoim blogu opisuje jak tego typu atak wygląda, i dlaczego bardzo trudno jest złapać kogoś za rękę. Stąd też można ostatnimi czasy zauważyć nerwowe ruchy takich graczy jak choćby GitLab, który już w zeszłym roku musiał ograniczyć ich bardzo przyjemne w użyciu zintegrowane CI.
Najsmutniejsze w tym wszystkim jest to, że (ze względu na zdecentralizowany charakter) nic z tym fantem nie da się za bardzo zrobić – poza blokadą protokołu przez państwa na poziomie infrastruktury. Sugerowanie porzucenia przez kryptowaluty algorytmów Proof-of-Work wydaje się być wręcz niemożliwe do realizacji – na miejsce każdego Ethereum – przechodzącego na nie marnujące mocy obliczeniowej Proof-of-Stake – szybko wejdzie jakaś alternatywa PoW. Na mój brak optymizmu wskazuje też fakt, że wszystkie zakusy producentów kart graficznych w celu ukrócenia procederu spalają na panewce. Chyba po prostu nie zasłużyliśmy sobie na takie fajne rzeczy jak darmowy CI.
Moje jedyne ostatnio pozytywne doświadczenie z kryptowalutami (poza ciągle rosnącą wartością mojego kupionego jakieś cztery lata temu po kursie 500$ Etheru ) to odkrycie Grimes. Bohaterki naszego wpisu o NFT, która właśnie przygrywa mi podczas pisania tego artykułu. Ogólnie NFT to temat do którego warto by było niedługo wrócić i opisać Wam, co ostatecznie z tego całego szału wyszło.
A na koniec, po tematach społecznościowo-społecznych, chciałbym zostawić czytających nas inżynierów z odrobiną “mięska”. Biorąc pod uwagę zbliżający się długi weekend, myślę że poza nadrobieniem zaległości w Waszym Vivedowym Keep Upie (jeśli takowego macie) warto rzucić sobie okiem na detale jednego z najciekawszych ogłoszeń AWSa ostatnich miesięcy.
Podczas zeszłorocznego re:Invent, najważniejszej konferencji Amazona, ogłoszono że S3, jedna z ich najpopularniejszych chmurowych usług, uzyskała wreszcie “silną spójność”. Termin ten jest z pewnością znany wszystkim, którzy liznęli systemy rozproszone i zahaczyli o tak zwany CAP Theorem (a jeśli czujecie, że macie w temacie braki – ten tekst powinien Wam pomóc). Spójność jednak ma to do siebie, że o ile z punktu widzenia użytkownika jest raczej prosta („jeśli najpierw zrobię zapis, a następnie odczyt, to nigdy nie dostanę w pyszczek 404 Not Found”), to tak naprawdę często opiera się na różnego rodzaju trikach. Od samego początku trwały dyskusje co tak naprawdę AWSowi udało się osiągnąć i na jakie kompromisy musieli pójść. Teraz nareszcie mamy okazję lepiej zrozumieć jak nowe gwarancje działają “pod maską”.
Okazuje się, że metoda użyta przez AWS został zaczerpnięty z… architektury procesora. Otóż CPU posiadają kilka poziomów cache, a ich synchronizacja jest kluczowa ze względu na wydajność. Dostępność danych jest zapewniana dzięki odpowiedniemu protokołowi komunikacyjnemu, biorącego pod uwagę pod uwagę rozjazdy między poszczególnymi warstwami. Bardzo podobnie zachował się AWS – wprowadził nowy komponent do podsystemu metadanych S3, który sprawdza, czy widok metadanych obiektu w pamięci podręcznej nie jest może nieaktualny. Ten komponent działa jako swoisty „świadek” zapisów, powiadamiany o każdej zmianie obiektu. Następnie traktowany jest jako bariera odczytu, i każdorazowo kieruje zapytanie albo do cache, albo do “tranzakcyjnej” części systemu. Mamy więc do czynienia z tak zwaną “Spójnością przyczynową” (Causal Consistency)
Co prawda artykułowi brakuje trochę precyzyjności Whitepapera (i ogólnie jest napisany nieco w tonie “jacy my to nie jesteśmy super”), to i tak myślę że informacje w nim zawarte będą wystarczające dla wszystkich poza największymi pasjonatami systemów rozproszonych. Biorąc pod uwagę jak często spotykam się ostatnio z opinią, że w zasadzie większość nowoczesnych baz danych (zwłaszcza analitycznych) to cache nad S3, na pewno niejeden Data Lake wreszcie mógł pozbyć się niektórych “haczurów”. Za to właśnie lubimy chmurę – zcentralizowane rozwiązywanie trudnych inżynierskich problemów ma zalety.
Dzięki naszym podsumowaniom wystarczy Ci 10 minut tygodniowo, aby mieć pewność, że nie przegapisz niczego w świecie Frontendu, JVM i Software Craftsmanship.
Bez spamu i bez wysiłku!
Zapisz się
Odkrywaj więcej dopasowanych treści!
Bądź na bieżąco ze światem IT i poszerzaj swoje horyzonty dzięki najlepszym artykułom wybranym specjalnie dla Ciebie.