Cómo es el trabajo de un ingeniero de Big Data

ingeniero de big data

Para transportar grupos reducidos de personas a través de distancias cortas y sin mucho apuro podrías arreglártelas conduciendo un autobús. Pero si necesitas transportar a muchas personas, a través de grandes distancias y en tiempos mínimos, deberás aprender a pilotear un avión. De seguro te será más difícil, tendrás más responsabilidades, pero te dará más satisfacciones y ganarás mucho más dinero. Esa misma diferencia es la que existe entre el trabajo de un ingeniero de datos convencional y el de un ingeniero de Big Data.

Big Data se refiere, como podrás imaginarlo, a conjuntos de datos muy grandes. La definición exacta de “muy grandes” puede variar según a quién le preguntes, pero es común que los repositorios de Big Data superen holgadamente los 10 terabytes de datos. Y es cada vez más habitual escuchar hablar de volúmenes que alcanzan el orden de los petabytes (1 petabyte = 1,024 terabytes).

Pero no se trata sólo de alto volumen. Otros atributos de Big Data incluyen amplia variedad de datos (estructurados, semiestructurados y desestructurados) y altas velocidades de procesamiento y acceso. Comúnmente se hace referencia a estas cualidades como “las tres V”: Volumen, Velocidad y Variedad. 

ingeniería de big data
Big Data no se trata sólo de gigantescos volúmenes de información. Otros de sus atributos incluyen amplia variedad de datos (estructurados, semiestructurados y desestructurados) y altas velocidades de procesamiento y acceso. Imagen: NightCafe.

A las tres «V» mencionadas arriba se les suelen agregar otras dos, para abarcar otros importantes aspectos que debe tener toda solución de Big Data: Veracidad, o confiabilidad de los datos (para evitar información incompleta, sucia o imprecisa) y Valor, refiriéndose a la importancia de extraer descubrimientos valiosos que posibiliten decisiones informadas y generen valor de negocio.

Esas particularidades hacen que un ingeniero de Big Data deba utilizar frameworks especiales, además de las herramientas que usa un ingeniero de datos convencional. Más adelante en este artículo veremos en detalle las tecnologías que debe dominar todo ingeniero de Big Data.

Leer más

6 soluciones para mitigar riesgos en la seguridad de la cadena de suministro de software

Amenazas a la cadena de suministros de software

La cadena de suministros del software abarca a todo aquello que cumple una función en el desarrollo de una aplicación, en algún punto de su ciclo de vida de desarrollo (SDLC). Debido a que los elementos que forman una cadena de suministros de software suelen ser muchos y muy variados – éstos incluyen herramientas de desarrollo, código propietario y de terceros, métodos de deploy, interfaces y protocolos, infraestructura, prácticas de desarrollo, por mencionar algunos – los riesgos que amenazan la seguridad de la cadena de suministro de software son altos. Para mitigar esos riesgos se requieren técnicas y herramientas especializadas.

A medida que crecen las tendencias a reutilizar código y a adoptar estrategias nativas de nube, los atacantes cibernéticos encuentran nuevos lugares desde donde lanzar sus ataques. Cualquier debilidad en la seguridad de la cadena de suministro de software permite la entrada a los atacantes, que una vez dentro pueden recorrer toda la cadena, robando información sensible, tomando el control de los sistemas o instalando malware. Por esa razón es que existen herramientas específicas para mantener bajo control a los riesgos que amenazan a la cadena de suministros de software.

Si aún no te decides por Bitbucket o GitHub para usar como repositorio de código fuente, en este artículo te ayudo e elegir el más conveniente para tus necesidades.

Mitigando los riesgos en la cadena de suministros

La solución ideal de seguridad para cadena de suministros debe facilitar la detección de vulnerabilidades, permitiendo escanear imágenes, contenedores, código fuente, bibliotecas, entre otros elementos que componen la cadena de suministros del software. Adicionalmente, es útil que dicha solución pueda también eliminar las amenazas, o por lo menos alertar adecuadamente sobre su existencia y sugerir formas de eliminación.

Leer más

¿Bitbucket o GitHub? El mejor repositorio de código fuente para usar en 2022

Bitbucket vs GitHub

A la hora de elegir una solución de repositorios para administración y control de código fuente, Bitbucket y GitHub aparecen inevitablemente como los dos principales contendientes. En esta nota te cuento en qué se parecen y en qué se diferencian, y en qué situaciones conviene elegir uno u otro.

El control de versiones se utiliza en el desarrollo de software para mantener bajo control los cambios en el código fuente. En todo proyecto de desarrollo de software se hace imprescindible utilizar algún mecanismo de control de código fuente y versionado, ya sea para posibilitar el trabajo en equipo sobre proyectos en común, para facilitar el rastreo de bugs o para simplificar la gestión de configuración del software.

Herramientas de control de código fuente

Git es un sistema de control de versiones de código abierto que, desde su creación en el año 2005, ha sido adoptado por millones de desarrolladores en todo el mundo. A pesar de su adopción casi universal, utilizar Git por sí solo es difícil, principalmente por que no cuenta con interfaces de usuario amigables. Por eso han surgido herramientas que se basan en la tecnología Git y le suman servicios y funcionalidades adicionales.

Entre las herramientas que ofrecen un front-end para Git hay dos que se destacan por su popularidad: BitBucket y GitHub. Sigue leyendo para enterarte de las diferencias entre estas dos herramientas, junto con las ventajas y desventajas de cada una.

Leer más

Primeros pasos en ciencias de datos con Anaconda

Anaconda Python download

Tal como lo expresa su sitio web oficial, Anaconda Distribution ofrece una forma sencilla de trabajar en ciencia de datos y aprendizaje automático con los lenguajes de programación Python y R en una única computadora. Puedes descargar e instalar el lenguaje de programación Python para sistemas operativos Windows, MacOS o Linux e iniciar inmediatamente tu carrera trabajando en ciencia de datos.

Kaa, la serpiente pitón (Python) junto a Mowgli, en el Libro de la Selva.
Kaa, la serpiente pitón (Python) junto a Mowgli, en el Libro de la Selva.

¿Qué es Anaconda Python y para qué sirve?

Para decirlo en forma resumida, Anaconda es una distribución y un gestor de paquetes completo, curado, de alta calidad y alto rendimiento para software de código abierto como Python, R y sus muchos paquetes asociados. Ideal para data scientists. Impulsado por la empresa Continuum Analytics (Anaconda Inc.), Anaconda Distribution está pensada para ser utilizada principalmente por científicos de datos. Está disponible para Linux, Windows y MacOS.

Leer más

Primeros pasos con contenedores Docker

Contenedores Docker

La función principal de la plataforma de contenedores de código abierto Docker está explícita en su eslógan: «Build, Ship and Run Any App, Anywhere», lo que significa «construye, distribuye y ejecuta cualquier app en cualquier parte». Concretamente, lo que propone Docker es simplificar las tareas de armar entornos de desarrollo o de prueba que emulen las condiciones de ejecución de una aplicación.

Qué son los contenedores en Docker

El concepto de contenedor en Docker reemplaza al concepto de máquina virtual, ofreciendo una alternativa más fácil de manejar para el desarrollo y testeo de aplicaciones. La principal diferencia entre una máquina virtual y un contenedor Docker es que la máquina virtual contiene todos los elementos que componen una máquina real: sistema operativo completo, BIOS, memoria, disco y demás recursos de hardware virtualizado.

A diferencia de los contenedores de la vida real, los contenedores Docker son livianos e independientes.
A diferencia de los contenedores de la vida real, los contenedores Docker son livianos e independientes.

En cambio, un contenedor Docker es un entorno de ejecuión que empaqueta el código y todas sus dependencias para correr aplicaciones de manera confiable, independientemente del hardware o del sistema operativo en donde se lleva a cabo la ejecución real. Los contenedores Docker son paquetes de software livianos, independientes y ejecutables que incluyen todo lo que puede necesitar una aplicación para ejecutar: código, runtimes, herramientas del sistema, bibliotecas del sistema y configuraciones.

Leer más