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

¿Qué es Cloud Native?

12/27
Recursos

Aportes 20

Preguntas 4

Ordenar por:

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

Se nota que el profe le apasiona compartir su conocimiento, super entendible.

CLOUD NATIVE: Construir y ejecutar una aplicación tomando todas las ventajas de Cloud Computing. La aplicación está diseñada para utilizar la escalabilidad, elasticidad, seguridad y flexibilidad del proveedor de servicios Cloud.
CLOUD NATIVE vs. APP TRADICIONALES

  1. SISTEMA OPERATIVO: En CLOUD NATIVE el sistema operativo pasa a un segundo plano. Ej: desplegamos la APP en SERVERLESS (la responsabilidad pasa a el Cloud Provider). En ON-PREMISES tenemos dependencia del sistema operativo (Windows Server, Linux, Redhat, etc).
  2. DESARROLLO: ON-PREMISES (Waterfall development). CLOUD NATIVE (Continuous delivery) pensamos la aplicación para que sea automatizada: su despliegue, su servicios, sus nuevas features, etc. Esto nos da mucha AGILIDAD.
  3. ESCALABILIDAD: ON-PREMISES (manual) ampliamos los recursos en el datacenter. CLOUD NATIVE (automática) utilizando serverless, contenedores, etc.
  4. CAPACIDAD: ON-PREMISES (limitada), sobre aprovisionada(compre 10 servidores y estoy usando 2). CLOUD NATIVE (muy grande) el consumo y el costo es sobre lo utilizando.
  5. INMUTABILIDAD y PREDECIBLE: CLOUD NATIVE es inmutable porque es elástica ante picos de demanda y si tengo un error: fácilmente puedo desplegar el servicio por completo. El ON-PREMISES no tiene esa ventaja.

CLOUD NATIVE COMPUTING FOUNDATION (CNCF): es una fundación de software open-source que promueve la adopción de Cloud Native Computing.
Algunos proyectos (que podemos usar en CLOUD NATIVE):
ARGO: se utiliza para hacer despliegue de imágenes en Cluster de Kubernetes
ETCD y KUBERNETES son vitales para desplegar cualquier aplicación cotenedrizada y orquestarla.
FLUENTD y PROMETHEUS para toda la parte de observabilidad, monitoreo, trazas. PROMETHEUS se utiliza para las DB de series de tiempo.
HELM: nos ayuda a desplegar y automatizar despliegues de aplicaciones dentro de KUBERNETES
BENEFICIOS de una APLICACIÓN CLOUD NATIVE:

  1. INDEPENDENCIA: cada aplicación es totalmente independiente de las otras.
  2. RESILIENCIA: Puede soportar una caída de infraestructura.
  3. ESTANDARIZACIÓN: Para interoperabilidad (con otros proveedores o con un on-premises, por ejemplo) y portabilidad (que se pueda mudar a otro cloud provider) de nuestra aplicación, están basadas en OPEN-SOURCE.
  4. AGILIDAD: Flexibilidad en sus despliegues y usualmente más pequeñas (de forma RÁPIDA).
  5. AUTOMATIZACIÓN: utilización de prácticas DevOps para despliegues. 1) automatizar el despliegue de la infraestructura (TerraForm) pipelines. 2) Pipelines para automatizar el despliegue de la APP en la APPSTORE y PLAY STORE. 3) Automatizar el despliegue de imágenes en las funciones y los contenedores. Pipelines para el backend de nuestra aplicación.
  6. 0 Downtime: utilizando las ventajas de la nube la hago siempre operativa a pesar de los despliegues que haga, de las nuevas features y servicios, o de los cambios que haga sobre la misma. Esto marca ventajas en el mercado.
![](https://static.platzi.com/media/user_upload/image-23ee927c-58d1-4f67-8cd2-1f5c981cab7b.jpg)Wow
## ¿Qué es Cloud Native? **Cloud Native** es una aproximación al desarrollo y despliegue de aplicaciones que están diseñadas específicamente para aprovechar las ventajas del modelo de computación en la nube. Las aplicaciones cloud native son altamente escalables, resilientes, manejables y observables. Estas características permiten a las organizaciones responder rápidamente a cambios en el mercado y a las demandas de los usuarios. ## Beneficios de las Aplicaciones Cloud Native * **Escalabilidad**: Capacidad para escalar horizontalmente añadiendo más instancias de microservicios en lugar de aumentar la capacidad de una sola máquina. * **Resiliencia**: Las aplicaciones están diseñadas para tolerar fallos en los componentes individuales sin afectar la disponibilidad del sistema completo. * **Agilidad**: La modularidad y automatización permiten una rápida iteración y despliegue de nuevas funcionalidades. * **Portabilidad**: Los contenedores aseguran que las aplicaciones se ejecuten de manera consistente en diferentes entornos, ya sea en la nube, en las instalaciones o en un entorno híbrido. * **Eficiencia Operacional**: La automatización reduce la carga operativa y mejora la eficiencia en la gestión de la infraestructura y las aplicaciones. ## Ejemplos de Aplicaciones Cloud Native 1. **Netflix**: Utiliza una arquitectura de microservicios desplegada en la nube para ofrecer su servicio de streaming con alta disponibilidad y escalabilidad. 2. **Uber**: Emplea contenedores y microservicios para manejar grandes volúmenes de datos y solicitudes de usuarios en tiempo real. 3. **Spotify**: Usa microservicios y DevOps para proporcionar una experiencia musical fluida y personalizable a sus usuarios. El enfoque cloud native transforma la manera en que se desarrollan, despliegan y gestionan las aplicaciones, aprovechando al máximo las capacidades de la nube para lograr mayor agilidad, resiliencia y eficiencia operativa. Adopción de microservicios, contenedores, IaC y prácticas de DevOps son componentes esenciales para cualquier organización que desee innovar rápidamente y mantenerse competitiva en un entorno de mercado en constante cambio.

Excelente curso, el profesor trasnmite muy bien el conocimiento.

Otros proyectos de la Cloud![](https://static.platzi.com/media/user_upload/image-7e6a1a17-9e70-4aa8-b770-a1ef3a82e0d7.jpg) Native Foundation ![]()![]()
Un pequeño resumen hasta ahora. La diferencia entre "cloud computing" y "cloud native" radica en el enfoque y la arquitectura de las aplicaciones y servicios en la nube. ### Cloud Computing El término "cloud computing" se refiere al uso de recursos de computación (como servidores, almacenamiento, bases de datos, redes, software, etc.) que se proporcionan a través de Internet (la "nube"). Esto puede incluir diferentes modelos de servicio: 1. **IaaS (Infrastructure as a Service)**: Provisión de infraestructura básica, como servidores virtuales. 2. **PaaS (Platform as a Service)**: Provisión de plataformas completas que permiten a los desarrolladores construir, desplegar y gestionar aplicaciones sin preocuparse por la infraestructura subyacente. 3. **SaaS (Software as a Service)**: Aplicaciones que se entregan por Internet y se utilizan a través de una suscripción. En este modelo, las aplicaciones pueden estar diseñadas de forma tradicional y ser simplemente migradas a la nube, pero no necesariamente aprovechan completamente las capacidades de la nube. ### Cloud Native Por otro lado, "cloud native" se refiere a un enfoque de desarrollo y despliegue de aplicaciones que aprovecha al máximo las ventajas de la computación en la nube. Las aplicaciones cloud native están diseñadas desde el inicio para operar en entornos de nube y suelen incluir características como: 1. **Microservicios**: Arquitectura que descompone las aplicaciones en componentes individuales, que pueden desarrollarse, desplegarse y escalarse de forma independiente. 2. **Contenedores**: Las aplicaciones se empaquetan en contenedores (como Docker) para facilitar su despliegue y portabilidad. 3. **Escalabilidad y resiliencia**: Las aplicaciones están diseñadas para escalar dinámicamente y manejar fallos sin tiempos de inactividad. 4. **Despliegue continuo**: Integración y entrega continua (CI/CD) para permitir frecuencias de despliegue más rápidas. 5. **Uso de servicios gestionados**: Aprovechar servicios en la nube como bases de datos o colas de mensajes, en lugar de gestionar la infraestructura uno mismo. En resumen, mientras que el cloud computing se centra en el acceso a recursos a través de la nube, cloud native se enfoca en cómo se diseñan, desarrollan y despliegan las aplicaciones para aprovechar al máximo esos recursos.

Proyectos CNCF

\*\*Cloud Native: Una Nueva Forma de Construir Aplicaciones\*\* El término \*cloud native\* se refiere a un enfoque moderno para el desarrollo y operación de aplicaciones que están diseñadas específicamente para aprovechar al máximo las capacidades de la nube. Este modelo se basa en principios como la escalabilidad, la resiliencia y la agilidad, permitiendo que las aplicaciones se adapten rápidamente a las demandas cambiantes. Las aplicaciones cloud native están construidas utilizando tecnologías como contenedores (por ejemplo, Docker), orquestadores (como Kubernetes) y microservicios, lo que permite que cada componente funcione de manera independiente y sea fácilmente escalable o modificable sin afectar al sistema completo. \*\*Microservicios y Arquitectura Modular\*\* Una característica clave del enfoque cloud native es el uso de arquitecturas basadas en microservicios. En lugar de construir aplicaciones monolíticas, donde todos los componentes están interconectados, las aplicaciones cloud native dividen su funcionalidad en pequeños servicios independientes que pueden desarrollarse, implementarse y escalar por separado. Esto no solo mejora la flexibilidad y la velocidad de desarrollo, sino que también facilita la detección y corrección de errores. Además, este diseño modular permite que los equipos de desarrollo trabajen de manera más ágil y colaborativa, acelerando los ciclos de lanzamiento. \*\*Infraestructura como Código y Automatización\*\* El paradigma cloud native también abarca prácticas como la Infraestructura como Código (IaC) y la automatización continua. La IaC permite definir y gestionar la infraestructura de la aplicación mediante código, lo que garantiza consistencia, reproducibilidad y control de versiones. Al combinarlo con herramientas de integración y entrega continuas (CI/CD), las organizaciones pueden automatizar procesos como pruebas, despliegues y monitoreo, reduciendo significativamente el tiempo y los errores humanos. Esta automatización es esencial para mantener la eficiencia y la competitividad en entornos dinámicos y exigentes. \*\*Resiliencia y Escalabilidad en la Nube\*\* Finalmente, las aplicaciones cloud native están diseñadas para ser inherentemente resilientes y escalables. Gracias a tecnologías como los contenedores y las plataformas de orquestación, estas aplicaciones pueden adaptarse automáticamente a picos de demanda o fallos en el sistema, redistribuyendo recursos o reanudando servicios sin intervención manual. Este enfoque garantiza que las aplicaciones estén siempre disponibles y funcionen de manera óptima, incluso en situaciones imprevistas. En resumen, ser cloud native significa adoptar una mentalidad de innovación constante, donde las aplicaciones están preparadas para evolucionar junto con las necesidades del negocio y las capacidades tecnológicas emergentes.
Un pipeline es un conjunto de herramientas y procesos automatizados que permiten gestionar la integración y entrega de software de manera continua. En el contexto de Cloud Native, un pipeline se utiliza para automatizar el despliegue de aplicaciones en la nube, desde la codificación y pruebas hasta la producción. Esto incluye prácticas de integración continua (CI) y entrega continua (CD), lo que mejora la agilidad y eficiencia en el desarrollo de software. Esto es fundamental para mantener una alta disponibilidad y reducir el tiempo de inactividad en aplicaciones.
La inmutabilidad de la aplicación se refiere a la capacidad de una aplicación de no cambiar una vez desplegada. Si ocurre un error o se requiere una actualización, en lugar de modificar la versión existente, se despliega una nueva instancia de la aplicación. Esto permite que la aplicación sea más predecible y facilita la recuperación de errores, ya que puedes simplemente volver a desplegar la versión anterior. En un entorno Cloud Native, esto se potencia gracias a la infraestructura que soporta este enfoque, garantizando flexibilidad y resiliencia.
interesante
Los del Banco Bancolombia no creo que tengan on-premise para alojar sus aplicaciones entonces con tanta crítica a la estabilidad de sus servicios, que clase de cloud tendran...
que son pipelines? ?
Excelente el tema de Cloude Native

Waterfall development: desarrollo en cascada.

![](https://static.platzi.com/media/user_upload/Screenshot_1-aaaf9101-dfae-4006-a691-5093d8cdfb12.jpg)
muy entendible, excelente dominio del tema