Jak nasze zaawansowane narzędzia inżynieryjne kształtują wciągające światy

- Jako platforma na ogromną skalę, obsługująca 85,3 mln aktywnych użytkowników dziennie*, Roblox zapewnia szeroki wachlarz doświadczeń o wysokiej niezawodności i niskim opóźnieniu. Osiągnięcie takiego poziomu wydajności zależy od najnowocześniejszych narzędzi inżynieryjnych i procesów, które są płynne, usprawnione i nieustannie przesuwają granice innowacji.
- Ponad 1000 inżynierów Roblox korzysta z trzech głównych produktów — naszej platformy cyklu życia mikrousług, centrum kodu oraz zaawansowanej platformy obserwowalności.
- Znacznie ograniczyliśmy przestoje i konsekwentnie zmniejszyliśmy średni czas reagowania o 50% w ciągu dwóch kolejnych lat.
- Nasz nowo opracowany wskaźnik produktywności inżynieryjnej (EPI) zapewnia kompleksowy obraz naszych działań inżynieryjnych, a w czwartym kwartale 2024 r. ogólny wskaźnik EPI poprawił się o 12,9% w ujęciu rok do roku.
W Roblox na nowo definiujemy sposób, w jaki ludzie łączą się i komunikują w immersyjnych światach. To ambitne przedsięwzięcie, a jego realizacja wymaga szerokiego zakresu innowacyjnej i wiodącej w branży infrastruktury.
Roblox to globalna platforma, a naszych 85,3 mln aktywnych użytkowników dziennie* może komunikować się ze sobą w czasie rzeczywistym w wielu różnych językach, na różnych platformach i urządzeniach, od tanich telefonów z Androidem po wysokiej klasy konsole. Obsługujemy wiele rodzajów treści — tekst, głos, dane 3D i nie tylko — a wszystko to z niezwykle wysoką niezawodnością i niskim opóźnieniem.
Aby nasi inżynierowie mogli sprostać tym specjalistycznym wymaganiom, polegają na płynnie działających, usprawnionych i niezawodnych narzędziach oraz procesach, z których większość stworzyliśmy samodzielnie. Dzisiaj z radością prezentujemy niektóre z innowacyjnych narzędzi i strategii, których używamy do budowania przyszłości Roblox, a także zapowiedź tych, które planujemy wkrótce stworzyć. Dzięki takim szybkim i wydajnym narzędziom oraz praktykom naszym celem jest uczynienie Roblox niezwykle atrakcyjnym miejscem dla utalentowanych osób.
Innowacje dzięki najnowocześniejszym narzędziom inżynieryjnym
Sercem naszej strategii produktywności inżynieryjnej są trzy narzędzia: nasza platforma cyklu życia mikrousług, nasze centrum kodu — narzędzie do programowania w pętli wewnętrznej — oraz nasza zaawansowana platforma obserwowalności. Razem narzędzia te umożliwiają ponad tysiącowi inżynierów Roblox radzenie sobie z trudnymi problemami.
Platforma zarządzania cyklem życia aplikacji
Nasza platforma do zarządzania cyklem życia aplikacji to własna mikrousługa, która pozwala inżynierom łatwo tworzyć, wdrażać, monitorować i debugować tysiące mikrousług — wszystko w jednym, uproszczonym interfejsie. Przed wprowadzeniem tej platformy zarządzanie mikrousługami w Roblox wiązało się z trudną nauką, nieefektywnymi procesami ręcznymi i częstym przełączaniem się między narzędziami wewnętrznymi.
Platforma do zarządzania cyklem życia aplikacji wyeliminowała tę dynamikę i umożliwiła naszym inżynierom poświęcanie mniej czasu na zarządzanie narzędziami i procesami, a więcej na rozwiązywanie złożonych wyzwań technicznych, ulepszanie systemów i dostarczanie użytkownikom funkcji o dużym znaczeniu.

Centrum kodów
Zaprojektowane w ramach Roblox w celu udoskonalenia naszych wewnętrznych procesów, nasze centrum kodu ograniczyło czasochłonne procedury i utrudnienia, z jakimi borykali się inżynierowie podczas przeglądów kodu. Narzędzie to przyspiesza przeglądy i usprawnia komunikację dzięki powiadomieniom w Slacku w czasie rzeczywistym oraz zaplanowanym podsumowaniom. W ten sposób zapewnia terminowe informacje zwrotne, co prowadzi do wyższej jakości przeglądów kodu i szybszych iteracji.
Centrum kodu szybko stało się niezbędnym narzędziem dla inżynierów Roblox, którzy chcą zoptymalizować swoje działania związane z kodowaniem, a w przypadku pull requestów odnotowano już 20-procentową poprawę czasu P75 potrzebnego do wprowadzenia zmian.

Zaawansowana platforma obserwacyjna
Nasza zaawansowana platforma obserwowalności płynnie integruje rozwiązania własne, open source i dostawców zewnętrznych, oferując wysoce wyspecjalizowaną infrastrukturę, która kładzie duży nacisk na niezawodność i skalowalność. Każdego dnia infrastruktura ta gromadzi miliardy szeregów czasowych i dziesiątki terabajtów ustrukturyzowanych informacji o czasie działania — logi, ślady, zdarzenia systemowe, dane profilowania i inne — które pomagają naszym inżynierom w skutecznym monitorowaniu, debugowaniu i testowaniu z pełnym przekonaniem.
Jednocześnie poświęcamy się badaniu, w jaki sposób automatyzacja i sztuczna inteligencja mogą jeszcze bardziej usprawnić nasze procesy. Na przykład zintegrowaliśmy kompleksowy zestaw domyślnych alertów dotyczących opóźnień, ruchu, błędów i nasycenia w ponad 1500 mikrousługach przy użyciu naszej wspólnej struktury mikrousług, a wszystko to bez pisania ani jednej linii kodu. Ulepszyliśmy również nasz system ciągłego wdrażania dzięki automatycznej analizie kanarkowej, która już w ciągu pierwszych sześciu miesięcy od uruchomienia skutecznie zapobiegła przedostaniu się setek błędów do naszego środowiska produkcyjnego.
Te innowacje mają nie tylko duży wpływ na nasze wewnętrzne procesy, ale także poprawiają codzienne doświadczenia użytkowników Roblox. Znacznie zmniejszyliśmy przestoje i konsekwentnie obniżyliśmy średni czas naprawy (MTTM) o 50% w ciągu dwóch kolejnych lat. Efektem końcowym jest bardziej płynne i niezawodne doświadczenie dla wszystkich w naszym ekosystemie.

Pomiar i zwiększanie wydajności inżynieryjnej
Tworzenie narzędzi nie ma większego sensu, jeśli nie ma sposobu, by sprawdzić, czy działają. Dlatego ciężko pracowaliśmy nad poprawą wydajności w Roblox, jednocześnie starając się zrozumieć, na czym polega wydajność w Roblox i co na nią wpływa.
W tym celu opracowaliśmy nowy wskaźnik wydajności inżynieryjnej (EPI), który zapewnia kompleksowy obraz naszych działań inżynieryjnych, podobnie jak deska rozdzielcza samochodu wyświetla przegląd osiągów i stanu pojazdu.
W czwartym kwartale 2024 r. poprawiliśmy ogólny wskaźnik EPI o 12,9% w ujęciu rok do roku, głównie dzięki szybkości działania, przy zachowaniu tego samego poziomu jakości.

Chociaż wskaźnik ten jest prostszy i bardziej przydatny dla celów Roblox niż frameworki takie jak DORA czy SPACE, oferuje on całościową ocenę produktywności w naszych licznych grupach i archetypach deweloperów, takich jak Engine i ML. Wykorzystujemy EPI do dostarczania ukierunkowanych informacji zwrotnych i rekomendacji, które umożliwiają zespołom monitorowanie i zwiększanie swojej produktywności z kwartału na kwartał.
EPI składa się z trzech elementów:
- Prędkość: ten element mierzy tempo działań inżynieryjnych, wykorzystując szeroki zestaw sygnałów, w tym czas cyklu i częstotliwość wdrażania, aby zmierzyć tempo rozwoju.
- Jakość: ten element opiera się na wskaźnikach, takich jak pokrycie kodu i kondycja trunku, aby zapewnić, że wiemy, co musimy zrobić, aby działać szybko i tworzyć produkty wysokiej jakości.
- Samodzielnie zgłaszana produktywność: Nieustannie poszukujemy bezpośrednich i ukierunkowanych informacji zwrotnych od naszych inżynierów. Informacje te dostarczają kluczowych spostrzeżeń na temat problemów, które wpływają na produktywność i satysfakcję. Tego typu informacje są niezbędne do zrozumienia wyzwań, przed którymi stają nasi inżynierowie, i nie można ich uchwycić za pomocą innych wskaźników. Element ten pomaga również w kształtowaniu naszej mapy drogowej, bezpośrednio wpływając na nasze decyzje dotyczące tworzenia rozwiązań, takich jak nasze centrum kodu i platforma zarządzania cyklem życia aplikacji.
Każdy z tych wskaźników odgrywa kluczową rolę w ogólnej produktywności w Roblox. Na przykład nie chcemy wysokiego wyniku w zakresie szybkości i niskiego wyniku w zakresie jakości lub odwrotnie. Poprawiając wskaźnik EPI, jesteśmy w stanie zoptymalizować wszystkie trzy elementy.

Sztuczna inteligencja i nowa granica inżynierii
W Roblox skupiamy się na rzemiośle inżynieryjnym. Ponadto na nowo definiujemy przyszłość inżynierii, wprowadzając pionierskie narzędzia oparte na sztucznej inteligencji, które zmieniają sposób, w jaki inżynierowie tworzą, współpracują i wprowadzają innowacje. Nieustannie dążąc do doskonałości, integrujemy sztuczną inteligencję z każdym aspektem procesu rozwoju, włączając ją do naszych istniejących narzędzi, takich jak platforma do zarządzania cyklem życia aplikacji i centrum kodu. Wykorzystujemy asystentów kodowania opartych na sztucznej inteligencji, aby przyspieszyć tworzenie i recenzowanie kodu, na nowo zdefiniować współpracę oraz zrewolucjonizować sposób wdrażania i utrzymania usług.
Nasza wizja wykracza poza automatyzację; tworzymy środowisko inżynierskie, w którym sztuczna inteligencja działa jako proaktywny partner, usprawniając przepływy pracy, poprawiając jakość kodu i zwiększając zaangażowanie. Inwestując w nasz wewnętrzny cykl rozwoju, proaktywne zapewnienie jakości oraz integracje sztucznej inteligencji specyficzne dla Roblox, torujemy drogę, na której tempo inżynierii, innowacje i współpraca osiągną nowy poziom. Najbliższe kilka lat będzie okresem ekscytującej ewolucji, a my jesteśmy zdeterminowani, aby uczynić Roblox najlepszym miejscem dla światowej klasy inżynierów, którzy chcą tworzyć wciągające doświadczenia nowej generacji.
* Stan na trzy miesiące kończące się 31 grudnia 2024 r.


