Está en la página 1de 63

Big Data

Introducción

Pautas de inicio

● Plasmar asistencia en el
Google Form.
● Silenciar el micrófono
durante la clase.
● Activar la cámara.
Ecosistema de datos

Componentes del
ecosistema de Big Data
Ecosistema de datos

1. Ingesta
Tecnología orientada a recolección de datos desde su
origen, ya sea de bases de datos tradicionales o de flujos
continuos a través de la red.

2. Almacenamiento
Tecnología capaces de guardar y gestionar grandes
volúmenes de datos, en este grupo estarían las bases de
datos NoSQL.
Ecosistema de datos

3. Gestión de recursos
Tecnologías diseñadas para planificación y asignación de
los recursos del clúster.

4. Motores de procesamiento
Corazón de la tecnología Big Data, son capaces de realizar
el cómputo de manera distribuida entre varios nodos de
computación y realizar operaciones costosas en tiempos
pequeños.
Ecosistema de datos

5. Mensajería
Tecnologías que nos permiten el intercambio de datos
entre los diferentes componentes software de manera
eficiente

6. Consulta
Tecnología orientada a simplificar el acceso a los datos,
generalmente se basan en los motores de procesamiento
para realizar las consultas de manera eficiente.
Ecosistema de datos

7. Machine Learning
Tecnologías que implementan
algoritmos para clasificar, predecir o
perfilar. Se basan en los motores de
procesamiento paralelo de los que
aprovechan su capacidad de realizar
cálculos complejos muy rápido.
Introducción a Cloud
Introducción a Cloud

Cloud computing
Es un paradigma que permite ofrecer servicios de
computación a través de internet. Estos servicios pueden ser
de almacenamiento, administración y procesamiento de datos

On-Premise Cloud
• Los servidores son de la • Los servidores son de un
empresa externo
• Se debe contratar personal • El personal de IT es externo
que administre los servidores • Tu única responsabilidad es la
• El riesgo es difícil de de configurar los servicios y el
administrar código
Introducción a Cloud

Servidores dedicados
Una máquina física dedicada para una sola
empresa
Ejecuta un solo sitio/web-app
Alto costo de mantenimiento y seguridad

Servidor virtual privado


Una máquina física dedicada para una sola
empresa
La máquina física virtualiza sub-máquinas
Ejecuta varios sitios/web-apps
Introducción a Cloud

Hosting compartido
Una máquina física dedicada para muchas
empresas
Bajo costo pero limitada

Cloud hosting
Varias máquinas físicas que simulan ser un
único Sistema
El sistema se visualiza como multiples
servicios web
Flexible, escalable, seguro, bajo costo,
configuración simple
Introducción a Cloud

Un proveedor cloud puede tener cientos de servicios agrupados por varios


tipos. Los cuatro tipos de servicios más comunes para Infraestructura como
Servicio (IaaS) son:
Cómputo Networking
Es como una máquina virtual Servicios que permiten definir
que puede correr conexiones a internet o
aplicaciones, programas y generar conexiones de red
código aisladas
Storage Bases de datos
Permite disponer de un disco Base de datos virtual para
virtual para guardar archivos guardar datos analíticos o
transaccionales
Beneficios del Cloud Computing
Beneficios del Cloud Computing

Beneficios del Cloud Computing

Bajo costo
Se paga por lo consumido, no antes. Pay-as-you-go (PAYG).
Miles de usuarios pagan por compartir los costos de los
recursos
Global
Permite trabajar con servidores en cualquier parte del mundo

Seguro
El proveedor de servicios se encarga de la seguridad física.
Beneficios del Cloud Computing

Beneficios del Cloud Computing

Confiable
Provee backups automáticos, recuperación ante desastres,
replicación de datos y tolerancia a fallos
Escalable
Permite incrementar y disminuir recursos y servicios en base a
la carga de trabajo
Elástico
Se puede automatizar el escalamiento ante los picos de carga
Beneficios del Cloud Computing

Beneficios del Cloud Computing

Actualizado
El proveedor se encarga de actualizar tanto el software como el
hardware sin interrupción de servicio
Tipos del Cloud Computing
Tipos del Cloud Computing

Tipos del Cloud Computing

Un producto que corre y es administrado por un


proveedor de servicios.

Pone foco en la puesta en producción y administración


de apps.

Es el bloque básico de la nube. Provee acceso


a servicios de networking, computo y storage
Herramientas del Cloud Computing
Herramientas del Cloud Computing

¿Qué es AWS?
● AWS (Amazon Web Services) es una plataforma que tiene alrededor
de 200 servicios disponibles y es parte de la empresa de Amazon. Es
utilizado en aplicaciones populares como Dropbox, Foursquare y
HootSuite, entre otros.
Herramientas del Cloud Computing

¿Qué es Google Cloud Platform?


● GCP es una plataforma que ha reunido todas las aplicaciones de
desarrollo web que Google estaba ofreciendo por separado.
● Es una tecnología abierta. Significa que es posible tener múltiples
esquemas, o sea, utilizar tecnología que no necesariamente haya
sido creada por Google. Por ello le llaman “nube abierta”.
● Es segura.
● Escalabilidad y confiable.
Herramientas del Cloud Computing

¿Qué es Azure?
● Microsoft Azure es un servicio de computación en la nube creado por
Microsoft para construir, probar, desplegar y administrar aplicaciones y
servicios mediante el uso de sus centros de datos.
● Incluye herramientas de almacenamiento de datos empresariales (Azure
Synapse Analytics), análisis de código abierto totalmente administrado para
empresas (Azure HDInsight) y servicio de análisis basado en Apache Spark
(Azure Databricks).
Herramientas del Cloud Computing

Responsabilidades

Cliente Proveedor Cloud


Herramientas del Cloud Computing

Modelos de Deploy en Azure


Nube Pública
Toda la infraestructura está
construida en el proveedor
cloud

Nube Privada
La infraestructura se
encuentra en los datacenters
de la compañía
También es conocida como
On-Premise
Proveedor Cloud
Herramientas del Cloud Computing

Modelos de Deploy en Azure

Nube Híbrida
Usa ambos modelos, On-Premise y servicios Cloud

Proveedor Cloud
Herramientas del Cloud Computing

Alta disponibilidad
Es capacidad de los servicios de permanecer disponibles asegurándose
de que no existen puntos de falla y/o un cierto nivel de performance

Azure Load Balancer


Un balanceador de carga permite distribuir
el tráfico hacia múltiples servidores. Si un
servidor falla, el balanceador de carga
dirigirá el tráfico hacia otro servidor que se
encuentre disponible.

Correr una carga de trabajo en múltiples Zonas de Disponibilidad


asegura que si 1 o 2 AZs fallan tu servicio permanezca
Proveedor Cloud
disponible.
Herramientas del Cloud Computing

Alta escalabilidad
La capacidad que te da la nube de incrementar su capacidad si existe
mayor demanda de tráfico, memoria y poder de cómputo

Escalamiento vertical Escalamiento horizontal


Escala hacia arriba Escala hacia un lado

Añadir más recursos a un Agregar más servidores con


Proveedor Cloud
server existente los mismos recursos
Herramientas del Cloud Computing

Alta elasticidad

La habilidad de automáticamente incrementar o decrementar la


capacidad disponible dependiendo de la demanda de tráfico, memoria o
cómputo.
Escalamiento Horizontal

Scaling Out – Agregar más servers del


mismo tamaño

Scaling In – Remover más servers del


mismo tamaño
Herramientas del Cloud Computing

Alta durabilidad

La habilidad de recuperar y prevenir la perdida de datos en caso


de que un desastre ocurra
Algunos preguntas que debemos hacernos son:

• ¿Tenemos un backup de la información?


• ¿Qué tan rápido podemos restaurar el
backup?
• ¿El backup está actualizado?
• ¿Cómo podemos asegurarnos de que los
datos en la base no se corrompan?
La evolución del cómputo

La evolución del cómputo


Servidor
dedicado VMs Containers Funciones

• Un servidor virtual que solo utiliza un único


cliente
• La capacidad debe ser estimada, se paga por
capacidad que no se utiliza
• Actualizar la capacidad es costoso y lento
• Se tiene una garantía de seguridad, privacidad
y libertad de uso de los recursos disponibles
La evolución del cómputo

La evolución del cómputo


Servidor
dedicado VMs Containers Funciones

• Se corren múltiples Máquinas Virtuales en


un servidor
• El Hipervisor es la capa de software que
permite generar las VMs
• Un servidor físico es compartido por múltiples
clientes
• Se paga por una fracción del server
• Se paga por capacidad disponible no utilizada
de la VM
La evolución del cómputo

La evolución del cómputo


Servidor
dedicado VMs Containers Funciones

• Máquinas virtuales corren multiples conteiners


• Docker Deamon es el nombre de la capa de
software que permite correr multiples conteiners
• Se maximiza el uso de la capacidad, por lo cual
es más efectivo en cuanto al costo
• Los contenedores comparten el Sistema
operativo, lo que los hace más eficientes que las
máquinas virtuales
La evolución del cómputo

La evolución del cómputo


Servidor
dedicado VMs Containers Funciones
• Máquinas virtuales administradas ejecutan contenedores
administrados
• Es conocido como Serverless Compute
• Subís una pieza de código y elegís la cantidad de
memoria y la duración
• Solo sos responsable del código y los datos, de nada
más
• Altamente efectivo en cuanto al costo. Solo pagás por el
tiempo que el código está en ejecución.
• Un aspecto negativo de esta configuración son los
llamados “Cold Starts”
Bases de datos
Bases de datos

¿Qué es una base de datos?


Un conjunto de datos almacenados en un formato específico e
interrelacionados por un contexto en común
Bases de datos

Componentes de una base de datos

INFORMACIÓN SGBD
La información se obtiene de la Sistema de gestión de base de datos (DBMS
base de datos, está integrada y por sus siglas en inglés). Ej: Oracle, MySQL,
además es compartida. SQLServer, Access, entre otros.

HARDWARE USUARIOS
- Almacenamiento secundario. Aplicaciones y Personas que interactúan
- Procesadores, memoria, etc. con la BD
Bases de datos

SGBD: Sistemas de gestión de bases de datos


Bases de datos

Características de un SGBD

Recuperación Integridad
Capacidad de proteger los datos Se refiere a la correctitud y
ante fallos en el sistema o en las completitud de la información
aplicaciones. en una base de datos.

Concurrencia Seguridad
Permiten que muchas Es la protección de la base de
transacciones puedan acceder a datos frente a usuarios no
una misma base de datos a la vez. autorizados
Bases de datos

Modelos de bases de datos

Un modelo de base de datos


permite generar la estructura
lógica de la base, incluidas las
relaciones y limitaciones que
determinan cómo se almacenan
los datos y cómo se accede a ellos.
Bases de datos

Modelos de bases de datos


Relacional Entidad-Relación
Bases de datos

Modelos de bases de datos

Orientado a objetos No relacional


Bases de datos

Modelos de bases de datos

Jerárquico Red
Bases de datos

Lenguajes de consultas estructuradas


Los sistemas de gestión
proporcionan un lenguaje de
definición para especificar el
esquema de la base de datos y un
lenguaje de manipulación para
expresar las consultas y las
modificaciones de la base.
Bases de datos

Sublenguajes del SQL

Data Definition Language: Data Manipulation Language:


Permite crear, modificar y DDL DML Permite modificar el contenido.
eliminar estructuras.

Data Control Language: Transaction Control Language:


DCL TCL
Permite asignar y modificar Permite gestionar transacciones.
permisos.
Sistemas de archivos en Big Data
Sistemas de archivos en Big Data

Sistemas de archivos en Big Data

HDFS

● HDFS (Hadoop Distributed File System) es un sistema de archivos


distribuido que usa Hadoop como sistema de almacenamiento de
ficheros.
● Está formado por clústeres GNU/Linux y construido en Java.
● La arquitectura de HDFS se basa en dos componentes
fundamentales: Namenode y Datanode
● Está formado en clústeres y ofrece acceso a datos en streaming y
portabilidad entre hardware y software entre distintas plataformas.
Sistemas de archivos en Big Data

Sistemas de archivos en Big Data


HIVE
● Apache Hive es un framework diseñado por Facebook que se sirve
de HDFS para proporcionar agrupación, consulta y análisis de
datos.
● Ofrece un lenguaje de consultas basado en queries SQL (Hive QL)
● Actualmente empresas de renombre como Netflix utilizan Apache
Hive como herramienta de almacenamiento de datos. Incluso
Amazon se sirve de una variante de Hive en sus servicios de
Amazon Web Services.
Sistemas de archivos en Big Data

Sistemas de archivos en Big Data


MongoDB
● MongoDB es una base de datos orientada a documentos en
código abierto. Almacena los datos mediante documentos en
BSON, una representación binaria de JSON.
● Es una base de datos NoSQL muy útil para trabajar con
agrupaciones de datos que varían o están poco estructurados.
Algunas de las empresas que se sirven de MongoDB para
almacenar sus datos son Bosch y Telefónica.
Sistemas de archivos en Big Data

Sistemas de archivos en Big Data


Cassandra
● Cassandra es un sistema utilizado para el almacenamiento de
datos. Su origen se sitúa en Facebook. Fue diseñado para
potenciar la funcional de búsqueda en su inbox, ante el volumen
de crecimiento de las consultas.
● Se trata de una base de datos distribuida. La información
almacenada se reparte a través de todos los nodos que componen
el clúster.
● Netflix, eBay y Twitter son otros ejemplos de empresas que usan
Cassandra en sus modelos de negocio.
Sistemas de archivos en Big Data

Sistemas de archivos en Big Data


Neo4J
● Neo4J es una base de datos NoSQL de código abierto orientada a
grafos y escrita en Java. Los grafos estructuran los datos en nodos
y relaciones que equivaldrían a las columnas de las tablas en un
modelo relacional.
● Algunas empresas de renombre que usan Neo4J en el desarrollo
de sus operaciones son eBay, Walmart, IBM, Microsoft, etcétera.
Servidor en Clúster
Servidor en Clúster

Servidor en Clúster
● Un servidor en clúster se trata de la unión de
varios sistemas informáticos (servidores) que
funcionan como si fueran uno solo.

● Estos servidores comparten recursos de


hardware y software, funcionando así como si
fueran un solo sistema unificado.La razón
más popular por la cual se realiza es ofrecer
velocidad y por sobre todo alta disponibilidad
ante fallos.
Ventajas de los servidores en Clúster

Ventajas de los servidores en Clúster


● Alta disponibilidad: Ofrecen un mejor uptime de servidores gracias a
que si falla uno, el resto tomará el trabajo ofreciendo así una alta
disponibilidad del servicio.

● Alta velocidad de despacho: se obtiene gracias al equilibrio de las


cargas, haciendo que los servidores que reciben las solicitudes de los
clientes puedan despachar los datos de forma inmediata, sin delays ni
retrasos de ningún tipo.
Ventajas de los servidores en Clúster

Ventajas de los servidores en Clúster


● Balanceo de carga: se establecen diferentes métodos de balanceo de
carga, haciendo que una o varias peticiones se deriven a determinados
hosts, mientras que otras irán destinadas a otro grupo de servidores
bajo el clúster. Esto hace que ningún servidor se vea saturado.

● Escalabilidad: la mayoría de los clúster de servidores soportan


escalabilidad de forma horizontal, permitiendo agregar más servidores
de forma masiva según se necesite debido a una posible creciente
demanda de parte de los usuarios.
Ventajas de los servidores en Clúster

Ventajas de los servidores en Clúster


● Resistencia ante ataques DDOS: Soportan mejor las cargas de
sistema que se originan ante ataques DDOS masivos, donde se suelen
inundar los servidores con peticiones no deseadas. El uso de múltiples
servidores puede ayudar a resistir mejores diferentes tipos de ataque
destinados a agotar los recursos de sistema o red.
Desventajas de los servidores en Clúster

Desventajas de los servidores en Clúster

● Altos costos
● Complejidad
● Tiempo de implementación
● No son a prueba de fallos
Componentes de los servidores en Clúster

Componentes de los
servidores en Clúster
● Hardware: de cada uno de los
sistemas informáticos (servidores) que
estarán detrás soportando la carga.
● Red: interconexiones de red de alta
velocidad que alimentan al clúster de
servidores.
● Software de Sistema Operativo: el
sistema operativo que estará instalado
en cada uno de los servidores o
nodos del clúster.
Componentes de los servidores en Clúster

Componentes de los servidores en


Clúster
● Software Maestro o Middleware: el
encargado de gestionar la inteligencia del
clúster. Se utiliza para configurar el clúster,
ver estadísticas de uso, añadir nuevos
nodos, migrar datos o replicarlos entre los
nodos que trabajan detrás.
● Servicios de sistema: Los que despachan
el contenido desde cada nodo.
● Aplicaciones: se trata de las aplicaciones
que necesitan tener dicho balanceo.
Tipos de servidor en Clúster

Tipos de servidor en Clúster


Dependiendo de la arquitectura usada
● Clúster en la nube: son servicios de clustering, balanceo y replicación
basados en la nube, suelen implementarse más rápido, pero permiten
menos personalización para adaptarse a las necesidades de la
aplicación.
● Clúster de servidores dedicados: son la solución ideal para adaptarse
al 100% a las necesidades de la aplicación, aunque se demora un poco
más en su implementación.
Tipos de servidor en Clúster

Tipos de servidor en Clúster


Dependiendo de la solución que ofrecen::
● Clúster de alto rendimiento (High Performance Computing Cluster): se
utilizan para realizar tareas que implican gran procesamiento de datos, utilizan
gran potencia a nivel de CPU, memoria o velocidad de lectura/escritura en
disco.
● Clúster de alta disponibilidad (High Availability Computing Cluster): son los
que brindan mejores garantías ante fallas de red, hardware o software para
permitir que tu aplicación siempre esté online las 24 hs.
● Clúster de alta eficiencia (High Throughput Computing Cluster): se utilizan
para que el procesamiento de datos sea lo más eficiente posible, realizando
grandes cantidades de tareas en el menor tiempo posible.
Tipos de servidor en Clúster

Tipos de servidor en Clúster


Dependiendo del campo donde se aplican:
● Clúster comercial: son los que se utilizan por empresas, corporaciones
y multinacionales para soportar las demandas de sus servicios.
● Clúster gubernamental: son utilizados por los gobiernos y agencias de
cada país para despachar de forma eficiente, manteniendo la alta
disponibilidad para los ciudadanos de una región determinada.
● Clúster científico: se utiliza para procesamiento de datos científicos en
instituciones de investigación de determinados campos como ingeniería,
biología, medicina, genética, etc.
¡Gracias!

También podría gustarte