Enable javascript in your browser for better experience. Need to know to enable it? Go here.
Volumen 30 | Abril 2024

Herramientas

Herramientas

Adoptar ?

  • Conan es un gestor de dependencias de código abierto para aplicaciones en C/C++. Provee una interfaz intuitiva para definición, adquisición y administración de dependencias, lo cual simplifica el trabajo de los desarrolladores al integrar librerías provistas por terceros dentro de sus proyectos. Conan trabaja en la mayoría de sistemas operativos y una gran variedad de plataformas, incluyendo equipos de escritorio, servidores, dispositivos móviles y embebidos. Puede también ser utilizado para compilar y publicar librerías y paquetes de C/C++. Los paquetes pueden ser compartidos con equipos de trabajo vía servidores JFrog Artifactory. Al tomar ventaja sobre binarios pre-compilados, reduce significativamente tiempos de compilación, especialmente para casos de dependencias complejas y de gran tamaño. Conan se integra con sistemas de compilación populares como CMake y posee además un SDK para Python, extendiendo los sistemas de compilación para tareas como firmado. En nuestra experiencia, Conan se traduce en mejoras de replicación de compilación a lo largo de diferentes entornos y una mayor velocidad en ciclos de desarrollo. Las bases de código resultantes son más limpias y fáciles de mantener, un gran valor agregado para proyectos de gran tamaño en C y C++. Si te encuentras luchando con la administración de dependencias en tus proyectos, Conan es una herramienta que debes considerar para mejorar tu eficiencia de desarrollo.

  • Añadimos Kaniko al Radar en octubre de 2022, poco después de que Kubernetes dejara de dar soporte a Docker, exponiendo en ese momento la tendencia a apartarse de Docker como el constructor de contenedores de imagen por defecto en pipelines basadas en contenedores. Desde entonces hemos experimentado exhaustivamente con Kaniko utilizando varias herramientas y configuraciones de pipelines. Nuestros equipos aprecian la flexibilidad y el rendimiento de Kaniko y es por esto que lo hemos movido al área de Adopción, convirtiéndola en la herramienta por defecto en este espacio.

  • Una de las capacidades fundamentales de Kubernetes es el escalamiento automático horizontal: su habilidad para iniciar nuevos pods cuando se necesita capacidad adicional y apagarlos cuando la carga disminuye. Sin embargo, esto solo funciona si los nodos necesarios para alojar los pods ya existen. Cluster Autoscaler puede expandir de forma rudimentaria el clúster cuando suceden fallos de pods, pero no es muy flexible; En cambio, Karpenter es un escalador automático de nodos, de tipo Operador Kubernetes, más inteligente y de código abierto: analiza las cargas de trabajo actuales y las limitaciones de planificación de los pods, selecciona un tipo apropiado de instancia y la inicia o detiene según sea necesario. Karpenter es un operador al estilo de herramientas como Crossplane, que puede provisionar recursos de la nube por fuera del clúster. A pesar de que Karpenter fue originalmente desarrollado por AWS para EKS, se está convirtiendo en la herramienta de aprovisionamiento automático de nodos predeterminada para todos los proveedores de servicios de Kubernetes en la nube; y Azure recientemente empezó a soportar a Karpenter mediante el AKS Karpenter Provider.

Probar ?

  • El _ API Conformance Scan _** de 42Crunch** es una herramienta de pruebas dinámicas diseñada para identificar discrepancias entre el comportamiento documentado de una API y su implementación real. Esta herramienta toma la definición de especificaciones de la API en formato OpenAPI, que describe las funcionalidades y respuestas esperadas, y la compara con su comportamiento real. Al generar tráfico real e interactuar con los endpoints vivos, la herramienta puede identificar cualquier discrepancia entre lo que la API promete y lo que entrega. Esto se traduce en varias ventajas para los equipos de desarrollo. Por ejemplo, detecta incoherencias en fases tempranas del desarrollo, lo que ahorra tiempo y previene que los problemas lleguen a producción. La herramienta también ayuda a mejorar la calidad y la seguridad de la API al identificar posibles vulnerabilidades que surgen de desviaciones del comportamiento documentado. En general, API Scan ayuda a evaluar la postura de seguridad de las APIs identificando problemas como protocolos de autenticación débiles, prácticas de manejo de datos inseguras e insuficientes validaciones de datos de entrada. Proporciona informes detallados que resaltan los problemas encontrados y recomendaciones para su solución.

  • actions-runner-controller es un controlador de Kubernetes que opera con ejecutores auto-hospedados para GitHub Actions. Los ejecutores auto-hospedados pueden ayudar en escenarios donde el trabajo que Github Actions ejecuta necesita acceder a recursos que o no son accesibles para los ejecutores en la nube de GitHub o tienen un sistema operativo específico y requisitos de entorno que son diferentes a los que GitHub provee. En aquellos escenarios donde el equipo usa clusters de Kubernetes, actions-runner-controller orquesta y escala estos ejecutores. A nuestros equipos les gusta la habilidad para escalar ejecutores basados en el número de flujos de trabajo ejecutándose en un repositorio, organización, empresa o cluster de Kubernetes, así como su habilidad para manejar tanto ejecutores de Linux y Windows.

  • Contenedores de Emuladores de Android agilizan las pruebas de aplicaciones Android al eliminar las complejidades derivadas de los problemas de compatibilidad con el sistema operativo y las dependencias del sistema, así como de la configuración de emuladores para varias versiones de Android. Tradicionalmente, esta complejidad suponía un esfuerzo adicional o que los equipos renunciaran por completo a las pruebas automatizadas, lo que, a su vez, ralentizaba los ciclos de desarrollo y pruebas. Los contenedores de emuladores de Android simplifican este proceso, permitiendo una integración perfecta en las pipelines CI para pruebas automatizadas. Nuestros equipos utilizan estos contenedores principalmente para pruebas instrumentadas, que se ejecutan automáticamente con cada commit para proporcionar retroalimentación instantánea a los desarrolladores. Además, aprovechamos los contenedores de emuladores de Android para ejecutar pruebas nocturnas de extremo a extremo.

  • Nuestra recomendación ha sido siempre monitorizar costes como una función de aptitud. Los proveedores de la nube ofertan una variedad de servicios para monitorizar costes como por ejemplo AWS Cost Explorer o Google Cloud FinOps Hub. En el ecosistema AWS, nuestros equipos utilizan los paneles de control CUDOS (Cost and Usage Dashboards Operations Solution) para monitorizar el gasto en AWS Marketplace desglosado por departamentos de negocio o entidades legales en organizaciones matriciales grandes. Este panel de control provee de detalles integrales de costes y uso, con granularidad a nivel de recurso que ayuda a optimizar costes, hacer seguimiento de los objetivos de uso y alcanzar la excelencia operacional.

  • aws-nuke es una herramienta de código abierto que aborda el habitual desafío de acumulación de recursos no utilizados en cuentas AWS de desarrollo y pruebas que pueden llevar a ineficiencias de costes. La herramienta identifica y borra todos los recursos eliminables en una cuenta AWS o región a excepción de los recursos por defecto o gestionados por AWS, esencialmente restableciendo el entorno a estado Día Uno. También ofrece políticas de exclusión personalizables para asegurar que recursos críticos permanecen protegidos. Hemos utilizado esta herramienta para el caso de uso por defecto de optimización de costes así como en contextos de recuperación ante desastres (DR por sus siglas en inglés) con buenos resultados. Automatizando la limpieza en entornos de desarrollo y pruebas, aws-nuke ayuda a minimizar el gasto innecesario de recursos. También facilita el desmontaje de infraestructura temporal para DR después de simulacros o ejercicios. Aunque estable, aws-nuke es una herramienta muy destructiva y no está orientada a ser utilizada en entornos de producción. Realice siempre una simulación para confirmar que los recursos esenciales no serán borrados.

  • Bruno es una alternativa de escritorio a Postman e Insomnia de código abierto para pruebas, desarrollo y depuración de APIs. Almacena tus colecciones localmente en el sistema de archivos para que puedas usar Git o un sistema de control de versiones de tu elección para colaborar. Varios equipos de Thoughtworks están utilizando Bruno y les gusta su diseño simple y solo offline.

  • Develocity (anteriormente Gradle Enterprise) aborda el problema de los largos ciclos de compilación y prueba en proyectos de software a gran escala. Emplea mejoras de rendimiento, como el almacenamiento en caché de compilaciones y la selección de pruebas predictivas para acortar los ciclos de feedback de los desarrolladores tanto en entornos locales como de CI/CD. Nuestros equipos de plataforma lo han encontrado útil para acelerar compilaciones y pruebas, analizar comandos para determinar qué parte del flujo de trabajo aún necesita optimizarse, identificar y solucionar problemas de pruebas inestables y realizar análisis en el hardware utilizado para ejecutarlas.

  • Mientras que el mercado de asistencia de codificación con IA está cada vez más ocupado, GitHub Copilot sigue siendo nuestra opción por defecto y es utilizada por muchos de nuestros equipos. Desde la última vez que escribimos sobre GitHub Copilot, las mejoras más interesantes se han producido en la función de chat. Por ejemplo, ya no es necesario saturar el código con comentarios como indicaciones; en su lugar, un chat en línea te ayuda a proporcionar indicaciones sin tener que escribir un comentario. El chat en línea también puede modificar el código, no sólo escribir nuevas líneas. Ahora también puedes ampliar significativamente el contexto del chat cuando hagas preguntas sobre tu código, utilizando la etiqueta @workspace. Esto le permite hacer preguntas sobre todo el código base, no sólo los archivos abiertos. Puedes ampliar este contexto aún más con la versión Copilot Enterprise, que extrae el contexto de todos los repositorios que alojas en GitHub. Por último, GitHub ha empezado a enrutar algunas peticiones de chat a un modelo más potente basado en GPT-4, y la disponibilidad del chat en los populares IDEs de Jetbrains es inminente (aunque todavía en beta privada en el momento de escribir esto). Estos lanzamientos demuestran que el ritmo de las mejoras en este ámbito no se ha ralentizado. Si probaste un asistente de codificación el año pasado y lo descartaste, te recomendamos que sigas atento a las funciones que se van lanzando y le des otra oportunidad.

  • Gradio es una librería Python de código abierto que facilita la creación de interfaces interactivas basadas en la web para modelos de aprendizaje automático (ML). Una interfaz de usuario gráfica sobre los modelos de ML proporciona un mejor entendimiento de las entradas, restricciones y salidas por parte de audiencias no técnicas. Gradio ha ganado mucha acogida en el espacio de la IA generativa, ya que es una de las herramientas que hace que los modelos generativos sean tan accesibles como para experimentar con ellos. Normalmente, ponemos tecnologías en el anillo Probar cuando las hemos visto usadas en producción al menos una vez. El propósito y fortaleza de Gradio es la experimentación y la creación de prototipos, y la hemos utilizado con ese fin muchas veces. Recientemente, uno de nuestros equipos incluso la utilizó para ayudar a un cliente con demostraciones en vivo en grandes eventos. Estamos muy felices con las capacidades de Gradio para esos casos de uso y, por lo tanto, lo pasamos al anillo Probar.

  • Los Catálogos de versiones de Gradle son una característica útil de esta herramienta de construcción que permiten gestionar de una manera más centralizada las dependencias en el archivo de construcción (build file). Nuestros equipos han encontrado que es especialmente útil para proyectos con módulos múltiples de Android. En lugar de definir nombres y versiones fijas de las dependencias en archivos de construcción individuales y gestionar las actualizaciones por separado, es mejor crear un catálogo central de versiones de estas dependencias y luego referenciarlo de manera tipada con la asistencia de Android Studio.

  • Maestro es extremadamente útil cuando se prueban flujos complejos en aplicaciones móviles. Nuestros equipos lo han encontrado fácil de aprender, simple de comprender y sencillo de integrar en nuestro flujo de trabajo de desarrollo. Maestro soporta una variedad de plataformas móviles incluyendo iOS, Android, React Native y aplicaciones en Flutter. Su sintaxis declarativa YAML simplifica la automatización de interacciones complejas en la IU móvil. Basados en la evolución de la herramienta, marcada por mejoras en su funcionalidad como soporte comprensivo a iOS, y la introducción de herramientas como Maestro Studio y Maestro Cloud, invitamos a aquellos que buscan optimizar sus procesos de pruebas en aplicaciones móviles a probar esta herramienta.

  • La Herramienta SBOM de Microsoft, de código abierto, permite generar una lista de materiales de software (SBOM, Software Bill of Materials) compatible con SPDX. Habíamos ya hablado sobre la necesidad de la SBOM y este aplicativo hace que sea más fácil comenzar. La Herramienta SBOM tiene soporte para una variedad de administradores de paquetes populares (incluidos npm, pip y Gradle), haciéndola compatible con una amplia gama de proyectos. Es muy fácil de usar y se puede integrar en los flujos de trabajo de desarrollo existentes, incluida la integración con pipelines de CI/CD. Con la SBOM generada con esta herramienta las personas desarrolladoras obtienen múltiples ventajas. La mejora de la seguridad del software es un beneficio clave, ya que una visión clara de los componentes permite una identificación de vulnerabilidades y una gestión de riesgos más sencilla. El cumplimiento de la licencia también mejora, ya que se puede garantizar el cumplimiento de todos los acuerdos relevantes. Además, la SBOM promueve la transparencia dentro de la cadena de suministro de software, ayudando a rastrear dependencias y a mitigar riesgos potenciales. Si se busca optimizar la generación de la SBOM, mejorar la seguridad del software y obtener control sobre la cadena de suministro de software, dale una oportunidad a la Herramienta SBOM de Microsoft.

  • Open Policy Agent (OPA) es un marco de trabajo uniforme y un lenguaje para declarar, aplicar y controlar políticas. Para nuestros equipos, se ha convertido en una de las formas preferidas para definir políticas para sistemas distribuidos, especialmente cuando necesitamos implementar revisiones de cumplimiento en puntos de cambio. OPA permite a los equipos implementar varios patrones de ingeniería de plataformas, como controlar lo que se despliega a los clústeres de Kubernetes, hacer cumplir los controles de acceso entre los servicios de una malla e implementar políticas de seguridad como código precisas para acceder a los recursos de la aplicación. Aunque hay cierta complejidad asociada a las implementaciones de OPA, ha demostrado ser una herramienta muy valiosa para garantizar el cumplimiento en una cultura DevOps. Seguimos con atención el crecimiento y la madurez de OPA en escenarios diferentes a los de sistemas operacionales, como en las (grandes) soluciones centradas en los datos.

  • Aunque los ejecutores de GitHub Actions cubren un rango amplio de los entornos de ejecución más comunes y son los más rápidos para empezar, a veces los equipos necesitan administrar ejecutores autoalojados, como cuando la política de la organización solo permite despliegues a infraestructura alojada de forma privada desde dentro del perímetro de seguridad de la propia organización. En tales casos, los equipos pueden utilizar ejecutores de GitHub autoalojados** de Philips**, un módulo de Terraform que inicia ejecutores personalizados en instancias de spot de EC2 de AWS. El módulo también crea un conjunto de funciones Lambda que maneja la gestión del ciclo de vida (escalabilidad hacia arriba y hacia abajo) para estos ejecutores. Según nuestra experiencia, esta herramienta simplifica enormemente el aprovisionamiento y gestión de ejecutores de GitHub Actions auto-alojados. Una alternativa para los equipos que usan Kubenentes es actions-runner-controller.

  • La programación en pares se mantiene como una técnica esencial para nosotros, debido a que ayuda a mejorar la calidad del código y difunde el conocimiento dentro del equipo. Aunque es mejor hacerlo en persona, nuestros equipos distribuidos han explorado herramientas para hacer que la programación en pares de forma remota sea lo más agradable y eficaz posible, tales como Tuple, Visual Studio Live Share, Code With Me y herramientas de chat y conferencia de propósito general. La última herramienta que ha llamado nuestra atención es Pop (anteriormente conocido como Screen). De los fundadores de Screenhero, permite a múltiples personas compartir pantalla, anotaciones y audio/video de alta calidad. Algunos de nuestros equipos lo han usado extensamente para la programación en pares y para sesiones de trabajo remotas y han valorado su experiencia como positiva.

  • Monitorear y actualizar dependencias automáticamente como parte del proceso de creación de software se ha convertido en una práctica estándar en toda la industria. Remueve la incertidumbre de mantenerse al día con las actualizaciones de seguridad de los paquetes de código abierto a medida que son liberados. Por muchos años, Dependabot ha sido la herramienta estándar para esta práctica, pero Renovate se ha convertido en la herramienta predilecta para muchos de nuestros equipos. Ellos encuentran que Renovate es más afín a los ambientes de desarrollo de software modernos donde un sistema desplegable no solo depende del código y librerías, sino que abarcan herramientas de tiempos de ejecución, infraestructura y servicios de terceros. Renovate cubre las dependencias en estos artefactos auxiliares en conjunto con el código. Nuestros equipos también encuentran que Renovate ofrece mayor flexibilidad a través de las opciones de configuración y personalización. A pesar que Dependabot es una respuesta confiable y segura que está convenientemente integrada con GitHub, recomendamos evaluar Renovate en afán de reducir en mayor medida la carga manual sobre los desarrolladores para mantener los ecosistemas de sus aplicaciones seguros y protegidos.

  • Terrascan es un analizador de código estático para infraestructura como código (IaC) diseñado para detectar vulnerabilidades de seguridad y problemas de cumplimiento antes de aprovisionar la infraestructura nativa de la nube. Admite el escaneo de Terraform, Kubernetes (JSON/YAML), Helm, AWS CloudFormation, Azure Resource Manager, Dockerfiles y GitHub. El paquete con las políticas por defecto soporta a los proveedores más populares de la nube, GitHub, Docker y Kubernetes. Nuestros equipos usan Terrascan localmente como un pre-commit hook y lo integran en el pipeline de CI para detectar vulnerabilidades y violaciones de IaC.

  • Velero es una herramienta de código abierto para respaldar y restaurar recursos y volúmenes persistentes de Kubernetes. Simplifica la recuperación de desastres y las migraciones de clústeres al permitir la realización de respaldos programados y bajo demanda. Velero también permite controles más precisos sobre los recursos a respaldar, así como sobre el flujo de trabajo de respaldo y restauración (con hooks). Nuestros equipos aprecian su facilidad de uso y que opera con las API de Kubernetes, en vez de las capas de nivel inferior como etcd.

Evaluar ?

  • aider es un asistente de codificación de IA de código abierto. Como muchas herramientas de código abierto en este espacio, aider no tiene integración directa con el IDE, pero se inicia como una interfaz de línea de comandos en la terminal. aider es interesante porque proporciona una interfaz de chat con acceso de escritura al código base en múltiples archivos, mientras que muchos de los productos de asistente de codificación actuales solo leen el código o pueden cambiar un solo archivo a la vez. Esto permite que aider te ayude a implementar conceptos que abarcan múltiples archivos (por ejemplo,agregar localizadores a mi HTML y también usarlos en mi prueba funcional) y crear nuevos archivos y estructuras de carpetas en el código base (por ejemplo,crear un nuevo componente similar al de la carpeta X). Como aider es de código abierto y no un producto alojado, debes traer tu propia clave API de OpenAI o Azure OpenAI para usarlo. Por un lado, esto puede ser genial para un uso ocasional porque solo hay que pagar por uso. Por otro lado, aider parece ser bastante hablador en sus interacciones con la API de IA, así que mantente atento a los costos de las request y los límites de tarifas cuando lo uses.

  • Akvorado es una herramienta de código abierto para análisis y monitoreo de redes. Captura los flujos de red, Netflow/IPFIX y sFlow, los enriquece con nombres de interfaz e información geográfica y luego guarda los flujos actualizados en ClickHouse para análisis futuros. Aunque OpenTelemetry está ganando adopción para observar el tráfico a nivel de aplicaciones, a menudo nos encontramos con desafíos en la capa de red que pueden ser difíciles de detectar y solucionar. Herramientas como Akvorado son muy útiles en tales situaciones, ya que le ayudan a analizar los flujos de red en varios dispositivos en la topología de la red.

  • Baichuan 2 es parte de una nueva generación de modelos de lenguaje de gran tamaño de código abierto. Fue entrenado en un corpus de alta calidad con 2,6 billones de tokens, logrando un rendimiento bastante bueno para su tamaño tanto en chino como inglés y en comparativas con varios idiomas. Baichuan ha sido entrenado en varios corpus de dominios específicos, incluidos conjuntos de datos legales y de atención médica, por lo que preferimos usarlo en estos campos y sus relacionados.

  • Desarrollo y despliegue de funciones Rust en AWS Lambda

    La eficiencia y desempeño de Rust lo convierte en una buena alternativa para la computación serverless. Otra ventaja es que las funciones de Rust no requieren de un tiempo de ejecución, lo que se traduce en tiempos de arranque más rápidos. Sin embargo, la experiencia de desarrollo al escribir las funciones en Rust no ha sido la mejor. Esto cambió con el uso de Cargo Lambda. Como un subcomando de Cargo, se integra con el flujo típico de Rust, permitiendo correr y probar funciones AWS Lambda directamente en el ordenador de desarrollo sin la necesidad de Docker, máquinas virtuales (VMs) u otras herramientas. Usando un toolchain de Zig, Cargo Lambda puede ejecutar compilación cruzada de las funciones en diversos sistemas operativos para los sandboxes de Linux utilizados por AWS Lambda, siendo Arm e Intel soportadas como arquitecturas objetivo.

  • En el ocupado y emergente espacio de los asistentes de código basados en IA, algunos productos, en lugar de competir con los ya fuertemente establecidos, toman un enfoque más especializado. Codium AI se especializa en la generación de pruebas con IA. Funciona en todos los lenguajes pero tiene soporte avanzado para stacks comunes, como JavaScript y Python. Particularmente nos gusta que la herramienta, en lugar de llevar a los desarrolladores directamente al código de pruebas, ofrezca una lista de descripciones de escenarios de pruebas en lenguaje natural para ser revisados. Esto facilita a los desarrolladores razonar sobre los escenarios de pruebas y decidir cuáles convertir en código. Con el fin de mejorar aún más la generación de las pruebas para una base de código y caso de uso particulares, los usuarios pueden proporcionar ejemplos de pruebas e instrucciones generales para mejorar la información utilizada por la IA en la generación de las pruebas.

  • Continue es un piloto automático de código abierto para los entornos de desarrollo integrado VS Code y JetBrains. Nos gusta bastante porque elimina la molestia del copiar/pegar desde una interfaz basada en chat a un modelo de lenguaje grande (LLMs) con integración directa en el entorno de desarrollo integrado. Soporta varios modelos tanto comerciales como de código abierto y vuelve sencillo probar diferentes proveedores LLM, incluyendo LLMs autohospedados. Inclusive puedes correr Continue sin conexión a internet.

  • Una característica distintiva de las API REST ampliamente utilizadas es que sus contratos están minuciosamente documentados. Es más probable que los desarrolladores adopten y utilicen API cuyo comportamiento y sintaxis se describen con precisión de forma estructurada y organizada. Mantener esta documentación actualizada a medida que evoluciona el contrato puede llevar mucho tiempo y es una tarea que fácilmente se pasa por alto. Fern Docs ayuda con esto al reducir el trabajo involucrado en escribir y mantener la documentación de la API. Fern genera automáticamente un sitio web con documentación atractiva y utilizable a partir de un archivo de especificación que se puede versionar junto con el código de la API. Si bien nuestras impresiones iniciales de este producto son positivas, Fern requiere que mantengas la información de la API en un archivo de configuración propietario. Si bien proporciona una forma de convertir las especificaciones de OpenAPI a su propio formato de configuración, preferiríamos una herramienta que genere documentos directamente a partir del código fuente anotado.

  • Dado lo común que es la estrategia multicuentas en los ambientes AWS en las organizaciones, los ingenieros frecuentemente tienen que cambiar entre múltiples cuentas en un período de tiempo corto. Granted, una herramienta de línea de comandos que simplifica la apertura de múltiples cuentas en el navegador simultáneamente, agiliza el cambio de cuenta. Aprovecha las funcionalidades nativas del navegador para aislar múltiples identidades, Los Contenedores Multicuentas de Firefox y los Perfiles de Chromium. Si un servicio específico (como S3) es usado como un argumento, Granted abrirá la landing page del servicio. Granted actualmente sólo soporta AWS. Destacadamente, almacena las credenciales temporales de inicio de sesión único de AWS de manera segura en el llavero (keychain) en lugar de un archivo de texto plano en el disco.

  • LinearB es una plataforma diseñada para capacitar a líderes de ingeniería con conocimiento guiado por datos para mejora continua. Aborda tres áreas clave: evaluaciones comparativas, automatización de flujos de trabajo e inversión. Nuestra experiencia con las herramientas para métricas de LinearB resalta su potencial para respaldar una cultura de mejora continua. Uno de nuestros equipos aprovechó la plataforma para realizar un seguimiento de las métricas de ingeniería, identificar y discutir oportunidades de mejora, y definir pasos accionables basados en datos, conduciendo a un progreso cuantificable. Nos complace ver que esto se alinea con la proposición de valor fundamental de LinearB: evaluar, automatizar y mejorar. LinearB se integra con GitHub, GitLab, Bitbucket y Jira. Ofrece una suite integral de métricas de ingeniería preconfiguradas, con un fuerte enfoque en métricas DORA (frecuencia de despliegue, tiempo de espera, tasa de fallo de cambio y tiempo de restauración). Como fervientes defensores de las cuatro métricas clave definidas por el estudio DORA, apreciamos el énfasis de LinearB en medir lo que realmente importa para el rendimiento en la entrega de software. Históricamente, obtener métricas DORA específicas ha sido un desafío. Los equipos han recurrido a compleja instrumentación en “pipelines CD”, paneles de control personalizados o depender de procesos manuales. Aunque nuestra experiencia está limitada a un equipo, LinearB parece ser una alternativa convincente para la recolección y seguimiento de métricas de ingeniería, así como para promover una aproximación a la mejora continua guiada por datos.

  • LLaVA (Asistente Visual y de Lenguaje grande, del inglés: Large Language and Vision Assistant) es un modelo multimodal en código abierto que conecta un codificador visual y un modelo de lenguaje grande (o LLM en inglés) para el entendimiento visual y lingüístico con propósito general. La gran capacidad de LLaVA en el seguimiento de instrucciones lo posiciona como un oponente altamente competitivo entre los modelos de IA multimodal. La última versión, LLaVA-NeXT, proporciona una mejor respuesta. Entre los modelos de código abierto para asistencia lingüística y visual, LLaVA es una opción prometedora cuando es comparado con GPT-4 Vision. Nuestros equipos han estado experimentando con él para responder visualmente a preguntas.

  • Marimo ofrece una perspectiva totalmente diferente sobre Python “notebooks” al priorizar la reproducibilidad e interactividad. Aborda el desafío de manejar los estados ocultos en notebooks tradicionales (como Jupyter), el cual puede llevar a comportamientos inesperados e impedir la reproducibilidad. Esto lo logra, almacenando “notebooks” como archivos simples de Python sin estados ocultos y utilizando una ejecución determinista basada en el orden de las dependencias (cuando una variable cambia, todas las celdas afectadas son automáticamente ejecutadas). Además, Marimo incluye elementos interactivos de UI que propagan de una manera similar, los cambios de valores a las celdas que dependen de ellas. Al poder ser desplegada como una aplicación web, se convierte en una herramienta útil para demostraciones y creación de prototipos. Aunque, nos emociona el potencial de Marimo, particularmente en términos de reproducibilidad para exploración y análisis de datos, seguimos advirtiendo contra la producción de notebooks

  • Mixtral es parte de la familia de grandes modelos de lenguaje de pesos abiertos que Mistral ha liberado, y que utiliza la arquitectura dispersa de mezcla de expertos (Mixture of Experts). Estos modelos se ofrecen tanto en formas puras pre-entrenadas así como afinadas, con tamaños de parámetros 7B y 8x7B. Sus tamaños, naturaleza de pesos abiertos, desempeño en evaluaciones de rendimiento y una longitud de contexto de 32,000 tokens los convierten en una opción atractiva para LLMs auto hospedados.

    Es importante notar que estos modelos de pesos abiertos no están afinados para ser seguros por defecto, por lo que los usuarios deben refinar la moderación según sus propios casos de uso. Tenemos experiencia con esta familia de modelos en el desarrollo de Aalap, un modelo Mistral 7B afinado y entrenado con datos relacionados a tareas legales específicas de la India, el cual ha mostrado un rendimiento satisfactorio a un costo accesible.

  • NeMo Guardrails es un conjunto de herramientas de código abierto de NVIDIA de fácil uso que permite a los desarrolladores implementar restricciones en los modelos de lenguaje de gran tamaño (LLMs) utilizados en aplicaciones conversacionales. A pesar de que las LLMs tienen un inmenso potencial para crear experiencias interactivas, sus limitaciones inherentes en torno a la exactitud en los hechos, sesgos y su posible uso indebido requieren protecciones. Guardrails nos ofrece un enfoque prometedor para garantizar unos LLMs responsables y confiables. Aunque tiene donde elegir cuando se trata de restricciones LLM, nuestros equipos han encontrado que NeMo Guardrails es particularmente útil porque soporta reglas programables, integración en tiempo de ejecución y puede ser aplicado a aplicaciones LLM existentes sin grandes modificaciones de código.

  • Ollama Es una herramienta de código abierto para ejecutar y gestionar modelos grandes de lenguaje (LLMs) en tu entorno local de desarrollo. Anteriormente, hemos hablado de los beneficios de LLMs auto-hospedados, y nos complace ver que el ecosistema ha madurado con herramientas como Ollama. Soporta distintos modelos populares — incluyendo LLaMA-2, CodeLLaMA, Falcon y Mistral — que puede descargarse y ejecutarse localmente. Una vez descargados, puedes usar la línea de comando, API o SDK para interactuar con el modelo y ejecutar tus tareas. Estamos evaluando Ollama y viendo los primeros éxitos a medida que mejora la experiencia de los desarrolladores al trabajar LLMs en entornos locales.

  • OpenTofu es una rama de Terraform construida en respuesta a un cambio reciente ambiguo en la licencia emitida por HashiCorp. Es un producto de código abierto y ha sido aceptado por la Fundación Linux. Está avalado por varias organizaciones, incluyendo proveedores externos. La versión actual es compatible con la última versión de código abierto de Terraform. La versión 1.7 añade encriptación en el lado cliente. No está claro si en el futuro el proyecto OpenTofu soportará la compatibilidad con nuevas versiones de Terraform. También hay dudas respecto al soporte a largo plazo por parte de sus actuales promotores. Recomendamos permanecer atentos al proyecto pero ser cautelosos respecto al uso, excepto por equipos que tengan la capacidad de manejar riesgos que pueden incluir contribuir al código.

  • Los grandes modelos de lenguaje (LLM, large language models) y las técnicas de generación aumentada por recuperación (RAG, retrieval-augmented generation) han mejorado enormemente nuestra capacidad de sintetizar y extraer información. Estamos viendo a herramientas emergentes aprovechar esto y QAnything es una de ellas. QAnything es un motor de gestión del conocimiento con una interfaz de preguntas y respuestas que puede resumir y extraer información de una amplia gama de formatos de archivos, como PDF, DOCX, PPTX, XLSX y MD, entre otros. Por motivos de seguridad de datos, QAnything también admite la instalación sin conexión. Algunos de nuestros equipos la utilizan para desarrollar la base de conocimientos de su equipo. Para escenarios de IA generativa de mayor profundidad industrial (como generar resúmenes para informes de inversión), también intentamos utilizar esta herramienta en pruebas de concepto antes de crear productos reales y mostrar el potencial de los LLMs y la RAG.

  • En los últimos años han aparecido pocas herramientas de infraestructura como código capaces de desafiar el dominio de Terraform. A pesar de que han surgido alternativas como Pulumi, CDK y más recientemente Wing, el paradigma modular y declarativo de Terraform ha probado ser el más duradero. System Initiative es una herramienta nueva y experimental que representa una dirección radicalmente nueva para el trabajo de DevOps. Una forma de ver a System Initiative es como un gemelo digital de tu infraestructura. Los cambios interactivos en el estado de System Initiative producen una serie de conjuntos de cambios que pueden ser aplicados en la infraestructura real. De la misma forma, los cambios en la infraestructura son reflejados en el estado de System Initiative. Una de las mayores ventajas de este enfoque es el ambiente colaborativo que crea para cosas como el despliegue de aplicaciones y la observabilidad. Se interactúa con System Initiative a través de una interfaz de usuario que tiene una representación gráfica de todo el entorno. Además de administrar la infraestructura en la nube, también se puede usar la herramienta para administrar contenedores, scripts, herramientas y más. Aunque por lo general somos escépticos de este tipo de herramientas visuales, System Initiative se puede ampliar, mediante código TypeScript, para manejar nuevos recursos o hacer cumplir políticas. Nos gusta mucho el pensamiento creativo puesto en esta herramienta y esperamos que impulse a otros a romper el status quo de los enfoques de infraestructura como código. System Initiative es gratis y de código abierto bajo una licencia Apache 2.0 y actualmente se encuentra en beta pública. Sus desarrolladores todavía no recomiendan el uso de la herramienta para producción, pero creemos que vale la pena probarla en su estado actual para experimentar un enfoque diferente en las herramientas de DevOps.

  • Tetragon es una herramienta de cumplimiento de tiempo de ejecución y observabilidad de seguridad basada en eBPF de código abierto. Mencionamos a Falco por detectar amenazas a la seguridad hace un tiempo en el Radar. Tetragon va más allá de la detección de amenazas al aprovechar eBPF para aplicar políticas de seguridad en tiempo de ejecución en el kernel de Linux. Puedes utilizar Tetragon como herramienta independiente en bare metal o dentro del entorno de Kubernetes.

  • Estamos viendo mucho movimiento en el espacio de Infraestructura como código (IaC) con herramientas como Winglang emergiendo. Winglang toma un enfoque diferente para definir la infraestructura y el comportamiento en tiempo de ejecución. Provee abstracciones de alto nivel sobre detalles de la plataforma expuestos por herramientas como CloudFormation, Terraform, Pulumi y Kubernetes. Con Winglang, escribes código que se ejecuta en tiempo de compilación para generar la configuración de la infraestructura, y luego, código que corre en tiempo de ejecución para el comportamiento de la aplicación. Provee un modo de simulación para ejecutar localmente y tiene un framework de pruebas integrado. Estamos vigilando esta interesante herramienta; es una vista previa potencial de la dirección futura de IaC.

Resistir ?

 
  • tools quadrant with radar rings Adoptar Probar Evaluar Resistir Adoptar Probar Evaluar Resistir
  • Nuevo
  • Modificado
  • Ningún cambio

¿No encontraste algo que esperabas ver?

 

Cada edición del Radar presenta noticias que reflejan lo que hemos encontrado durante los seis meses anteriores. Es posible que ya hayamos cubierto lo que busca en un Radar anterior. A veces seleccionamos cosas simplemente porque hay demasiadas de las que hablar. También es posible que falte algún dato porque el Radar refleja nuestra experiencia, no se basa en un análisis exhaustivo del mercado.

¿No encontraste algo que esperabas ver?

 

Cada edición del Radar presenta noticias que reflejan lo que hemos encontrado durante los seis meses anteriores. Es posible que ya hayamos cubierto lo que busca en un Radar anterior. A veces seleccionamos cosas simplemente porque hay demasiadas de las que hablar. También es posible que falte algún dato porque el Radar refleja nuestra experiencia, no se basa en un análisis exhaustivo del mercado.

Descarga el PDF

 

 

 

English | Español | Português | 中文

Suscríbete al boletín informativo de Technology Radar

 

 

 

 

Suscríbete ahora

Visita nuestro archivo para leer los volúmenes anteriores