La Filosofía de consenso de Coinbase

Coinbase Philosophy of consensus

El crecimiento de Coinbase a lo largo del año 2018 ha llevado a un aumento en los ingresos de la empresa. Además de un aumento en los ingresos, Coinbase también se ha visto obligada a aumentar su número de ingenieros que trabajan para mantener su infraestructura siempre actualizada todo el tiempo. Aparte del éxito, el aumento de ingenieros también ha llevado a un crecimiento de las auditorías que son vitales para las aprobaciones que les dan a los ingenieros permisos para realizar cambios esenciales para todo el sistema.

Anteriormente, Coinbase había puesto en marcha una canalización de flujo de código que se acopló con una herramienta de codificación GeoEngineer utilizada por Snapchain. A través de los últimos sistemas, los ingenieros de Coinbase pueden obtener acceso a la infraestructura de la cadena de bloques de Coinbase para encargarse de los cambios. Pero para que los ingenieros obtengan acceso a cualquier servicio de entorno de producción, necesitan aprobación. Para eso, los ingenieros necesitan un quórum de aprobación del ingeniero para sus configuraciones, código y, por último, permisos para ser implementados.

Además de los ingenieros, el resto del personal de Coinbase también requiere aprobación para obtener acceso a los servicios de producción de los que dependen en gran medida los sistemas. Algunos de los servicios a los que el personal necesita acceso para incluir los servicios de GitHub y AWS. Para estas aprobaciones, Coinbase iba por el camino manual incorporando empleados en estos servicios. Aunque la incorporación manual funcionó bien, el hipercrecimiento actual seencontró con algunos desafíos. Además, llevó a Coinbase a experimentar un retraso operacional debido al aumento significativo de las solicitudes de aprobación por consenso.

Fuera del manual en el sistema de automatización

Para ordenar todos los problemas de consenso anteriores, Coinbase crea un inicio de sesión único (SSO). A través de SSO, los ingenieros y el personal de Coinbase tienen acceso a los servicios de producción. Además de permitir que el personal acceda a los servicios de producción, SSO también logra altos estándares de seguridad. Para cumplir plenamente su función, Coinbase tuvo que combinar varios mecanismos para alcanzar la automatización completa de SSO. Para aprobar los permisos se usa el lenguaje de marcado de aserción de seguridad (SAML). Por otro lado, LDAP interviene para asegurar un mecanismo de autenticación nativo para el personal de Coinbase. Además, LDAP también viene con dos directorios que determinan que los usuarios forman parte de qué parte.

Cómo funciona el consenso de SSO

Para lograr su objetivo principal de otorgar permisos, los ingenieros deben actualizar su solicitud de permisos a los servicios mediante una solicitud de repositorio. Desde la solicitud del repositorio, SSO construye un directorio de grupo que obtiene información de un archivo de solo lectura. Desde el SSO directamente se obtienen detalles de los usuarios de contraseñas cifradas criptográficamente. Es a partir de los detalles del directorio que el usuario utiliza para emitir permisos.