Streszczenie
W tym artykule badamy, dlaczego uruchamianie Linux w Google Cloud Platform to potężna kombinacja. Zagłębiamy się również nad przyczynami decyzji Google o korzystaniu z Linux wewnętrznego i wyzwań, przed którymi stoją tradycyjne ulepszenia. Następnie omawiamy, w jaki sposób Google wdrożył wydania Rolling z Glinux Rodete, oparte na Debian, oraz korzyści, jakie przynosi ich działalność.
Kluczowe punkty:
- Google prowadzi duże floty produkcyjne, w tym YouTube i Gmail, przy użyciu różnych systemów operacyjnych, w tym Linux.
- Przez długi czas wewnętrzny dystrybucja Linux Google, Goobuntu, była oparta na wydaniach Ubuntu LTS.
- Dwuletni cykl aktualizacji dla LTS wydał wyzwania dla Floty Google ponad 100 000 urządzeń.
- Aby zautomatyzować proces aktualizacji, Google opracował narzędzie do aktualizacji bez opieki, które zminimalizowało konfigurację ręczną.
- Proces aktualizacji zwykle trwał prawie rok, co prowadzi do wysokiego poziomu stresu i wypalenia w zespole.
- Korzystanie z wersji LTS oznaczało, że niektóre poprawki i ulepszenia błędów mogły nie zostać wycofane.
- Ulepszenia specjalne i wyzwania związane z zarządzaniem zmianami dodane do złożoności i czasu trwania procesu aktualizacji.
- Aby rozwiązać te problemy, Google przeszedł na zwalniane wydania z Rodete Glinux, w oparciu o testowanie Debiana.
- Zamiast dwuletniego cyklu, toczące się uwalniania rozprzestrzeniły obciążenie i pozwoliły na mniejsze zmiany przyrostowe.
- Dostępność pakietów w Debian, społeczności Debian i istniejących pakietach wewnętrznych wpłynęły na wybór Debiana jako dystrybucji podstawowej.
Pytania:
- Na jakich platformach działa Google?
- Dlaczego Google wybrał Ubuntu jako bazę wewnętrznej dystrybucji Linuksa?
- Jakie wyzwania stanęły w Google z dwuletnim cyklem ulepszeń wydań LTS?
- Jak Google zautomatyzował proces aktualizacji?
- Dlaczego wyciągnął wersję LTS stresującą dla zespołu Google?
- Jaka była motywacja za przejście Google na toczące się wydania?
- Dlaczego Google wybrał Debiana na ich dystrybucję Rolling Release?
- Jakie zalety zapewnia test testowy Debiana?
- Jak często aktualizuje się Google z ich dystrybucją Rolling Release?
- Jakie podejście podjęło Google, aby zapewnić płynne uwolnienia w procesie zwalniania toczenia?
Google prowadzi duże floty produkcyjne na platformach takich jak YouTube i Gmail. Mają także flotę korporacyjną z setkami tysięcy urządzeń na wielu platformach, modelach i lokalizacjach.
Google wybrał Ubuntu do wewnętrznej dystrybucji Linuksa, ponieważ był przyjazny dla użytkownika, łatwy w użyciu i oferował wydania długoterminowe (LTS) z ponad 2-letnim aktualizacją bezpieczeństwa.
Złożony charakter obciążeń we flocie Google dokonał ponownej instalacji i dostosowywania maszyn do każdej aktualizacji trudnej i czasochłonnej operacji. Nie było to zrównoważone finansowo, a inżynierowie musieli konfigurować swój obszar roboczy od zera co dwa lata, co doprowadziło do spadku wydajności.
Google opracował bez nadzoru narzędzia aktualizacji, które zautomatyzowało wspólne problemy z przypadkami podczas procesu aktualizacji. To narzędzie zapisało inżynierów od ręcznej aktualizacji ich maszyn poprzez ponowne zainstalowanie ich i odtwarzanie wszystkich konfiguracji.
Ulepszanie floty Goobuntu zajęło prawie rok, pozostawiając tylko krótkie okno przestojów do następnego aktualizacji. Ten ciągły cykl ulepszeń stworzył dla zespołu środowisko wysokiej stresu, co prowadzi do poczucia wypalenia. Błędy i prośby o pomoc dodano również do obciążenia.
Zamiast przestrzegać dwuletniego cyklu aktualizacji, Google chciał rozłożyć obciążenie i pozwolić na mniejsze zmiany przyrostowe. Rolling Remeases z rozkładami Linux wykazały, że mniejsze zmiany są łatwiejsze do kontrolowania i wycofania.
Google wybrał Debiana za dystrybucję wydawania Rolling, Glinux Rodete, ponieważ oferował płynną migrację na miejscu i miał dużą społeczność Debian. Istniejące pakiety wewnętrzne i oprzyrządowanie również wykorzystały format Debian.
Testowanie Debiana działa jako wydanie toczące się, zapewniając pulę wszystkich pakietów spożywanych i zbudowanych z uptream. To pozwala Google uzyskać więcej szczegółowych zmian i zapewnić najnowsze oprogramowanie dla swoich inżynierów bez dłuższych okresów oczekiwania.
Google początkowo przeznaczone do częstszych wydawnict. Pomogło to ograniczyć zakłócenia dla wydajności programistów.
Google robi migawkę wszystkich pakietów spożywanych z Debiana podczas rozpoczęcia nowej wersji. Po testach akceptacyjnych kandydat do wydania hermetycznego jest ostrożnie wprowadzony do wybranej grupy użytkowników w celu dalszych testów.
Odpowiedzi:
- Google prowadzi duże floty produkcyjne, które obsługują produkty takie jak YouTube i Gmail. Mają także flotę korporacyjną z setkami tysięcy urządzeń działających na różnych platformach, modelach i lokalizacjach. Aby wesprzeć swoich pracowników, w tym inżynierów, Google działa z wieloma platformami systemowymi, w tym Linux. W 2018 r. Google zakończył przejście do modelu zwolnienia opartego na Debianie.
- Google wybrał Ubuntu jako bazę do wewnętrznej dystrybucji Linuksa, ponieważ był przyjazny dla użytkownika, łatwy w użyciu i oferował wydania długoterminowego wsparcia (LTS) z ponad 2-letnią aktualizacją bezpieczeństwa. Te wydania LTS zapewniły stabilność i regularne aktualizacje bezpieczeństwa dla Floty urządzeń Google.
- Dwuletni cykl aktualizacji LTS wydał wyzwania dla Google. Z ponad 100 000 urządzeń we flocie, ręczne aktualizowanie i dostosowywanie każdej maszyny przed datą zakończenia życia systemu operacyjnego była czasochłonna i nie jest to możliwe finansowo. Złożony charakter obciążeń na maszynach korporacyjnych dodatkowo skomplikował proces aktualizacji.
- Aby zautomatyzować proces aktualizacji i zminimalizować konfigurację ręczną, Google opracował narzędzie do aktualizacji bez opieki. To narzędzie koncentrowało się na automatyzacji typowych problemów przypadków podczas aktualizacji i zapisywał inżynierów przed ponownym zainstalowaniem maszyn i odtwarzania wszystkich konfiguracji ręcznych.
- Wykonanie wersji LTS było stresujące dla zespołu Google ze względu na obszerny czas i wysiłek wymagany do procesu aktualizacji. Z rocznym czasem między aktualizacjami zespół doświadczył ciągłego cyklu aktualizacji i poprawek błędów. To środowisko stresu często prowadziło do poczucia wypalenia wśród członków zespołu.
- Motywacją przejścia Google na zwalnianie toczące. Takie podejście jest zgodne z trendem branżowym CI/CD i wykazało, że mniejsze zmiany są łatwiejsze do kontrolowania i wycofania w porównaniu z dużymi, rzadkimi ulepszeniami.
- Google wybrał Debiana jako bazę ich dystrybucji Rolling Release, Glinux Rodete. Na decyzję wpłynęły różne czynniki, w tym dostępność pakietów w Debian, duża społeczność Debiana oraz kompatybilność istniejących pakietów wewnętrznych i narzędzi za pomocą formatu Debiana.
- Testowanie Debiana zapewnia kilka zalet dla Rolling Release Distribution Google. Ścieżka testowa działa jako premiera tocząca się, stale spożywając i budowanie pakietów z góry. Pozwala to Google na częstsze i szczegółowe zmiany, zapewniając swoim inżynierom dostęp do najnowszego oprogramowania bez przedłużonych okresów oczekiwania.
- Google początkowo przeznaczone do częstszych wydań z ich dystrybucją Rolling Release, ale później osiedlił się na cotygodniowych wydaniach. Cotygodniowe wydania uderzyły w równowagę między szybkim przeprowadzką a umożliwieniem właściwej kwalifikacji do zwolnienia, minimalizując zakłócenia dla wydajności programistów.
- Aby zapewnić płynne zwolnienia w procesie wydawania się, Google wykonuje migawkę wszystkich pakietów połkniętej z Debiana na początku nowej wersji. Po testach akceptacyjnych kandydat do wydania hermetycznego jest ostrożnie wprowadzony do wybranej grupy użytkowników do dalszych testów, zapewniając stopniowe i kontrolowane wydanie.
Po co uruchomić Linux w Google Cloud
Linux i Google Cloud Platform to silna kombinacja, z którą można przenieść przedsiębiorstwo do chmury i w przyszłość. Pozwalać’s spójrz na każdego z nich, zanim dowie się, co sprawia, że wyróżniają się jako zespół.
Czy Google działa na Linux
Obraz bohatera Kredyt: Markus Teich
W Google prowadzimy duże floty produkcyjne, które obsługują produkty Google, takie jak YouTube i Gmail. Aby wesprzeć wszystkich naszych pracowników, w tym inżynierów, prowadzimy również sporą flotę korporacyjną z setkami tysięcy urządzeń na wielu platformach, modelach i lokalizacjach. Aby każdy Googler pracował w środowisku, w którym są najbardziej produktywne, obsługujemy wiele platform OS, w tym system Linux. Przez długi czas nasz wewnętrzny dystrybucja Linux, Goobuntu, była oparta na wydaniach Ubuntu LTS. W 2018 roku zakończyliśmy przeprowadzkę do modelu zwolnienia na oparciu o Debiana.
Uaktualnij trudu
Ponad 15 lat temu Ubuntu został wybrany jako podstawa wewnętrznej dystrybucji Linuksa, ponieważ była przyjazna dla użytkownika, łatwa w użyciu, i miała wiele fantazyjnych dodatków. Wydania długoterminowe (LTS) zostały wybrane, ponieważ ceniono, że kanonika zapewniała ponad 2 lata aktualizacji bezpieczeństwa.
Jednak ten dwuletni cykl premiery wydawnictw LTS oznaczał również, że musieliśmy ulepszyć każdą maszynę w naszej flocie ponad 100.000 urządzeń przed datą życia systemu operacyjnego. Złożony charakter obciążeń pracujących na maszynach korporacyjnych oznaczało, że ponowna instalacja i w pełni dostosowywanie maszyn może być trudną i czasochłonną operacją. Wydajność polegająca na konfigurowaniu wszystkich inżynierów od zera co dwa lata nie była opcją odpowiedzialną finansowo.
Dla każdego cyklu systemu operacyjnego mieliśmy dość duży skok wersji w głównych pakietach, które mogą wymagać znacznych zmian w konfiguracji oprogramowania. Aby zautomatyzować ten proces, napisaliśmy bez opieki narzędzia do aktualizacji, które zadbało o wiele wspólnych problemów. To podejście skoncentrowane na automatyzacji oznaczało, że większość pracowników Google nie musiała ręcznie zaktualizować swoich maszyn, ponownie instalując je i odtwarzając całą ich konfigurację. Aby to umożliwić, musieliśmy jednak przeprowadzić kompleksowe testowanie procesu aktualizacji i sprawdzić, czy wszystkie główne pakiety, które się zmieniły, działają (w Ubuntu może to być nawet kilka tysięcy pakietów, aby uaktualnić główne wersje). Czasami trudno było zapewnić automatyzację w przypadkach, w których zdarzały się amortyzacje, a inżynierowie musieli podejmować decyzje, jak iść naprzód.
Wysiłki w celu ulepszenia naszej floty Goobuntu zwykle trwało większa część roku. Z dwuletnim oknem wsparcia pozostało tylko rok, dopóki nie musieliśmy ponownie przejść przez ten sam proces na następne LTS. Cały ten proces był ogromnym czynnikiem stresowym dla naszego zespołu, ponieważ otrzymaliśmy setki błędów z prośbami o pomoc w sprawach narożnych. Po wykonaniu jednego ulepszenia było ogólne poczucie bycia “blisko wypalenia” w zespole, z którego ledwo mogliśmy się wyzdrowieć, dopóki nie pojawiła się następna runda aktualizacji. Wykonanie wersji LTS oznaczało również, że niektóre błędy napotykane przez użytkowników naszej dystrybucji mogą’został już ustalony w górę, ale te ulepszenia mogą’nigdy nie został zapisany do wersji LTS.
Był też długi ogon ulepszeń specjalnych, które czasami mogłyby ciągnąć się przez kilka lat. Obsługa tego procesu było ogromnym wyzwaniem związanym z zarządzaniem zmianami, aby inżynierowie uaktualnili maszyny, które Dane Dane’t Pracuj w procesie automatycznym. Staliśmy się kreatywni, motywując naszych użytkowników do aktualizacji ich maszyn. Środki wahały się od dokuczania wiadomości w interfejsie użytkownika, maili, zaplanowanych ponownych uruchamiania, a nawet zamykania maszyn, aby zwiększyć świadomość, że nadal istniały pewne maszyny w trującym potrzebie aktualizacji. Czasami złowiło to maszyny, o których ludzie całkowicie zapomnieli, jak ta jedna maszyna pod biurkiem, która działała na temat krytycznego rurociągu dla czegoś ważnego, jak się okazało.
Rolling Empleases
Kiedy zaprojektowaliśmy Glinux Rodete (Rolling Debian Testing), staraliśmy się usunąć dwuletni cykl aktualizacji i zamiast tego rozłożyliśmy obciążenie zespołowi przez cały czas. Ogólne przejście do CI/CD w branży wykazało, że mniejsze zmiany przyrostowe są łatwiejsze do kontrolowania i wycofania. Rolling Remeases z dzisiejszymi rozkładami Linux stają się coraz bardziej powszechne (Arch Linux, Nixos).
Zastanawialiśmy się nad innymi dystrybucjami Linux, ale ostatecznie wybrali Debiana, ponieważ ponownie chcieliśmy zaoferować płynną migrację na miejscu. Obejmowało to rozważania dotyczące dostępności pakietów w Debian, dużej społeczności Debian, a także istniejących pakietów wewnętrznych i oprzyrządowania, które korzystały z formatu Debiana. Podczas gdy stabilny tor debian podąża mniej więcej dwuletni skok między wydawnictwem, tor testujący Debian działa jako wydanie toczące się, ponieważ jest to pula wszystkich pakietów połknięta i zbudowana z Upstream, czekając na następną stabilną wersję.
Czas od wydania upstream do dostępności w testowaniu wynosi często zaledwie kilka dni (chociaż w okresach zamrażania przed stabilnym wydaniem Debiana może czasem opóźnić się kilka miesięcy). Oznacza to, że możemy ogólnie wprowadzić znacznie więcej szczegółowych zmian i zapewnić najnowsze oprogramowanie dla naszych inżynierów w Google bez konieczności oczekiwania dłuższych okresów.
Ta częstotliwość aktualizacji wymagała od nas przeprojektowania wielu systemów i procesów. Choć pierwotnie zamierzając częściej wydawania, stwierdziliśmy, że dla nas cotygodniowe wydania były słodkim miejscem między szybkim ruchem a umożliwieniem właściwej kwalifikacji uwalniania, ograniczając zakłócenia dla wydajności programistów.
Za każdym razem, gdy zaczynamy nową wersję, robimy migawkę wszystkich pakietów połkniętych w tym czasie Debiana. Po niektórych testach akceptacyjnych nowy kandydat do wydania hermetycznego zostaje następnie ostrożnie wdrażany z dedykowaną flotą testową i 1% kanałów z szerokości floty. Kanary odbywa się celowo w ciągu kilku dni, aby wykryć wszelkie problemy z pakietami Debian lub pakietami wewnętrznymi Google, zanim przejdzie do całej floty.
Przedstawiamy sito
Aby zarządzać wszystkimi tymi złożonymi zadaniami z budowania wszystkich pakietów w górę od źródła, zbudowaliśmy system przepływu pracy o nazwie Sieto. Ilekroć widzimy jakąkolwiek nową wersję pakietu Debiana, rozpoczynamy nową kompilację. Budujemy pakiety w grupach pakietów, aby wziąć pod uwagę osobne pakiety, które należy zmodernizować. Po zbudowaniu całej grupy uruchamiamy zwirtualizowany pakiet testowy, aby upewnić się, że żaden z naszych podstawowych komponentów i przepływów pracy programistów nie jest zepsuty. Każda grupa jest testowana osobno za pomocą pełnej instalacji systemowej, rozruchu i lokalnego pakietu testowego uruchomionego w tej wersji systemu operacyjnego. Podczas gdy kompilacje poszczególnych pakietów zwykle zakończyły się w ciągu kilku minut, testy te mogą potrwać do godziny, biorąc pod uwagę złożoność grupy pakietów.
Po zbudowaniu pakietów i wszystkich testach, łączymy wszystkie nowe pakiety z naszą najnowszą pulą pakietów. Kiedy wycinamy nową wersję, migawkujemy tę pulę z każdą wersją pakietu zablokowaną do tej wersji. Następnie przystępujemy do starannego prowadzenia tego wydania do floty, wykorzystując zasady SRE, takie jak przyrostowy kanary i monitorując zdrowie floty.
Ale nie wszystkie kompilacje odniosły sukces w pierwszej próbie. Jeśli pakiet nie zbuduje się, zwykle sprawdzamy jakiekolwiek znane błędy z debian Bug Tracker i potencjalnie go zgłaszamy, jeśli jeszcze nie będzie znany. Czasami nasi inżynierowie wydawani muszą stać się kreatywni i zastosować lokalne obejścia/łatki, aby uzyskać pakiet do zbudowania w naszym ekosystemie, a później upuść te obejścia, gdy Upstream wydało poprawkę.
Jednym z problemów, na przykład, na przykład, jest to, że w Upstream Debian pakiety są zwykle budowane w niestabilnym debian. Po kilku dniach te już zbudowane pakiety migrują do testów Debian. W niektórych przypadkach jest jednak możliwe, że zależność od kompilacji utknęła w niestabilnym, a zatem budowanie w ramach testowania może nie być (jeszcze) wykonalne. Na ogół staramy się najpierw pracować w tych przypadkach w górę, więc zmniejszamy złożoność i obciążenie konserwacyjne, aby zachować te lokalne plamy, a jednocześnie zwrócić się do społeczności.
Jeśli którykolwiek z kroków się nie powiedzie, Sieve ma zestaw narzędzi do ponownego ponownego wyposażenia kompilacji. Na przykład, gdy rozpocznie początkową wersję grupy pakietów, system składa wykształcony domyślnie. Ale czasami informacje o wersji podane w pakietach źródłowych Debian mogą być niekompletne, a to przypuszczenie jest złe. Z tego powodu Sive okresowo odzyskuje grupy budowlane, które zawiodły. Ponieważ najnowsza migawka naszych pakietów jest ruchomy cel, może się zdarzyć, że po dodaniu pozornie niezależnej grupy pakietów zostanie dodana do migawki, wcześniej zepsuta grupa nieoczekiwanie buduje i prawidłowo przechodzi testy. Wszystkie te przepływy pracy są w większości automatyczne, a to podkreśla znaczenie myślenia jako SRE w tej dziedzinie. W obliczu awarii zwykle łatwiej jest po prostu naprawić niepowodzeniem kompilacji raz, ale jeśli będziemy musieli stosować to samo obejście, umieszczenie obejścia kodu zmniejszy ogólne obciążenie na naszych inżynierach.
Istnieją również pewne korzyści bezpieczeństwa budowania wszystkich naszych plików binarnych ze źródła i dodatkowe pochodzenie kodu źródłowego, które weryfikuje pochodzenie działającego binarnego. Na przykład podczas incydentu bezpieczeństwa jesteśmy w stanie szybko odbudować i mieć zaufanie do kompilacji, pracując z tymczasową łatką, ponieważ wcześniej budowaliśmy wszystkie pakiety, te grunty w naszej dystrybucji. Ponadto zmniejszamy również kopertę zaufania, którą musimy umieścić w artefaktach Binary Bilan Build produkowanych przez ich infrastrukturę. Zamiast tego po spożyciu kodu źródłowego i binarnego weryfikowania możemy kryptograficznie potwierdzić, że działający plik binarny powstał dokładnie z tego kodu źródłowego.
Uaktualnienie do rodetu
Ostatnia wersja Goobuntu została oparta na Ubuntu 14.04 LTS (Codename Trustty). Rozwój Rodete rozpoczął się w 2015 roku i szybko było jasne, że nie możemy’T Po prostu upuść wsparcie dla zaufania i wymagaj od całej populacji inżynierii zainstalowania nowej nowej dystrybucji. Z poprzednich doświadczeń aktualizacji w miejscu między wersjami LTS mieliśmy już dobre doświadczenie, wiedząc, co czeka na nas z tą migracją. Ponieważ Ubuntu jest pochodną Debiana i używa wielu takich samych infrastruktury/formatów opakowania (APT), nie było’T całkowicie szalony pomysł na ulepszenie floty z Goobuntu 14.04 na debian na miejscu. Ponownie wykorzystaliśmy niektóre części naszego poprzedniego narzędzia aktualizacji na miejscu i pracowaliśmy, aby uczynić go bardziej niezawodnym, dodając więcej automatyzacji i dużo więcej testów.
Aby ułatwić tworzenie takiego narzędzia, przetestowanie go i utrzymanie przez czas migracji, postanowiliśmy tymczasowo zamrozić rodet Glinux jako migawkę testów Debiana w określonym dniu, w którym nazywamy linię podstawową. Możemy rozwinąć tę linię bazową we własnym wyborze, aby zrównoważyć to, co pakiety Sieve Plants. Aby zmniejszyć tarcie, celowo ustawiliśmy linię bazową Rodete w bieżącym wydaniu stajni Debian w 2016 r. W ten sposób moglibyśmy oddzielić aktualizację od zaufania do Debiana i dużych zmian w wersji pakietowej, które miały miejsce w Debian w późniejszym terminie.
W 2017 r. Zaczęliśmy migrować maszyny do Rodete i ukończyliśmy ostatnie migracje do końca 2018 r. Wciąż jednak mieliśmy podstawę pakietów, które w tym momencie w przeszłości w przeszłości. Aby nadrobić zaległości w testach Debiana, rozpoczęliśmy szeroki wysiłek w zespole, aby skoncentrować się na optymalizacji zachowań sitowych i przyspieszeniu czasu potrzebnego na budowę pakietów. Odtwarzanie aktualizacji w ten przyrostowy sposób i posiadanie ruchomego celu zwolnienia, który kontrolujemy, złagodziło obciążenie dla inżynierów Google i naszego zespołu.
Na początku 2019 roku zaczęliśmy zamykać ostatnie pozostałości maszyn Goobuntu. Nasza linia odniesienia również zaczęła się pozostać w tyle o ~ 250 dni, co w tym czasie oznaczało, że używaliśmy większości wersji pakietów, które były częścią Buster. W połowie 2020 roku w końcu w pełni dogonowaliśmy w tym samym czasie, gdy Debian Bullseye został wydany. Kontynuujemy naszą linię bazową i prawdopodobnie będziemy już korzystać z podobnej wersji następnej wersji Stable Debian, przed jego wydaniem w połowie 2023 roku.
Docierając do Zen
Dziś życie członka zespołu Glinux wygląda zupełnie inaczej. Zmniejszyliśmy ilość czasu inżynierii i energii wymaganej do wydania do jednego inżyniera zwolnienia na Duty, który obraca się między członkami zespołu. Nie mamy już dużego nacisku na ulepszenie całej naszej floty. Nigdy więcej potrzeby wieloetapowej alfa, beas i gazu do nowych wydawnictw LTS, jednocześnie ścigając starsze maszyny, które nadal działały Ubuntu.
Dramatycznie poprawiliśmy również nasze stanowisko bezpieczeństwa, obsługując naszą flotę bliżej wydawnictw w górę. Podczas gdy Debian stanowi dobre źródło łatek bezpieczeństwa dla stabilnych i starszych utworów, zdaliśmy sobie sprawę, że nie każda dziura bezpieczeństwa, która otrzymuje łatki, koniecznie ma doradztwo w zakresie bezpieczeństwa debian (DSA) lub numer CVE. Nasz harmonogram wydawnictwa upewnia się, że szybko załatujemy otwory bezpieczeństwa na całej flocie bez kompromisu w zakresie stabilności, podczas gdy wcześniej inżynierowie bezpieczeństwa musieli dokładnie przejrzeć każdy DSA i upewnić się, że poprawka dotarła do naszej floty.
Nasze ulepszone testy testowe i testy integracji z kluczowymi zespołami partnerskimi, które uruchamiają krytyczne systemy programistów, również dały bardziej stabilne wrażenia przy użyciu dystrybucji Linuksa, który zapewnia najnowsze wersje jądra Linux. Nasza silna tęsknota za automatyzacją wszystkiego w rurociągu znacznie zmniejszyła trud i stres w zespole. Możliwe jest również zgłaszanie błędów i niezgodności z innymi wersjami biblioteki, jednocześnie upewniając się, że narzędzia Google działają lepiej w ekosystemie Linux.
Jeśli jesteś zainteresowany powodzeniem zwalniania w swojej firmie, rozważ zrównoważenie potrzeb firmy z aktualizacją zwinności. Kontrola naszego ruchomego celu i linii bazowej pomogła zwolnić, gdy napotkaliśmy zbyt wiele problemów i złamaliśmy którykolwiek z naszych zespołów SLO. Nasza podróż ostatecznie wzmocniła nasze przekonanie, że zmiany przyrostowe są lepsze niż wydawania Wielkiego Wybuchu.
Jeśli jesteś w stanie kontrolować napływ nowej pracy i zachować to przewidywalne, stworzyliśmy doświadczenie, że nasi inżynierowie pozostają szczęśliwsi i są mniej zestresowani. To ostatecznie obniżyło zespół zespołu i upewniło się, że możemy zbudować wiedzę zamiast radzić sobie z wieloma płonącymi pożarami w tym samym czasie.
W przyszłości planujemy jeszcze bardziej współpracować z Upstream Debian i wnieść więcej naszych wewnętrznych łat, aby utrzymać ekosystem pakietu Debian.
- Deweloperzy i praktycy
- Systemy
- DevOps & Sre
Po co uruchomić Linux w Google Cloud?
Przedsiębiorstwa w chmurze mają wiele dla nich: zwiększona zwinność, zdolność adaptacyjna, elastyczność i niezawodność – co znacznie ułatwia wyprzedzenie krzywej. Łączenie lokalnej infrastruktury z usługami w chmurze może oddychać nowe życie w istniejące procesy i zwiększyć liczbę narzędzi i technologii do Twojej dyspozycji.
Brzmi świetnie, prawda? To jest – ale po pierwsze, musisz rozważyć wybór dostawcy chmury i systemu operacyjnego. Które z nich stanowią najlepsze podstawy do budowania hybrydowego środowiska chmurowego, jednocześnie umożliwiając elastyczność w zakresie przyjmowania żądanych usług i technologii?
Linux i Google Cloud Platform to silna kombinacja, z którą można przenieść przedsiębiorstwo do chmury i w przyszłość. Pozwalać’s spójrz na każdego z nich, zanim dowie się, co sprawia, że wyróżniają się jako zespół.
Jak działają Linux i Google Cloud Platform
Google Cloud Platform
Google Cloud Platform, jak Amazon’S AWS i Microsoft Azure, jest publiczną platformą chmurową i jest częścią Google Cloud, która jest zbudowana w Google’s Globalna infrastruktura. Google Cloud zapewnia usługi w chmurze i narzędzia zarządzania – via The Google Cloud Console – które dostarczają wszystko, co potrzebne do budowania efektywnych środowisk chmurowych i wielokabryczanych, wdrażania aplikacji i interfejsów API oraz obsługi obciążeń w całym środowisku.
Google Cloud Platform ma narzędzia i możliwości zorientowane na bezpieczeństwo, aby umożliwić przedsiębiorstwu skorzystać ze wszystkich korzyści z przetwarzania w chmurze z jasną strategią (Google Cloud Multicloud Solutions), podejmuj decyzje na podstawie dokładnych i aktualnych informacji o firmie i zapasach (analizy danych), a także przekształcić sposób komunikacji zespołów i pracy (Google WorksPace).
Google Cloud obejmuje Google Cloud Platform, a także pakiet produktów i narzędzi, takich jak Google Cloud Storage (pamięć obiektów), Google Cloud DataStore (baza danych NoSQL), funkcje Google Cloud (oparte na zdarzeniach platforma komputerowa-AS-A-Service), Google Compute Engine lub GCE (wirtualne maszyny działające w Google’S Data Center) i Google App Engine (platforma aplikacji Serverless) – znacznie więcej.
Linux foR Cloud Computing
Linux to system operacyjny open source. Ze względu na model rozwoju open source, Linux idealnie nadaje się do przetwarzania w chmurze, ponieważ pozwala przedsiębiorstwom wybierać platformy i technologie, które najlepiej odpowiadają ich potrzebom i celom, a także umożliwiając wybór potrzeb i dostawców, unikając w ten sposób niepotrzebnych wydatków i blokady dostawcy. Dzięki Linux do przetwarzania w chmurze otrzymujesz wszystkie zalety Linux dla tradycyjnych wdrażania IT z elastycznością do rozwoju przy użyciu nowszych technologii, takich jak Kubernetes, AI/ML i przetwarzanie krawędzi. Z tych powodów Linux pozostaje wiodącym wyborem systemu operacyjnego w przetwarzaniu w chmurze.
Lepiej razem: korzyści płynące z uruchamiania Linux na Google Cloud Platform
Google Cloud Platform jest zbudowana na Linux i działa z wieloma dystrybucjami Linux, takimi jak Centos, Ubuntu i Red Hat Enterprise Linux. Charakter open source systemu Linux z Google Cloud Platform oznacza, że użytkownicy otrzymują następujące korzyści:
- Elastyczność dostawców i usług
- Łatwiejsza migracja aplikacji i informacji
- Spójność informacji i procesów na śladach
- Innowacja struktury i społeczności open source
Zasadniczo silny dostawca chmur w uznanym fundamencie Linux oznacza, że Twoja strategia chmur przedsiębiorstwa zmierza we właściwym kierunku.
Korzyści z Red Hat Enterprise Linux na Google Cloud Platform
Przyjęcie podejścia hybrydowego lub multicloud może być trudne – szczególnie wtedy, gdy ty’ponownie użyte do starszego sprzętu i tradycyjnej infrastruktury. Ale odpowiedni dostawca usług w chmurze i dystrybucja Linux zapewniają solidny start. Dzięki Red Hat® Enterprise Linux® na Google Cloud Platform, masz podstawy strategii w chmurze, która zabierze Cię gdziekolwiek chcesz. A ponieważ Red Hat Enterprise Linux działa w Google, podobnie jak reszta Red Hat’Produkty s.
Red Hat Enterprise Linux i Google Cloud Platform pomogą uprościć platformę infrastruktury, przyspieszyć opracowywanie i dostarczanie aplikacji oraz uwzględniać automatyzację procesów biznesowych i zarządzania, dzięki czemu możesz szybciej wprowadzać innowacje i dostosowywać się do zmian w branży, regulacyjnych i globalnych dzięki zmianom hybrydowym środowisku chmurowym w chmurze chmury.
I tu’S Coś innego-Linux Hat Enterprise dla SAP Solutions w Google Cloud to platforma o wysokiej wydajności dla operacji bazy danych, która obejmuje treść i funkcje specyficzne dla SAP i umożliwia organizacjom wdrażanie SAP w hybrydowych środowiskach chmurowych. Red Hat Enterprise Linux to jedna z dwóch dystrybucji Linux certyfikowanych do użytku z SAP HANA® i SAP S/4HANA®.
Z elastyczną konfiguracją, podstawową i zabezpieczoną fundacją, globalną infrastrukturą sieciową oraz zaawansowaną zarządzaniem danymi i analizami, Red Hat i Google Cloud zapewniają funkcje i możliwości, których potrzebujesz do tworzenia i obsługi środowisk hybrydowych i wielokrotnie sprawnych skutecznie i wydajnie. Każdy komponent zapewnia kluczową funkcjonalność i wartość oraz niezawodne, wysokowydajne środowisko operacyjne dla obciążeń i aplikacji w ramach infrastruktury fizycznej, wirtualizowanej, kontenerowej, opartej na chmurze i krawędzi.
Historia Google’s wewnętrzny komputer stacjonarny Linux
Jeśli rozejrzysz się po Google’s Mountain View, Kalifornii, zobaczysz maszyny z systemem Windows, Chromebooks, Macs – i Glinux Desktops. G Co, pytasz? Cóż, oprócz polegania na Linuksie dla swoich serwerów, Google ma własną dystrybucję komputerową Linux.
Nie możesz tego dostać – cholera! – Ale od ponad dekady Google pieczy i je własną domową dystrybucję komputerową Linuks. Pierwsza wersja to Goobuntu. (Jak się domyślałoby od nazwy, oparto na Ubuntu.)
W 2018 r. Google przeniósł wewnętrzny komputer Linux z Goobuntu do nowego Linux Distro, Glinux z siedzibą w Debian. Dlaczego? Ponieważ, jak wyjaśnił Google, długoterminowe wsparcie (LTS) Ubuntu (LTS) „oznaczało, że musieliśmy zaktualizować każdą maszynę w naszej flocie ponad 100 000 urządzeń przed datą życia systemu operacyjnego.”
To był ból. Dodaj czasochłonną potrzebę w pełni dostosowywania komputerów inżynierów, a Google zdecydował, że kosztuje to zbyt wiele. Poza tym „wysiłki na rzecz ulepszenia naszej floty Goobuntu zwykle zajęło większą część roku. Z dwuletnim oknem wsparcia pozostało tylko rok, dopóki nie musieliśmy ponownie przejść przez ten sam proces na następne LTS. Cały ten proces był ogromnym czynnikiem stresowym dla naszego zespołu, ponieważ otrzymaliśmy setki błędów z prośbami o pomoc w sprawach narożnych.”
Kiedy więc Google miał tego dość, przeniósł się do Debian Linux (choć nie tylko wanilia debian). Firma stworzyła Rolling Debian Distribution: Glinux Rolling Debian Testing (Rodete). Chodzi o to, że użytkownikom i programiści najlepiej obsłużyć, podając im najnowsze aktualizacje i łatki, gdy są tworzone i uważane za gotowe do produkcji. Takie dystrybucje obejmują Arch Linux, Testowanie Debiana i OpenSuse Tumbleweed.
W przypadku Google natychmiastowym celem było zejście z dwuletniego cyklu aktualizacji. Jak pokazało przejście do ciągłego integracji/ciągłego wdrażania (CI/CD), te zmiany przyrostowe działają dobrze. Są również łatwiejsze do kontrolowania i wycofania, jeśli coś pójdzie nie tak.
Aby wszystko to działało bez dużej ilości krwi, potu i łez, Google stworzył nowy system przepływu pracy, Sieve. Ilekroć Sieve dostrzega nową wersję pakietu Debiana, rozpoczyna nową kompilację. Pakiety te są wbudowane w grupy pakietów, ponieważ oddzielne pakiety często muszą być aktualizowane razem. Po zbudowaniu całej grupy Google uruchamia zwirtualizowany pakiet testowy, aby upewnić się, że żadne podstawowe komponenty i przepływy pracy programistów nie są zepsute. Następnie każda grupa jest testowana osobno za pomocą pełnej instalacji systemowej, rozruchu i lokalnego pakietu testowego. Pakiet jest kompletny w ciągu kilku minut, ale testy mogą potrwać do godziny.
Po zakończeniu wszystkie nowe pakiety są scalone z najnowszą pulą pakietów Glinux. Następnie, gdy Google decyduje, że nadszedł czas, aby uwolnić go na produkcję, zespoły migają puli. Wreszcie, wdraża świeże wydanie floty. Oczywiście, to’S nie zamierza po prostu zrzucić użytkowników. Zamiast tego wykorzystuje zasady inżynierii niezawodności witryny (SRE), takie jak przyrostowe kanary, aby upewnić się, że nic nie będzie nie tak.
Przez lata Google stał się w tym lepszy. Dzisiaj, dzięki Sieve, cały zespół programistów Glinux składa się z pojedynczej pozycji inżyniera wydawnictwa, która obraca się między członkami zespołu. Nie ma dużych nacisków na ulepszenie floty. Brak wielostopniowych wydań alfa, beta i ogólnej dostępności (GA).
Co więcej, dzięki harmonogramowi wydawnictwu, Google może szybko łatać otwory bezpieczeństwa na całej flocie bez uszczerbku dla stabilności. Wcześniej inżynierowie ds. Bezpieczeństwa musieli dokładnie sprawdzić każde doradztwo w zakresie bezpieczeństwa debiana (DSA), aby upewnić się, że poprawka jest w.
Ponadto „Ulepszone testowanie testów i testy integracji z kluczowymi zespołami partnerskimi, które uruchamiają krytyczne systemy programistów, również zapewniły bardziej stabilne wrażenia przy użyciu dystrybucji Linux, która zapewnia najnowsze wersje jądra Linux. Nasza silna tęsknota za automatyzacją wszystkiego w rurociągu znacznie zmniejszyła trud i stres w zespole. Możliwe jest również zgłaszanie błędów i niezgodności z innymi wersjami biblioteki, jednocześnie upewniając się, że narzędzia Google działają lepiej w ekosystemie Linux.”
Patrząc w przyszłość, zespół Google oświadczył, że to’LL pracuje „ściślej z Upstream Debian i wkładaj więcej naszych wewnętrznych łat, aby utrzymać ekosystem pakietu Debian.”
To wszystko brzmi świetnie. Ale mam dwa przemyślenia do podzielenia się.
Po pierwsze, dla niektórych organizacji wydania LTS nadal mają sens. Jeśli nie potrzebujesz najnowszych, najświeższych programów dla swojej firmy, Ubuntu lub Red Hat LTS Linux nadal ma sens.
Po drugie, i to jest ważne: Sito brzmi jak miauczenie kota. Jeden program, który może zautomatyzować rurociąg produkcyjny dystrybucji do tego stopnia, że zajmuje tylko jeden inżynier, aby utrzymać pulpit używany przez ponad 100 000 użytkowników? Zapisz mnie!
Jeszcze lepiej, zwolnij kod Sieto. Co powiesz na Google? Co mówisz?
- Linux komputerowy
Copyright © 2022 IDG Communications, Inc.