Listado

Menos es más: Cómo una infraestructura simple puede soportar un gran negocio (y una carrera)

Autor/a

Fecha de publicación

5/4/2024

Compartir

Twitter

LinkedIn

Hace dos años que me he reciclado. Hace dos años que he dejado de pensar que las áreas de mi profesión son apenas 4 o 5: sistemas, desarrollo, ingeniería de software, hardware, y alguna más, como aprendí en la facultad. Dos años en los que he asumido que la ciencia de la informática ha crecido más de lo que yo soy capaz de entender y abarcar.

Cuando estaba en la universidad, había un personaje en mi cabeza que creía que, más o menos, siempre estaría al día en lo que a informática se refiere. Ya hace tiempo que me di cuenta de que eso era una quimera en lo que a informática para el usuario se refiere. Es imposible conocer todo lo que se produce y edita en cuestión de aplicaciones informáticas o dispositivos, y además muchas de las cosas que aparecen no apetece ni usarlas ni comprarlas (al menos a mí). Sin embargo, en lo que se refiere a “ingeniería” no me había dado el baño de realidad hasta hace dos años.

Antes de incorporarme a RedRadix yo era un administrador de sistemas, trabajaba en una empresa no tecnológica y velaba para que ese área llamada tecnología diera el mejor servicio al negocio y a sus empleados. 7 años estuve allí, parado en el tiempo. Cuando salí me reciclé y ahora soy DevOps & Infrastructure Engineer en una agencia de producto digital donde me encargo de que los entornos en los que desplegamos nuestros productos sean estables, seguros, escalables y sostenibles.

Cuento todo esto porque me ha costado, porque reciclarte con 45 años y familia no es un camino de rosas; y mira que me gusta lo que hago y que considero además que he tenido a mi disposición las herramientas y el espacio necesario para hacerlo. Pero si ya desde antes hubiera tenido el cuidado de no quedarme en la superficie de mi trabajo, en mi zona de confort, este proceso hubiera sido mucho más transitable.

He querido comenzar este artículo con mi historia porque creo que al fin y al cabo, el entorno más importante que he tenido que cuidar nunca es el mío propio, y si me centro en el desarrollo profesional durante 7 años no tuvo ni actualizaciones, ni plan de recuperación de desastres, ni parches de seguridad; estuvo directamente sin cuidar.

Tampoco es que sea un entorno muy complicado, no hay que levantar múltiples servicios para mantenerlo. No necesita una infraestructura complicada, ni muchos tipos de persistencia de datos. No requiere escalabilidad más allá de la controlada, de hecho es una infraestructura controlada. Así que he empezado ya a aplicar lo que he aprendido en los últimos dos años para cuidarla tal y como hago con las infraestructuras que ahora diseño. Voy a dotar mi entorno de unos servicios automatizados que me preparen para situaciones futuras y, sobre todo, que me permitan seguir subido en el tren de la informática que tanto me gusta.

Un entorno real

El primero de los proyectos que hemos realizado desde el departamento de DevOps e Infraestructuras de RedRadix es precisamente un entorno parecido al mío. Una web corporativa, pequeña, sin operativas complicadas, pero con un negocio que cotiza en bolsa detrás. Una colaboración que arrancó como un rediseño de la web corporativa y en la que el cliente nos solicitó también los entornos asociados al proyecto (desarrollo, demo y producción).

En lo que se refiere al trabajo que hemos realizado desde Infra & Devops, el proyecto implicaba en concreto:

  • El diseño y la implementación del entorno de producción, así como el mantenimiento del mismo.
  • El diseño y la implementación de los entornos desarrollo y demo
  • La incorporación de una solución de Disaster Recovery
  • La implementación de una solución de seguridad en web
  • La integración continua en la solución de la web.

A la hora de planificar las distintas soluciones a incorporar tuvimos en cuenta las particularidades del proyecto, puntos clave como:

  • El cliente no contaba con un equipo dedicado a las aplicaciones y prefería externalizarlo
  • Se trata de una web corporativa, sin necesidad de realizar cambios continuos en la estructura
  • No tienen necesidad de procesamiento pesado
  • No tienen datos sensibles en la misma, aunque sí que existe un área de documentación confidencial con acceso seguro que no hemos desarrollado, sino que se debe proporcionar como servicio (SaaS).
  • No se esperan picos altos de usuarios
  • Por necesidades del proyecto, la solución debía ser rápida de implementar

La web en la que ha trabajado el equipo de desarrollo de RedRadix se compone de un front desarrollado en Next y un CMS con el front y el back desarrollados en Strapi. Además cuenta con una base de datos PostgreSQL y tiene necesidad de persistencia de datos (imágenes y ficheros de Strapi).

La solución

Teniendo en cuenta todos estos requerimientos, la solución pasaba por crear un entorno simple (Droplet de DigitalOcean) administrado por nosotros. El objetivo es que pudiera alojar los dos entornos no productivos pero que estos se eliminaran un par de semanas después de la salida a producción, manteniendo el código de Terraform para levantarlo a demanda sin costes continuados en el tiempo.

Un entorno productivo, gestionado y automatizado que sea seguro, escalable si lo necesitamos, que cumpla con el RGPD en cuestión de almacenamiento de datos y que sea confiable. Habiendo desarrollado con Next, la solución lógica era Vercel para el front-end. Sin embargo, para el CMS nos decantamos por DigitalOcean App Platfform a Strapi Cloud por un tema de costes, ya que cumplía todos los requisitos que requeríamos en este proyecto. Y por esa misma razón escogimos DigitalOcean Databases y DigitalOcean Spaces para la persistencia de datos.

Por otro lado planteamos una solución de Disaster Recovery sencilla pero robusta, que asegurase rapidez, sencillez y agilidad en los procesos. Para ello elegimos SnapShooter, una solución integrada en DigitalOcean a la que puedes asociar diferentes proveedores de almacenamiento y gestionar desde ahí los backups.

Como solución de seguridad, implementamos el WAF de CloudFlare ya que este era el proveedor de DNS del cliente y consideramos que tener la seguridad asociada al proveedor es una buena solución.

La integración continua está montada desde GitHub Actions para el CMS y está incluida de manera nativa en la solución de Vercel.

Y por último, la solución fijada para compartir documentación de manera segura vino de la sugerencia de un miembro del equipo de desarrollo de RedRadix que de manera personal utiliza NextCloud, que es una solución maravillosa de documentación en la nube y que nosotros hemos implementado en la solución que IONOS comercializa de este software. Lo que terminó de decantarnos por esta alternativa fue la certificación ISO27001 que NextCloud ha concedido a IONOS como proveedor del servicio.

Con todo esto, el coste total mensual de esta infraestructura apenas supera los 100€ mensuales. Una cantidad que me demuestra que el precio de estar bien cuidado y preparado para cualquier contingencia es muy pequeño. E igual que ocurre con mi propio entorno con el que arrancaba el artículo, el esfuerzo que esto supone para estar vivo, activo y presente bien merece la pena.

Relacionados

Extendiendo el principio de colocalización

Hace un tiempo publicamos un artículo sobre el principio de colocalización, una traducción libre del artículo “Colocation” de Kent C. Dodds. Hoy nos gustaría profundizar en este principio, explicando a dónde nos ha llevado en RedRadix.

26/3/2024

Construir sobre cimientos sólidos: la clave de las auditorías de código

La calidad del código es fundamental para el éxito a largo plazo de un proyecto. Sin embargo, a medida que este crece es común que el código acumule complejidad no deseada y que esta impacte en su mantenimiento y eficiencia. Por eso aquí hablamos de por qué y cómo hacer una buena auditoría del código front-end de un proyecto.

5/3/2024

Button Text