Modul in care Epic Games utilizeaza Kubernetes pentru a alimenta serverele de aplicatii pentru jocul Fortnite.
Dezvoltatorii de jocuri au cerinte de inalta performanta pentru infrastructura serverului lor de aplicatii. Aceste cerinte sunt chiar mai mari pentru Epic Games, proprietar si operator al Fortnite, care este in prezent unul dintre cele mai populare jocuri video din lume .
Intr-o sesiune media si de analiza la conferinta KubeCon + CloudNativeCon NA 18, Paul Sharpe, principalul dezvoltator al cloud engineering de la Epic Games, ofera o perspectiva asupra modului in care Epic Games incepe sa foloseasca Kubernetes pentru a mentine utilizatorii Fortnite multumiti.
Kubernetes este un sistem de container orchestration in esenta, care permite organizatiilor sa implementeze, sa gestioneze si sa reduca volumul de lucru al aplicatiilor in mediile fizice si virtuale distribuite ale serverului.
“Aceasta este prima mea incursiune in industria jocurilor, nu stiam la ce sa ma astept atunci cand m-am inrolat in acest domeniu, dar se pare ca dezvoltarea unui joc video este la fel ca dezvoltarea oricarui alt produs de succes”, a spus Sharpe. “Dezvoltarea moderna a jocurilor este de fapt o multime de microservicii si alte tipuri de tehnologie care sunt folosite si in afara industriei de gaming”.
Sharpe a spus ca Epic Games a investit deja puternic in AWS (Amazon Web Services) si utilizeaza containerele Docker. El a adaugat ca trecerea la Kubernetes este o evolutie naturala a muncii Epic Games, care are ca scop incercarea de a imbunatati viata dezvoltatorilor.
“In momentul de fata, dezvoltatorii nostri trebuie sa faca maual o gramada de operatiuni de load-ballancing si instante EC2 “, a spus el. “Kubernetes ofera solutii pentru a elimina responsabilitatea directa a dezvoltatorilor, lasandu-i liberi sa sa focuseze strict pe rezolvarea problemelor pe care ei trebuie sa le rezolve”.
In plus fata de Kubernetes, Sharpe a spus ca Epic Games este interesat de proiectele open-source OpenTracing, inclusiv proiectul Jaeger, si ca se afla in procesul de inventare a instrumentelor potrivite pentru implementarea in productie.
Sharpe a adaugat ca EpicGames lucreaza la personalizari in ceea ce priveste modul in care poate integra fluxurile de lucru Kubernetes in mediul sau, intr-un mod care nu va afecta dezvoltatorii.
Suport Linux
Serviciile core backend pentru jocul Fortnite ruleaza pe serverele Linux.
“In ceea ce priveste stack-ul in sine, suntem un magazin mare de Linux”, a spus Sharpe. “Avem un set de microservicii, scrise in diferite limbaje, inclusiv Java si Scala, unele servicii sunt RESTful si evident avem clienti C ++”.
Pentru monitorizare si masurare, Epic Games utilizeaza proiectele open-source Prometheus, FluentD, InfluxData si Telegraf. El a adaugat ca Epic Games foloseste in prezent serviciul EKS (EC2 Kubernetes Service) care ruleaza pe AWS.
“Suntem o companie de jocuri mari, dar suntem mici, in sensul cantitatii de resurse pe care trebuie sa o gestionam, astfel incat lucruri precum Kubernetes ne sunt foarte utile”, a mai spus el.