Poprzednio drama goniła dramę, dlatego dzisiaj tematy mocniej „inżynierskie” – nowy system kontroli wersji od Facebooka i skalowanie Mastodon. Oprócz tego będzie też o niespodziewanym (?) ruchu Apple.
1. Facebook tworzy alternatywę dla Gita
Przez lata, Facebook znany był z tego, że w świecie zdominowanym przez Git-a byli oni jednym z większych użytkowników jego alternatywy – Mercuriala. Argument za używaniem tego właśnie systemu kontroli wersji był jeden – według firmy dużo lepiej sprawdzał się on w wypadku Monorepo.
Kiedy jednak jesteś takim Facebookiem, dużo lepiej dalej może się okazać niewystarczająco dobrze. Dlatego też firma od ponad dekady „dłubie” w stworzeniu własnego – tym razem kompatybilnego z Gitem – systemu kontroli wersji o nazwie Sapling, i wreszcie postanowili się nim podzielić ze światem.
Czemu Metą tworzy własne rozwiązanie? Okazuje się bowiem, że nawet wspomniany Mercurial w pewnym momencie zaczął dochodzić do ściany. Jako, że jest to projekt otwartoźródłowy, Facebook zaczął dopasowywać go na swoją modłę, ale w momencie kiedy już zaczęli pracę to stopniowo coraz bardziej odchodzi od „statku matki” na rzecz czegoś w zasadzie zupełnie nowego. Po pierwsze, jako, że to właśnie Git jest najlepiej znany programistom i rozpowszechniony w sieci, postanowiono iść w kierunku jak największej kompatybilności z tym systemem. Równocześnie – cały czas przy zachowaniu maksymalnego poziomu skalowalności – postanowiono rozwiązać kilka problemów z User Experiencem Gita.
Jako przykład niech posłuży np. inteligentny sposób przeglądania drzewa historii:
Takich mniejszych i większych UX-owych dodatków jest sporo, przykładowo, Sapling posiada komendy pozwalające na tworzenie kodu CodeReview-first – dzielonego w taki sposób, że twórca jest szybko w stanie dostać feedback na temat konkretnego wycinka pracy, bez zarzucenia reviewera nadmiarowymi detalami.
Jeżeli zaś lubicie „mięsko”, w artykule sporo miejsca poświęcono tematowi skalowalności i wyzwaniom, które twórcy Saplinga musieli przezwyciężyć. Możecie więc dowiedzieć się jak podchodzą do tematu „leniwego” pobierania fragmentów codebase, przeszukiwania historii czy przechowywania dużych plików. Okazuje się przykładowo, że na potrzeby narzędzia stworzony został… wirtualny system plików. Tym na razie nie możemy się pobawić, ale twórcy obiecują udostępnienie go z w przyszłości. Pokazuje to, jak bardzo zaawansowanym rozwiązaniem jest projekt i jak szeroko inżynierowie podeszli do przestrzeni problemu.
Ciekawe, czy ta kompatybilność połączona ze skalowalnością i pieczątką „Meta Engineering” sprawi, ze Sapling doczeka się dużej adopcji na rynku. Trzeba się będzie tematowi przyglądać. A korzystając z okazji przypominam o istnieniu strony monorepo.tools, która pomaga w odnalezieniu się w świecie praktyk i narzędzi do Monorepo. Przeprowadzi Was za rączkę, jeśli będziecie chcieli spróbować tego wzorca.
Źródła
Zainstaluj teraz i czytaj tylko dobre teksty!
2. Opowieści z placu boju – jak skalować Mastodon pod ciągłym naporem nowych użytkowników
Mastodon, alternatywa dla Twittera (obiecuje, że jest to ostatni raz kiedy użyłem dziś tej nazwy), zdecydowanie ma aktualnie swoje pięć minut. Zainteresowanie projektem osiągnęło szczyty, a poradniki, jak zacząć całości używać (bo to wcale nie jest takie oczywiste) wypluwane są jak z karabinu maszynowego. Okazuje się, że wysoki próg wejścia to nie jedyna trudność, z jaką musi mierzyć się Mastodon. Z zainteresowaniem przychodzi również potrzeba skalowania infrastruktury poszczególnych serwerów. Architektura Mastodon wydaje się być na taki znaczy pik w popularności… no średnio przygotowana. Przynajmniej w swojej domyślnej konfiguracji.
Swoimi wrażeniami z rozwiązywania problemów związanych z nagłego przypływu użytkowników podzieliła się ostatnio Leonora Tindall, dając nam interesujący wgląd w to, jak Mastodon zachowuje się pod maską i gdzie w systemie pojawiają się największe wąskie gardła. Rzecz, która jako pierwsza przykuwa uwagę laika to fakt, że całość napisana jest w… Rubym. Sam miałem kiedyś przyjemność tworzyć jedną aplikację w tym języku, ale przyznam, że coraz rzadziej trafiam na jakiekolwiek większe „nagłówki” z nim związane – a tu proszę, Mastodon. Ze względu na taki, a nie inny model języka, Ruby nigdy nie należał do języków najłatwiejszych w skalowaniu (po więcej detali odsyłam do tekstu To Thread or Not to Thread: An In-Depth Look at Ruby’s Execution Models od Shopify), ale jednym z popularniejszych rozwiązań dostępnych na rynku jest obecnie Sidekiq. Ten oparty na wątkach (a nie osobnych procesach, jak większość innych web serwerów Ruby’ego) napędza również Mastodon. Okazuje się jednak, że tak jak każda inna technologia, Sidekiq wymaga dobrego zrozumienia jego modelu jeśli chce się wpaść w jakieś wąskie gardło.
Dlatego też polecam tekst Leonory. Dzięki tekstowi możecie bowiem lepiej zrozumieć jak działa Sidekiq i wyzwania, jakie wiążą się z używaniem wątków i puli połączeń w Ruby. Nawet jeśli na codzień w nim nie programujecie, to znajomość konceptów używanych w innych językach poszerza horyzonty i pozwala podejść do własnych problemów w bardziej nieszablonowy sposób. Dodatkowym smaczkiem jest to, że tekst dotyczy Mastodon, który jeszcze chwile nie będzie prawdopodobnie schodził z nagłówków. Jeżeli jesteście więc jesteście ciekawi, jak pod spodem wygląda architektura najbardziej gorące oprogramowania listopada 2022 (a może i całego 2022), zapraszam do lektury Scaling Mastodon in the Face of an Exodus.
Źródła
- Scaling Mastodon in the Face of an Exodus
- To Thread or Not to Thread: An In-Depth Look at Ruby’s Execution Models
3. Apple planuje przenieść produkcje procesorów do USA
A na koniec pozwolę sobie w tym mocno technicznym wydaniu na odrobinę mniej techniczną, ale dość istotną z mojej perspektywy informacje. 2022 zapamiętamy pewnie jako istotny rok w procesie deglobalizacji świata. Czas pokaże, czy w którymś momencie nie wrócimy jednak na utartą ścieżkę międzynarodowej współpracy, ale decyzje, które są w tej chwili podejmowane wydają się nadawać zupełnie inny kierunek – mocno izolacjonistyczny.
Administracja Stanów Zjednoczonych na czele z prezydentem ma na celu zachęcenie firm do produkcji chipów na ichniejszym terytorium min. poprzez zachęty finansowe, i właśnie znaleźli dużego sojusznika. Apple, które nie ukrywało że szuka sposobu aby zmniejszyć swoją zależność od produkcji w coraz bardziej nieprzewidywalne Azji, ogłosiło bowiem ustami Tima Cooka, że już w 2024 planuje produkować przynajmniej część procesorów w USA. Nie podano wprawdzie dokładnych dostawców, ale mowa tutaj prawdopodobnie o fabryce TSMC, która ma być otwarta w Arizonie.
W związku z powyższą sytuacją mam dwa przemyślenia. Po pierwsze, widać, że status Tajwanu jest przynajmniej niepewny, skoro jednak udaje się ściągać firmy tak duże jak Apple na zrobienie jednak dość ryzykownego ruchu. Chińskie władze nie kryją bowiem swojej irytacji z zachęt, jakie Administracja Joe Bidena daje firmom, co może utrudnić Apple prowadzenie biznesu na ichniejszym terytorium. Drugi – nie mniej interesujący – aspekt to to, jak bardzo tego typu ruch wpłynie na cenę urządzeń końcowych i czy nie zadziała tutaj swoisty „efekt flagi”.
Źródła
Zainstaluj teraz i czytaj tylko dobre teksty!
Bonus: Windows Subsystem for Linux (WSL) pozbywa się łatki Beta i trafia do sklepu Microsoft
Windows Subsystem for Linux 2 (WSL2) – będąca wynikiem współpracy Microsoftu i Canonicala warstwa kompatybilności między Linuxem a Windowsem umożliwiająca uruchamianie oprogramowania z tego pierwszego na tym drugim – został udostępniony jeszcze w 2019, ale przez ostatnie trzy lata pozostawała w wiecznym Preview. Teraz nareszcie (jak można zobaczyć w repozytorium projektu) doczekaliśmy się pierwszego wydania stabilnego, które trafić ma do Microsoft Store.
Co ciekawe, Microsoft jeszcze nie zdecydował się poinformować o tym oficjalnie, dlatego na razie tylko zagajam temat – jeżeli z jakiegoś powodu bolał Was fakt, że to fantastyczne narzędzie nie jest stabilne, to myślę, że już niedługo możecie spodziewać się ważnych ogłoszeń.