No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Introducción a la Nube

Curso de Introducción a la Nube

Carlos Andrés Zambrano Barrera

Carlos Andrés Zambrano Barrera

Componentes de una arquitectura Serverless

15/27
Recursos

Aportes 14

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

STREAMS: es una secuencia de eventos, mensajes o datos que pueden ser procesados una vez ocurren, los cuales pueden ser distribuidos a múltiples consumidores. Abundan en los proyectos donde la palabra clave es “data” o “real-time”.
Real-time: es cuando se puede utilizar un evento o una acción que se acabó de generar hace poco.
Es streams tiene la capacidad de recibir muchísimos eventos en paralelo (millones) y se los puede enviar a un dashboard para que los grafique y lo pueda ver un equipo de marketing, por ejemplo. De esta manera estoy utilizando un streams para aprovechar al máximo el poder del real time.
En los cloud provider estos streams son servicios completamente serverless. El streams tiene que tener la capacidad de recibir esos millones de eventos y enviarselo a un consumidor en tiempo real.
COLAS: método para retrasar el trabajo, utilizadas para desacoplar componentes de un sistema.
Ejemplo: cola para el cajero del banco. Entonces las COLAS se ubican para no saturar a un componente de la arquitectura. Ejemplo: miles de usuarios piden un certificado a la APP, la COLA en cola estas solicitudes y la aplicación lo va procesando a medida que pueda. De esta manera la APP nunca se cae.
BUCKET: estructura donde se puede almacenar una colección de OBJETOS. Estos objetos se pueden consultar. Su costo se basa en la cantidad de solicitudes y espacio utilizado. Almacenamiento por objetos. Un objeto puede ser la foto de cada usuario de la APP.
API: es una abreviatura de APPLICATION PROGRAMMING INTERFACES, son mecanismos que permiten a dos componentes de software comunicarse entre sí, mediante un conjunto de definiciones y protocolos. API REST, API HTTPS, API WebSocket, API GraphQL y todos son servicios serveless. La API es la puerta de entrada a nuestra aplicación.
DATASTORE: es una base NoSQL creada para proporcionar autoescalamiento, alto rendimiento y facilidad para el desarrollo de aplicaciones. No SQL: llave valor, de memoria, por grafos y documentales.
IDENTITY SERVICES: servicios en la nube que ayudan a implementar la administración de acceso e identidad de los usuarios a nuestras aplicaciones web o móviles. Servicios para hacer autenticación y autorización. Ejemplo para PlatziWallet: yo puedo registrarme como usuario (autenticación) pero hasta que no registre una tarjeta de crédito no voy a poder realizar un pago (autenticación).
MOTOR DE CONSULTAS: motor de consulta SQL que pueden consultar data estructurada, semiestructurada y no estructurada de diferentes fuentes de datos. Ej: PRESTO (Open Source). Query a múltiples fuentes, centralizadas y el costo es por la cantidad de data escaneada. A datos que tengamos en almacenamiento por objetos, a DB no relacionales y relacionales.
BALANCEADORES DE CARGA (de aplicaciones y de red): componente que distribuye el tráfico entre varios destinos, puede ser a nivel de aplicación, red o transporte. Recibe los requests y los distribuye entre las zonas de disponibilidad.
El balanceador de aplicaciones es el que va ser nuestro foco, porque va a trabajar en capa 7 del modelo OCI, es decir, va a balancear a nivel de HTTP y HTTPS.
El balanceador de red se enfoca en las capas 3 y 4 del modelo OCI, es decir, en balancear tráfico IP, tráfico UDP y tráfico TCP.

Componentes Serverless.

Streams.

Es una secuencia de eventos, mensajes o datos que pueden ser procesados una vez ocurren, los cuales pueden ser distribuidos a múltiples consumidores.

Colas.

Método para retrasar el trabajo, utilizadas para desacoplar componentes de un sistema.

Bucket.

Estructura donde se puede almacenar una colección de objetos. Su costo se basa en la cantidad de solicitudes y espacio utilizado.

API.

Es una abreviatura de Aplication Programming Interfaces, son mecanismos que permiten a dos componentes de software comunicarse entre sí mediante un conjunto de definiciones y protocolos.

Datastore.

Es una base de datos NoSQL creada para proporcionar autoescalamiento, alto rendimiento y facilidad para el desarrollo de aplicaciones.

Identity Services.

Servicios en la nube que ayudan a implementar la administración de acceso de identidad de los usuarios a nuestras aplicaciones web o móviles.

Motor de consultas.

Motor de consultas SQL que pueden consultar data estructurada, semiestructurada y no estructurada de diferentes fuentes de datos.

Balanceador de carga.

Componente que distribuye el tráfico entre varios destinos, puede ser a nivel de aplicación, red o transporte.

# **Componentes de una arquitectura Serverless** ### **Conceptos de arquitectura de sistemas en la nube** **Streams:** * Son una secuencia de eventos, mensajes o datos que pueden ser procesados una vez ocurren, los cuales pueden ser distribuidos a múltiples consumidores. * Abundan en los proyectos donde la palabra clave es “data” o “real-time”. * Real-time: es cuando se puede utilizar un evento o una acción que se acabó de generar hace poco. * Los streams tienen la capacidad de recibir muchísimos eventos en paralelo (millones) y se los puede enviar a un dashboard para que los grafique y lo pueda ver un equipo de marketing, por ejemplo. * En los cloud provider estos streams son servicios completamente serverless. * El streams tiene que tener la capacidad de recibir esos millones de eventos y enviarselo a un consumidor en tiempo real. ### **Colas** * Son un método para retrasar el trabajo, utilizadas para desacoplar componentes de un sistema. * Ejemplo: cola para el cajero del banco. * Las colas se ubican para no saturar a un componente de la arquitectura. * Ejemplo: miles de usuarios piden un certificado a la APP, la cola en cola estas solicitudes y la aplicación lo va procesando a medida que pueda. De esta manera la APP nunca se cae. ### **Bucket** * Es una estructura donde se puede almacenar una colección de OBJETOS. * Estos objetos se pueden consultar. * Su costo se basa en la cantidad de solicitudes y espacio utilizado. * Almacenamiento por objetos. * Un objeto puede ser la foto de cada usuario de la APP. ### **API** * Es una abreviatura de APPLICATION PROGRAMMING INTERFACES, son mecanismos que permiten a dos componentes de software comunicarse entre sí, mediante un conjunto de definiciones y protocolos. * API REST, API HTTPS, API WebSocket, API GraphQL y todos son servicios serveless. * La API es la puerta de entrada a nuestra aplicación. ### **Datastore** * Es una base NoSQL creada para proporcionar autoescalamiento, alto rendimiento y facilidad para el desarrollo de aplicaciones. * No SQL: llave valor, de memoria, por grafos y documentales. ### **Identity Services** * Son servicios en la nube que ayudan a implementar la administración de acceso e identidad de los usuarios a nuestras aplicaciones web o móviles. * Servicios para hacer autenticación y autorización. * Ejemplo para PlatziWallet: yo puedo registrarme como usuario (autenticación) pero hasta que no registre una tarjeta de crédito no voy a poder realizar un pago (autenticación). ### **Motor de consultas** * Es un motor de consulta SQL que pueden consultar data estructurada, semiestructurada y no estructurada de diferentes fuentes de datos. * Ej: PRESTO (Open Source). * Query a múltiples fuentes, centralizadas y el costo es por la cantidad de data escaneada. * A datos que tengamos en almacenamiento por objetos, a DB no relacionales y relacionales. ### **Balanceadores de carga** * Componente que distribuye el tráfico entre varios destinos, puede ser a nivel de aplicación, red o transporte. * Recibe los requests y los distribuye entre las zonas de disponibilidad. * El balanceador de aplicaciones es el que va ser nuestro foco, porque va a trabajar en capa 7 del modelo OCI, es decir, va a balancear a nivel de HTTP y HTTPS. * El balanceador de red se enfoca en las capas 3 y 4 del modelo OCI, es decir, en balancear tráfico IP, tráfico UDP y tráfico TCP. **Conclusiones** Estos conceptos son fundamentales para comprender la arquitectura de sistemas en la nube. Al entenderlos, podemos diseñar y desarrollar aplicaciones que sean escalables, confiables y eficientes. * **Funciones (Functions):** Pequeños fragmentos de código que se ejecutan en respuesta a eventos específicos. * **Eventos (Events):** Desencadenantes que inician la ejecución de funciones, como solicitudes HTTP, cambios en bases de datos o mensajes en colas. * **Plataforma Serverless:** El proveedor de servicios que ofrece la infraestructura subyacente, como AWS Lambda, Azure Functions o Google Cloud Functions. * **Almacenamiento de Datos:** Bases de datos, sistemas de archivos, almacenes de objetos u otros sistemas de almacenamiento utilizados por las funciones. * **API Gateway:** Un componente que permite exponer las funciones como servicios web o API RESTful para interactuar con aplicaciones externas. * **Colas de Mensajes (Message Queues):** Utilizadas para la comunicación asíncrona y la gestión de eventos entre funciones. * **Gestión de Identidad y Acceso:** Servicios que garantizan la seguridad y la autenticación de las funciones y las aplicaciones. * **Monitorización y Registro (Monitoring and Logging):** Herramientas y servicios que permiten rastrear y analizar el rendimiento y el comportamiento de las funciones. * **Automatización de Despliegue (Deployment Automation):** Herramientas que facilitan la implementación y actualización de funciones de manera eficiente. * **Gestión de Recursos y Escalabilidad Automática:** Componentes que administran los recursos subyacentes y escalan automáticamente según la demanda. * **Reglas y Orquestación:** La capacidad de definir reglas de negocio y orquestar múltiples funciones para resolver problemas más complejos.
Arquitectura Serverless. Análisis de tweets en tiempo real . ![](https://static.platzi.com/media/user_upload/image-9056f190-2163-439a-bca5-b6981ba9a7f4.jpg)

Componentes Serverless

  • Streams (charts [unidad de medida])
    Para proyectos de Data o RealTime (Es una secuencia de eventos que pueden ser procesados una vez que ocurren.) pueden ser millones de eventos
  • Cola: Metodo para retrasar el trabajo, utilizadas pra desacoplar un elemento de un sistema.
  • Bucket: Es una estructura para almacenar y consultar objetos; costo depende cantidad de informacion que almacena y sus request.
  • API es la puerta de entrada a la aplicacion comunicando entre deficiones y protocolos.
  • DataStore: Espacio para almanecenar informacion
  • Servicios de Identidad: Implementa administracion de acceso e identidad de los usuarios.
  • Motor de Consulta: consultar una query a fuente de datos y cobran por la cantidad de data que escanearon.
  • Balanceadores de Carga:Componente que distribuye el tráfico entre varios destinos, existen balanceadores de apps(capa 7) y de red (capa 3 y 4)
Los componentes que utilizaria en modelo serverless: Stream: Para crear usuarios, validar transacciones, enviar notificaciones etc usar una plataforma de function as a service (FaaS) Un servicio de colas hasta que sean procesados para escalar los servicios con Amazon SQS Bucket para guardar archivos adjuntos de las transacciones, facturas, recibos o comprobantes de pago usando la API de almacenamiento como amazon S3 Datastore como DynamoDB, para almacenar los datos de usuarios, transacciones y saldo Identity Service para gestionar el registro, inicio de sesión y seguridad de usuarios como Cognito Un servicio API para exponer servicios endpoint HTTPS y gestionar el acceso, el monitoreo y la documentación y un servicio de API para
` +------------------+ +------------+` ` | Interfaz Web | | Usuario |` ` +--------+---------+ +------+-----+` ` | |` ` v v` ` +--------+----------+ +---------+-----------+` ` | Almacenamiento | | Notificación al |` ` | de Imágenes (S3) +----->| Usuario (SNS/Lambda)|` ` +--------+----------+ +---------+-----------+` ` |` ` v` ` +--------+----------+` ` | Función Lambda |` ` | Procesamiento |` ` | de Imágenes |` ` +--------+----------+` ` |` ` v` ` +--------+----------+ +-------------------+` ` | Almacenamiento | | Autenticación |` ` | de Resultados | | de Usuarios |` ` | (S3/DynamoDB) | | (Cognito) |` ` +--------+----------+ +--------+----------+` ` |` ` v` ` +--------+----------+ +-------------------+` ` | API Gateway | | Monitorización |` ` | (enrutamiento) | | y Logging |` ` +------------------+ | (CloudWatch) |` ` +-------------------+`
### Conclusión La arquitectura serverless ofrece una manera eficiente y flexible de construir aplicaciones modernas, eliminando la necesidad de gestionar servidores y permitiendo a los desarrolladores concentrarse en la lógica de negocio. Integrando componentes como FaaS, BaaS, almacenamiento gestionado, mensajería, orquestación y herramientas de monitoreo, puedes construir aplicaciones escalables y resilientes que responden a las necesidades de los usuarios.
**STREAMS:** Un *stream* es una secuencia continua de eventos, mensajes o datos que pueden ser procesados en tiempo real a medida que ocurren. Estos datos se distribuyen a múltiples consumidores, lo que es útil en proyectos donde el procesamiento de datos en tiempo real es clave. **Ejemplo:** **Amazon Kinesis** permite procesar millones de eventos en tiempo real. Por ejemplo, una tienda online puede usar Kinesis para monitorear las compras en tiempo real, donde cada compra se recibe como un evento y se envía a un sistema que actualiza el inventario y notifica al equipo de ventas. **COLAS:** Las colas son un método para retrasar y organizar el procesamiento de tareas, y se utilizan principalmente para desacoplar los componentes de un sistema. **Ejemplo:** **Amazon SQS** (Simple Queue Service). Si una empresa de mensajería recibe cientos de solicitudes de usuarios, SQS puede poner esas solicitudes en cola, permitiendo que la aplicación las procese una a una, evitando sobrecargas en el sistema. **BUCKET:** Un *bucket* es un contenedor de almacenamiento de objetos en la nube, donde los objetos (archivos) se pueden consultar y gestionar. **Ejemplo:** **Amazon S3** (Simple Storage Service). En una red social, las fotos de perfil de los usuarios se almacenan en un bucket de S3. Cada vez que alguien visita un perfil, la aplicación consulta S3 para obtener la foto correspondiente. **API:** Las *API* (Application Programming Interfaces) son mecanismos que permiten que dos componentes de software se comuniquen entre sí a través de un conjunto de definiciones y protocolos. **Ejemplo:** **AWS API Gateway** permite que una aplicación de e-commerce se conecte a diferentes sistemas (pagos, inventarios, envíos) mediante *API*, facilitando la interacción entre ellos. **DATASTORE:** Un *datastore* es un tipo de base de datos *NoSQL* diseñada para escalar automáticamente, ofrecer alto rendimiento y facilitar el desarrollo de aplicaciones. **Ejemplo:** **Amazon DynamoDB** almacena datos como los "likes" de usuarios en una aplicación de redes sociales. Cada like se guarda con una clave única (ID del usuario) y un valor (número de likes), permitiendo un acceso rápido. **IDENTITY SERVICES:** Los servicios de identidad en la nube permiten gestionar el acceso y la identidad de los usuarios en aplicaciones web o móviles. **Ejemplo:** **AWS Cognito** puede encargarse de la autenticación y autorización en una aplicación de banca móvil, permitiendo que un usuario inicie sesión y realice pagos solo si ha verificado su tarjeta de crédito. **MOTOR DE CONSULTAS:** Un motor de consultas SQL permite realizar consultas a datos estructurados, semiestructurados y no estructurados desde diferentes fuentes de datos. **Ejemplo:** **Amazon Athena** permite consultar datos almacenados en **Amazon S3**. Por ejemplo, una compañía de medios puede usar Athena para analizar archivos de log sin moverlos a una base de datos tradicional, pagando solo por los datos analizados. **BALANCEADORES DE CARGA:** Un balanceador de carga distribuye el tráfico entrante a través de varios servidores o destinos, asegurando que ningún servidor individual se sobrecargue. **Ejemplo:** **Elastic Load Balancer (ELB)** de AWS distribuye el tráfico entre varios servidores web, asegurando que todos funcionen de manera eficiente y que los usuarios tengan una buena experiencia al acceder a una aplicación.
Eres un crack!! Excelente clase
![]()![](https://imgbox.com/1eb5iJWA)
![](file:///E:/Users/user/Downloads/reto.jpeg)

que bién que explica elprofesor , muchas gracias Platzi.