No soy muy técnico. ¿Cómo se relacionan Big Data y DevOps?

Descargo de responsabilidad: soy CTO de Hydrosphere.io, una plataforma de big data habilitada para devops.

En resumen, podemos decir que el proyecto / equipo / infraestructura de big data necesita coordinación devops para que funcione también con otros tipos de proyectos de software, a los que devops ya se ha aplicado. En ausencia de devops, el desarrollo de análisis de big data tiene la misma coordinación interrumpida y otros problemas que impulsaron la creación de devops en primer lugar.

La infraestructura de Big Data es mucho más compleja que la pila habitual de aplicaciones web. Para encajar los DevOps en Big Data, las operaciones de clúster deben desacoplarse en una nueva capa de abstracción y proporcionarse a los ingenieros como una API. El equipo de devops maneja el aprovisionamiento del clúster, la supervisión, el escalado automático, la agregación de registros y métricas y la entrega continua a través de estas herramientas y API correspondientes.

El equipo de Big Data incluye científicos de datos e ingenieros de Big Data que, en las prácticas actuales, podrían integrarse en equipos de productos distintos o aislarse de otro modo en su propio departamento de análisis. Bajo DevOps, los científicos de datos y los ingenieros de Big Data desarrollan modelos analíticos y algoritmos en Python o Scala y los almacenan en un sistema de control de versiones. Ese código se prueba y se integra automáticamente en la rama de código principal, luego se implementa y supervisa en producción. Entonces, devops asegura que el proceso de CI / CD esté unificado en toda la organización de ingeniería, incluido el equipo de big data.

Una función más de alto nivel y una visión de los desarrolladores en el desarrollo de big data es que elimina el desperdicio y los cuellos de botella entre los diferentes departamentos y miembros del equipo. Dado que los científicos y analistas de datos son nuevas incorporaciones a los equipos de desarrollo, requieren herramientas y procesos adicionales para hacer que el lanzamiento cíclico de productos analíticos sea más corto y fluido. Esto se llama análisis continuo.

Lo que comúnmente se conoce como ‘big data’ son principalmente los datos de registro no estructurados arrojados por los servicios web en arquitecturas REST. Los marcos como Hadoop se utilizan para recopilar dichos datos en HDFS, un sistema de archivos con discapacidad interesante de buena reputación. La conclusión es que el crecimiento de los sitios web que atraen millones de visitas genera miles de millones de estos datos no estructurados y las personas que controlan esos datos quieren saber qué hay allí. ‘Big Data’ es también la amplia disciplina de las personas que intentan arreglar todo ese desorden y dar sentido a lo que sucede en los sitios web de hoy.

Separado pero relacionado es el asunto de DevOps. DevOps es una forma de trabajar, literalmente entrenando desarrolladores (Devs) y operadores (Ops). En cualquier corporación de cualquier tamaño, estos dos grupos trabajan completamente independientes el uno del otro. Hablando en general, los desarrolladores vienen tal vez una vez al año y actualizan el sistema de contabilidad y agregan una nueva característica, y los chicos de operaciones mantienen todo funcionando en producción. En términos prácticos, eso significa que mientras se está ejecutando 1.0 y el mundo lo está utilizando en los grandes servidores, los desarrolladores están trabajando en 2.0 en el sótano en pequeños servidores. Luego, los maestros de escuela y los jefes de pelo puntiagudo entran con las manos en las caderas y ordenan a los operadores que retiren sus manos de sus máquinas preciosas y dejen que los desarrolladores introduzcan su nuevo código. Esto se llama migración y la mayoría de las organizaciones hacen un trabajo bastante decente. funciona durante las horas libres durante un fin de semana mediante la aplicación rigurosa de reglas rígidas, gritos, dedos cruzados y velas votivas. Pero solo unas pocas veces al año.

A lo largo viene el comercio electrónico. Sí, estoy hablando de Amazon. ¿Y adivina qué? Agregan y eliminan miles de productos todos los días. No tienen tiempo para pasar por la migración 700 veces al año. Entonces, encuentran una manera de hacer que los desarrolladores comprendan las operaciones y los operadores comprendan a los desarrolladores, y después de un tiempo surge este nuevo método.

eCommerce * tenía * que hacer DevOps. No hay otra forma de que su sitio web permanezca abierto las 24 horas, los 7 días de la semana. Así que mucha gente de la web aprendió cómo esto cambió completamente la forma en que se hacían las cosas. La mejor manera de comprender el efecto de DevOps es mirar este video.

Simplemente cambiaron cuatro llantas en un automóvil en menos de 3 segundos.

El objetivo de DevOps es lograr un cambio rápido mediante la creación de equipos de personas que trabajen juntas en * la * aplicación. No es una aplicación de desarrollo que se migra a una aplicación de producción. Una aplicación en ejecución continua que nunca se detiene. Por supuesto, aquí es donde la metáfora se rompe un poco. Los autos no son computadoras, pero entiendes el punto.

Ahora. ¿Dónde se encuentra DevOps con BigData? Bueno, no tiene mucho. Pero, básicamente, cuando las empresas se comprometen a hacer que sus sistemas internos funcionen tan perfectamente como sus sistemas externos y fusionen la inteligencia empresarial con los sitios web y todos los demás datos en todos los departamentos de la empresa, no solo los sitios web.

La gerencia debe comprender que el talento de alta calidad y alto precio que han pagado para construir su sitio web debe aplicarse a todas las demás funciones de TI en el negocio. Sin embargo, la mayoría de los CIO han acordado externalizar ese trabajo a empresas baratas que no pueden hacer el trabajo. Además, la mayoría de las empresas no tienen buenos gerentes de proyecto y analistas para fusionar la construcción de sistemas con los procesos del negocio. Y ahí es donde entran las empresas de consultoría como Deloitt o PWC y hacen un asesinato. Asumen proyectos y difunden el riesgo de fracaso al exterior de la empresa.

De todas formas. Las personas que han realizado DevOps están frustradas dentro de las grandes corporaciones, pero están empujando sus metodologías y lecciones aprendidas (seguridad, virtualización, orquestación, microservicios) a más áreas de computación. En algún momento, el dinero vendrá de arriba hacia abajo, pero mientras tanto, los chicos de DevOps están siendo ‘disruptivos’ y persiguen el dinero de VC para construir pequeñas aplicaciones tácticas que esperan que se vendan en grandes cuerpos. Y los grandes cuerpos solo están esperando su momento, sentados en sus manos y esperando no quemarse.

DevOps es mucho más fácil de hacer en la nube. ¿Por qué? Bueno, esas son otras 1000 palabras. El punto es que DevOps tuvo que suceder en el mundo web, especialmente para el comercio electrónico. Ese mismo comercio electrónico genera BigSloppyData.

Lo que no dije es que lo que las operaciones de TI tradicionales tienen es que saben * exactamente * qué datos necesitan y para qué fines. Mantienen su visión del mundo muy estática por razones muy importantes, por lo que sus datos y sistemas son muy estáticos y estructurados. Es por eso que su banco es su banco, y puede obtener su tarjeta de débito aprobada en 4 segundos en cualquier caja registradora del país. No hay que perder el tiempo y experimentar con ese tipo de cosas.

Algún día, DevOps y BigData se reunirán con aplicaciones analíticas y StructuredData. Ese es mi problema. Y luego, las computadoras en la Tierra funcionarán más o menos como en StarTrek, donde el sistema puede buscar en cualquier lugar y encontrar respuestas precisas. Como si supieras quién soy, ¿por qué tengo que presentar una identificación para subir a este avión o pagar mi boleto … Cosas así.

La analítica industrial es ahora un buen ejemplo de cómo Big Data y DevOps ya no se relacionan más con los científicos de datos. Requiere una inversión en habilidades, prácticas y tecnología de soporte de DevOps para mover los análisis del laboratorio al negocio.

Las habilidades de DevOps son ciertamente beneficiosas para los científicos de datos industriales, ya que pueden abordar los siguientes desafíos principales de manera autoservicio:

1. Obtenga todo tipo de datos necesarios de una variedad de fuentes

a. Fuentes de datos internos como ERP, CRM, sistemas POS o datos de plataformas de comercio electrónico en línea

si. Datos externos, como clima, días festivos, tendencias de Google, etc.

2. Extraer, transformar y cargar los datos.

a. Relacionar y unir las fuentes de datos

si. Agregar y transformar los datos

3. Evite inconvenientes técnicos y de rendimiento cuando todo termine en “una gran mesa” al final

4. Facilite el aprendizaje automático continuo y la toma de decisiones en un marco empresarial listo

a. Utilice datos históricos para entrenar los modelos y algoritmos de aprendizaje automático

si. Utilice los datos actuales y actualizados para la toma de decisiones.

C. Exporte de nuevo las decisiones / recomendaciones resultantes para su revisión por parte de las partes interesadas del negocio, ya sea nuevamente al sistema ERP o algún otro almacén de datos

Una de las rutinas diarias desafortunadas de un trabajo de Data Scientist es hacer un preprocesamiento de datos sin procesar. Por lo general, se traduce en los desafíos a. Aquí hay un par de buenos artículos sobre herramientas modert que abordan tales problemas de DevOps mientras construyen un entorno analítico continuo para su sistema o en toda su organización:

  • Control de versión de datos en el paradigma de DevOps de Analytics
  • ¿DevOps está mejorando la vida de los científicos de datos?

No están directamente relacionados. Se puede hacer un buen argumento que:

  1. DevOps es especialmente beneficioso para Big Data (para algunos tipos de tareas de Big Data
  2. Casi cualquier proyecto de Big Data tiene al menos algunos elementos de DevOps

DevOps como desarrollo combinado con operaciones es opcional cuando tanto el desarrollo como las operaciones son simples. Usted sabe lo que debe hacerse, el código de los desarrolladores, luego pasó a la puesta en escena, la prueba de los probadores, luego los Infraestructura Arquitectos motean un servidor que está garantizado para manejar la carga con calma, implementar el código en la producción y responder las preguntas de los usuarios que olvidaron qué botón para hacer clic.

Big Data es demasiado grande o complejo para manejarlo de manera tradicional. Eso a menudo significa que no tiene una puesta en escena adecuada, realiza algunas pruebas de escala limitada y luego se implementa en producción. Tiene su enorme lago de datos, digamos en un clúster de Hadoop, en producción, y ahí es donde finalmente aprende cuán rápidos y útiles son sus algoritmos. No hay forma de separar a Ops de Dev.

DevOps es una mentalidad y cultura en el campo de la tecnología que abarca llevar el desarrollo y las operaciones a una asociación coherente.

Big Data tiene ciertas necesidades, como la necesidad de almacenar modelos, acceder a grandes cantidades de datos y la necesidad de grandes sumas de potencia informática.

Las prácticas de DevOps permiten que los equipos de Big Data tengan acceso a todo lo mencionado anteriormente. Esto se hace mediante el uso del control de versiones, conservando todos los diferentes modelos que se ejecutan en una ubicación central como github. Grandes cantidades de datos se almacenan en bases de datos que se controlan y supervisan de manera tal que permiten un acceso eficiente a los datos. Por último, las computadoras que realizan todo el procesamiento, normalmente clústeres grandes, están controladas por scripts de automatización para garantizar que todos los modelos puedan ejecutarse eficientemente sin costar demasiado.

Big Data = sistemas distribuidos = automatización necesaria para seguir funcionando = DevOps

No están explícitamente relacionados, pero no llegarás lejos en Big Data sin DevOps fuertes