paint-brush
RaspberryPi: Sobrecarga tecnológica: LAMP🕯 a UASP🐝por@tudoracheabogdan
499 lecturas
499 lecturas

RaspberryPi: Sobrecarga tecnológica: LAMP🕯 a UASP🐝

por Bogdan Tudorache4m2024/04/30
Read on Terminal Reader

Demasiado Largo; Para Leer

La pila LAMP se ha rediseñado para que a los desarrolladores les resulte más fácil comenzar. La pila incluye un sistema operativo, un servidor web, una base de datos y un lenguaje de programación. Veremos cómo se puede aplicar esta pila a Raspberry Pi y otras computadoras pequeñas.
featured image - RaspberryPi: Sobrecarga tecnológica: LAMP🕯 a UASP🐝
Bogdan Tudorache HackerNoon profile picture
0-item

Pila:

Es posible que los desarrolladores e ingenieros más antiguos recuerden la pila LAMP💡 y, aunque está rediseñada, si reducimos todo a lo básico, lo que encontramos y necesitamos es:


  1. un sistema operativo

  2. un servidor web

  3. una base de datos

  4. un lenguaje de programación


Lo que les voy a hablar hoy es cómo reinventé la pila LAMP en un formato alternativo :

  • linux
  • apache
  • MySQL
  • Php a:
  • ubuntu
  • apache
  • Sqlite3
  • Pitón

¿Qué se necesita?

Hoy en día, todo lo que escucho con demasiada frecuencia es: "Quiero convertirme en desarrollador, ¿cómo empiezo?", "Quiero convertirme en desarrollador, ¿qué computadora portátil necesito?". o "¿Necesito comprar la última MacBook para convertirme en desarrollador?" y para ser honesto, está empezando a afectarme.


No, niños , no necesitan la última tecnología sofisticada ni un cohete🚀 para convertirse en desarrollador, lo que necesitan es un sistema operativo que sea capaz de instalar paquetes de programación y compilarlos; Incluso puedes usar la vieja computadora portátil de tu abuela. Y ahora preguntas: “¡¿Cómo puede ser esto?!”


Hagamos un breve viaje al pasado; Hace casi 3 años y medio, comencé a jugar con un SBC , una computadora de placa única que cuesta menos de 50E para comprar, y en este momento tengo un servidor web, una base de datos, estoy realizando cientos de raspados web por hora y, además, estoy trabajando en el desarrollo de un punto final API.


Este SBC ni siquiera es el último de su gama y tiene:

  • 8 GB de memoria interna LPDDR4

  • CPU ARM Cortex-A72 de cuatro núcleos a 1,5 GHz (lanzada en 2015): puede overclockear de forma fácil y segura a 2 GHz (+extensión de ventilador y disipador de calor)


Esto es lo que GPT tiene que decir sobre estas especificaciones: Las especificaciones que proporcionó son decentes para ciertos tipos de tareas informáticas, pero pueden no ser suficientes para otras. Aquí una evaluación:


  • Memoria interna LPDDR4 de 8 GB:
  • LPDDR4 es un tipo de RAM relativamente rápido y de bajo consumo que se usa comúnmente en dispositivos móviles y algunas computadoras portátiles.
  • 8 GB es una cantidad moderada de memoria que debería ser suficiente para tareas cotidianas como navegación web, trabajo de oficina y multitarea ligera. También puede manejar aplicaciones moderadas de creación de contenido y juegos.
  • Sin embargo, para tareas más exigentes como edición de vídeo, diseño gráfico o ejecución de máquinas virtuales, 8 GB pueden ser una limitación y es posible que experimente cuellos de botella en el rendimiento.
  • CPU ARM Cortex-A72 de cuatro núcleos a 1,5 GHz:
    • El ARM Cortex-A72 es un diseño de procesador capaz que se encuentra comúnmente en teléfonos inteligentes, tabletas y otros dispositivos móviles.

    • Una configuración de cuatro núcleos significa que tiene cuatro núcleos, lo que le permite manejar múltiples tareas simultáneamente de manera más eficiente.

    • La velocidad de reloj de 1,5 GHz es decente para tareas informáticas de uso general, incluida la navegación web, el consumo de medios y las aplicaciones de productividad.

    • Sin embargo, para tareas más exigentes, como juegos, edición de vídeo o ejecutar software complejo, una velocidad de reloj más alta y posiblemente más núcleos proporcionarían un mejor rendimiento. En resumen, estas especificaciones son adecuadas para tareas informáticas de ligeras a moderadas, como la productividad diaria, la navegación web y el consumo multimedia. Sin embargo, para tareas más exigentes o para el futuro, es posible que desee considerar actualizar a un sistema con más RAM y una CPU más rápida.


Créame, al principio, de ligero a moderado es más que suficiente, por lo que con una placa Pi, puede tener fácilmente un entorno de escritorio funcional en el que pueda aprender a codificar, y no solo lenguajes de programación frontend sino incluso backend como Python. , c++ (que es aún más eficiente energéticamente) o javascript.


¿Qué uso?

En mi Raspberry Pi, estoy desarrollando código con:

  • Escritorio Ubuntu - cortesía deDesktopify :

  • VSCode conectándose remotamente al servidor


  • Scripts de Python3 que raspan la web y crean páginas web HTML incorporadas por CSS

    • peticiones

    • selenio

    • pandas

    • procesamiento paralelo - concurrent.futures


  • Javascript junto con PHP aquí y allá.


  • Scripts Python3 que escriben automáticamente en mi base de datos Sqlite3 en formato JSON .


  • Aplicación Flask , un marco web Python pequeño y liviano que proporciona herramientas y características útiles que facilitan la creación de aplicaciones web en Python.


  • Y, por último, un fragmento de código Javascript que llama al punto final de Flask: un punto final de API RESTful


    Durante cerca de 4 años a un coste definitivamente amortizado de 120E y < 4E al mes en electricidad🔌.


Para resumir todo, aquí está la arquitectura del sistema BerryNews:

Los factores clave aquí son Utilización eficiente de recursos + Restricciones de utilización de recursos .


¿Por qué derrochar cuando puedes escribir código eficiente?

Conclusión:

Si tuviéramos que resumir todo, terminaríamos con una tabla como esta en una computadora de 100 dólares:

Categoría

Palabras clave

Lenguajes de programación

Python3, Javascript, PHP, CSS, HTML, SQL

Formatos de datos

JSON

Marcos

matraz, selenio, futuros concurrentes

Bases de datos

sqlite3

Redes

configuración del enrutador, DNS

La seguridad cibernética

UFW ( firewall ), ClamAV ( antivirus ), Fail2ban ( IPS ), gestión de contraseñas, claves SSH, Let's Encrypt ( certificado SSL )

linux

Raspberry Pi, escritorio Ubuntu, VSCode

Entonces, dime, ¿todavía crees que necesitas las últimas especificaciones de portátiles para convertirte en desarrollador?