Plataforma ECAM

Envío y recepción de comprobantes electrónicos.

Fecha

Julio del 2018

Cliente

Auto Mercado

Tipo de proyecto

Migración e implementación de la nube

Detalles Del Problema

Auto Mercado es una cadena de supermercados líder en Costa Rica, actualmente cuenta con 36 tiendas ubicadas estratégicamente en todo el país.

El desafío del cliente consiste en cómo diseñar y desarrollar una solución capaz de aprovechar la flexibilidad que ofrece otro servicio en línea que compraron recientemente para su recepción de facturación electrónica (EVEx), sin sufrir estrangulamientos o tiempos de inactividad causados por su infraestructura local. Auto Mercado realmente no quería preocuparse por aprovisionar o escalar servidores para satisfacer la demanda, además, querían reducir costos y disminuir el tiempo de desarrollo, centrándose solo en la lógica comercial.

Detalles De La Solución

Desarrollamos una aplicación sin servidor, utilizando AWS LambdaAmazon API GatewayAmazon Cognito, entre otros. Esta solución se llamó Cliente EVEx para Auto Mercado (ECAM).

Se decidió desarrollar una aplicación web stateless, utilizando un framework JavaScript popular como front-end y recursos de Amazon API Gateway integrados con AWS Lambda como back-end.Nuestros servicios administrados lo ayudarán a simplificar y optimizar sus procesos y liberar recursos para iniciativas comerciales estratégicas. Lo ayudaremos a diseñar, desarrollar y administrar soluciones exhaustivas en la nube que abordan componentes clave para adaptarse bien a sus requisitos y presupuestos.

¿Cómo Fue Usado AWS Lambda?

AWS Lambda es el principal recurso informático utilizado para ejecutar la lógica de negocio, es decir, cada una de las funcionalidades de la aplicación se implementa mediante invocaciones de Lambda. Estas funciones se integran con varios endpoints del API Gateway y otros servicios. Varias funciones de Lambda funcionan a la perfección en la solución, brindando una amplia variedad de funcionalidades, como por ejemplo:

  • Procesamiento de archivos: además del almacenamiento de archivos normal en S3, las funciones de Lambda se invocan cuando los usuarios convierten sus archivos XML a PDF para imprimir, además, hay funciones responsables de proporcionar las URL previamente firmadas de S3 para el acceso temporal a archivos restringidos.
  • Implementación de un back-end stateless: junto con el servicio Step Functions, las funciones de Lambda procesan todas las transacciones entrantes y procesan la lógica empresarial personalizada de acuerdo con los metadatos presentes en ellas.
  • Datos y análisis: las funciones de Lambda se activan cuando DynamoDB crea o actualiza datos, y se utilizan para generar metadatos para informes.
  • Extensiones de administración de usuarios: las funciones de Lambda proporcionan una lógica de administración de usuarios personalizada y se conectan con AWS Cognito a través de AWS SDK.
  • Autorización de usuario personalizada: API Gateway se integra con un autorizador Lambda personalizado para manejar roles personalizados que controlan a qué acciones y recursos pueden acceder los usuarios en el sistema.

La razón por la que se utilizó AWS Lambda no solo se debe a su disponibilidad y rentabilidad, sino también al hecho de que AWS facilita el desarrollo de Lambda al proporcionar una infraestructura rápida como una solución de código a través del marco de trabajo de AWS Serverless Application Model (SAM). Con este marco, es fácil replicar y configurar entornos correctamente mientras se evita el error humano.

Principales Servicios De AWS Utilizados

  • La principal solución informática utilizada para desarrollar el sistema fue AWS Lambda, toda la lógica empresarial central se ejecuta en lambda y todos los recursos en API Gateway están respaldados por integraciones lambda. Hay una pequeña instancia de AWS EC2 solo para la generación de informes.
  • AWS Step Functions actúa como un orquestador, invocando varias funciones de Lambda cada una enfocada en proporcionar una funcionalidad única al flujo de trabajo general, cuando finaliza la ejecución de la función, el resultado se notifica al usuario en la consola web.
  • Para almacenar toda la información generada (como datos de usuario, información de recibos, información de transacciones, usuarios, roles, entre otros), esta aplicación implementa Amazon DynamoDB.
  • El registro de usuarios, el inicio de sesión y el control de acceso de los usuarios se llevan a cabo utilizando Amazon CognitoAmazon API Gateway maneja el control de acceso de los datos y recursos en el sistema.
  • AWS CloudFormation junto con AWS Serverless Application Model (SAM) se utilizaron como nuestra infraestructura como solución de código, para proporcionar una manera de implementar la aplicación en múltiples entornos así como proporcionar una infraestructura versionable, rastreable y controlable.
  • Amazon Relational Database Service (Amazon RDS), Amazon Aurora Serverless se utiliza como un almacén de metadatos para la generación de informes, estos metadatos se completan con la API de Streams de Amazon DynamoDB , integrada con un consumidor de funciones Lambda.
  • AWS CloudWatch se utiliza activamente como un servicio centralizado de registro y métrica, proporcionando una infraestructura vital para el almacenamiento de registros y consultas. Además, los eventos programados de AWS CloudWatch se utilizan para activar comprobaciones de estado periódicas y otras tareas programadas menores, estas tareas programadas se ejecutan en Amazon ECS.
  • Los usuarios interactúan con el sistema a través de una API Rest desarrollada usando Amazon API Gateway. Todas las interacciones, ya sea con sistemas externos (como el ERP del cliente) o usuarios externos (los sistemas del proveedor del cliente) se realizan a través de Amazon API Gateway. Además, Amazon S3, es el almacenamiento estándar para todos los archivos, este almacena los archivos PDF, XML y Zip generados.

Resultados Obtenidos A La Fecha

Como resultado, la solución pudo resolver todos los problemas que tenía Auto Mercado con la administración de recibos de su proveedor. El sistema permitió al cliente ahorrar tiempo y dinero, antes de implementar el sistema, este cliente tuvo que contratar personal para procesar manualmente las facturas electrónicas, completando hasta medio día cada uno. Después de implementar ECAM, Auto Mercado pudo ahorrar tiempo y dinero.

Auto Mercado tenía cientos de miles de recibos procesados en un solo lote (todos los recibos en el correo electrónico de su empresa fueron enviados al correo electrónico EVEx y procesados a través de Amazon SES, luego enviados a ECAM a través de la integración de funciones callback). Como resultado, sus facturas electrónicas se procesaron en un solo día.

  • Los costos de almacenamiento se redujeron en un asombroso 80% en comparación con su alternativa local (sin inversiones iniciales, sin licencias involucradas) debido a la rentabilidad de Amazon S3 y la flexibilidad de las clases de almacenamiento (rara vez se accede a las facturas electrónicas antiguas a menos que se realice una auditoría), en ese caso sería aceptable tener un retraso al acceder a los archivos).
  • Los costos de cómputo se redujeron hasta en un 50% en comparación con su infraestructura local debido a los ahorros mediante el uso de la elasticidad de AWS Lambda, donde paga solo por los recursos utilizados.
  • La disponibilidad mejoró enormemente ya que la disponibilidad local de Auto Mercado no era la mejor (en comparación con el 99.99% ofrecido por Amazon S3, el 99.95% ofrecido por AWS Lambda y el 99.999% ofrecido por Amazon DynamoDb).
  • Las Step Functions permitieron aumentar la resistencia de ECAM a las fallas onpromise debido a la función automática de reintentos.
Siguientes Pasos

Auto Mercado está muy contento con esta implementación, en este momento, esperan seguir trabajando con el socio, solicitando características adicionales, y está previsto implementar inteligencia de negocios utilizando AWS Quicksight (en lugar de los informes personalizados que existen hoy).

Además, hay un proyecto para construir una estrategia de aprendizaje automático para detectar de manera temprana errores de tipeo y precios en las facturas basadas en códigos de barras, nombres de productos y otros datos generados diariamente.

Resultados

Costos de almacemaniento

Los costos de almacenamiento se redujeron en un asombroso 80% en comparación con su alternativa local (sin inversiones iniciales, sin licencias involucradas) debido a la rentabilidad de Amazon S3 y la flexibilidad de las clases de almacenamiento (rara vez se accede a las facturas electrónicas antiguas a menos que se realice una auditoría), en ese caso sería aceptable tener un retraso al acceder a los archivos).

Costos de cómputo

Los costos de cómputo se redujeron hasta en un 50% en comparación con su infraestructura local debido a los ahorros mediante el uso de la elasticidad de AWS Lambda, donde paga solo por los recursos utilizados.

Disponibilidad

La disponibilidad mejoró enormemente ya que la disponibilidad local de Auto Mercado no era la mejor (en comparación con el 99.99% ofrecido por Amazon S3, el 99.95% ofrecido por AWS Lambda y el 99.999% ofrecido por Amazon DynamoDb).

Las Step Functions permitieron aumentar la resistencia de ECAM a las fallas onpromise debido a la función automática de reintentos.

Nuestros servicios para
Nombre de la marca

AWS

  • AWS Lambda
  • AWS EC2
  • AWS Step Functions
  • AWS CloudFormation
  • Amazon Cognito
  • Amazon DynamoDB
  • Amazon CloudWatch
  • Amazon ECS
  • Amazon S3
  • Amazon API Gateway
  • Amazon Aurora Serverless

Optimización de costos

  • EVEx
  • Amazon SES
  • ECAM

 

Herramientas De Terceros

  • La interfaz del portal web es un aspecto muy importante de la solución, y fue desarrollada utilizando la plataforma Angular, está escrita en HTML y Typecript (que luego se transpila a JavaScript). Además, se utilizaron algunas hojas de estilo de terceros y componentes personalizados para crear una interfaz interactiva, dinámica, amigable y fácil de usar y así mejorar la experiencia del usuario.

ERP

  • El sistema se integra con el ERP del cliente a través de una interfaz RESTful, aunque solo envía y extrae datos de él, no se realiza ningún procesamiento en el lado del ERP, solo actualizaciones de estado.

COMIENCE EL CAMBIO Y DESCUBRA TODAS LAS
VENTAJAS QUE TENEMOS.

¡Trabajemos juntos!

 DEJAMOS QUE NUESTRA EXPERIENCIA HABLE  POR NOSOTROS.

¿Necesitas más información?

Recursos

Errores habilituales que impactan tus costos

AWS posee un impresionante abanico de servicios que podemos emplear en un sinnúmero de cargas de trabajo diferentes. Esto nos permite implementar soluciones muy novedosas de una manera ágil y eficiente. Pero este poder conlleva consigo una gran responsabilidad; en...

Microservicios Tolerantes a Fallas

Microservicios Tolerantes a Fallas

En este artículo explicaremos tres patrones de estabilidad fundamentales para construir microservicios tolerantes a fallas. Patrones de Estabilidad Debemos entender que estos patrones lo que persiguen es promover la resiliencia en un sistema distribuido. Y en nuestra...

Teletrabajo con AWS

Teletrabajo con AWS

AWS posee una serie de herramientas que están diseñadas para apoyar el trabajo remoto y permitir una mejor interacción entre las personas y las empresas para las cuales laboran. Esto cobra mayor relevancia en este momento, cuando la mayoria de los países y empresas...