Trabajos

E-commerce

Proyecto «Hermes»

Backend para joyería Tous, S.A. Se usa tanto en comercio electrónico como en tiendas físicas.

Se basa en microservicios con Elixir/Phoenix. El siguiente diagrama muestra sus principales componentes:

Arquitectura

Existen cuatro microservicios: catalogue (información y precio de productos), inventory (stock), scheduler (programación de tareas) y authentication. Se usa una librería «Portal» para comunicación intra-proceso, tanto síncrona (Erlang RPC) como asíncrona (RabbitMQ).

Catálogo: CouchBase y Redis

Al añadir/modificar un producto, se almacena tanto en MySQL como en CouchBase (éste último asíncronamente, a través de RabbitMQ). Para obtener un producto, se lee de CouchBase, empleando Redis como caché.

Despliegue

Se ejecuta un pipeline al hacer un merge request, que testea, construye imágenes de Docker nuevas, las publica en el registry de GitLab y las lanza mediante Kubernetes.

Despliegue automático de servicios de catálogo, inventario, scheduler y autenticación . RabbitMQ, MySQL, CouchBase y Redis están desplegados manualmente.