Menú

ADOPTAR?

  • Commitizen es una herramienta para facilitar la simplificación del proceso de commit cuando se usa GIT. La herramienta te pide los campos requeridos y en los formatos adecuados para tu mensaje de commit. Permite varias convenciones de formatos de registro y también permite la creación de formatos propios vía adaptador. Esta herramienta es simple y ahorra tiempo, evitando rechazos más tarde en el proceso de commit.

    Historia
  • ESLint se está utilizando como estándar en muchos de nuestros proyectos. Como herramienta de linting para JavaScript tiene múltiples juegos de reglas, reglas recomendadas y extensiones para expandir a frameworks o JavaScript. Hemos visto cómo los equipos se apoyan fuertemente en ella para ayudarles a crear normas de código y forzar su cumplimiento, permitiendo así, el análisis en tiempo real del código durante el desarrollo. Puede utilizarse para estandarizar las prácticas de codificación obligando al cumpliento de las mejores prácticas y estilo de código, e identificar vulnerabilidades. Lo hace integrándose bien con la mayoría de los IDEs y proporcionando feedback en vivo mientras se codifica. Sus reglas de estilo en particular arreglan automáticamente los errores de linting, haciendo que el proceso sea fluido y efectivo sin incurrir en un coste de desarrollo adicional. Las/os desarrolladoras/es pueden rápidamente alcanzar velocidad de crucero con las reglas, gracias a la documentación de la comunidad, que hace un buen trabajo explicando los patrones de codificación. A medida que ESLint se ha vuelto más común y potente, ha ganado tracción en la industria y unaprueba de ello lo ilustra el que el equipo de TypeScript haya realizado un movimiento para soportar y trabajar con ESLint en vez de invertir en TSLint.

    Historia
  • React Styleguidist es un entorno de desarrollo para los componentes de React. Contiene un servidor de desarrollo con capacidades hot reloading y genera una guía de estilos de HTML para compartir con equipos. La guía de estilos muestra la versión en vivo de cada componente en un solo lugar, con documentación para su uso y lista de sus props. Ya hemos mencionado en el pasado React Styleguidist como una UI de entorno de desarrollo, y con el tiempo se ha convertido en la herramienta líder en este espacio.

    Historia

PROBAR?

  • Construir, probar y desplegar aplicaciones móviles implica pasos complejos, especialmente cuando consideramos un pipeline que vaya desde el repositorio de código fuente a las tiendas de aplicaciones. Todos estos pasos pueden ser automatizados con scripts y pipelines de construcción en herramientas genéricas de CI/CD. Aun así, nuestros equipos han encontrado que Bitrise, una herramienta de CD de dominio específico para aplicaciones móviles, es útil cuando no hay necesidad de integrar con pipelines de construcción de sistemas back-end. Bitrise es fácil de configurar y proporciona un conjunto completo de pasos pre-construidos que cubre la mayor parte de las necesidades del desarrollo móvil.

    Historia
  • Mantener al día las dependencias de software es una labor que toma tiempo, pero por razones de seguridad es importante responder a dichas actualizaciones de manera oportuna. Podemos usar herramientas para hacer que el proceso sea lo más llevadero y automatizado posible. En la práctica nuestros equipos han tenido buenas experiencias con Dependabot. Se integra con repositorios de GitHub y verifica las dependencias automáticamente para buscar nuevas versiones. De ser necesario, Dependabot abrirá una pull request con las dependencias actualizadas.

    Historia
  • Detekt es una herramienta de análisis de código estático para Kotlin. Provee análisis de code smell e informes de complejidad con conjuntos de reglas altamente configurables. Se puede ejecutar desde línea de comandos, usar plugins, vía Gradle, SonarQube e IntelliJ. Nuestros equipos consideran muy valioso el uso de Detekt para mantener código de alta calidad. Cuando el análisis y la generación de informes están integrados en la construcción del pipeline, es importante que estos informes se revisen de manera regular y que los equipos reserven tiempo para actuar en lo que se descubra.

    Historia
  • Uno de los grandes puntos de dolor en interacción y diseño visual es la falta de herramientas creadas para la colaboración. Aquí es donde Figma entra en escena. Tiene las mismas funcionalidades que los programas de diseño como Sketch e Invision, pero permite la colaboración con otras personas al mismo tiempo y ayuda a que descubras nuevas ideas junto con capacidades de colaboración en tiempo real. Nuestros equipos encuentran Figma muy útil, especialmente para habilitar y facilitar el trabajo de diseño remoto y distribuido. Adicionalmente a su capacidad de colaboración, Figma también ofrece una API que ayuda a mejorar el proceso de DesignOps.

    Historia
  • La construcción de aplicaciones contenerizadas puede requerir de configuraciones complejas en entornos de desarrollo y en construcción de agentes. Si estás construyendo una aplicación Java y utilizas Docker, debes considerar utilizar Google´s Jib. Jib es un plugin open-source soportado por Maven y Gradle. El plugin Jib utiliza información de la configuración de tu build para construir la aplicación directamente como una imagen Docker, sin requerir Dockerfile ni Docker demon. Jib optimiza en capas de imágenes, prometiendo acelerar las builds consecuentes.

    Historia
  • Loki es una herramienta de regresión visual que funciona con Storybook, la cual mencionamos previamente en el contexto de los entornos de desarrollo de la interfaz de usuario. Con unas pocas líneas de configuración, Loki puede ser usado para probar todos los componentes de la interfaz de usuario. El modo preferido de operación es usando Chrome en un contenedor Docker, evitando así, diferencias de un pixel en la ejecución de pruebas en entornos no idénticos. En nuestra experiencia, las pruebas han sido muy estables pero las actualizaciones de Storybook tienden a hacer que las pruebas fallen con pequeñas diferencias. Parece también imposible probar componentes que usen position:fixed pero puede ser resuelto al envolver el componente con un fixed.

    Historia
  • Construir los flujos que crean e implementan contenedores debe incluir el escaneo de seguridad de contenedores. A nuestros equipos les gusta especialmente Trivy, un escáner de vulnerabilidad para contenedores, gracias a que es más fácil de configurar que otras herramientas y a que se envía como un binario independiente. Ser un software de código abierto y soportar contenedores no distribuidos son otros de los beneficios de Trivy.

    Historia
  • Twistlock es un producto comercial con capacidades de detección y prevención de vulnerabilidades de seguridad en tiempo de construcción y tiempo de ejecución. Estas capacidades abarcan la protección de máquinas virtuales, planificadores de contenedores y contenedores en varios registros y repositorios en los que confían las aplicaciones. Twistlock ha ayudado a nuestros equipos a acelerar el desarrollo de aplicaciones reguladas, donde la infraestructura y la arquitectura de las aplicaciones requieren el cumplimiento de, por ejemplo, los estándares de la Industria de Tarjetas de Pago (PCI) y la Ley de Responsabilidad y Portabilidad del Seguro de Salud (HIPAA). Nuestros equipos han disfrutado de la experiencia de desarrollo que ofrece Twistlock: la capacidad de ejecutar el aprovisionamiento como código, la fácil integración con otras plataformas de observación comunes y los puntos de referencia listos para medir la infraestructura contra las mejores prácticas de consenso en la industria. Ejecutamos Twistlock con análisis de tiempo de ejecución regulares sobre nuestras aplicaciones nativas de la nube, particularmente cuando se requiere algún cumplimiento normativo.

    Historia
  • Un número creciente de dispositivos cada vez más potentes del Internet de las Cosas se ejecutan sobre Linux en vez de sistemas operativos embebidos. Para reducir el uso de recursos y la superficie de ataque, tiene sentido construir una distribución Linux personalizada que solo contenga las herramientas y dependencias necesarias para ejecutar el software en el dispositivo. En este contexto, el Yocto Project ha incrementado su relevancia como herramienta para crear distribuciones Linux a medida para las necesidades de cada caso específico. La curva de aprendizaje es ascendente y dada su falta de flexibilidad, es fácil equivocarse al hacer las cosas. Sin embargo, durante sus muchos años de existencia, el Yocto Project ha atraído una comunidad activa que puede ayudarte. Comparada con otras herramientas similares, es más fácil de integrar en un flujo de Continuous Delivery y, a diferencia de Android Things o Ubuntu Core, por ejemplo, no está ligado a un ecosistema específico.

    Historia

EVALUAR?

  • A menudo, es difícil el controlar los estados del software conforme aumenta su complejidad. Aplas es una nueva herramienta de mapping, que puede usar visualizaciones delsoftware en forma de mapas. La herramienta funciona ingestando metadata sobre el sistema y después muestra un mapa al que se le pueden aplicar diferentes vistas. La ingestión puede ser manual o puede automatizarse a través de APIs. Es interesante ver cómo el producto está evolucionando y observar las posibilidades con la colección automatizada de metadatos. Por ejemplo, es posible mostrar architectural fitness functions como el run cost para crear visualizaciones de cuánto se está gastando en infraestructura en la nube. Otro problema común es entender cómo los sistemas se comunican entre ellos, y a través de esta herramienta lo podemos visualizar.

    Historia
  • asdf-vm es una herramienta de línea de comandos para administrar múltiples versiones de lenguajes en tiempo de ejecución por proyecto. Es similar a otras herramientas de administración de versiones de línea de comandos, tales como RVM para Ruby y nvm para Node, con la ventaja de una arquitectura extensible basada en plugins para manejar múltiples lenguajes. Su lista actual de plugins incluye muchos lenguajes, además de herramientas tales como Bazel o tflint, cuyas versiones en tiempo de ejecución pueden necesitar ser administradas por proyecto.

    Historia
  • AWSume es un script útil para manejar tokens de sesión y asumir credenciales de roles desde la consola de comandos. Encontramos que AWSume es práctico para manejar varias cuentas de AWS al mismo tiempo. En lugar de especificar perfiles individualmente en cada comando, el script lee el caché de la CLI y lo exporta a variables de ambiente. Como resultado, los comandos y los SDKs de AWS escogen las credenciales correctas.

    Historia
  • La transformación de datos es una parte esencial de los flujos de trabajo de procesamiento de datos: filtrar, agrupar o unir múltiples fuentes en un formato que sea adecuado para el análisis de datos o para alimentar modelos de machine learning. dbt es una herramienta open-source y un producto comercial SaaS que proporciona capacidades de transformación simples y efectivas a los analistas de datos. Los frameworks y herramientas actuales para la transformación de datos, o bien pueden entrar en el grupo de potentes y flexibles — que requieren un conocimiento íntimo del modelo de programación y los lenguajes del framework como es el caso de Apache Spark — o en el grupo de las herramientas con una interfaz de usuario simple tipo drag-and-drop que no se prestan a prácticas fiables de ingeniería como las pruebas y despliegues automatizados. dbt rellena un nicho: usa SQL -una interfaz ampliamente comprendida- para modelar transformaciones simples en lotes, al tiempo que proporciona herramientas de línea de comando que animan a aplicar buenas prácticas de ingeniería como el versionado, las pruebas y el despliegue automatizados; esencialmente implementa modelado de transformación basado en SQL como código. dbt soporta actualmente múltiples fuentes de datos, incluyendo Snowflake y Postgres, y ofrece varias opciones de ejecución, como Airflow y la propia oferta de Apache en la nube. Su capacidad de transformación se limita a lo que ofrece SQL, y no soporta transformaciones de streaming en tiempo real en el momento que escribimos estas líneas.

    Historia
  • Docker Notary es una herramienta OSS que permite firmar recursos como imágenes, ficheros y contenedores. Esto implica que la procedencia de los recursos puede ser verificada, lo que es muy útil en entornos regulados y una buena práctica en general. Como ejemplo, cuando un contenedor es creado, se le adjunta una firma compuesta de una clave privada y un hash, asociada a la identidad del publicador del contenedor y almacenada en los metadatos del mismo. Una vez publicada, la procedencia del contenedor (o de cualquier otro recurso) puede ser verificada usando su hash y la clave pública del publicador. Las claves suelen estar generalmente disponibles en registros públicos como Docker Trusted Registry, aunque también se pueden publicar en un registro propio. Nuestros equipos han encontrado algunos comportamientos extraños usando servidores Notary locales y sugieren usar un registro que incluya a su vez Notary siempre que sea posible.

    Historia
  • Dada la creciente cantidad de decisiones importantes derivadas de grandes conjuntos de datos, ya sea directamente o como entrada de entrenamiento para los modelos de machine learning, es importante comprender las diferencias, errores y posibles inconsistencias en sus datos. El proyecto Facets de Google proporciona dos herramientas útiles en este espacio: Facets Overview y Facets Dive. Facets Overview visualiza la distribución de valores para las características en un conjunto de datos, puede mostrar un sesgo de conjunto de entrenamiento y validación y puede usarse para comparar múltiples conjuntos de datos; Facets Dive es para profundizar y visualizar puntos de datos individuales en grandes conjuntos de datos, utilizando diferentes dimensiones visuales para explorar las relaciones entre los atributos. Ambas son herramientas útiles para llevar a cabo pruebas de sesgo ético.

    Historia
  • Con una mayor adopción de Kubernetes como orquestador de contenedores, el conjunto de herramientas de seguridad alrededor de contenedores y Kubernetes está evolucionando rápidamente. Falco es una de esas herramientas nativas para contenedores destinadas a abordar la seguridad en tiempo de ejecución. Falco aprovecha la instrumentación del kernel de Linux de Sysdig y el perfilaje de llamadas al sistema, permitiéndonos obtener una visión profunda del comportamiento del mismo y ayudándonos a detectar actividades anormales en aplicaciones, contenedores, hosts subyacentes o incluso en el propio orquestador de Kubernetes. Nos agrada la capacidad de Falco para detectar amenazas sin inyectar código de terceros o contenedores adyacentes.

    Historia
  • Estamos viendo un mayor uso de la certificación Binaria para asegurar la cadena de suministro de software, particularmente dentro de las industrias reguladas. Los enfoques actualmente preferidos parecen involucrar la construcción de un sistema personalizado para implementar la verificación binaria o confiar en el servicio de un proveedor de la nube. Nos alienta ver la herramienta open-source in-toto entrar en este espacio. In-toto es un framework para verificar criptográficamente cada componente y avanzar hacia el camino a producción de un artefacto de software. El proyecto incluye una serie de integraciones en muchas herramientas de compilación, auditoría de contenedores y despliegue ampliamente utilizadas. Una herramienta de cadena de suministro de software puede ser una pieza crítica del aparato de seguridad de una organización, por lo que nos gusta que, como proyecto open-source, el comportamiento de in-toto sea transparente y la comunidad pueda verificar su propia integridad y cadena de suministro. Tendremos que esperar y mirar si ganará un grupo grande de usuarios y contribuidores para competir en este espacio.

    Historia
  • Kubeflow es interesante por dos motivos. El primero es su uso innovador de Operadores Kubernetes, el cual habíamos destacado en nuestra edición del Radar de abril 2019. El segundo es que provee una manera de codificar y modelar cargas de trabajo para aprendizaje de máquinas que facilita trasladarlas de un entorno de ejecución a otro. Kubeflow incluye componentes tales como Jupyter notebooks, canalizaciones de datos y herramientas de control. Varios de estos componentes vienen empaquetados como operadores de Kubernetes, para aprovechar su habilidad de reaccionar a los eventos generados por pods mediante la implementación de varias fases de la carga de trabajo. Al tomar los programas individuales y los datos y empaquetarlos como contenedores es posible trasladar cargas de trabajo enteras de un entorno a otro. Esto puede resultar conveniente al trasladar una carga de trabajo útil pero computacionalmente exigente y desarrollada en la nube a una supercomputadora personalizada o a un clúster de unidades de procesamiento tensorial.

    Historia
  • Si tu aplicación gestiona información sensible (tales como claves criptográficas) como texto sin formato en memoria, existe una alta probabilidad de que alguien pueda explotarla como un vector de ataque y comprometer información. La mayoría de las soluciones basadas en la nube a menudo usan módulos de seguridad de hardware (HSM) para evitar estos ataques. Sin embargo, si te encuentras en una situación en la que necesitas hacer esto de forma autónoma sin acceso a un HSM, entonces creemos que MemGuard es bastante útil. MemGuard actúa como un enclave de software seguro para el almacenamiento de información confidencial en la memoria. Aunque MemGuard no reemplaza a los HSM, pero implementa una serie de tácticas de seguridad como la protección contra ataques de arranque en frío, evitando la interferencia con la recolección de basura y fortaleciendo con páginas de protección para reducir la probabilidad de exponer datos confidenciales.

    Historia
  • Definir y aplicar políticas de seguridad de manera uniforme en un panorama tecnológico diverso es un desafío. Incluso para aplicaciones simples, se debe controlar el acceso a sus componentes -- tales como orquestadores de contenedores, servicios y los almacenes de datos para mantener el estado de los servicios -- utilizando la configuración de la política de seguridad integrada de sus componentes y los mecanismos de ejecución.

    Estamos entusiasmados con Open Policy Agent (OPA), una tecnología de código abierto que intenta resolver este problema. OPA te permite definir un control de acceso específico y políticas flexibles como código, utilizando el lenguaje de definición de políticas Rego. Rego aplica las políticas de manera distribuida y discreta fuera del código de la aplicación. Al momento de escribir este artículo, OPA implementa una definición y aplicación de políticas uniformes y flexibles para asegurar el acceso a las API de Kubernetes y las API de microservicios a través del sidecar de Envoy y Kafka. También se puede usar como un sidecar para cualquier servicio para verificar las políticas de acceso o filtrar los datos de respuesta. Styra, la compañía detrás de OPA, ofrece soluciones comerciales para una visibilidad centralizada de las políticas distribuidas. Nos gusta ver a OPA madurar a través del programa de incubación CNCF y continuar construyendo soporte para escenarios de cumplimiento de políticas más desafiantes, como diversos almacenes de datos.

    Historia
  • Pumba es una herramienta de tests de caos y emulación de redes, para Docker. Pumba puede terminar, detener, quitar o pausar los contenedores de Docker. Pumba también puede emular redes, y simular errores de redes como retrasos, pérdida de paquetes y límites de ancho de banda. Pumba utiliza la herramienta tc para la emulación de redes, lo cual implica que tiene que estar disponible en nuestros contenedores o tenemos que ejecutar Pumba en un contenedor sidecar con tc. Pumba es particularmente útil cuando queremos ejecutar tests de caos automáticamente en un sistema distribuido que se está ejecutando en varios contenedores locales o en un build pipeline.

    Historia
  • Google nos trae Skaffold, una herramienta open-source para automatizar flujos de trabajo de desarrollo locales, incluyendo el despliegue en Kubernetes. Skaffold detecta los cambios en el código fuente y dispara el proceso para construir, etiquetar, y desplegar en un clúster de K8s, incluyendo capturar las trazas y mostrarlas por la línea de comandos. Los flujos de trabajo se pueden enganchar a distintas herramientas de construcción y despliegue, pero esto viene con una configuración dogmática por defecto que hace más fácil comenzar a utilizarla.

    Historia
  • El mundo del machine learning ha cambiado ligeramente el énfasis de explorar qué modelos son capaces de comprender a cómo lo hacen. La preocupación por la introducción de sesgos o la generalización excesiva de la aplicabilidad de un modelo, ha dado lugar a nuevas herramientas interesantes, como What-if Tool (WIT). Esta herramienta ayuda a data scientists a indagar en el comportamiento de un modelo y a visualizar el impacto que varias características y conjuntos de datos tienen en el output. Introducido por Google y disponible a través de Tensorboard o Jupyter notebooks; WIT simplifica las tareas de comparación de modelos, corte de conjuntos de datos, visualización de facets y edición de conjunto de datos individuales. Aunque WIT facilita la realización de estos análisis, todavía requieren una profunda comprensión de las matemáticas y la teoría que hay detrás de los modelos. Es una herramienta para que data scientist obtengan una visión más profunda del comportamiento del modelo. Usuarios ingenuos no deben esperar que ninguna herramienta elimine el riesgo o minimice el daño causado por un algoritmo mal aplicado o mal entrenado.

    Historia

RESISTIR?

  • Azure Data Factory (ADF) es actualmente el producto por defecto de Azure, para la orquestación de flujos de procesamiento de datos. Permite ingesta de datos, copia de datos desde y hacia diferentes tipos de almacenamiento tanto On-Prem como Azure, y la ejecución de lógica de transformación. Si bien hemos tenido algunos resultados aceptables con ADF para migraciones simples de almacenes de datos de On-Prem a la nube, desaconsejamos el uso de Azure Data Factory para la orquestación de flujos de procesamiento de datos complejos. Nuestra experiencia ha sido desafiante debido a diferentes factores, incluyendo una cobertura limitada de capacidades que pueden implementarse dando prioridad a la codificación, ya que parece que ADF está priorizando dejar disponible primero las capacidades de plataforma de baja codificación; pocas facilidades para depuración y reporte de errores; observabilidad limitada ya que las capacidades de log de ADF no se integran con otros productos como Azure Data Lake Storage o Databricks, haciendo muy complicado disponer de una observabilidad de extremo a extremo en su lugar; y la disponibilidad de mecanismos de activación de la fuente de datos limitada a algunas regiones solamente. En este momento, aconsejamos utilizar otras herramientas de orquestación de código abierto (por ejemplo, Airflow) para flujos de datos complejos, y limitar el uso de ADF a copia de datos o snapshots. Confiamos en que ADF solucionará estas deficiencias para poder abastecer adecuadamente más flujos de procesamiento de datos complejos y priorizar el acceso a capacidades que anteponen la codificación.

    Historia
¿No encuentras aquello que querías ver?

Cada edición del radar incluye blips que contienen la información encontrada durante los últimos seis meses. Es posible que ya hayamos incluido el tema que estás buscando en radares anteriores. Hay veces que omitimos algunos temas debido a que hay demasiado de que hablar. O también, puede faltar algo debido a que en el radar buscamos reflejar nuestra experiencia, no lo basamos en un análisis exhaustivo del mercado.

Nuevo o modificado,Ningún cambio