Recrutement

Stage - Sécurisation d'une application Cloud Native avec la solution HashiCorp Vault

Stage de 4-6 mois

 

Poste à Grenoble

Embauche en CDI à la clé

Le contexte

Sogilis vous propose un stage en développement logiciel qui abordera les concepts les plus avancés en termes de développement cloud native et de cybersécurité.

Nous sommes une société de service informatique, qui accompagne ses clients pour construire des logiciels utiles, utilisables, durables, et en synergie avec leurs stratégies.

 

Ce sujet de stage s’intègre dans le développement de l’application de vidéo streaming open source Voogle, qui a pour vocation de démontrer les bonnes pratiques de Sogilis en terme de développement Cloud Native et de cybersécurité.
À 
noter que Voogle est actuellement déployé via la plateforme Squarescale et vise à en être un démonstrateur de fonctionnalités. 

Par conséquent, les démonstrations de fonctionnalités auront une place importante dans le stage.

 

Les technologies utilisées pour développer Voogle sont VueJS pour la partie Web frontend et Go pour la partie backend.

En outre, les solutions suivantes seront également utilisées pendant le stage : Docker, protobuf, MariaDB/SQL, RabbitMQ/AMQP, Consul, Vault, Terraform, Git, Github Actions et d’autres encore.

Quoi ?

Nous proposons ici la réalisation d’un projet, structuré autour de la méthodologie agile Scrum, qui sera réalisé par une équipe mixte intégrant des consultants de chez Sogilis. L’encadrement du stage et le pilotage du projet sera réalisé conjointement par le Directeur technique de Squarescale et par le responsable d’activité Cloud Native de Sogilis.

Plus précisément, Squarescale est une plateforme qui permet de générer / manager une infrastructure Cloud Native complète, chez un IaaS provider (AWS, GCP, Azure, …) mais également en mode On Premises (VMWare, Openstack, …), ou en Edge sur des objets connectés.
Elle intègre plusieurs technologies qui seront utilisées pendant le stage, comme le gestionnaire de secret HashiCorp Vault ou encore le service Mesh Consul Connect.

Le backlog de fonctionnalités constituant le sujet de stage est présent sur le repository Github du projet. Le tag « stage 2022 » est associé à chaque issue faisant partie de ce backlog. 

En résumé, cela consistera à la:

Formalisation des exigences techniques de sécurité à partie de la liste OWASP 10

Mise en conformité de Voogle

Développement d’un système d’authentification basé sur la solution HashiCorp Vault

Mise en place de secrets dynamiques pour l’accès aux bases de données (HashiCorp Vault)

Mise en place d’un service Mesh permettant d’appliquer un contrôle d’accès et de l’authentification TLS mutuelle entre tous services déployés.

Écrire des scénarios de démonstration pour chacun des points ci dessus

Faire évoluer la CI/CD existante pour intégrer les nouveaux développements

Objectifs du stage

Ce stage a pour vocation, en plus de vous faire découvrir le cloud native et plus particulièrement les aspects de sécurité.
Le tout, accompagné d’une montée en 
compétences en développement logiciel, et d’une véritable expérience du travail en équipe agile.

Qui ?

Ce stage est un stage de pré-embauche donc on vise le long terme.


Ce qui nous semble essentiel pour que le stage se passe bien :

– Chercher un stage de fin d’études (pour être dispo à l’embauche après, sinon ça marche pas :p)

– Avoir envie d’apprendre

– Avoir envie de travailler en équipe et communiquer

Être autonome dans sa zone de confort mais être capable de solliciter de l’aide face à un blocage

– Être capable d’écrire du code et de la documentation en anglais technique


Pré-requis (dans l’idéal):

Être à l’aise avec la programmation backend (Java, PHP, Python). Notamment connexion réseau (socket), connexion et utilisation d’une base de données SQL

Docker (être à l’aise pour développer dessus pendant le stage)

Utilisation au moins une fois d’une CI (automatisation build + exécution tests unitaires)

Appétence pour les problématiques Cloud Native (scaling/automatisation) et sécurité


/!\ En bref : on cherche quelqu’un qui saura faire, pas quelqu’un qui sait déjà faire /!\

Comment ?

Chez Sogilis on aime la technique, mais on sait que ce sont les pratiques qu’on met en place qui font la différence entre un échec et une réussite sur un projet logiciel.
Et comme on veut 
que le stage soit une réussite, on va mettre en place ce qu’on veut faire bien.

 


Avec un vocabulaire accessible :

– On réalise les fonctionnalités au fur et à mesure par petites étapes

– On fait des tests automatisés pendant le développement pour vérifier que l’outil marche

– On bosse ensemble pour partager la connaissance

– On met en place des outils automatisés pour détecter les problèmes


Avec le vocabulaire qu’on utilise tous les jours :

– On fait du développement Agile itératif/incrémental (un backlog de user stories et Kanban)

– On fait du Behavior Driven Development sur les tests à haut niveau, et des tests unitaires en dessous. On vise le bon compromis entre taux de couverture et maintenabilité des tests (ça risque de tourner autour de 95%)

– On organise du pairing autant que possible, avec le tuteur ou d’autres collègues pour partager la connaissance, pour faire de la revue de code, etc. Un créneau quotidien minimum est mis en place pour t’éviter la frustration d’un blocage.

Continuous testing/continuous integrationOn se fait un planning pour s’organiser. Si on dévie de ce planning, on ajuste le périmètre fonctionnel, pas la qualité.


Notre philosophie de base c’est ça : https://manifesteagile.