Chaos Engineering sur des pannes d’infrastructure
Banc de test automatisé pour analyser la résilience de systèmes distribués tels que Hadoop, Kafka, Cassandra...

Missions

  • Apprendre les enjeux liés à la robustesse du Cloud et des systèmes distribués, tels qu’on les rencontre chez les grands acteurs du web.
  • Découvrir et analyser les caractéristiques et limitations des systèmes distribués.
  • Réaliser des outils techniques, dans une optique industrielle (infrastructure as code, tests automatisés...).
  • Synthétiser une vision pédagogique sur le niveau de robustesse de systèmes complexes bâtis sur des composants faillibles de type commodity hardware.

Conditions

Type of internship:Stage de fin d'étude, pré-embauche.
Location:OCTO Technology 34 avenue de l'Opéra 75002 Paris
Salary:1500 € bruts
Date:Début 2019

Profile

  • Vous souhaitez découvrir et comprendre les systèmes distribués tels qu’Hadoop, Kafka, Cassandra...
  • Vous avez envie de vous frotter à de l’Infra as Code (Ansible, Terraform...) et coder en Java, Python, Scala, Go
  • Vous êtes intéressé(e), voire déjà passionné(e) par les environnements Cloud et les questions de robustesse qu’ils tirent..
  • Vous aimez explorer le fonctionnement d’un système en profondeur et essayer de trouver ses limites

Context

Étape 1 : Cadrage

Vous vous familiarisez avec les contraintes de la réalisation d’une application mobile sur plusieurs plateformes afin de comprendre les enjeux et les potentielles problématiques liées au partage de code.

Étape 2 : État de l'art

Dans un second temps, une revue de la littérature (Designing data intensive applications, Site Reliability Engineering...) et des outils de test de robustesse (Jepsen, Simian Army...) sont nécessaires pour intégrer au mieux le stage à l’état de l’art.

Étape 3 : Conception du banc de test

Cette phase met l’accent sur l’automatisation de l’infrastructure :

– Concevoir un banc de test automatiquement déployable sur le Cloud
– Automatisation du provisioning du banc de test
– Conception et réalisation avec pannes d’infrastructures automatisées et outils de monitoring associés.

Étape 4 : Benchmark de systèmes distribués

Cette phase sera à ré-itérer pour chaque système testé :

• Étudier un système distribué et déterminer sa con guration. • Automatiser son déploiement sur le banc de test.
• Intégrer le système à la solution de monitoring.
• Dérouler les tests et analyser leur résultat.

Étape 4 : Partage

Vous partagerez au sein de la communauté OCTO ce que vous aurez appris, à travers une restitution interne et un article sur le blog OCTO

Internship target

Les systèmes distribués, bases de données, systèmes de traitement de données et systèmes de consensus sont de plus en plus populaires et faciles d’accès. Avec l’essor du Cloud, ces systèmes s’appuient sur du commodity hardware, et intègrent la gestion des nombreux problèmes relatifs à la distribution, dont les pannes d’infrastructure. L’objectif de ce stage est de soumettre différents systèmes à divers cas de panne orientés infrastructure, dans un environnement Cloud, afin de caractériser leur comportement.

Management

Vous serez encadré(e) par un consultant de la tribu Nouvelles Architectures de Données, spécialisée sur les systèmes distribués, avec l’appui d’experts sur l’automatisation d’infrastructure Cloud et des méthodologies de tests. Vous serez suivi(e) tout au long de votre projet (entretiens hebdomadaires avec votre tuteur, soutien de la communauté OCTO en cas de dif cultés...)