Chaos engineering au niveau applicatif dans une architecture distribuée
Étudier les différents patterns applicatifs pour rendre une application résiliente dans une architecture distribuée.

Missions

  • Apprendre le fonctionnement et les caractéristiques d’un système d’orchestration de container comme Kubernetes.
  • Découvrir le sujet de la résilience avec la mise en place d’un outils de chaos monkey pour valider la résilience applicative.
  • Découvrir les différents patterns de développement logiciel dans une architecture distribuée.
  • Réaliser un prototype d’une application métier résiliente déployée sur Kubernetes.

Conditions

Type de stage : Stage de fin d'étude, pré-embauche.
Lieu : OCTO Technology 34 avenue de l'Opéra 75002 Paris
Rémunération : 1500 € bruts
Date : Début 2019

Profil

  • Vous aimez vous frotter à Java ou Scala.
  • Vous êtes à l’aise ou vous vous sentez capable d’évoluer sur une plateforme Kubernetes managée.
  • Vous aimez explorer différents patterns de développement et d’architecture logiciel.
  • Focalisé(e) sur la partie technique, vous êtes motivé(e) pour développer dans les règles du craftsmanship, avec des tests,
  • du clean code et de la clean architecture.

Contexte

Cette mission se déroulera en plusieurs étapes. Cadrage, développement itératif et partage seront encadrés par un référent OCTO.

Etape 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.

Etape 2 : Développement itératif

Vous entrerez dans le vif du sujet :

• Développer une application avec un use case simple de traitement de données.
• Déployer l’application sur une plateforme Kubernetes managée.
• Mettre en place des tests de résilience de type chaos monkey.
• Étudier les patterns/solutions possibles à appliquer pour rendre l’application résiliente.
• Vous étudierez : les patterns 12 factors app, le fonctionnement de kubernetes, les modules de la stack net ix, l’impact de la modélisation sur la résilience.
• Valider de manière itérative avec une méthode agile les bonnes solutions.

Etape 3 : 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.

Objectifs du stage

L’objectif de ce stage est d’étudier les différents patterns et composants logiciels à mettre en place lorsque l’on développe une application dans une architecture distribuée qui se veut résiliente. Comment gérer les effets de bord de la relance d’un traitement avec le redémarrage d'une application ? Les traitements doivent-ils être idempotents ? Faut-il implémenter du checkpointing ? Comment automatiser les tests de résilience avec une approche de type chaos monkey ? La modélisation de ma base entre t-elle en jeu ? La mission consiste à dégager les bons patterns de résilience applicative dans une architecture distribuée qui reposera sur une plateforme autour de Kubernetes et Cassandra.

Encadrement

Vous serez encadré(e) par un consultant de la tribu Nouvelles Architectures de Données chez OCTO, un expert en développement fullstack et en architecture logiciel. Vous serez suivi(e) tout au long de votre projet (entretiens hebdomadaires avec votre tuteur, soutien de la communauté OCTO en cas de difficultés techniques...).