Coinbase utiliza AWS Step Functions para la implementación de forma segura en AWS en cuestión de segundos

600x400_Coinbase_Logo resize

Las criptodivisas proporcionan un acceso descentralizado a los fondos y permiten realizar transacciones de tipo monetario que no se pueden revocar por nadie excepto por la parte que recibe los fondos. Estas características hacen que la popularidad de las criptodivisas aumente, no sólo entre los inversores que cumplen la ley, sino también entre los agentes malintencionados, cuyos motivos y oportunidades para el robo de criptodivisas sólo crecen a medida que las criptodivisas se utilizan más ampliamente. Las denuncias de robos de criptodivisas al Centro de Denuncias de Crímenes en Internet (IC3) del FBI totalizaron 182 millones de dólares en 2018, un aumento del 212 % con respecto a 2017 y probablemente sólo una fracción del volumen real de pérdidas de criptodivisas en todo el mundo por fraude.

“Jaquear las bolsas de criptodivisas es el juego de captura la bandera más grande del mundo”, dice Graham Jenson, un ingeniero de infraestructura sénior de Coinbase, una plataforma y monedero digital de divisas con 30 millones de clientes y operaciones en todo el mundo por un total de 220 000 millones de dólares. “Como una de las principales bolsas, Coinbase es también uno de los principales objetivos”.

Con el objetivo de operar como el centro de confianza, seguro y legal de la criptoeconomía, Coinbase se esfuerza por tener los más altos niveles de seguridad, conformidad, tecnología, servicio de atención al cliente, diseño y más. Es por ello que Coinbase ha utilizado Amazon Web Services (AWS) como su principal proveedor de infraestructura desde 2015 y por lo que recientemente incorporó tecnologías adicionales de AWS como parte de la mejora de sus procesos de implementación de software.

Para proteger a sus clientes contra los ataques, los ingenieros de Coinbase deben ser capaces de implementar de forma rápida, fiable y segura las actualizaciones y las nuevas características de todos los sistemas de la empresa, con algunas implementaciones de software que necesitan 20 horas o más para terminar. Para simplificar y fortalecer estos procesos, Coinbase utilizó AWS Step Functions y AWS Lambda para crear un marco común y reutilizable para lo que había sido un portafolio ad hoc de implementadores. (AWS Lambda es una plataforma sin servidores que ejecuta código en respuesta a eventos, y AWS Step Functions coordina múltiples servicios de AWS en flujos de trabajo sin servidores).

“El uso de AWS Step Functions y AWS Lambda ha incrementado nuestro índice de implementaciones críticas exitosas del 90 al 97 por ciento”, dice Jenson.

“Hemos notado una reducción significativa en los tickets por problemas. Esto se debe a la visibilidad que AWS Step Functions brinda a nuestros ingenieros”.

Graham Jenson, ingeniero de infraestructura sénior, Coinbase

  • Acerca de Coinbase
  • Beneficios
  • Servicios de AWS utilizados
  • Acerca de Coinbase
  • Coinbase es una plataforma y monedero digital con sede en San Francisco. La compañía tiene 30 millones de clientes y ha respaldado intercambios de más de 220 000 millones de dólares en monedas digitales como Bitcoin, Ethereum y Litecoin.

  • Beneficios
    • Aumento de la tasa de implementaciones con éxito del 90 al 97 %
    • Redujo el tiempo necesario para agregar nuevas cuentas de AWS de días a segundos
    • Aumentó considerablemente el número de tickets resueltos
  • Servicios de AWS utilizados

AWS Step Functions; “exactamente lo que necesitaba”

En su búsqueda para encontrar formas de fortalecer aún más la seguridad en Coinbase, Jenson identificó una oportunidad para mejorar las canalizaciones de implementación automatizada de la compañía. “Teníamos múltiples implementadores, cada uno con diferentes interfaces y complejidades”, afirma Jenson. “Deseaba un marco común que nos permitiera crear rápidamente implementadores con la capacidad de validar la entrada del usuario, liberar el código de forma segura a AWS, y no obstaculizar el trabajo de nuestros ingenieros”.

Durante la búsqueda de soluciones, Jenson conoció AWS Step Functions. “Después de consultar la documentación, comprendí que Step Functions era exactamente lo que necesitaba”, afirma Jenson. “Step Functions puede mantener el estado hasta un año, es altamente escalable, y facilita la descripción de cómo gestionar automáticamente errores específicos y volver a intentar después de que se presentan”.

Al elegir crear su nueva clase de implementadores con un marco basado en AWS Lambda y AWS Step Functions, y al utilizar AWS Identity and Access Management (AWS IAM) y Amazon Simple Storage Service (Amazon S3), Coinbase logró posicionarse adecuadamente para realizar implementaciones rápidamente, con solo una breve curva de aprendizaje inicial. El primer implementador que el equipo de Jenson creó, un implementador de AWS de código abierto llamado Odin, toma una descripción del lanzamiento de un proyecto y lo lanza de forma segura en AWS mediante los grupos de Auto Scaling de Amazon Elastic Compute Cloud (Amazon EC2).

“Desde que se concibió la idea, hasta tener la implementación en funcionamiento y, a continuación, migrar Odin a la solución, transcurrieron seis meses, en total desde que se planteó el proyecto hasta la producción”, relata Jenson. “Pero debido a que podemos reutilizar el código y el marco sobre el que está creado Odin, solo nos llevó unas pocas semanas poner en producción nuestros dos siguientes implementadores. Solo va a ser más rápido de aquí en adelante”.

Una arquitectura simplificada mediante Step Functions

El nuevo enfoque redujo sustancialmente la complejidad de la arquitectura de Coinbase, lo que a su vez mejora la visibilidad para el equipo de Jenson.

“Todos nuestros implementadores anteriores tenían diferentes enlaces web, devolución de llamadas, diseños de Amazon S3, buckets y roles de AWS IAM. Además, usaban diferentes medios de comunicación y sondeo. Era muy difícil conseguir la visibilidad que necesitábamos”, dice Jenson. “Ahora que todos nuestros implementadores se basan en la misma base de AWS Step Functions y AWS Lambda, operamos e interactuamos con ellos de la misma manera. Podemos observar el flujo de datos a través de Step Function, identificar los fallos a lo largo de determinadas rutas, y tomar medidas para solucionarlos”.

Esta simplicidad acelera el proceso de agregar cuentas de AWS y mejora la seguridad. “Al utilizar AWS Lambda con el rol de AWS IAM asumido, podemos incorporar una cuenta de AWS con un solo rol de AWS IAM, a diferencia de un servicio entero con su propia configuración individual”, explica Jenson. “Gracias a AWS Lambda y AWS IAM, redujimos el tiempo necesario para agregar nuevas cuentas de AWS de días a segundos”.

La nueva solución también simplifica la auditabilidad. “Podemos habilitar múltiples cuentas pasando por una sola función de Step Function, lo que nos proporciona un único seguimiento de auditoría para todas las implementaciones”, dice Jenson. “Eso permite comprender fácilmente lo que ocurrió en todas las cuentas y nos permite habilitar nuevas cuentas con alta seguridad sin tener que volver a implementar el seguimiento de auditoría”.

Al permitir que los ingenieros superen los obstáculos de forma independiente, la solución también reduce las demandas del equipo de infraestructura. “Hemos notado una reducción significativa en los tickets por problemas relacionados con implementaciones fallidas”, comenta Jenson. “Esto se debe a la visibilidad que AWS Step Functions da a nuestros ingenieros para que puedan diagnosticar y resolver sus propios problemas”.

Todos estos beneficios internos y técnicos redundan en una mayor seguridad y una respuesta más rápida a las solicitudes de los clientes. “Con los implementadores creados sobre AWS Step Functions y AWS Lambda, nuestros ingenieros pueden llevar el código a la producción de forma segura”, dice Jenson. “El resultado es que podemos lanzar nuevas características más a menudo, responder más rápidamente a las amenazas de seguridad, y lograr más fácilmente nuestros acuerdos de nivel de servicio. Esto resulta en una mejor y más segura experiencia para el cliente”.


Más información

Obtenga más información sobre AWS Step Functions.