• [^] # Re: Un peu confus

    Posté par (site web personnel) . En réponse au journal Intel = 14 nm, AMD = 7 nm, ARM = 7 nm... et mon serveur ?. Évalué à 3.

    Réponse courte

    Oups, effectivement cela peut paraître confus. Au début du projet, on peut se contenter d’un laptop, puis au fur et à mesure construire un cluster avec plusieurs machines, etc. Le laptop permet de faire tourner tout ou partie du projet, mais avec un périmètre plus réduit que ce que l’on ambitionne de faire tourner sur une machine de guerre.

    Si c’est encore un peu confus, lire les sections suivantes qui détaillent davantage l’approche.

    Voir la dernière section pour coder sur un serveur à des milliers de kilomètres.

    Le projet

    Bon je ne voulais pas trop orienter le journal vers le projet, mais pour éviter toute confusion, imaginons un projet qui se connecte sur différents sites web pour télécharger des données à longueur de journée, les insérer dans des bases de données du type Redis ou Kafka, puis cette donnée est consommée/structurée pour être rangée dans une autre base, qui pourrait être Elasticsearch, PostegreSQL, InfluxDB, MongoDB, TimescaleDB afin de permettre de répondre à des requêtes des clients via une API de type REST/Websocket/GraphQL/... avec du reverse-proxy, de l’authentification des utilisateurs, de la surveillance des logs, de la détection d’anomalie automatique...

    Ce projet intègre plusieurs logiciels, nécessite de la mémoire (RAM et SSD/HDD) pour les bases de données, la reprise automatique en cas de plantage, une orchestration du style Kubernetes, la mise à jour du système...

    Infrastructure finale

    Si le projet aboutit, on aura au final une infrastructure avec plusieurs machines, et éventuellement réparties sur plusieurs datacenters (CDN et toussa).

    Mettre au point le projet

    Pour monter un tel projet, on va avancer par itération. Les premières itérations n’auront pas besoin, tout de suite, de l’infrastructure finale. On peut très bien commencer sur un nano-ordinateur (Raspberry Pi), ou sur son laptop personnel.

    Il faudra cependant le faire tourner 24/7/365 si possible et prévoir dès le début une grande capacité de stockage.

    Laptop versus serveur

    Quitte à devoir s’acheter une nouvelle machine, on peut se demander s’il est plus pertinent d’acquérir un laptop ou directement un serveur. Tester l’ensemble du projet peut se faire sur son laptop, mais avec une configuration limitée à quelques sites web. Travailler avec un laptop permet d’être aussi plus mobile.

    Un laptop n’est pas si ridicule que ça. Pour 650 ,ドル on trouve des laptops avec 4 cores (Ryzen 7-3700U) et 8 Go RAM. Et pour dis fois plus cher, le laptop le plus puissant embarquent 8 cores (i9-9980HK) et 64 Go RAM (6500 $), ce qui dépasse de nombreux serveurs.

    Comme l’explique Astaoth, le processeur de laptop est conçu pour être économe en énergie, le processeur d’un serveur est conçu pour fonctionner à fond 24/365.

    Coder sur un serveur à des milliers de kilomètres

    On ouvre une session SSH, et avec vim, emacs ou nano on développe sur le serveur distant. On peut aussi activer le X11 forwarding pour lancer un client graphique sur le serveur distant, qui s’affiche sur le serveur X11 de son laptop (local).

    C’est ce que les développeurs de Facebook avaient l’habitude de faire : l’avantage de la mobilité de leur laptop, avec l’avantage de la puissance de calcul du serveur. Mais les développeurs de Facebook sont en train d’adopter une nouvelle méthode : utiliser Visual Studio Code. Lire aussi Coder à distance avec SSH et Coder à distance sous Linux.

    J’espère avoir éclairci toute ambiguïté 😉

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)