FotoReportaje - Galería de fotos

El mejor software de código abierto del 2019

Premios InfoWorld Bossies

  • Ganadores del Premio Bossie 2019

    Durante más de una década, InfoWorld ha estado celebrando los proyectos de código abierto más interesantes e innovadores con nuestros premios anuales Best of Open Source Awards, también conocidos como InfoWorld Bossies. Cuando comenzamos estos premios, los proyectos de código abierto eran típicamente pequeños y (con notables excepciones como Linux o BIND) solo marginalmente importantes para los desarrolladores empresariales y TI. Pero eran herramientas útiles, y eran libres.

    Hoy en día, el software más importante -para el desarrollo de software, para la computación en nube, para el análisis, para el aprendizaje de la máquina y para casi todo lo demás- es software de código abierto. Los proyectos de software de código abierto -a veces respaldados por múltiples empresas tecnológicas, incluso competidoras, de gran envergadura- están resolviendo los mayores problemas de la informática empresarial y reinventando la infraestructura y las aplicaciones empresariales.

    Bienvenidos a los Premios InfoWorld Bossie 2019. En los ganadores de este año, encontrará no solo el mejor software de código abierto, sino también el mejor software que el mundo tiene para ofrecer.

    - Doug Dineley

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • BPF Compiler Collection

    El Extended Berkeley Packet Filter (eBFP) se está extendiendo por todo el mundo Linux, reemplazando a los robustos servidores de red como iptables, y haciendo que las herramientas de observabilidad de bajo costo que se ejecutan dentro del espacio del núcleo, sean prácticas y (en su mayoría) seguras.

    La observabilidad eficiente es el objetivo detrás de la BPF Compiler Collection, que comprende un conjunto de herramientas de compilación para crear y ejecutar código eBPF dentro de Python o Lua. El proyecto también incluye un gran número de programas de ejemplo que ejecutan la gama de rastreo y filtrado, desde el sondeo de la distribución de las asignaciones de memoria en su código hasta el filtrado de paquetes HTTP.

    El uso de eBPF para la observabilidad del sistema probablemente explotará hacia finales de año, cuando el libro del maestro del kernel de Netflix y del ingeniero de rendimiento, Brendan Gregg, BPF Performance Tools, llegue a la imprenta. Hágase un favor y empiece a cavar ahora para estar por delante de la curva.

    -Ian Pointer

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • Wasmer

    WebAssembly -Wasm para abreviar- promete un inicio rapidísimo y un espacio mínimo, lo que lo hace ideal para arquitecturas sin servidores y dispositivos de borde de Internet de las cosas (IoT, por sus siglas en inglés). Liderando la carga en tiempos de ejecución de servidores WebAssembly está Wasmer, gracias a una velocidad de ejecución sorprendentemente rápida y casi nativa que simplemente aplasta a la competencia.

    Wasmer combina un tiempo de ejecución independiente y un conjunto de herramientas para compilar y dirigir binarios WebAssembly: módulos WebAssembly, aplicaciones ejecutables CLI y bibliotecas binarias incrustadas dentro del código existente. Similar a lo que Node.js hace con JavaScript, Wasmer permite que WebAssembly se ejecute en cualquier lugar.

    Basado en Cranelift Code Generator, Wasmer proporciona integraciones de lenguaje que cubren Go, C/C++, C#, Python, R, Rust, Ruby y PHP, con tiempos de ejecución para Linux, Mac y Windows (si bien todavía de forma experimental en Windows debido a la implementación de Emscripten). El gestor de paquetes tipo NPM de Wasmer, WAPM, completa la oferta con librerías autenticadas y listas para funcionar.

    En el año 2019, Wasmer agregó dos finales suplementarios al Cranelift (incluyendo un tiempo de ejecución LLVM que proporciona una velocidad de ejecución más rápida a través de optimizaciones), junto con soporte para WASI (Interfaz del sistema WebAssembly) y paralelismo SIMD. WASI es la clave para la portabilidad de las aplicaciones en todos los sistemas operativos. El soporte de SIMD aportará un enorme aumento de rendimiento a las aplicaciones de matemáticas intensivas como la criptografía y el procesamiento de video.

    -James R. Borck

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • Language Server Protocol

    Algunas de las innovaciones más notables en software en los últimos años han sido en la cadena de herramientas, por ejemplo, el marco del compilador LLVM, una biblioteca para implementar compiladores. El protocolo Language Server Protocol de Microsoft llena otro nicho de herramientas para los desarrolladores de software: Proporciona un canal bidireccional entre un compilador o una cadena de herramientas de lenguaje, y el IDE o editor utilizado para crear el código.

    Los desarrolladores necesitan retroalimentación en vivo de sus herramientas de codificación. No solo búsquedas estáticas de funciones de biblioteca estándar, sino también detalles interactivos sobre el código que están escribiendo. El protocolo Language Server Protocol lo permite al proporcionar un estándar JSON-RPC para las comunicaciones entre las herramientas de desarrollo y los servidores de idiomas, que proporcionan documentación de lenguaje y funciones como la autocompletar durante las sesiones de edición.

    Docenas de lenguajes -desde Ada hasta YANG y casi todo lo demás- tienen implementaciones de protocolo de servidor de lenguajes.

    -Serdar Yegulalp

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • Serverless Framework

    No hay nada mejor que las arquitecturas sin servidores para reducir la sobrecarga operativa. Desafortunadamente, la reducción de los gastos generales suele ir acompañada de un aumento de la complejidad arquitectónica y de la dependencia de los proveedores de cloud computing. Serverless Framework inserta una abstracción agnóstica a los proveedores entre su aplicación sin servidor y las implementaciones en nube más populares como Amazon Web Services, Microsoft Azure, Google Cloud Platform y Kubernetes.

    Serverless Framework no solo le permite elegir entre diferentes objetivos de implementación, sino que también le permite probar, implementar y gestionar aplicaciones de funciones como servicio basadas en eventos de forma más rápida y sencilla. Después de crear sus funciones, definir sus puntos finales y especificar un entorno de nube de destino, Serverless Framework lo envuelve todo: su código, seguridad y recursos, y el despliegue de nube YAML, y despliega su proyecto. Además, la instrumentación automatizada integrada del framework comienza a monitorear y capturar métricas, proporcionando notificaciones listas para usar.

    Los desarrolladores detrás del proyecto estuvieron ocupados este año fortaleciendo el Serverless Framework con monitoreo en tiempo real, seguridad y pruebas de integración que profundizan en el ciclo de vida de la gestión de aplicaciones. Las nuevas disposiciones le permiten administrar las credenciales y las políticas de acceso para una mayor seguridad, y ahora se pueden aprovechar de forma programática. Una nueva colección de componentes plug-and-play (todavía beta) que proporcionan una ventaja en casos de uso común, desde sitios web estáticos hasta aplicaciones web de pila completa.

    En resumen, Serverless Framework crea una experiencia de desarrollo sin fisuras que elimina gran parte del estrés y muchos de los escollos de la creación de aplicaciones sin servidores.

    -James R. Borck

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • Istio

    Las arquitecturas de microservicios pueden simplificar el desarrollo, pero a medida que el número de servicios aumenta, la gestión de sus comunicaciones se vuelve extraordinariamente compleja. Istio, del universo Kubernetes, alivia la carga de la red entre servicios de los desarrolladores mediante el descubrimiento, el equilibrio de carga, el control de acceso, el cifrado, la gestión del tráfico y la monitorización en una solución a nivel de infraestructura. No hay necesidad de que los desarrolladores trabajen esta lógica en los servicios ellos mismos.

    Comúnmente llamada "malla de servicio", Istio gestiona todo el espacio que se encuentra entre los contenedores y los servicios orquestados en un clúster de Kubernetes, el tejido de la red. Istio utiliza "sidecares" de Envoy para mediar todas las comunicaciones entre los servicios de la red de servicios. Cualquier cambio en la red de su clúster puede realizarse mediante abstracciones de alto nivel, desplegarse gradualmente y retroceder si resulta problemático. Istio también genera estadísticas sobre el comportamiento del tráfico, por lo que no está en la oscuridad sobre el rendimiento del servicio.

    -Serdar Yegulalp

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • Envoy

    El proxy de servicio estándar para Kubernetes, Envoy, parece que va de fuerza en fuerza. Después de graduarse como uno de los primeros proyectos de la Cloud Native Computing Foundation, precedido solo por Prometheus y Kubernetes, Envoy encontró su camino en el corazón de las redes de servicio como Istio y AWS App Mesh, y se está convirtiendo rápidamente en una parte integral de la mayoría de las redes de Kubernetes. Los grandes despliegues de producción, como los de Reddit, demuestran que Envoy puede trabajar a gran escala.

    El año pasado también se publicó Envoy Mobile, que dirige muchos de los beneficios de Envoy (como la rotura de circuitos, la manipulación, la observabilidad y la consistencia) a una biblioteca coherente y multiplataforma tanto para iOS como para Android. Aunque todavía se encuentra en una etapa de liberación temprana, Envoy Mobile tiene muchas promesas para el 2020.

    -Ian Pointer

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • Kong

    Si está creando APIs, no querrá reinventar la rueda -las ruedas plurales como la limitación de velocidad, el equilibrio de carga, la autenticación, el registro, etc. Kong, originalmente una oferta comercial exclusiva, y de código abierto en el 2015, proporciona todo eso y mucho más.

    Kong proporciona casi todo lo necesario para complementar el conjunto de API de una pila de aplicaciones desde el primer momento. Además de las grapas mencionadas anteriormente, esto incluye características como interruptores automáticos, controles de estado, OAuth, transformaciones, almacenamiento en caché, geo-replicación y mucho más. Si no está incluido por defecto, probablemente lo encontrarás entre las docenas de plug-ins del Kong Hub.

    Kong también juega bien con la riqueza de las herramientas nativas de la nube. Los usuarios de Kubernetes que quieran integrar Kong con sus clústeres pueden utilizar el Kubernetes Ingress Controller for Kong, de nuevo para una mínima reinvención de la rueda. Kong Enterprise añade no solo soporte, sino también herramientas de automatización y visibilidad a nivel profesional.

    -Serdar Yegulalp

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • Pulumi

    Típicamente, la infraestructura de TI se arma a mano (muy laboriosa), se ensambla con scripts que llaman docenas de APIs (muy complejas), o se aprovisiona a través de una herramienta como Terraform que ejecuta archivos de configuración (muy especializados). Pulumi ofrece una respuesta diferente, de sentido común, escondida a la vista. En lugar de utilizar nuevas herramientas desconcertantes o colecciones incómodas de herramientas antiguas, usted declara la infraestructura de forma programática utilizando su lenguaje de programación habitual, antiguo y favorito. ¡No se requiere YAML!

    Lo mejor de todo es que Pulumi le permite aprovisionar y gestionar la infraestructura -de la misma manera- en todos los principales servicios en la nube (Amazon, Azure, Google), así como en cualquier sistema de Kubernetes. Combinando un modelo de objeto de nube, un tiempo de ejecución de evaluación y el estado deseado, Pulumi le permite aprovisionar y gestionar todo tipo de recursos, desde fragmentos de código sin servidor y sitios web estáticos hasta aplicaciones comunes o patrones de aplicaciones, entre nubes.

    El código Pulumi puede ser escrito usando JavaScript, TypeScript, Python, y Go, que cubre la gran mayoría de los casos de uso empresarial. La biblioteca de ejemplos proporciona una gran cantidad de patrones comunes que se pueden utilizar tal cual o ampliados.

    Serdar Yegulalp

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • Sysdig

    Las tecnologías nativas de la nube como Kubernetes y Cloud Foundry ya son complejas. Si se añade una arquitectura de microservicios a la mezcla, la monitorización se convierte en un gran reto. Sysdig proporciona un conjunto de herramientas que no solo proporcionan información sobre el rendimiento de las aplicaciones basadas en contenedores, sino que también ayudan a revelar anomalías y amenazas a la seguridad.

    Sysdig Inspect captura el estado de los contenedores a nivel de kernel, lo que le permite detectar problemas de rendimiento, realizar un seguimiento de las tendencias y solucionar los errores antes de que los problemas se conviertan en graves cuellos de botella. Con Sysdig Falco, usted define el comportamiento "normal" de sus contenedores, y el motor de filtrado basado en reglas de Falco disparará alertas e incluso desencadenará acciones prescriptivas cuando se detecte un comportamiento anormal. Sysdig Prometheus combina la capacidad de medir casi cualquier métrica con consultas sencillas y visualizaciones en tiempo real que agregan los datos de tiempo de ejecución de sus contenedores, aplicaciones y servicios distribuidos.

    El año pasado se mejoraron las personalizaciones y disparadores de alertas, se profundizó y granularizó la información de los tableros (con adiciones como el uso de CPU/memoria y umbrales de capacidad), y se mejoró la visualización de las reglas de alerta dentro del editor de políticas de seguridad.

    Las aplicaciones en contenedor presentan desafíos y vulnerabilidades de rendimiento únicos. Las herramientas Sysdig le ayudan a elevar mejor el rendimiento y la seguridad de los contenedores.

    -James R. Borck

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • Kraken

    Las implementaciones de contenedores a gran escala requieren un gran volumen de transferencias de imágenes Docker, lo que significa picos de latencia y desafíos de escalado, especialmente cuando se están arrastrando esas imágenes a través de centros de datos multizona. ¿Qué puedes hacer al respecto? Para Uber Engineering, la respuesta era liberar al Kraken.

    Kraken es una capa de distribución y almacenamiento en caché de punto a punto altamente escalable para registros Docker, que puede extraer terabytes de datos de imágenes en segundos. En el corazón de Kraken hay una arquitectura de torrentes autocurativa que consta de tres componentes principales. Los nodos de origen almacenan en caché los datos de imagen extraídos de un almacenamiento conectable en el extremo posterior, como Amazon S3 o HDFS.Los nodos de seguimiento crean una vista global en memoria de todos los pares y seeders disponibles. Los pares implementan la interfaz de registro Docker y ejecutan de forma autónoma las solicitudes de extracción de imágenes.

    Los pares trabajan en paralelo para ensamblar decenas de miles de blobs de un gigabyte en segundos para lanzar trabajos en una fracción del tiempo que requeriría un registro centralizado tradicional. Y Kraken ofrece una buena optimización y parámetros de ajuste para no sobrecargar su red. Si ya ha agotado los trucos habituales para mitigar la latencia de inicio del Docker, deberías probar Kraken.

    -James R. Borck

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • Anaconda

    La distribución de Anaconda es una colección curada de paquetes Python (y R) de código abierto para proyectos de aprendizaje automático y ciencia de datos. A diferencia de otras distribuciones, Anaconda Navigator es un entorno de escritorio gráfico para el lanzamiento de aplicaciones y la gestión de paquetes, y Conda, el gestor de paquetes de desarrollo propio de Anaconda.

    Debido a que muchos paquetes tienen dependencias específicas de cada versión, evitar que colisionen varias instalaciones -y mantenerlas todas actualizadas- sería oneroso, si no imposible, sin Conda. Conda gestiona todas las dependencias y actualizaciones del repositorio público de Anaconda, así como los canales de terceros. El gestor de paquetes nativo de Pip-Python está bien para instalar y gestionar paquetes Python, pero Conda no solo maneja paquetes Python sino también dependencias fuera del ecosistema Python.

    Este año, Anaconda entregó a Conda una ayuda de rendimiento muy necesaria. Con tantas bibliotecas en la instalación, las actualizaciones se estaban volviendo muy lentas de descargar e instalar. Afortunadamente, desde la versión de verano de la Conda 4.7, el paquete manage se siente mucho más ligero y rápido.

    Disponible para Linux, Windows y MacOS, Anaconda Distribution es un ecosistema de primera clase para el aprendizaje de máquinas y la ciencia de datos que soporta la formación en la GPU y proporciona un útil planificador de tareas, y su licencia BSD permisiva lo hace atractivo para los desarrolladores.

    -James R. Borck

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • Kotlin

    Llámalo "Java sin lágrimas". Creado por JetBrains, el equipo que desarrolló el IDE IntelliJ para Java, y lanzado en una beta pública en el 2011, el lenguaje Kotlin se ejecuta en la JVM como Java e interactúa perfectamente con las bibliotecas Java. Pero también elimina gran parte de la verbosidad de Java, añade potentes funciones de programación y maneja los problemas de seguridad, como las excepciones de puntero nulo de forma más elegante. Y Google apoya a Kotlin como un lenguaje de primera clase para la creación de aplicaciones Android, lo que significa que aquellos que cambian a Kotlin no están perdiendo uno de los mayores mercados para Java.

    Un tema importante en Kotlin es tomar ideas solo parcialmente implementadas en Java y convertirlas en partes principales del lenguaje y de la cadena de herramientas. Kotlin 1.3, lanzado a finales del 2018, añadió la capacidad de compilar Kotlin directamente en código nativo de la plataforma, algo que hace tiempo que no estaba disponible en Java, excepto como un complemento comercial. Otra característica nueva en este sentido son los contratos, una forma de que las funciones describan cómo funcionan en el compilador, que ahora son utilizados por todas las funciones de la biblioteca estándar de Kotlin. El plan a largo plazo no es clonar Java, sino superar Java siempre que sea posible.

    -Serdar Yegulalp

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • Julia

    A medida que la ciencia de los datos crece en importancia, también lo hace la demanda de herramientas rápidas y fáciles para la computación numérica. El lenguaje Julia fue diseñado desde cero para ofrecer la comodidad de Python, la velocidad de C y las concesiones a los matemáticos que se encuentran en Fortran, R y Matlab. El resultado es un lenguaje de programación que atrae fuertemente a todo tipo de usuarios de matemáticas y estadísticas: científicos de datos, científicos investigadores e ingenieros, así como analistas financieros y cuantitativos.

    Julia 1.0 llegó en el 2018 después de nueve años de desarrollo, siete años en beta pública. El lanzamiento del hito consolidó las características clave -velocidad nativa de la máquina, sintaxis matemática, despacho múltiple, E/S asíncrona, paralelismo, gestión de paquetes- y la estabilidad general del lenguaje. Desde entonces, tres importantes lanzamientos de Julia han traído docenas de nuevas características para mejorar tanto sus matemáticas y estadísticas como su modo de programación general.

    -Serdar Yegulalp

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • Hazelcast Jet

    Este año Hazelcast, conocido por su red de datos en memoria de código abierto, entregó la primera versión GA de Hazelcast Jet, un motor de procesamiento de secuencias distribuido e incrustable para Java. Aunque recientemente GA, Hazelcast Jet 3 se ha estado filtrando durante años y ha demostrado ser muy fiable. (La versión 3.x pone a Jet en línea con el producto insignia IMDG de Hazelcast.)

    Bajo el capó, Hazelcast Jet utiliza la API java.util.stream para crear una red de ingesta de datos multihilo que funciona eficientemente en escenarios de alta frecuencia. Además, los conectores le permiten acceder fácilmente a fuentes de datos como Hazelcast IMDG, HDFS y Kafka para enriquecer los flujos. Jet es una solución particularmente buena para aplicaciones de borde en tiempo real, como la monitorización de redes de sensores de IoT y la detección de fraudes en redes de procesamiento de pagos.

    La versión GA de Hazelcast Jet proporcionó soporte completo para Java 11, mejoró el conocimiento de los diagnósticos de flujos, nuevas transformaciones de pipelines y funciones de agregación, y la recuperación de trabajos sin pérdidas (en la edición para empresas). Los desarrolladores de Java se sentirán como en casa usando conceptos familiares como mapa, filtro y reducción. Si desea integrar inteligencia distribuida en tiempo real en aplicaciones Java de procesamiento de secuencias, debería consultar Hazelcast Jet.

    -James R. Borck

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • Apache Airflow

    Apache Airflow es una plataforma basada en Python para crear, programar y monitorizar flujos de trabajo de forma programada. Los flujos de trabajo se dirigen a los gráficos acíclicos (DAGs) de las tareas, y se configuran los DAGs escribiendo los pipelines en código Python.

    Airflow puede generar un servidor web como interfaz de usuario. El sitio web puede mostrarle sus DAG en varias vistas y le permite operar con los DAG. Además, Airflow tiene una interfaz de línea de comandos que permite muchos tipos de operaciones en un DAG, así como el inicio de servicios y el desarrollo y las pruebas.

    Puede definir sus propios operadores y ejecutores y ampliar la biblioteca de Airflow para que se ajuste al nivel de abstracción que mejor se adapte a su entorno. Puede parametrizar sus scripts utilizando el motor de plantillas Jinja. Airflow tiene una arquitectura modular escalable y utiliza una cola de mensajes para orquestar un número arbitrario de trabajadores. Airflow está respaldado por una base de datos, que puede ser SQLite (solo para desarrollo y pruebas) o cualquiera de las bases de datos relacionales comunes.

    -Martin Heller

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • GridGain

    GridGain entregó el código fuente de Ignite a la Apache Software Foundation hace unos cinco años, y desde entonces la compañía ha estado ofreciendo características, actualizaciones y mejoras de nivel empresarial para la plataforma de cuadrícula de datos en memoria. La GridGain Community Edition, que se estrenó en marzo de este año, empaqueta Apache Ignite con los mismos ajustes y parches de GridGain, que sirven para optimizar el rendimiento y la fiabilidad, mejorar la seguridad y simplificar el mantenimiento de las implementaciones de misión crítica.

    GridGain Community Edition ofrece clusterización escalable, replicación nativa y buenas opciones de copia de seguridad y recuperación, lo que la hace muy adecuada para servir aplicaciones de datos intensivas desde centros de datos distribuidos, y GridGain soporta implementaciones on-prem, cloud e híbridas. Los aspectos más avanzados del conjunto de características de GridGain siguen siendo de pago. Pero GridGain Community Edition, una plataforma sólida para alto volumen, streaming en memoria y procesamiento de eventos en tiempo real, está a solo una descarga gratuita de distancia.

    -James R. Borck

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • Apache Druid

    Apache Druid es una base de datos de series de tiempo orientada a columnas y un motor de análisis que proporciona visualización en tiempo real y consultas de baja latencia a datos de alta velocidad y orientados a eventos. Druid combina la ingesta de streaming, la ingesta de lotes al estilo OLAP y la tecnología de búsqueda para cortar y transformar datos en tiempo real e históricos. Escalabilidad superior y respuestas de consulta ad hoc rápidas como el rayo, hacen de Druid una mejor opción que los almacenes de datos tradicionales para aplicaciones interactivas y cargas de trabajo de alta concurrencia.

    Es cierto que Druid es algo así como un gigante. Los clústeres comprenden múltiples servidores y procesos para manejar de forma independiente la ingestión, consulta o coordinación de la carga de trabajo. Pero con esta complejidad viene la máxima flexibilidad y fiabilidad. Aunque Druid todavía está en la fase de incubación de Apache, ya es altamente estable, tolerante a fallas y está listo para la producción, ya sea en las instalaciones o en la nube.

    Para herramientas Druid más avanzadas, recomiendo ejecutar la distribución Imply, que agrega una interfaz gráfica de usuario de arrastrar y soltar, análisis avanzados e integración de Kafka guiada por asistentes, junto con extras de monitoreo y administración. Y para un acoplamiento más fiable de fuentes de eventos de alto volumen con análisis de flujo descendente, considere la posibilidad de añadir Apache Kafka a la mezcla. Aquí la distro Confluent hace una buena elección. Kafka y Druid forman un gran equipo para la analítica en tiempo real y orientada a eventos.

    -James R. Borck

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • TensorFlow

    De todos los excelentes marcos de aprendizaje automático y de aprendizaje profundo disponibles, TensorFlow es el más maduro, tiene la mayor cantidad de citas en documentos de investigación (incluso excluyendo citas de empleados de Google), y tiene la mejor historia sobre el uso en producción. Puede que no sea el marco más fácil de aprender, pero es mucho menos intimidante que en el 2016. TensorFlow es la base de muchos de los servicios de Google.

    TensorFlow 2.0 se centra en la simplicidad y facilidad de uso, con actualizaciones como la ejecución ansiosa, APIs intuitivas de alto nivel (Keras) y la construcción de modelos flexibles en cualquier plataforma. Una ejecución ávida significa que el código TensorFlow se ejecuta cuando se define, en lugar de añadir nodos y bordes a un gráfico que se ejecutará en una sesión posterior, que era el modo original de TensorFlow. TensorFlow 2.0 sigue siendo compatible con TensorBoard para la visualización de gráficos y diagnósticos.

    -Martin Heller

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • TensorWatch

    Aunque TensorBoard facilita la comprensión, depuración y optimización de los programas TensorFlow y, recientemente, de los programas PyTorch, funciona con archivos de registro una vez finalizada la formación y se ejecuta en su propia interfaz de usuario. El registro requerido para el TensorBoard tiene una sobrecarga considerable.

    TensorWatch es una librería Python para la depuración y visualización de modelos de aprendizaje profundo de Microsoft Research, que puede mostrar gráficos en tiempo real a medida que los modelos se entrenan. También ofrece características útiles de pre-entrenamiento y post-entrenamiento, incluyendo visualización de modelos de gráficos, exploración de datos a través de la reducción de la dimensionalidad, estadísticas de modelos y varios explicadores de predicciones para redes de convolución.

    TensorWatch proporciona una depuración interactiva de los procesos de formación en tiempo real utilizando tanto los portátiles Jupyter como el Jupyter Lab. Además del modo de registro directo utilizado por TensorBoard, TensorWatch soporta el modo de registro perezoso, que permite a TensorWatch observar las variables con una sobrecarga muy baja. A continuación, puede realizar consultas interactivas que se ejecutan en el contexto de estas variables y generar flujos de retorno para su visualización.

    -Martin Heller

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • PyTorch

    Después de irrumpir en la escena del aprendizaje profundo en el 2018 y de convertirse instantáneamente en una opción popular para la investigación, PyTorch se convirtió en una opción adecuada para la producción en el 2019. Con la llegada de la versión 1.0 de PyTorch y la adición de TorchScript, un subconjunto de Python compilado por JIT combinado con un rápido tiempo de ejecución C++, el framework está definitivamente listo para el prime time. Si Facebook está ejecutando PyTorch a una escala de trillones de operaciones al día, entonces seguramente debería satisfacer al resto de nosotros.

    Además de la preparación para la producción, el año pasado el ecosistema alrededor de PyTorch ha madurado. Ahora hay un hub central, PyTorch Hub, para almacenar modelos de PyTorch preentrenados de todas las formas y tamaños, con bibliotecas de texto, visuales y de audio asociadas que continúan añadiendo técnicas de vanguardia, todas empaquetadas y listas para usar. No es de extrañar que PyTorch se haya convertido en uno de los favoritos de muchos científicos de datos, y busca continuar haciendo más accesible el aprendizaje profundo hasta el 2020 y más allá.

    -Ian Pointer

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • PyTorch Transformers

    Los desarrolladores de Hugging Face han realizado un servicio inestimable a las comunidades de PyTorch y NLP (procesamiento de lenguaje natural) con PyTorch-Transformers. El repositorio contiene implementaciones de los modelos de investigación más actuales y avanzados en PNL, como BERT, GPT-2 y XLNet. Las implementaciones se actualizan normalmente en una semana para incluir nuevos modelos o liberaciones de peso.

    Con una API unificada para todos los modelos, así como una documentación completa para el uso de modelos pre-entrenados (con conversión de modelos entrenados con TensorFlow también soportados) o entrenando los suyos propios desde cero, PyTorch-Transformers es una bendición para cualquiera que requiera líneas de base para su propia investigación. Al mismo tiempo, la biblioteca sigue siendo lo suficientemente práctica como para utilizarla en productos como el propio Talk To Transformer de Hugging Face.

    -Ian Pointer

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • Ludwig

    Ludwig es una caja de herramientas Python de Uber, basada en TensorFlow, que mitiga la complejidad de la programación de redes neuronales. Ludwig permite a los novatos en ciencias de la información entrenar y probar sofisticados modelos de aprendizaje profundo sin tener que escribir ningún código; solo tiene que parametrizar un archivo de configuración declarativo de YAML y ya está. Naturalmente, los ingenieros de datos experimentados pueden ajustar los parámetros bajo el capó.

    Ludwig le permite definir una fuente de datos (actualmente archivo CSV o Pandas DataFrame) y seleccionar sus características y codificadores. Luego, el preprocesador de Ludwig se pone a trabajar, dividiendo el conjunto de datos para entrenar y probar, construyendo una red neuronal e iterando a través de diferentes optimizaciones de modelos. Las herramientas de visualización a bordo le permiten inspeccionar el rendimiento de la prueba y los méritos predictivos de un modelo. Y la API programática de Ludwig puede ser importada directamente a los proyectos de Python, extendiendo la utilidad del kit de herramientas más allá de una simple herramienta de línea de comandos.

    Ludwig soporta muchos tipos de datos (desde texto e imágenes hasta series temporales) y varios codificadores de redes neuronales (incluyendo múltiples combinaciones CNN/RNN y ResNet para redes de procesamiento de imágenes más grandes). Ludwig juega bien con otras herramientas de Uber, como Horovod para la formación distribuida en la GPU, y pronto añadirá soporte para el almacenamiento Amazon S3 y HDFS.

    Si busca una experimentación iterativa más rápida en el aprendizaje profundo, Ludwig ofrece un atajo muy prometedor.

    -James R. Borck

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • RAPIDS

    Por lo general, encontrar un camino más rápido significa encontrar un camino completamente diferente -el viejo, familiar y profundamente arraigado método tiene que ser desechado antes de que pueda acelerar las cosas. No es así con RAPIDS, un marco de trabajo de ciencia de datos que acelera el aprendizaje automático sin forzarlo a deshacerse de lo que sabe y de lo que ya utiliza.

    RAPIDS permite que los modelos de aprendizaje de máquinas se formen directamente en las GPUs con procesamiento en memoria, lo que acelera el proceso de formación en órdenes de magnitud, incluso si se compara con otros métodos de formación en la GPU. Funciona proporcionando equivalentes funcionales a las herramientas comunes de análisis de datos de Python, principalmente Pandas DataFrames. En algunos casos, todo lo que necesita para cambiar son las instrucciones de importación de sus scripts.

    Una deficiencia importante de RAPIDS es el limitado apoyo de la plataforma. El framework actualmente funciona solo en Ubuntu y CentOS, y funciona mejor con la distribución Anaconda de Python. Actualmente carece de soporte para entornos Python genéricos a través de instalaciones de pips. Pero el tiempo que RAPIDS ahorra al aprovechar las GPU para la preparación de datos y la formación de modelos, compensa con creces estos inconvenientes.

    -Serdar Yegulalp

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • MLflow

    Los proyectos de aprendizaje automático tienen un ciclo de vida propio. Los experimentos son difíciles de rastrear, los modelos son difíciles de implementar y los resultados son difíciles de reproducir. MLflow fue creado para hacer que los proyectos de aprendizaje de máquinas sean tan manejables como otros proyectos de desarrollo de software, con formas consistentes y repetibles de preparar los datos, rastrear el código y las configuraciones y la salida, compartir modelos y flujos de trabajo, e implementar modelos en la producción.

    MLflow proporciona herramientas para cada uno de los principales componentes y fases de un proyecto de aprendizaje de máquinas. Para los experimentos de aprendizaje de máquinas, MLflow proporciona una API para el seguimiento y la comparación de resultados. Para reproducir el entorno utilizado para generar resultados, MLflow ofrece un formato de empaquetado de código basado en Conda y Docker. Y para la entrega de modelos a diferentes plataformas de implementación, MLflow proporciona un formato de empaquetado de modelos que permite que las predicciones sean servidas desde el modelo, a la vez que preserva su relación con los datos y el código utilizado para crearlo.

    MLflow es agnóstico tanto para el lenguaje de programación como para la plataforma, ya que se ejecuta en Linux, Windows y MacOS y trabaja con cualquier biblioteca de aprendizaje de máquina (TensorFlow, PyTorch, etc.). MLflow está escrito en Python, así que juega mejor con el ecosistema Python, pero también trabaja estrechamente con R y Java, y tiene una API REST para trabajar con la mayoría de los lenguajes.

    -Serdar Yegulalp

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • Kubeflow

    Kubeflow puede sonar como si estuviera fusionando cínicamente las dos cosas más candentes en TI en este momento, Kubernetes y el aprendizaje automático, pero aborda dos problemas muy reales que las organizaciones han tenido que resolver desde cero una y otra vez: Cómo llevar la investigación de aprendizaje de máquinas desde el desarrollo hasta la producción, y cómo llevar la telemetría desde la producción hasta el desarrollo para seguir investigando.

    Basado en la plataforma TensorFlow Extended de Google, Kubeflow ha evolucionado para ser más agnóstico, soportando bibliotecas de aprendizaje de máquinas de la competencia como PyTorch, MXNet y Chainer, y obteniendo soporte y contribuciones de compañías como Chase, Microsoft y Alibaba. Trabajando para simplificar la implementación, gestión y escalado de los modelos de aprendizaje de máquinas, Kubeflow es definitivamente un proyecto a tener en cuenta en el 2019 y más allá.

    -Ian Pointer

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

  • Delta Lake

    Databricks sorprendió a casi todo el mundo a principios de este año con Delta Lake de código abierto, que fue -y sigue siendo- una parte integral de la oferta comercial de la compañía. Capaz de funcionar a nivel de petabytes e incluso de exabytes, Delta Lake es una capa de almacenamiento para lagos de datos que proporciona traducciones ACID y un fácil versionado de datos que permite el "viaje en el tiempo", simplemente pasando una marca de tiempo a través de una llamada de función de lectura Apache Spark.

    Aunque Delta Lake se encuentra aún en las primeras etapas de desarrollo de código abierto (la versión 0.2.0, publicada en junio, agregó soporte de nube para AWS y Azure), se está utilizando en la producción en Viacom y McGraw Hill, por lo que puede confiar en él ahora mismo a su lago de datos. Es probable que Delta Lake se convierta en un durmiente golpeado en muchas empresas en los próximos meses.

    James R. Borck, Martin Heller, InfoWorld (EE.UU.), 15/octubre/2019, Crédito fotos: IDG

Llegamos a ustedes gracias a:

FOTO REPORTAJES

Más »
Software de escritorio remoto para pequeñas empresas

Software de escritorio remoto para pequeñas empresas

Es particularmente útil para los trabajadores remotos.
30 aplicaciones gratuitas para macOS

30 aplicaciones gratuitas para macOS

Que todo usuario de Mac debería tener
10 aplicaciones imprescindibles para su nuevo iPhone

10 aplicaciones imprescindibles para su nuevo iPhone

¿Qué debe descargar después de instalar YouTube, Instagram, Facebook y Snapchat?