7 puntos por GN⁺ 2023-07-17 | 1 comentarios | Compartir por WhatsApp
  • Explicación de la configuración del autor para operar servidores e infraestructura de internet
  • Prefiere ejecutar software de servidor en máquinas virtuales o servidores físicos en lugar de soluciones en la nube
  • El autor usa una VM (máquina virtual) de DigitalOcean para sus servicios y ejecuta Debian 10
  • El software del servidor está escrito en Rust y se compila como un solo binario
  • Usa systemd para que el binario se inicie al arrancar el servidor
  • Los programas que necesitan una base de datos usan SQLite con una solución de respaldo redundante
  • Todos los servidores se ejecutan detrás de nginx para la terminación TLS y la entrega de archivos estáticos
  • La configuración es simple y robusta, y requiere un mantenimiento mínimo
  • El aislamiento mediante cuentas de usuario de Unix permite ejecutar varios servicios en la misma VM
  • La configuración de un proyecto nuevo consiste en crear un usuario nuevo, agregar un host virtual de nginx, agregar una unidad de systemd y ejecutar un script de despliegue
  • Los cambios en la infraestructura se hacen lentamente para brindar estabilidad y previsibilidad
  • El autor agradece a Julia Evans por animarlo a escribir este artículo

1 comentarios

 
GN⁺ 2023-07-17
Opiniones de Hacker News
  • Las funciones en la nube activadas por HTTP son una opción popular para simplificar la administración de servidores y reducir la complejidad.
  • Ejecutar cada servicio con una cuenta de usuario Unix única proporciona aislamiento y seguridad.
  • Usar la función DynamicUser de systemd puede simplificar el proceso de configuración y ahorrar tiempo.
  • Muchos desarrolladores usan VMs de Linode y Debian GNU/Linux para sitios web personales y de proyectos.
  • Common Lisp es una opción de lenguaje popular para escribir software en estas configuraciones.
  • Nginx se usa comúnmente como proxy inverso y para servir archivos estáticos.
  • Los contenedores de Docker y docker-compose son opciones alternativas para ejecutar servicios.
  • La tolerancia a fallos y el tiempo de actividad son consideraciones importantes en entornos de producción.
  • Medidas de seguridad como respaldos, reglas de firewall y autenticación SSH basada en claves suelen implementarse de forma habitual.
  • Los scripts de despliegue y el control de versiones son útiles para administrar actualizaciones y rollbacks de aplicaciones.
  • Las variables de entorno, los límites de apertura de archivos y la configuración de logs son consideraciones importantes en la configuración de servicios.
  • PostgreSQL, NGINX, Redis y Node.js son componentes de software de uso frecuente.
  • Dokku es una herramienta popular para gestionar despliegues y agregar plugins.
  • Algunos desarrolladores prefieren configuraciones más simples que usan un solo servidor y cuentas de usuario estándar de Linux.
  • Como la complejidad puede llevar a inestabilidad y tiempo fuera de línea, a menudo se prefiere la simplicidad a menos que se necesite una complejidad específica.