¿Por qué FTP en lugar de REST?
La plataforma de Lokad está orientada al procesamiento de datos a escala de terabytes y destinada a la optimización de supply chain predictiva. Sin embargo, para procesar datos, primero es necesario importarlos. La mayoría de las aplicaciones web cuentan con APIs web con estilo REST, sin embargo, Lokad ofrece FTPS y SFTP, lo que puede parecer sorprendente1. Esta elección no fue accidental sino dictada por los requisitos de rendimiento en la transferencia de datos. Aunque esta opción se tomó hace una década basada en la experiencia previa, las fuerzas a favor de FTP siguen siendo tan fuertes como siempre.

Vamos a aclarar el caso de uso de Lokad. Una empresa cliente típica necesita transferir la copia integral de 10 a 100 tablas de bases de datos, de 5 a 500 campos por tabla, a su cuenta de Lokad. Estos datos representan el contenido de su ERP, MRP, WMS, POS, etc. Con el tiempo, las copias deben mantenerse actualizadas, típicamente sin tener más de la fecha de ayer. La cantidad total de datos involucrados, asumiendo archivos de texto plano sin comprimir (es decir, CSV) varía desde 1 GB para una empresa mediana hasta 10 TB para una empresa grande. Al adoptar transferencias de datos incrementales para las tablas más grandes, el volumen de las transferencias diarias varía típicamente de 100 MB a 10 GB.
La empresa cliente - o su proveedor de software, o el integrador del proveedor - debe lograr enviar los datos relevantes a Lokad. De hecho, en la mayoría de los casos, Lokad nunca obtiene acceso IT a ningún sistema de producción. Esto es razonable: por motivos de seguridad, los análisis de terceros no deberían tener acceso directo a los sistemas de producción. La empresa cliente debe permanecer en control, como guardián, de los datos que salen de su sistema. Como ventaja, esto les permite eliminar cada bit de dato personal, que un tercero como Lokad ni siquiera necesita de todas formas.
En teoría, REST puede hacerse arbitrariamente eficiente. En la práctica, no es así. Con REST, transferir de forma confiable 100 MB de datos relacionales de alto detalle, a diario, invariablemente genera enormes sobrecargas de rendimiento, a menos que se cuente con un equipo de ingeniería de software de primer nivel. Dos aspectos deben manejarse con sumo cuidado: la verbosidad y los reintentos. La verbosidad se refiere a la cantidad de llamadas a través de la red. Los reintentos se relacionan con los comportamientos necesarios para hacer frente a fallos transitorios en la red. Ambos son difíciles, extremadamente en la práctica.
En el ámbito empresarial, la mayoría de los proveedores de software ni siquiera aciertan con la paginación en sus propias APIs. La proposición de que los mismos proveedores, mientras implementan una integración rápida y sucia de Lokad, de repente vayan a dedicar talento de ingeniería de software de primer nivel no es razonable. Mi experiencia en Lokad indica que, al contrario, los trabajos de IT apresurados son lo mejor que Lokad puede esperar. Esto está bien. Hay toneladas de batallas por pelear en el ámbito IT. Realísticamente, la integración de datos de Lokad no puede esperarse que sea la única batalla que requiera sacar a relucir las fuerzas de élite.
En la práctica, cuando se ejerce presión para obtener un rendimiento decente, las APIs web se transforman en transferencias de archivos planos a través de HTTP. Esta transformación aborda el aspecto de ‘verbosidad’ mencionado anteriormente. Sin embargo, todavía deja sin resolver el aspecto de ‘reintentos’. Una vez que también se aborde el aspecto de ‘reintentos’, felicidades, la API finalmente ha reinventado un Protocolo de Transferencia de Archivos (también conocido como FTP).
Sin embargo, este FTP ad-hoc está lejos de estar tan instrumentado como el verdadero. FTP es soportado por todos los sistemas operativos principales. Ambos cuentan con un amplio soporte de herramientas de código abierto. Las implementaciones relevantes han sido de grado de producción durante décadas. Es cierto, existen peculiaridades, esos protocolos pueden no ser “modernos” ya, pero cuando se trata de realizar el trabajo en cuestión de horas sin involucrar ingenieros estrella, ni se compara.
Por ello, Lokad ha adoptado FTP para soportar tanto las transferencias de datos entrantes como salientes. Además, una década de operaciones ha demostrado que esta elección fue la correcta. Incluso las empresas de IT subcontratadas de baja habilidad y bajo costo logran transferir grandes cantidades de datos relacionales de forma rápida y fiable a Lokad mediante FTP, lo que nunca sucedió, ni una sola vez, durante todos los años en que contamos con una API web.
-
En lo que sigue, para mayor concisión, FTP siempre se refiere a “FTPS y SFTP”. Esos dos protocolos son bastante diferentes, pero para efectos de esta discusión, esas diferencias son irrelevantes. Favorecer un protocolo sobre el otro es, mayormente, cuestión de alineación con las prácticas de IT preexistentes en la empresa de interés. ↩︎