Dielmo 3D

Rearquitectura en AWS con microservicios y estrategia GitOps

Cliente y servicio Cloud

Resumen ejecutivo

Dielmo 3D es una empresa experta en ofrecer soluciones en cartografía digital que cuenta con más de 20 años de experiencia y clientes en los cinco continentes.

Entre su cartera de servicios, destaca su propia plataforma para la publicación de datos espaciales a través de internet. Por ejemplo, en 2010 ya disponían de tecnología para la publicación de datos LiDAR mediante una herramienta de perfiles y 3D en un navegador, pionera en su época y que todavía sigue siendo muy potente.

Dielmo 3D recurrió a ACKstorm porque precisaba permitir un escalado horizontal de su aplicación para la publicación de datos geoespaciales en la nube, de manera que pudiera ofrecer un servicio SaaS a sus clientes.

Soluciones

  • Software como Servicio (SaaS)
  • Terrafom, FluxCD
  • Amazon RDS, Amazon S3, Amazon Lambda, Amazon Cognito, Amazon Elastic

Del reto al resultado

El reto

Dielmo 3D tenía su aplicación corriendo sobre una sola instancia EC2 en Amazon Web Services (AWS), lo cual suponía un problema en cuanto a escalabilidad y disponibilidad del servicio. Este tipo de arquitectura en monolito solo permite escalar en vertical de manera que supone una parada del servicio y al estar todos los servicios desplegados en una sola instancia el uso intensivo de uno de ellos puede suponer la indisponibilidad de otros.

Además, el hecho de disponer de una aplicación monolítica suponía una desventaja en cuanto a los costes. Otro factor importante al que tenía que hacer frente Dielmo 3D era la seguridad, dado que sus clientes proceden fundamentalmente del sector público.

Por tanto, el reto consistía en poder adaptar la infraestructura en la nube de Dielmo 3D a las peticiones de los clientes de manera que se optimizaran al máximo los costes y que se pudiera adaptar el servicio a la demanda absorbiendo picos de visitas. Para ello, Dielmo 3D necesitaba definir una arquitectura cloud que permitiera el escalado horizontal de su aplicación para que pudiera prestar servicios en formato SaaS.

Si no afrontaba su paso a SaaS, Dielmo 3D no podría cumplir con demandas como la escalabilidad y la disponibilidad de su servicio y el potencial crecimiento en cuanto usuarios se vería limitado.

La solución tecnológica

ACKstorm ofreció su experiencia para implementar una nueva plataforma que respondiera a los desafíos que planteaba Dielmo 3D utilizando una combinación de EKS y servicios gestionados por AWS a lo largo de todo el ciclo de vida del proyecto.

Para abordar el desafío de escalabilidad y disponibilidad del proyecto, se ha desacoplado el monolito existente en varios microservicios sobre un clúster de Amazon EKS gestionado por GitOps. Este diseño facilita la comunicación entre los servicios y una gestión eficiente de la infraestructura, así como la automatización completa del ciclo de vida de las aplicaciones con herramientas como FluxCD.

Además, se utilizó Amazon RDS para alojar la base de datos Postgres con PostGIS, asegurando un almacenamiento seguro y de alto rendimiento para los datos geoespaciales de Dielmo 3D.

En cuanto a los microservicios encargados de la autenticación y la manipulación de imágenes se ha optado por utilizar servicios gestionados por AWS. En el caso de la manipulación de imágenes se utiliza S3 para su almacenamiento y Lambdas para realizar el procesado con cada nueva imagen subida a un bucket de S3. En cuanto al registro y autenticación de usuarios se empleó Amazon Cognito, garantizando un acceso seguro a la plataforma.

Toda la plataforma se ha implementado mediante infraestructura como código (IaC) con Terraform para poder replicar entornos con facilidad. Esto permite a Dielmo 3D disponer de un entorno pre productivo donde los desarrolladores pueden probar nuevas funcionalidades en las mismas condiciones que en producción. Además, también le ofrece la posibilidad de crear entornos en distintas regiones (Europa, EEUU) para cumplir con las regulaciones de protección de datos y garantizar la disponibilidad global del servicio.

En cuanto al logging se centraliza todo mediante el stack ELK (Elasticsearch, Logstash, Kibana) en una cuenta de apoyo donde también se alojan las imágenes de los microservicios en el servicio de AWS Elastic Container Registry (ECR), desde donde se replican a otras regiones para garantizar tanto su alta disponibilidad como la velocidad de despliegue desde los distintos entornos. En resumen, los puntos críticos solventados en el proyecto fueron:

  • Eficiencia del servicio y rentabilidad
  • Escalabilidad y disponibilidad
  • Seguridad y alto rendimiento
El resultado obtenido

El resultado obtenido fue altamente beneficioso para Dielmo 3D. La combinación de servicios gestionados de AWS y la filosofía GitOps no solo permitió a la empresa expandir su negocio a nuevos clientes y regiones como EEUU, sino que también optimizó significativamente la eficiencia operativa. Con esta infraestructura escalable y flexible, Dielmo 3D pudo responder a la demanda creciente sin preocuparse por limitaciones técnicas, manteniendo un alto rendimiento en su plataforma SaaS. Además, el uso de GitOps y la automatización de los procesos de despliegue a través de herramientas como FluxCD descargaron por completo al equipo de operaciones de tareas manuales, reduciendo errores humanos y acelerando el ciclo de vida de desarrollo.

Gracias a esta estrategia, la empresa logró optimizar sus recursos, reducir costes y garantizar la disponibilidad global del servicio. Además, la nueva infraestructura asegura la capacidad de escalar de manera horizontal y aprovechar las ventajas de la arquitectura basada en microservicios, lo que permite a Dielmo 3D mantener la seguridad, el rendimiento y la estabilidad de su plataforma sin necesidad de una intervención constante por parte del equipo técnico.

Testimonial

José Carlos García

Director gerente de Dielmo 3D

«La nueva solución nos ha permitido disponer de una plataforma moderna y escalable para nuestros servicios de cartografía digital, garantizando una operación continua y segura a lo largo del tiempo.»

Compártelo con tu comunidad

¿Quieres saber más sobre este caso de uso u otros?

Nos enfocamos en las soluciones, para que puedas enfocarte en tus desarrollos.