You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

0 Días
0 Hrs
53 Min
10 Seg
Curso de Introducción a la Nube

Curso de Introducción a la Nube

Carlos Andrés Zambrano Barrera

Carlos Andrés Zambrano Barrera

Ejemplo de arquitectura Cloud Native

13/27
Resources

Contributions 24

Questions 5

Sort by:

Want to see more contributions, questions and answers from the community?

Características Arquitectura:
Altamente disponible (AZ): 2 zonas de disponibilidad.

  1. CAPA DE CONECTIVIDAD: para el on-premises, las instalaciones de la empresa o una capa de networking. A través de un VPN o una conexión dedicada que nos ofrece Cloud P.
  2. ZONA PRIVADA: donde corre el backend de nuestra aplicación. No va a estar expuesta a internet. Nosotros exponemos nuestros servicios, pero nuestra aplicación, los contenedores, las funciones quedan en esta zona privada.
  3. ZONA PÚBLICA: servicios que deben estar expuestos hacia internet. Reciben los requests directamente de los usuarios y se comunican con la capa privada donde está el backend.
    DNS: nombre de dominio (platziwallet com). Le agregamos las reglas de enrutamiento. Se pueden crear a nivel de los DNS opciones de redireccionamiento (basados en el nombre de dominio).
    CDN (content delivery network ): expone el servicio de forma global a través del uso de ubicaciones de borde. Ubicaciones de borde son datacenter pequeños distribuidos por el mundo sobre los cuales puedo poner el contenido estático o dinámico de la aplicación. Esto ayuda a que la experiencia de usuario sea mucho mejor.
    WAT + CERTIFICADO ( seguridad). Va a ver usuarios que van a estudiar cómo toman ventaja para hacer fraude. Web Application Firework + Certificado de seguridad para agregarle reglas de seguridad a nuestra aplicación. De esta manera protegemos nuestra aplicación de ataques de denegación de servicios, sql injections, ataques de script
    API GATEWAY: recibe toda la información se la manda al BALANCEADOR de aplicaciones. Detrás del balanceador podemos tener nuestro backend corriendo en Kubernetes. Este clúster de Kubernetes donde está corriendo PlatziWallet y donde están los microservicios de pagos, cobro, recarga, login, biometría, etc. Estos tienen una capa de almacenamiento (objetos, bloques y archivos).
    DESPLIEGUE: para desplegar nuestro backend tenemos: Kubernetes, argo y helm

Eso de que pase de horizontal a vertical en la PC como que no agrada mucho

Como funciona una CDN: ![](https://static.platzi.com/media/user_upload/image-b168f414-7721-4b85-80d3-aa2192d05321.jpg)
## ¿Qué es una CDN? Una red de entrega de contenido (CDN) es un grupo de servidores distribuidos geográficamente que almacenan en caché contenido cerca de los usuarios finales. Una CDN permite transferir rápidamente los activos necesarios para cargar contenido de Internet, como páginas HTML, archivos JavaScript, hojas de estilo, imágenes y vídeos. La popularidad de los servicios de CDN sigue creciendo y hoy en día la mayor parte del tráfico web se sirve a través de CDN, incluido el tráfico de sitios importantes como Facebook, Netflix y Amazon.

En palabras sencillas, un DNS es un “Traductor”, Cuando quieres visitar un sitio web, en lugar de recordar una serie de números (dirección IP) como 192.168.1.9, puedes simplemente escribir el nombre del sitio web, como “platziwallet com”…

Algo importante a mencionar es que ni el Firewall, ni el certificado te protegen contra SQL injection, ni Cross-Site Scripting (XSS). Y posiblemente por defecto tampoco contra DDoS. Si son necesarios, pero se deben implementar muchas más medidas para proteger nuestros servicios/servidores de los diferentes tipos de ataques que existen en la red. Y de hecho gran parte de la seguridad debe ir en la aplicación misma.
\### Ejemplo de Arquitectura Cloud Native: Una Plataforma de Comercio Electrónico Imaginemos que estamos desarrollando una plataforma de comercio electrónico utilizando un enfoque \*\*cloud native\*\*. Esta arquitectura está diseñada para ser escalable, resiliente y fácil de mantener, aprovechando las mejores prácticas y tecnologías modernas. A continuación, desglosamos las \*\*capas principales\*\* de esta arquitectura: \--- \### \*\*1. Capa de Infraestructura (Infraestructura como Código - IaC)\*\* La base de la arquitectura cloud native es la infraestructura, que se gestiona mediante \*\*Infraestructura como Código (IaC)\*\*. En lugar de configurar servidores manualmente, usamos herramientas como \*\*Terraform\*\* o \*\*AWS CloudFormation\*\* para definir y aprovisionar automáticamente todos los recursos necesarios en la nube. \- \*\*Proveedores de Nube\*\*: Podríamos usar múltiples proveedores como AWS, Google Cloud o Azure. \- \*\*Contenedores\*\*: La aplicación se ejecuta en contenedores Docker, lo que garantiza consistencia entre entornos (desarrollo, pruebas, producción). \- \*\*Orquestación\*\*: Kubernetes (K8s) se utiliza para gestionar y escalar los contenedores. Kubernetes asegura que los servicios estén siempre disponibles y que se ajusten dinámicamente a la demanda. Por ejemplo, podríamos tener un clúster de Kubernetes en AWS EKS (Elastic Kubernetes Service) donde se ejecuten todos los microservicios de la plataforma. \--- \### \*\*2. Capa de Aplicación (Microservicios)\*\* En lugar de un monolito, la plataforma de comercio electrónico está dividida en \*\*microservicios\*\*, cada uno responsable de una funcionalidad específica. Estos microservicios son independientes y pueden desarrollarse, implementarse y escalar por separado. \- \*\*Microservicio de Catálogo\*\*: Gestiona la información de productos, categorías y precios. Se comunica con una base de datos NoSQL como \*\*MongoDB\*\* o \*\*DynamoDB\*\* para almacenar datos no estructurados. \- \*\*Microservicio de Carrito de Compras\*\*: Maneja el carrito de compras del usuario. Puede usar una base de datos en memoria como \*\*Redis\*\* para mejorar el rendimiento. \- \*\*Microservicio de Pagos\*\*: Procesa pagos a través de APIs externas como Stripe o PayPal. Este servicio es crítico y puede estar replicado en varias regiones para alta disponibilidad. \- \*\*Microservicio de Autenticación\*\*: Gestionado por \*\*OAuth 2.0\*\* o \*\*JWT (JSON Web Tokens)\*\* para manejar la autenticación y autorización de usuarios. \- \*\*Microservicio de Notificaciones\*\*: Envía correos electrónicos o notificaciones push cuando un pedido se realiza o se envía. Estos microservicios se comunican entre sí a través de \*\*APIs RESTful\*\* o \*\*mensajería asíncrona\*\* usando sistemas como \*\*Apache Kafka\*\* o \*\*RabbitMQ\*\*. \--- \### \*\*3. Capa de Datos\*\* La capa de datos en una arquitectura cloud native es distribuida y flexible, adaptándose a diferentes tipos de cargas de trabajo. \- \*\*Bases de Datos Relacionales\*\*: Para datos transaccionales críticos, como pedidos y facturas, podríamos usar una base de datos relacional como \*\*PostgreSQL\*\* o \*\*MySQL\*\* en AWS RDS (Relational Database Service). \- \*\*Bases de Datos NoSQL\*\*: Para datos semi-estructurados o no estructurados, como el catálogo de productos o comentarios de usuarios, podríamos usar \*\*MongoDB\*\* o \*\*DynamoDB\*\*. \- \*\*Almacenamiento de Objetos\*\*: Las imágenes de productos y otros archivos multimedia se almacenan en un servicio de almacenamiento de objetos como \*\*Amazon S3\*\* o \*\*Google Cloud Storage\*\*. \- \*\*Caché\*\*: Para mejorar el rendimiento, usamos \*\*Redis\*\* o \*\*Memcached\*\* para cachear datos frecuentemente accedidos, como el inventario o resultados de búsqueda. Además, implementamos \*\*replicación y sharding\*\* para garantizar alta disponibilidad y escalabilidad horizontal. \--- \### \*\*4. Capa de Operaciones y Observabilidad\*\* Una arquitectura cloud native no solo se trata de construir aplicaciones, sino también de operarlas de manera eficiente. Aquí es donde entra la \*\*observabilidad\*\* y la \*\*automatización\*\*. \- \*\*CI/CD (Integración Continua / Entrega Continua)\*\*: Usamos herramientas como \*\*Jenkins\*\*, \*\*GitLab CI/CD\*\* o \*\*GitHub Actions\*\* para automatizar las pruebas, compilaciones y despliegues. Cada vez que un desarrollador hace un cambio en el código, este se prueba automáticamente y se despliega en un entorno de producción si pasa todas las pruebas. \- \*\*Monitoreo y Logs\*\*: Implementamos herramientas de monitoreo como \*\*Prometheus\*\* y \*\*Grafana\*\* para supervisar el rendimiento de los microservicios y detectar problemas en tiempo real. Además, usamos \*\*ELK Stack (Elasticsearch, Logstash, Kibana)\*\* o \*\*Fluentd\*\* para centralizar y analizar logs. \- \*\*Tracing Distribuido\*\*: Para rastrear solicitudes a través de múltiples microservicios, usamos herramientas como \*\*Jaeger\*\* o \*\*Zipkin\*\*, lo que ayuda a identificar cuellos de botella o fallos en la comunicación entre servicios. \- \*\*Autoscaling y Resiliencia\*\*: Kubernetes permite el \*\*autoscaling\*\* automático de pods según la carga de trabajo. Además, implementamos patrones de resiliencia como \*\*Circuit Breaker\*\* (usando \*\*Hystrix\*\* o \*\*Resilience4j\*\*) para evitar fallas en cascada. \--- \### \*\*5. Capa de Seguridad\*\* La seguridad es fundamental en cualquier arquitectura cloud native. Implementamos varias capas de protección: \- \*\*Autenticación y Autorización\*\*: Usamos \*\*OAuth 2.0\*\* y \*\*OpenID Connect\*\* para autenticar a los usuarios y proteger las APIs. Además, implementamos políticas de \*\*RBAC (Role-Based Access Control)\*\* para controlar quién puede acceder a qué recursos. \- \*\*Seguridad en la Red\*\*: Configuramos firewalls y \*\*Network Policies\*\* en Kubernetes para restringir el tráfico entre microservicios. También usamos \*\*TLS (Transport Layer Security)\*\* para cifrar todas las comunicaciones. \- \*\*Secret Management\*\*: Las credenciales sensibles, como claves de API y contraseñas, se almacenan de forma segura en un \*\*Secret Manager\*\* como \*\*AWS Secrets Manager\*\* o \*\*HashiCorp Vault\*\*. \--- \### \*\*Conclusión\*\* Esta arquitectura cloud native para una plataforma de comercio electrónico es modular, escalable y resiliente. Cada capa está diseñada para funcionar de manera independiente pero integrada, permitiendo que la plataforma crezca y evolucione sin problemas. Desde la gestión de la infraestructura con IaC hasta la implementación de microservicios, bases de datos distribuidas y herramientas de observabilidad, esta arquitectura aprovecha al máximo las capacidades de la nube para ofrecer una experiencia de usuario fluida y confiable.
Felicito a platzi, al maestro, al curso y particularmente esta clase, por explicar todo el contexto de la arquitectura de una cloud native y sus componentes de una manera tan clara, directa, sencilla y de fácil comprensión. Gracias.
La arquitectura **Cloud Native** es un enfoque estratégico que se centra en la creación y operación de aplicaciones que explotan las ventajas escalables, elásticas y rápidas de las plataformas de computación en la nube. Un ejemplo destacado de aplicación Cloud Native es **Netflix**, que transformó su arquitectura para operar completamente en la nube de AWS. Utiliza una arquitectura de microservicios y herramientas de código abierto como Spinnaker y Asgard para automatizar el despliegue y la gestión de sus aplicacione <https://whitestack.com/es/blog/cloud-native/> ` +------------------------------------------------------------+` ` | API Gateway |` ` +-----------+--------------+--------------+------------------+` ` | | | ` ` | | |` ` +-----------v----+ +------v-------+ +---v------------+` ` | Servicio de | | Servicio de | | Servicio de |` ` | Usuarios | | Productos | | Carrito de |` ` | | | | | Compras |` ` +--------+-------+ +------^-------+ +---^------------+` ` | | |` ` | | |` ` +--------v-------+ +------v-------+ +---v------------+` ` | DB de Usuarios | | DB de | | DB de Carrito |` ` | | | Productos | | (Redis) |` ` +----------------+ +--------------+ +----------------+` ` |` ` +----------v----------+` ` | Servicio de Pedidos |` ` +----------^----------+` ` |` ` +----------v----------+` ` | DB de Pedidos |` ` +---------------------+` ` +-------------------------------------------------------------+` ` | Servicio de Pago |` ` +-----------+--------------+--------------+-------------------+` ` |` ` +-----------v--------------+` ` | Pasarela de Pago |` ` +--------------------------+` ` +-------------------------------------------------------------+` ` | Contenedores Orquestados por Kubernetes |` ` +-------------------------------------------------------------+` ` +-------------------------------------------------------------+` ` | Observabilidad: ELK Stack, Prometheus, Grafana |` ` +-------------------------------------------------------------+` ` +-------------------------------------------------------------+` ` | CI/CD Pipeline: Jenkins/GitLab CI |` ` +-------------------------------------------------------------+` ` +-------------------------------------------------------------+` ` | Infraestructura como Código: Terraform, Ansible |` ` +-------------------------------------------------------------+`
La arquitectura **Cloud Native** es un enfoque estratégico que se centra en la creación y operación de aplicaciones que explotan las ventajas escalables, elásticas y rápidas de las plataformas de computación en la nube. Un ejemplo destacado de aplicación Cloud Native es **Netflix**, que transformó su arquitectura para operar completamente en la nube de AWS. Utiliza una arquitectura de microservicios y herramientas de código abierto como Spinnaker y Asgard para automatizar el despliegue y la gestión de sus aplicacione <<https://whitestack.com/es/blog/cloud-native/>>

Deberían seguir con el formato de las clases anteriores, se ve demasiado raro (Sin embargo gran clase)

Que capo de profe , de verdad, se nota su pasion
Esta fascinante la explicación 😍🔥
En una arquitectura Cloud Native, los servicios expuestos en la zona pública suelen incluir: 1. **Frontend de aplicaciones**: Interfaces web o móviles que los usuarios utilizan para interactuar con la aplicación. 2. **APIs**: Servicios REST o GraphQL que permiten la comunicación entre el frontend y el backend. 3. **Balanceadores de carga**: Distribuyen el tráfico entre varios servidores para mejorar la disponibilidad. 4. **CDN (Content Delivery Network)**: Entrega contenido estático y dinámico de manera rápida y eficiente. 5. **WAF (Web Application Firewall)**: Proporciona seguridad contra ataques como inyecciones SQL o DDoS. Estos servicios son cruciales para garantizar una buena experiencia de usuario y seguridad.
El API Gateway se destaca como un componente esencial en arquitecturas Cloud Native, funcionando como un punto único de entrada para manejar solicitudes de los clientes. Facilita la comunicación entre el frontend y los microservicios en el backend, permitiendo la gestión de tráfico, autenticación, y enrutamiento de peticiones. En el contexto de la arquitectura de Platzi Wallet, el API Gateway recibe las solicitudes y las redirige al servicio correspondiente, mejorando la seguridad y el manejo de las funciones distribuidas.
En una arquitectura Cloud Native altamente disponible, se consideran varias capas clave: 1. **Zonas de disponibilidad (AZ)**: Múltiples zonas para tolerancia a fallos. 2. **Capa de conectividad**: Conexiones dedicadas al on-premise. 3. **Zonas pública y privada**: La zona pública expone servicios a internet, mientras que la privada aloja el backend. 4. **DNS y CDN**: Para optimizar el enrutamiento y mejorar la experiencia de usuario. 5. **Web Application Firewall (WAF)**: Para proteger contra ataques cibernéticos. 6. **API Gateway**: Facilita la comunicación entre servicios. Estas capas garantizan disponibilidad, escalabilidad y seguridad en la nube.
Una arquitectura Cloud Native altamente disponible debe incluir: 1. **Zonas de Disponibilidad (AZ)**: Distribuir los recursos en múltiples AZ para garantizar que, si una falla, las otras sigan operativas. 2. **Escalabilidad**: Implementar escalabilidad automática para manejar picos de tráfico sin afectar el rendimiento. 3. **Balanceo de Carga**: Usar balanceadores de carga para distribuir las solicitudes entre múltiples instancias de servicios. 4. **Redundancia**: Tener copias de seguridad de recursos críticos para recuperación ante fallos. 5. **Monitoreo y Alertas**: Implementar herramientas de monitoreo para detectar y responder rápidamente a incidentes. 6. **Web Application Firewall (WAF)**: Proteger la aplicación de ataques y garantizar un acceso seguro. Estos elementos son fundamentales para lograr resiliencia y disponibilidad en una arquitectura Cloud Native.
Kubernetes es una plataforma de orquestación de contenedores que automatiza el despliegue, escalado y gestión de aplicaciones en contenedores. Permite gestionar aplicaciones distribuidas en un clúster de servidores. En el contexto de arquitecturas Cloud Native, Kubernetes facilita la implementación y el manejo de microservicios, asegurando alta disponibilidad y escalabilidad. Además, es utilizado junto con otras tecnologías para crear entornos eficientes y dinámicos en la nube.
Que hermoso es ver una arquitectura cloud native agnostica <3 Muchas gracias
Como funciona el CDN: ![](https://static.platzi.com/media/user_upload/image-e8371b29-3aa5-44bd-88de-7c65396321e6.jpg)
Muy buena explicación, para dar una visión de una Arquitectura de Cloud.
El recurso que está en la clase no se puede abrir

Al querer abrir el link de las lecturas recomendadas marca un error 404, no se si podrían revisar ese detalle.

https://platzi.com/cursos/k8s/

Esto esta en la sección de Recursos.