Skip to content

TP3 AZ104 : Build your own lil' thingie

Notre TP pour les trois prochains jours ! Et à rendre en fin de semaine.

➜ Toujours avec la certif AZ-104 en fallacieux objectif, on va réutiliser ce qui a été vu aux premiers TPs : de la VM Azure, avec Network Security Group (NSG), Blob Storage et Monitoring.

L'idée de ce TP : utiliser les fonctionnalités d'Azure pour héberger un truc à vous.

➜ C'est un exercice libre

Vous me proposerez une solution à monter, je valide (ou non), et vous avez les 3 jours pour réaliser.

Note

Peu importe l'application/solution que vous montez, ce qui nous intéresse ici, c'est l'écosystème autour, les features d'Azure, les bonnes pratiques répandues de sécurité, etc. Serveur de jeu, app web, autre application métier, peu importe !

Expectations

Modalités de l'exercice

1. Groupes

Vous pouvez vous mettre en groupe (ou pas), autant que vous voulez.

Note

Je recommande d'être deux, ça taffe bien sur des ptits trucs les binomes. Trois si vous voulez. Quatre ou plus c'est une connerie je pense pour cet exercice. Plus vous êtes nombreux plus vous serez notés durement.

2. Rendu attendu

J'attends un rendu écrit, un dépôt Git.

Il doit comporter :

  • un README.md de présentation
  • une présentation générale de ce que vous avez fait, quelques lignes, à quoi ça sert
  • comment déployer votre bazar (ça peut se limiter à terraform apply)
  • tout votre code d'automatisation
  • fichiers Terraform
  • éventuellement d'autres si nécessaires

Les contraintes

1. Au moins deux machines

Deux VMs Azure minimum.

Cela implique d'avoir un réseau Azure privé pour que les machines se joignent entre elles.

2. Un seul noeud frontal

Un seule machine est exposée sur internet.

Warning

La ou les autre(s) machine(s) ne doivent donc pas être asociée à une adresse IP publique.

Cela implique :

  • pour administrer l'autre (ou les autres) machine(s) en SSH, vous utiliserez un rebond SSH sur la première
  • pour de l'accès TCP (HTTP ou autres) vous utiliserez un noeud frontal de sécurité (reverse proxy HTTP, VPN, etc)

3. Entièrement automatisé

Uniquement du Terraform pour les déploiements Azure.

Utilisez l'outil de votre choix pour le reste (script bash ou Python, cloud-init, Ansible, etc).

4. Basic sysadmin

En plus du déploiement automatisé, vous mettrez à profit d'autres outils de l'arsenal du sysadmin : monitoring, backup, good practices.

C'est le coeur de la AZ-104 : la certif des sysadmins Azure. On change pas les usages, ni les bonnes pratiques, mais on les met en place avec les différentes features de Azure.

Monitoring

Les machines doivent être surveillées.

Au minimum :

  • quelques sondes système, au minimum :

    • CPU
    • RAM
    • disque
  • au moins une sonde applicative, par exemple :

    • est-ce que tel service est actif ?
    • est-ce que tel processus est en cours d'exécution ?
Info

On cherche ici à savoir si, d'un point de vue système, vos applications s'exécutent correctement.

  • au moins une sonde réseau, par exemple :

    • est-ce que tel port TCP répond ?
    • est-ce que telle requête HTTP retourne bien 200 ?
Info

Un peu pareil, mais côté réseau ! Savoir si on peut correctement interagir avec ce qui est en place, à travers le réseau. Si on considère une application Web par exemple : une sonde TCP permet de savoir si l'OS de destination répond correctement. Avoir une sonde HTTP par dessus permet de savoir si l'application répond correctement.

Backup

Les données importantes doivent être sauvegardées.

Il doit exister un système de sauvegarde qui stocke et archive les données de vos applications.

Danger

Si ce que vous déployez de contient pas vraiment de données, vous ferez une backup des fichiers de configuration.

Security good practices

Vous mettrez en place les bones pratiques élémentaires de sécurité :

  • pas de connexion sur root, ni distante ni locale

    • utilisation de sudo si besoin des droits root
  • gestion précise des droits rwx et des propriétaires des fichiers

  • pas de connexion SSH par password (clés fortes uniquement)
  • firewall local aux machines

    • autorise les connexions sur les ports 22/TCP
    • éventuellement d'autres ports si nécessaires
Note

Le moindre manquement à ces règles élémentaires de sécurité, je découpe votre note. 🪓

5. Azure features

Utiliser au moins 4 features de Azure pour setup tout ça. Libre à vous !

Vous pouvez réutiliser ce qu'on a vu aux TPs précédents, c'est même fortement recommandé.
Evidemment, au moins du NSG hein. Un ptit Blob Storage pour votre backup par exemple. Ou un ptit peu de monitoring by Azure, et voilà voilà.

Hint

Pour trouver des features intéressantes et utiles à intégrer à votre projet, plusieurs façons de s'y prendre. Cliquez partout dans l'interface Web, quand vous êtes sur la page de votre VM, vous trouverez bien un truc fun. Ou partez de documents ou autres annales de la AZ 104.