Blog

Tecnología para Desarrollo

Conductor, lo nuevo de Netflix para la orquestación de microservicios

Cada vez son más las empresas que apuestan por arquitecturas basadas en microservicios. Dichos microservicios están fuertemente especializados, por lo que comúnmente se presenta la necesidad de realizar orquestaciones de los mismos para cubrir una funcionalidad de negocio. Como respuesta a esta necesidad, Netflix ha liberado recientemente Conductor, un nuevo producto dentro del ecosistema Netflix OSS. Este producto implementa un orquestador de flujos que corre en entornos cloud, implementando cada una de las tareas mediante microservicios. Hoy en el blog vamos a ver cómo funciona.

sigue leyendo…

Vuela con tus datos usando Apache Flink

La mayor parte de la información que se produce hoy en día se hace de forma continua (sensores, transacciones, interacciones, actividad de usuarios…). Dar una respuesta rápida al procesamiento Big Data se está convirtiendo en algo cada vez más importante.

La forma más común de analizar toda esta información es la de persistirla en un almacenamiento estable (HDFS, DBMS…) para posteriormente analizarla periódicamente mediante procesamiento por lotes (Batch).

La característica principal que aportan los motores de procesamiento en streaming es que son capaces de analizar esta información conforme va llegando. Consideramos tiempo real al procesamiento en streaming de datos en el mínimo tiempo posible para hacer una analitica de la información procesada.

Entre estas nuevas herramientas que han surgido destacan Samza (desarrollada por LinkedIn), Storm o Flink. Este artículo se va a centrar en explicar qué está detrás de Flink, cómo y dónde surgió, y cómo podemos usarlo en proyectos que requieran tiempos de respuesta menores.

sigue leyendo…

Testeando JavaScript con Mocha y Chai

No estamos descubriendo nada nuevo si decimos que las pruebas unitarias son importantísimas. Yo me atrevería a decir que son necesarias para asegurar las calidad de nuestro producto.

Es común en muchas empresas centrarse en otro tipos de pruebas, como las end-to-end cuando tienen un desarrollado en Javascript. Bajo mi punto de vista esto es un error común y desde Paradigma queremos proponer una vía para remediarlo.

Mocha y Chai nos permiten crear pruebas unitarias muy completas para nuestro desarrollo en JavaScript. Estas pruebas nos ayudarán a darle un plus de calidad al proyecto y con ello también acercarnos a cumplir con la conocida pirámide de Cohn.

En este artículo vamos a crear un proyecto desde cero en el cual utilizaremos: npm, mocha.js y chai.js. El objetivo final del mismo es conocer las utilidades más importantes que nos ofrecen Mocha y Chai, para poder aplicarlas a nuestro proyecto desarrollado.

sigue leyendo…

[Videotutorial] Continuous Delivery: tus cambios a producción en segundos

Es una de las piezas fundamentales en la estrategia digital de una compañía y engloba desde la definición de un stack tecnológico hasta un cambio cultural y organizacional.

Continuous Delivery es un conjunto de principios y prácticas para reducir el coste, el tiempo y el riesgo de entregar cambios incrementales a los usuarios.Jez Humble

En los últimos años su uso se ha extendido ampliamente impulsado por sus ventajas evidentes. A nivel de negocio, aporta una reducción de costes, asegura que se construyen las funcionalidades que de verdad aportan el valor que esperan los usuarios y reduce el riesgo al hacer una release. Se estima que aumenta el beneficio alrededor del 19%, mejora el 22% la calidad de las aplicaciones y el número de nuevo software y servicios desplegados aumenta en un 21%.

En el ámbito técnico facilita hacer integraciones menos dolorosas, encontrar antes los problemas, deshacerse de las tareas automáticamente repetitivas, desarrollar con más calidad, tener los entornos siempre estables, etc. Hay estudios que han medido que se consigue desplegar con una frecuencia hasta 30 veces superior, se dan un 50% menos de fallos y se consigue restaurar el servicio hasta 12 veces más rápido.

Hoy traemos a nuestro blog una demo en la que mostramos con un ejemplo cómo se podría montar un pipeline de Continuous Delivery para reducir el tiempo que pasa desde que hacemos un cambio hasta que se libera. Partimos de un proyecto muy sencillo con SpringBoot y Bootstrap alojado en nuestro Github y mediante Jenkins conseguimos automatizar las diferentes fases de construcción, tests, dockerización y despliegue en entornos definidos sobre Kubernetes.

sigue leyendo…

Entornos de Selenium Grid: Local vs Virtualizado

Selenium es una de las herramientas más usadas para la automatización y ejecución de pruebas end to end. Desde hace un tiempo SeleniumHQ permite la instanciación y conexión de máquinas en red mediante Selenium Grid. Esto nos posibilita gestionar una nube de máquinas y navegadores a través de un solo hub que coordina las peticiones y las enruta en función de las características definidas en la configuración de cada prueba.  

A continuación vamos a ver cómo configurar nuestro grid de Selenium y vamos a comparar la ejecución de pruebas en un entorno local con uno virtualizado mediante Docker.

sigue leyendo…

Testing orientado a BDD con Spock (1/2)

No, no vamos a hablar de cómo implementar pruebas haciendo pair programming con ‘El capitán Spock’ del universo Star Trek… Comenzamos una serie de posts en los que presentamos un framework, nada nuevo, para implementar pruebas orientadas a BDD de una forma un poco diferente. 

En el post de hoy haremos una introducción a la implementación de especificaciones de tests con Spock y algunos ejemplos.

sigue leyendo…

VERSUS: Sketch VS Photoshop

Armados con sus gafas de pasta y sus pajaritas, dos diseñadores se lanzan a la arena para convencernos de cuál es la herramienta perfecta para el diseñador de hoy díaSi buscáramos una herramienta de diseño de interfaces móviles tendríamos un ganador claro: Sketch. Si quisiéramos hacer retoque de fotografías o coloreado de ilustraciones sería Photoshop, por eso vamos a comparar ambos productos como herramienta todoterreno en el día a día del diseñador digital.

Seguro que nos dejamos algún argumento en el tintero así que no te cortes, comenta. Y, sobre todo, ¡no olvides votar por tu favorito!

sigue leyendo…

PostCSS, ¿lo siguiente a Sass?

Desde hace algunos años, en el universo front, la elección de un framework Javascript para crear una SPA (Single Page Aplications) es una tarea compleja debido a la gran cantidad de librerías existentes, ya que cada una de ellas tiene sus puntos fuertes y débiles que hay que tener en cuenta en cada caso concreto.

Pero en lo que respecta al CSS teníamos poca complicación: prácticamente solo había que decidir si usábamos Sass o no.

De un tiempo a esta parte, está cogiendo fuerza PostCSS, “complicando” de primeras esta decisión que, a priori, ya teníamos resuelta. PostCSS no sólo es una opción a futuro, sino algo que podemos añadir a nuestro entorno actual. En este post vamos a ver qué es PostCSS y cuáles son los porqués de este auge.

sigue leyendo…

Almacenamientos NoSQL para Gestores de Contenidos

Hoy en día casi todas las empresas utilizan algún tipo de CMS, o gestor de contenido, para desarrollar su actividad en Internet. La información que estos sistemas almacenan y manejan, se ha venido gestionando con sistemas de almacenamiento relacionales al estilo de Oracle Database, MySQL, SQL Server, DB2, etc… Tendemos a encontrar relaciones entre conjuntos de información y resulta más natural estructurar la información. No sólo eso, además eran las tecnologías predominantes en el boom de Internet cuando comenzaron a aflorar numerosos CMS.

Desde hace unos años, se han comenzado a desarrollar, potenciar y promover otros sistemas de almacenamiento que están permitiendo afrontar estos apasionantes retos: mejorar el rendimiento, facilitar la escalabilidad, flexibilizar el desarrollo y manipular y analizar información en tiempo real. Los motores de bases de datos relacionales han demostrado ser insuficientes para todas estas necesidades, pese a esto, no es el fin de los CMS. Como solución a estas cuestiones podemos hacer uso de bases de datos NoSQL y de eso mismo vamos a hablar en este post.

sigue leyendo…

Postman: gestiona y construye tus APIs rápidamente

¿Quién no ha sufrido el mundo de las APIs en sus huesos? Si eres desarrollador web, y sobre todo te has enfocado en desarrollar tus proyectos en arquitecturas de microservicios, seguro que te has visto en la necesidad de gestionar múltiples APIs (ya sean propias de tu sistema o integraciones con aplicaciones de terceros) que deben ser mantenidas de la manera más rápida y eficiente posible.

En el post de hoy vamos a introducirte en el mundo de Postman, una herramienta que si no la conocías, hará del trabajo con APIs algo apasionante.

sigue leyendo…