Pirobits
Blog@bypirob

Arquitectura actual del blog: back-end

alberto avatar Alberto Sola · 7/17/2023 · 3 min

En el post anterior te contaba qué tecnologías he utilizado para montar el front del blog. Hoy te quiero contar la parte que no se ve: el backend, la infraestructura y mi experiencia con los proveedores cloud.

Una vez has seleccionado las herramientas con las que quieres trabajar, tienes que ver dónde utilizarlas. He probado muchos proveedores cloud, que tienen millones de opciones que me encantan pero que siendo sinceros, a la hora de la verdad, no son prácticos. Las tarifas de precios me parecen algo elevadas. Es cierto que te lo dan todo hecho y al final la comodidad que algunos usuarios o empresas necesitan puede estar justificada.

Por otro lado, a la hora de gestionar múltiples sitios me resulta muy tedioso tener que repetir configuraciones y mantenerlo es algo costoso. También me he encontrado con los problemas de algunos entornos serverless, como el cold start. Quiero optimizar tanto el rendimiento como la complejidad (tiempo y por tanto coste), así que al final he decidido centralizarlo todo en el proveedor cloud con el que más experiencia tengo, que es AWS (Amazon Web Services).

¿Por qué he utilizado AWS?

Es el proveedor cloud con el que más experiencia tengo, y es el que más flexbilidad me ofrece a la hora de utilizar sus productos (que son cada vez más). Puedo elegir los servicios que mejor se adaptan a mis necesidades en cada momento, según el beneficio entre coste / mantenimiento, y combinarlos de la mejor forma para diseñar la arquitectura de cada proyecto.

Ahora mismo la infraestructura es bastante simple: una máquina EC2, algunas configuraciones y cachés, y scripts para automatizar procesos. Te cuento un poco más sobre cada parte:

  • Una máquina virtual en EC2: es la forma más práctica, simple y barata de ejecutar aplicaciones webs. En otro post te contaré mi experiencia con aplicaciones serverless como lambda y por qué he preferido evitarlo. La máquina cuenta con un servidor nginx para gestionar las conexiones y la seguridad (https/ssl).
  • Ficheros estáticos alojados en S3. Uno de mis servicios favoritos para almacenar contenido estático. Los sirvo mediante un pequeño proxy realizado en Go y que hace de intermediario entre Nginx y S3 que quiero hacerlo open source. Hay múltiples alternativas para servir ficheros desde S3, y en mi caso quería realizar esta pequeña herramienta.
  • Scripts automatizados para los despliegues. Para gestionar los despliegues tengo algunos scripts de bash y comandos ssh/scp a la vieja usanza. En mi día a día utilizo kubernetes, que simplifica estos procesos y se agradece, pero también me gusta encontrar soluciones simples para mis side-projects y salir de mi zona de confort. Recientemente he estado aprendiendo a utilizar Ansible, que me ha encantado y estoy deseando migrar estos scripts semi-automáticos para automatizar todo el proceso.

Nos vemos en el próximo post, y recuerda suscribirte a la newsletter para estar al día 😉

Si te ha resultado útil este artículo agradecería si te suscribes a mi newsletter. Recibirás contenido exclusivo de calidad y también me ayudarás enormemente. Cada suscripción apoya el trabajo que realizo y me permite conocer mejor los temas que te interesan, de forma que puedo mejorar los conocimientos que comparto contigo.


Posts recientes