paint-brush
RaspberryPi : surcharge technologique - LAMP🕯 vers UASP🐝par@tudoracheabogdan
499 lectures
499 lectures

RaspberryPi : surcharge technologique - LAMP🕯 vers UASP🐝

par Bogdan Tudorache4m2024/04/30
Read on Terminal Reader

Trop long; Pour lire

La pile LAMP a été repensée pour faciliter le démarrage des développeurs. La pile comprend un système d'exploitation, un serveur Web, une base de données et un langage de programmation. Nous verrons comment cette pile peut être appliquée au Raspberry Pi et à d'autres petits ordinateurs.
featured image - RaspberryPi : surcharge technologique - LAMP🕯 vers UASP🐝
Bogdan Tudorache HackerNoon profile picture
0-item

Empiler:

Les développeurs et ingénieurs plus âgés se souviennent peut-être de la pile LAMP💡 et bien qu'elle soit repensée, si nous réduisons tout à l' essentiel , ce que nous trouvons et dont nous avons besoin est :


  1. un système d'exploitation

  2. un serveur web

  3. une base de données

  4. un langage de programmation


Ce que je vais vous parler aujourd'hui, c'est comment j'ai réinventé la pile LAMP dans un format alternatif :

  • Linux
  • Apache
  • MySql
  • Php vers :
  • Ubuntu
  • Apache
  • SQLite3
  • Python

Que faut-il ?

De nos jours, tout ce que j’entends trop souvent c’est : « Je veux devenir développeur, comment commencer ? », « Je veux devenir développeur, de quel ordinateur portable ai-je besoin ? » ou "Dois-je acheter le dernier MacBook pour devenir développeur ?" et pour être honnête, ça commence à m'atteindre.


Non, les enfants , vous n'avez pas besoin des dernières technologies sophistiquées ou d'une fusée🚀 pour devenir développeur, ce dont vous avez besoin c'est d'un système d'exploitation capable d'installer des packages de programmation et de les compiler ; vous pouvez même utiliser le vieil ordinateur portable de votre grand-mère. Et maintenant vous demandez : « Comment est-ce possible ?! »


Faisons un petit voyage dans le passé ; il y a presque 3 ans et demi, j'ai commencé à bricoler un ordinateur SBC - monocarte qui commence à moins de 50E à l'achat, et dessus en ce moment, j'ai un serveur Web, une base de données, j'effectue des centaines de web-scrapes par personne. heure, et en plus, je travaille sur le développement d'un point de terminaison d'API.


Ce SBC n'est même pas le dernier né de sa gamme et possède :

  • 8 Go de mémoire interne LPDDR4

  • Processeur ARM Cortex-A72 quadricœur à 1,5 GHz (lancé en 2015) - que vous pouvez overclocker facilement et en toute sécurité à 2 GHz (+ extension de ventilateur et dissipateur thermique)


Voici ce que GPT a à dire à propos de ces spécifications : Les spécifications que vous avez fournies sont correctes pour certains types de tâches informatiques, mais elles peuvent ne pas être suffisantes pour d'autres. Voici une évaluation :


  • Mémoire interne LPDDR4 de 8 Go :
  • LPDDR4 est un type de RAM relativement rapide et économe en énergie, couramment utilisé dans les appareils mobiles et certains ordinateurs portables.
  • 8 Go est une quantité modérée de mémoire qui devrait être suffisante pour les tâches quotidiennes telles que la navigation sur le Web, le travail de bureau et le multitâche léger. Il peut également gérer des applications de jeux et de création de contenu modérées.
  • Cependant, pour des tâches plus exigeantes telles que le montage vidéo, la conception graphique ou l'exécution de machines virtuelles, 8 Go peuvent être limitants et vous pourriez rencontrer des goulots d'étranglement en termes de performances.
  • Processeur ARM Cortex-A72 quadricœur à 1,5 GHz :
    • L'ARM Cortex-A72 est une conception de processeur performante que l'on trouve couramment dans les smartphones, tablettes et autres appareils mobiles.

    • Une configuration quad-core signifie qu’il dispose de quatre cœurs, ce qui lui permet de gérer plusieurs tâches simultanément plus efficacement.

    • La vitesse d'horloge de 1,5 GHz est adéquate pour les tâches informatiques générales, notamment la navigation sur le Web, la consommation multimédia et les applications de productivité.

    • Cependant, pour les tâches plus exigeantes telles que les jeux, le montage vidéo ou l'exécution de logiciels complexes, une vitesse d'horloge plus élevée et éventuellement plus de cœurs offriraient de meilleures performances. En résumé, ces spécifications conviennent aux tâches informatiques légères à modérées, telles que la productivité quotidienne, la navigation Web et la consommation multimédia. Cependant, pour des tâches plus exigeantes ou pour une pérennité, vous pouvez envisager de passer à un système doté de plus de RAM et d'un processeur plus rapide.


Croyez-moi, au début, léger à modéré est plus que suffisant, donc avec une carte Pi, vous pouvez facilement disposer d'un environnement de bureau fonctionnel dans lequel vous pouvez apprendre à coder, et non seulement des langages de programmation frontend mais même backend tels que Python. , c++ (qui est encore plus économe en énergie) ou javascript.


Qu'est-ce que j'utilise ?

Sur mon Raspberry Pi, je développe du code avec :

  • Ubuntu Desktop - gracieuseté dedesktopify :

  • VSCode se connectant à distance au serveur


  • Scripts Python3 qui grattent le Web et créent des pages Web HTML incarnées par CSS

    • demandes

    • sélénium

    • pandas

    • traitement parallèle - concurrent.futures


  • Javascript couplé à PHP ici et là.


  • Scripts Python3 qui écrivent automatiquement dans ma base de données SQLite3 au format JSON .


  • Application Flask , un framework Web Python petit et léger qui fournit des outils et des fonctionnalités utiles permettant de créer des applications Web en Python.


  • Et enfin, un morceau de code Javascript qui appelle le point de terminaison Flask - un point de terminaison d'API RESTful


    Pour près de 4 ans à un coût définitivement amorti de 120E et < 4E par mois en électricité🔌.


Pour résumer le tout, voici l'architecture du système BerryNews :

Les facteurs clés ici sont l'utilisation efficace des ressources + les contraintes d'utilisation des ressources .


Pourquoi faire des folies quand on peut écrire du code efficace ?

Conclusion:

Si nous devions tout résumer, nous nous retrouverions avec un tableau comme celui-ci sur un ordinateur à 100 dollars :

Catégorie

Mots clés

Langages de programmation

Python3, Javascript, PHP, CSS, HTML, SQL

Formats de données

JSON

Cadres

flacon, sélénium, concurrent.futures

Bases de données

sqlite3

La mise en réseau

configuration du routeur, DNS

La cyber-sécurité

UFW ( pare-feu ), ClamAV ( antivirus ), Fail2ban ( IPS ), gestion des mots de passe, Clés SSH, Let's Encrypt ( certificat SSL )

Linux

Raspberry Pi, bureau Ubuntu, VSCode

Alors, dites-moi, pensez-vous toujours que vous avez besoin des dernières spécifications d'ordinateur portable pour devenir développeur ?