Solución de pagos escalable y segura con AWS
La gestión de los pagos es crucial para el funcionamiento de proveedores de productos y servicios. A lo largo de los años, hemos trabajado con organizaciones en el desarrollo de soluciones escalables y seguras que integren múltiples pasarelas de pago. En este artículo, te contamos algunos de los desafíos que enfrentamos y cómo los resolvimos.
Desafíos de integrar pasarelas de pago.
Integrar una pasarela de pago que permita a las organizaciones recibir pagos de manera online en cualquier parte del mundo presenta varios desafíos importantes. En primer lugar, es crucial desarrollar una solución que sea escalable, segura y que transmita confianza a los clientes. La escalabilidad asegura que la pasarela de pago pueda manejar un número creciente de transacciones sin comprometer el rendimiento, mientras que la seguridad protege la información sensible de los compradores contra fraudes y ataques cibernéticos.
Una solución de pasarela de pago debe ser capaz de cubrir picos de demanda, ya sean esporádicos o constantes, asegurando siempre la disponibilidad del servicio. Esto significa que la infraestructura subyacente debe estar diseñada para escalar automáticamente en respuesta a aumentos repentinos en el tráfico, evitando caídas del sistema y garantizando que los clientes puedan realizar sus compras en cualquier momento y lugar.
Transmitir confianza no solo implica proteger los datos, sino también generar una experiencia de cliente fluida y sin fricciones, que minimice los errores. La pasarela de pago también debe ofrecer múltiples métodos de pago y soporte para diferentes monedas, permitiendo a los clientes elegir la opción que mejor se adapte a sus necesidades y aumentando así las tasas de conversión.
Arquitectura de nuestra pasarela de pago en AWS.
Como partners de AWS, ofrecemos integrar sus servicios y herramientas para diseñar y desplegar soluciones robustas para el procesamiento de pagos. En esta sección, describimos los componentes clave de la arquitectura de nuestra pasarela de pago en AWS, destacando cómo estos elementos trabajan juntos para garantizar escalabilidad, disponibilidad, seguridad, confiabilidad, flexibilidad, conformidad y gestión de costo. Esta integración proporciona una solución robusta y confiable que permite a las organizaciones recibir pagos en línea de manera global, segura y eficiente.
Veamos cómo participan los diferentes componentes de la solución haciendo un recorrido de una transacción, desde que el cliente hace clic en el botón de pago hasta que recibe la confirmación de que fue efectuada
En primer lugar (1), la aplicación se sirve desde CloudFront y sus Edge Locations (la red de distribución de contenido de AWS) para asegurar una entrega rápida, eficiente y económica de aplicaciones web. El contenido estático se sirve directamente desde (2) S3 con el mismo propósito.
La solicitud del clic llega a nuestra solución y es filtrada por WAF (3)para reducir la superficie de ataque al mínimo, de esta manera podemos controlar cada una de las solicitudes permitiendo o no la consulta a nuestro sistema de pagos y aumentando el control granular sobre esta capa del sistema. La solución está desplegada dentro de una VPC(4) para no exponer los componentes a internet, lo cual da una mayor seguridad tanto a los clientes como al proveedor de servicios. Esta VPC se expande a 2 o más zonas de disponibilidad para garantizar mayor disponibilidad en caso de incidente en una de ellas.
El microservicio que recibe la solicitud es elegido por el ALB(5) y se ejecuta como una tarea de ECS(6) sobre contenedores orquestados por Fargate, que lanza nuevas instancias para brindar escalabilidad ante un creciente número de solicitudes. Al ser un servicio administrado por AWS, elimina el trabajo de operación de los servidores sobre los que se ejecuta.
La redirección de la solicitud al servicio de pago se hace a través del NAT Gateway (7) .Este componente es esencial para garantizar que las instancias en redes privadas puedan acceder a internet de manera segura, sin exponer sus direcciones IP privadas. Utilizar medios de pago tercerizados (8) como Mercado Pago, Paypal, etc. nos permite cumplir la conformidad con normativas y leyes aplicables como PCI DSS, esta es delegada a estos proveedores de servicio, asegurando la protección de datos sensibles y evitando sanciones.
Además la solución disponibiliza una capa de comunicación para las integraciones externas de los servicios así pueden mantenerse actualizados y recibir eventos de los resultados de las transacciones de pago tercerizados. De esta manera el resultado de la transacción persiste en el servicio de bases de datos relacionales RDS(9). Nuevamente, al ser un servicio gestionado por AWS, no es necesario administrar las actualizaciones de seguridad, el espacio de disco o los backups.
Finalmente la acción solicitada por el cliente se procesa de manera segura a través de nuestra solución, dejando un registro detallado de la transacción. Este proceso se integra con diversos servicios externos y permite la sincronización con ellos, garantizando así la disponibilidad y el rendimiento necesarios para obtener un resultado instantáneo en la solicitud de compra. Todo esto proporciona una experiencia completa fluida y segura de punta.
Certificación ISO 9001:215
Nuestro proceso de desarrollo, certificado bajo la norma ISO 9001:2015, se basa fuertemente en la integración y despliegues continuos (CI/CD). Para lograrlo, utilizamos la suite de desarrollo de AWS que incluye CodeCommit para la gestión del código, CodeBuild para su construcción, utilizamos ECR como repositorio de las imágenes de Docker y CodeDeploy para el despliegue de las soluciones en entornos creados y gestionados con CloudFormation.
Esto nos permite asegurar que, ante incidentes, podemos reconstruir los entornos de manera confiable y rápida y tener una absoluta trazabilidad del software en ejecución.
Para maximizar la privacidad del negocio utilizamos KMS el servicio de manejo de claves de AWS, para gestionar de manera privada las claves privadas del sistema dentro de la infraestructura de Cloudformation, asegurando las API Keys permanezcan privadas y seguras ante los usuarios dentro de nuestra cuenta de aws
Las soluciones utilizan CloudWatch para monitoreo y alertas que nos informan sobre situaciones sospechosas y, al mismo tiempo, nos facilitan la depuración de posibles errores.
Objetivos alcanzados: mejor experiencia de pago.
Nuestra solución permite manejar la demanda variable de cientos de miles de clientes, escalando horizontalmente y, una vez terminada esta demanda excesiva, volviendo a los parámetros reales. Esto mantiene los costos de infraestructura al mínimo, la performance al máximo y ofrece la mejor experiencia de pago posible. También es lo suficientemente flexible para adaptarse a distintas organizaciones y métodos de pago, priorizando la seguridad del sistema y de los datos de la organización para otorgar mayor confianza a sus clientes.
Si te interesó el proyecto, y necesitás realizar algo similar para tu empresa o institución, contactanos haciendo clic acá. El café corre por nuestra cuenta ;).