Ciekawostki

Ile linii ma kod Google? Zanim poznasz odpowiedź, zgaduj

Karol Żebruń | Redaktor serwisu benchmark.pl
9 komentarzy Dyskutuj z nami

Google podzieliło się statystykami dotyczącymi kodu źródłowego, który decyduje o funkcjonowaniu usług on-line i fizycznych struktur

Google siedziba Mountain View - foto Shawn Collins

Google postanowiło podzielić się z nami informacjami o stopniu rozbudowania swojego kodu. Mówiąc kod mamy na myśli kompletny kod źródłowy dla całego oprogramowania, które odpowiada za funkcjonowanie potęgi znanej pod nazwą Google, a ostatnio Alphabet. Gdyby połączyć pliki źródłowe, dla wyszukiwarki, wszystkich usług on-line, biznesowych, multimedialnych i rozwiązań sprzętowych, w jeden plik otrzymalibyśmy zbiór… 2 miliardów linii kodu.

To dużo, czy mało? No cóż, wymyślonym na potrzeby filmu Parkiem Jurajskim pierwszej generacji z 1993 roku zarządzało oprogramowanie kryjące się w 2 milionach linii kodu. Tamten świat to jednak fantazja, a tu mamy rzeczywistość. Nawet kod jądra Linuxa jest bardziej skomplikowany niż wyimaginowane oprogramowanie Parku Jurajskiego - ma mniej więcej 15 milionów linii.

Google prezentacja statystyki

Jeśli liczba 2 miliardów nie przemawia do waszej wyobraźni, wyobraźcie sobie, że wszystkie pliki, które przechowują ten kod zajmują 86 terabajtów. Dostęp do nich ma codziennie 95% ekipy Google, która zajmuje się rozwojem oprogramowania. To 25 tysięcy osób na całym świecie, które codziennie zgłaszają średnio 15 tysięcy zmian w kodzie. Do tego dochodzi 30 tysięcy zmian wprowadzanych przez systemy zautomatyzowane. W całej historii kod był poprawiany 35 milionów razy.

Google workflow
Zanim poprawka zacznie funkcjonować globalnie musi przejść ścieżkę akceptacji

Kod źródłowy jest oczywiście podzielony na pliki, a tych jest aż 9 milionów. Sprawdźcie ile plików jest na waszym komputerze. Od razu uzyskacie odpowiedź na to, jak skomplikowana jest to struktura.

Zapewnić spójność tak rozbudowanemu kodowi źródłowemu nie jest łatwo. Każdy kto próbował programować wie o czym mowa. Programiści Google każdego tygodnia poprawiają około 15 milionów linii kodu, które są rozrzucone po 250 tysiącach plików.

Dla porównania kod systemu Windows XP miał około 45 milionów linii kodu (ponad 40 razy mniej), a co do jego optymalizacji zawsze było wiele wątpliwości. Google by nie dopuścić do bałaganu, jaki niewątpliwie narastałby gdyby wprowadzanie poprawek było niekontrolowanym procesem, stworzył system botów. Wspomagają one czyszczenie i optymalizowanie kodu, ale nadal niezastąpionym czynnikiem w tym procesie jest człowiek.

Google liczba zmian

Google liczba zmian tydzień

Gdy przyjrzymy się tempu w jakim kod Google jest modyfikowany, widać że jest to wzrost eksponencjalny, choć w ostatnich latach uległ on pewnemu ustabilizowaniu. Prawdziwa eksplozja usprawnień kodu nastąpiła mniej więcej po roku 2008. Widać także, że liczba zmian wprowadzanych przez zautomatyzowane systemy rośnie znacznie szybciej niż liczba zmian wprowadzana przez programistów i jest skorelowana z liczbą ludzkich poprawek.

By sprawnie zarządzać i udostępniać poszczególne fragmenty kodu, Google stworzyło swój własny system kontroli wersji, który nazwany został Piper. Część kodu, która odpowiada za kluczowe technologie Google, i która nie jest w żaden sposób dostępna z zewnątrz, udostępniana jest tylko wybrańcom. Kod dostępny dla wszystkich pracowników umieszczono w kopiach w 10 centrach danych Google na całym świecie.

Park Jurajski dowcip Nedry
Trudno sobie wyobrazić co by się stało, gdyby ktoś zrobił taki żart i zablokował całe Google. Google to nie tylko wyszukiwarka, dziś to ważny element naszego życia, nawet jeśli bezpośrednio tego nie doświadczamy.

Wykorzystując fragmenty kodu programiści Google są w stanie tworzyć nowe rozwiązania, które integrują się z infrastukturą Google. Zapewnienie by wszystko działało jak należy to duże wyzwanie. Wygląda na to, że Google na razie radzi sobie z nim całkiem sprawnie. Poniżej cała prezentacja Rachel Potvin, inżynier zarządzającej, która przybliża nie tylko liczby, ale również zalety stosowania monolitycznego repozytorium danych i sposób wprowadzania zmian.

W przyszłości Google będzie chciało się podzielić swoim doświadczeniem z innymi podmiotami, gdyż w końcu i inne instytucje staną przed wyzwaniem zarządzania wyjątkowo skomplikowanym kodem źródłowym.

Źródło: thenextweb, wired, fot: Shawn Collins/Flickr

Komentarze

9
Zaloguj się, aby skomentować
avatar
Dodaj
Komentowanie dostępne jest tylko dla zarejestrowanych użytkowników serwisu.
  • avatar
    limera1n
    i zapomnij gdzieś średnika :D
    7
  • avatar
    Konto usunięte
    "Zanim poprawka zacznie funkcjonować globalnie musi przejść ścieżkę akceptacji"

    Szkoda że nie działa to w przypadku aplikacji w Google Play.
    3
  • avatar
    apuk666
    XD, a ja myślałem, że chodzi o kod googla chroma...
    -3
  • avatar
    sadys
    ciekawe jak procentowa rozklada sie uzycie jezykow programowania w tych 2mld linii