This repository has been archived on 2021-03-01. You can view files and clone it, but cannot push or open issues or pull requests.
internship-novaquark/slides/defense.md

2.8 KiB

% Soutenance de stage de fin d'études % Pierre-Olivier Mercier % Jeudi 4 septembre 2014

Novaquark

L'entreprise

  • Startup fondée en janvier 2014 ;
  • fondée par Jean-Christophe Baillie ;
  • de 4 collaborateurs à 14 aujourd'hui ;
  • actuellement dans l'incubateur Agoranov.

%%image(../templates/nemu/images/nq-high.png)

L'objet

%%image(../report/img/dual-dark.png, 0.5)

  • Jeu-vidéo MMO ;
  • monde unique, éditable, rendu par Voxel ;
  • économie, gameplay émergent : où les joueurs construisent leur propre jeu via leurs interactions.

Visuel du jeu

TODO image voxel + visuel du jeu

Le stage

Présentation du sujet

  • Travail avec l'équipe en charge du serveur ;
  • mise en place des bases de l'infrastructure de mise à l'échelle :
    • virtualisation, cloud computing ;
    • relevé de métriques,
    • déploiement centralisé,
    • sécurité du cluster ;
  • tests de montée en charge du serveur :
    • déploiement automatique,
    • dans les nuages.

Travail effectué

États de l'art

Plates-formes d'infrastructure en tant que service (IaaS)

  • Amazon Web Services Elastic Cloud 2 ;
  • Google Compute Engine.

Outils de déploiement automatique

  • Ansible, Chef, Puppet ;
  • Capistrano, Fabric, ...

Solutions de virtualisation

  • Linux Containers (LXC), Docker ;
  • Oracle VirtualBox, Linux KVM.

Réponses à des problématiques

Chat en jeu

  • XMPP : jabberd*, ejabberd, prosody, ...
  • IRC, Zephyr, ...

Authentification centralisée

  • LDAP : centralisation ;
  • Kerberos : jeu/serveurs et services en jeu (chat, ...).

Utilisation du serveur par les développeurs

  • Machine virtuelle personnelle ;
  • interface de gestion simplifiée.

Conception de recettes de déploiement

Via Ansible

  • Serveur de monitoring ;
  • serveur de jeu ;
  • serveur de conteneurs génériques.

via Docker

  • Site web du jeu ;
  • forum ;
  • supervision ;
  • LDAP.

Programme de relevé de métriques système

sysinfo_influxdb

  • Projet libre sous licence CC0 ;
  • disponible sur GitHub ;
  • écrit en Go (linkage statique) ;
  • utilise la base de données InfluxDB.

Métriques relevées

  • Utilisation du CPU ;
  • mémoire disponible ;
  • bande passante utilisée ;
  • entrées/sorties disques ;
  • charge, uptime.

Tests de montée en charge

Sur Amazon Web Services EC2

  • Déploiement de machines virtuelles ;
  • analyse des résultats : métriques, goulots d'étranglements ;
  • profiling du code en charge.

Conclusion

Conclusion

J'ai pu travailler:

  • avec des notions avant-gardistes : problèmatiques d'un monde unique réparti ;
  • sur des technologies d'avenir émergentes : virtualisation légère, conteneurs applicatifs ;
  • sur des sujets récurents : cloud computing, déploiement, sécurité ;
  • pour et avec des projets libres : Ansible, InfluxDB, SBT, ...