AccueilA proposContact

Mise en place d'un environnement de dev agile

Par Franck Anso
Publié dans Tech
24 janv. 2022
2 min

Dans un contexte de multi-projets, nos postes de travail doivent être capables de s’adapter à différents environnements de travail.

Node Version Manager, SDKMAN! et Docker vont être d’un grand secours pour rendre agile nos machines.

Node Version Manager

nvm

Node Version Manager (aka nvm) est un manager de version pour NodeJS, conçue pour être installé par utilisateur et invoqué par shell.

Installation

Pour installer ou mettre à jour nvm, il suffit de lancer le script d’installation en exécutant la commande ci-dessous :

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

Utilisation

Pour télécharger, compiler et installer la dernière LTS de NodeJS :

$ nvm install --lts
$ nvm use --lts

Pour installer et utiliser une LTS spécifique :

$ nvm install lts/erbium
$ nvm use lts/erbium

Pour supprimer une version :

$ nvm uninstall lts/erbium

SDKMAN

sdkman

SDKMAN! est un outil pour gérer des versions parallèles de multiples JDK et SDK. C’est le nvm du monde Java.

Installation

Tout comme nvm, il suffit d’exécuter la commande ci-dessous pour installer SDKMAN!.

$ curl -s "https://get.sdkman.io" | bash

Pour mettre à jour :

$ sdk selfupdate

De temps en temps, SDKMAN! nécessite une mise à jour pour récupérer (ou retirer) les candidats. SDMAN! vous informera du moment où il juge nécessaire ce refresh. Lorsque cela arrive, il suffit de lancer cette commande :

WARNING: SDKMAN is out-of-date and requires an update.
$ sdk update
Adding new candidates(s): kotlin

Utilisation

Vous pouvez lister les versions disponibles de Java :

$ sdk list java

L’installation d’un SDK particulier peut-être fait via cette commande :

$ sdk install java 17.0.4-tem

Vous pouvez bien entendu désinstaller une version installée :

$ sdk uninstall java 17.0.4-tem

Pour connaître la version en cours d’un candidat :

$ sdk current java
Using java version 17.0.4-tem

Pour changer de version :

$ sdk use java 17.0.4-tem

Docker

docker

Docker est un outil permettant de créer, déployer et lancer des applications utilisant des containers facilement. Un container est une unité standard de logiciel qui peut être utilisé pour packager des applications et toutes ses dépendances dans un unique package. Ces containers peuvent être ensuite exécutés sur n’importe quelle plateforme sans se préoccuper de l’OS ou du hardware.

Nous allons utiliser Docker pour faire tourner une instance de MongoDB. Cela va nous permettre d’avoir sur notre machine plusieurs versions d’une base de données sans que cela ne crée aucun conflit. Un MongoDB containerisé fonctionne exactement comme un non-containerisé sans avoir à s’occuper de la configuration sous-jacente.

Docker Desktop

En installant Docker Desktop, vous allez mettre en place :

  • Docker Engine : le moteur de virtualisation
  • Docker CLI : l’interface en ligne de commande
  • Docker Compose : pour lancer et orchestrer plusieurs containers
  • Docker Content Trust : pour authentifier des images publiées sur des registry publiques
  • Kubernetes : l’orchestrateur créé par Google
  • Credential Helper : pour stocker des variables secrètes.

Installation sur MacOS

Pour installer Docker Desktop, rendez-vous sur la page produit de Docker Desktop et téléchargez l’installateur pour Mac. Faites attention à bien choisir l’installateur en fonction de votre type de processeur.

Une fois Docker Desktop installé et lancé, vous retrouverez une icône Docker. Dès que les containers ont arrêté de clignoter, Docker est prêt à fonctionner.

Installation MongoDB

Nous commençons par récupérer le container de MongoDB souhaité :

$ docker pull mongo:5.0.10

Puis nous lançons le container :

$ docker run --name mongodb.5.0.10 -p 27017:27017 mongo:5.0.10

--name permet de nommer l’instance de votre container.
-p permet de rediriger le port 27017 de MongoDB vers le port 27017 de votre machine.

Vous pouvez ensuite vous connecter à l’instance de MongoDB soit en cliquant sur l’icône dans l’interface de Docker Desktop.

Soit en ligne de commande :

$ docker exec -it mongodb.5.0.10 bash
$ mongo

Vous devriez avoir une sortie semblable à celle ci-dessous :

MongoDB shell version v5.0.10
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("9316d0d6-4ddb-4646-9dd9-b3885ea1d68b") }
MongoDB server version: 5.0.10
================
Warning: the "mongo" shell has been superseded by "mongosh", which delivers improved usability and compatibility.The "mongo" shell has been deprecated and will be removed in an upcoming release.
For installation instructions, see https://docs.mongodb.com/mongodb-shell/install/
================
---
The server generated these startup warnings when booting:
2022-08-17T11:49:32.564+00:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
2022-08-17T11:49:33.380+00:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
---
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display metrics about your deployment (disk utilization, CPU, operation statistics, etc).
The monitoring data will be available on a MongoDB website with a unique URL accessible to you and anyone you share the URL with. MongoDB may use this information to make product improvements and to suggest MongoDB products and deployment options to you.
To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---

Une fois connecté à la base de données, vous pouvez lancer des commandes :

$ show dbs
admin 0.000GB
config 0.000GB
local 0.000GB

Et demain ?

Nous avons vu comment rendre nos postes plus agiles en suivant toujours le même pattern : nous avons intercalé à chaque fois un soft pour ensuite pouvoir facilement piloter la version installée sur le poste.

Demain, nous nous dirigeons plutôt vers des postes complètement déportés dans le cloud où nous lancerons à partir de nos ordinateurs un IDE léger qui s’y connectera. Cela permettra de configurer directement l’environnement de travail des collaborateurs dans le cloud et facilitera considérablement l’onboarding de ces derniers.

Comment je peux vous aider ?

Ayant procédé à l’onboarding de nombreux développeurs au cours de ma carrière, j’ai été confronté à ces problématiques.

N’hésitez pas à me contacter pour que nous trouvions ensemble le meilleur workflow à mettre en place.


Tags

#environment
Previous Article
Top des meilleurs stock photo gratuits en 2022

Catégories

Management
Tech
UI/UX

Publications liées

URL shortener avec Cloudflare Workers

08 sept. 2022
5 min

Liens rapides

Social Media