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

Microservicios, funciones y contenedores

5/27
Recursos

Aportes 19

Preguntas 11

Ordenar por:

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

-Infraestructura como código: Permite gestionar y desplegar la infraestructura en un proveedor de servicios de nube a través de código, en vez de hacerlo con procesos manuales.

-Función: Es un entorno de ejecución serverless para ejecutar código sin la necesidad de administrar un servidor.

**-Contenedor Docker: ** Contenedor ejecutable, independiente que tiene todo lo necesario para ejecutar una aplicación.

-Microservicio: Un concepto en el cual una aplicación se construye como una serie de pequeños servicios.

  • Funciones (Computación sin servidor): Las funciones, también conocidas como computación sin servidor (serverless), son unidades de ejecución de código que se activan en respuesta a eventos específicos, como solicitudes HTTP, cambios en bases de datos, cargas de archivos, entre otros.
  • Microservicios: En lugar de construir una aplicación monolítica única, los microservicios dividen la funcionalidad en componentes más pequeños e independientes, conocidos como microservicios. Cada microservicio es responsable de una tarea específica y se ejecuta de manera autónoma. Los microservicios también ofrecen la ventaja de permitir actualizaciones y despliegues independientes de cada componente, lo que agiliza el ciclo de desarrollo.
  • Contenedores: Los contenedores son entornos aislados y ligeros que encapsulan una aplicación y sus dependencias, incluidas bibliotecas y configuraciones, en un único paquete. Utilizan tecnologías como Docker para asegurarse de que la aplicación se ejecute de manera consistente en diferentes entornos, independientemente de las diferencias entre sistemas operativos o configuraciones subyacentes.

Conceptos de básicos de la nube:

  • INFRAESTRUCTURA COMO CÓDIGO: Permite gestionar y desplegar la infraestructura en un proveedor de servicios de nube a través de código, en vez de hacerlo por procesos manuales. El servidor que vamos a desplegar con su almacenamiento base de datos para PlatziWalet lo vamos a construir a través de código. La infraestructura la debemos pensar como código. Podemos re-utilizarla (templates).

  • FUNCIÓN: es un entorno de ejecución SERVERLESS para ejecutar código sin la necesidad de administrar un servidor. EL CLOUD PROVIDE se encarga de la administración y nos provee la función. AWS (lambda functions), AZURE (azure functions), GOOGLE CLOUD (cloud function). Aprender a desarrollar basado en funciones.
    La función siempre está dormida hasta que un evento la dispara. Evento: suben foto usuario, entonces función minimiza foto.

  • CONTENEDOR DOCKER: contenedor ejecutable, independiente que tiene todo lo necesario para ejecutar una aplicación.

  • MICROSERVICIO: un concepto en el cual una aplicación se construye como una serie de pequeños servicios. Ejemplo: microservicio de pagos. Este microservicio de “pagos” se tiene que conectar con otro microservicio de “consulta del saldo”. Microservicios de PlatziWalet: pagos y cobros (pago a personas), formulario y promoción (suscripciones y pagos), generar y escanear (código QR), recarga y retiro (retiro y consignación).

En AWS, las funciones son unidades de código que se ejecutan en respuesta a un evento. Las funciones pueden ser utilizadas para implementar microservicios, tareas cron, procesamiento de eventos, y mucho más.

En el contexto de los microservicios, las funciones se pueden utilizar para implementar la lógica de negocio de un microservicio. Las funciones pueden ser escritas en una variedad de lenguajes de programación, incluidos Python, Java, Node.js, y Go.

Características de las funciones en AWS

Las funciones en AWS tienen las siguientes características:

  • Independientes: Las funciones son independientes entre sí, lo que significa que pueden ejecutarse de forma independiente.
  • Event-driven: Las funciones se ejecutan en respuesta a un evento.
  • Escalables: Las funciones se pueden escalar de forma automática para adaptarse al tráfico.
  • Costo por uso: Las funciones solo se cobran cuando se ejecutan.

Beneficios de las funciones en AWS

Las funciones en AWS ofrecen una serie de beneficios, entre los que se incluyen:

  • Flexibilidad: Las funciones pueden ser utilizadas para implementar una variedad de tareas.
  • Escalabilidad: Las funciones se pueden escalar de forma automática para adaptarse al tráfico.
  • Costo por uso: Las funciones solo se cobran cuando se ejecutan.

Ejemplo de función en AWS

Un ejemplo de función en AWS es una función que se ejecuta en respuesta a una solicitud HTTP. Esta función podría utilizarse para implementar un microservicio que proporciona información sobre un producto.

Conclusión

Las funciones son una herramienta poderosa que se puede utilizar para implementar microservicios y otras tareas en AWS. Las funciones son independientes, escalables y rentables.

Funciones en microservicios AWS

Las funciones se pueden utilizar en microservicios AWS de varias maneras. Una forma común de utilizar funciones es para implementar la lógica de negocio de un microservicio. Por ejemplo, una función podría utilizarse para procesar una solicitud de pago o para generar un informe.

Otra forma de utilizar funciones es para implementar tareas cron. Las tareas cron se ejecutan de forma periódica, lo que las hace ideales para tareas como la actualización de datos o el envío de correos electrónicos.

Las funciones también se pueden utilizar para procesar eventos. Los eventos son desencadenados por acciones externas, como la creación de un nuevo usuario o la actualización de un producto. Las funciones se pueden utilizar para procesar estos eventos y tomar las medidas adecuadas.

Herramientas y servicios de AWS para funciones

AWS ofrece una variedad de herramientas y servicios para ayudar a los desarrolladores a crear y administrar funciones. Estas herramientas incluyen:

  • AWS Lambda: AWS Lambda es un servicio de computación sin servidor que permite a los desarrolladores ejecutar código sin tener que preocuparse por la administración de servidores.
  • AWS API Gateway: AWS API Gateway es un servicio que permite a los desarrolladores crear y administrar APIs.
  • AWS CodePipeline: AWS CodePipeline es un servicio que automatiza el flujo de trabajo de desarrollo, implementación y lanzamiento.
  • AWS CodeDeploy: AWS CodeDeploy es un servicio que automatiza el despliegue de aplicaciones en producción.

Conclusiones

Las funciones son una herramienta poderosa que se puede utilizar en microservicios AWS para implementar una variedad de tareas. Las funciones son independientes, escalables y rentables.

No ubico el curso terraform que menciona, alguién lo esta llevando? Gracias!

En AWS, un microservicio es un componente independiente de una aplicación que se ejecuta en su propio proceso y se comunica con otros microservicios a través de una API. Los microservicios son una forma de organizar el software en unidades pequeñas y modulares que son fáciles de desarrollar, implementar y escalar.

En AWS, los microservicios se pueden implementar en una variedad de servicios, incluidos Amazon ECS, Amazon EC2, Amazon Lambda y Amazon Elastic Beanstalk. AWS también ofrece una variedad de herramientas y servicios para ayudar a los desarrolladores a crear y administrar microservicios, como Amazon API Gateway, AWS CodePipeline y AWS CodeDeploy.

Características de los microservicios en AWS

Los microservicios en AWS tienen las siguientes características:

  • Independencia: Los microservicios son independientes entre sí, lo que significa que pueden desarrollarse, implementarse y escalarse de forma independiente.
  • Cohesión: Los microservicios están diseñados para realizar una única función o tarea.
  • Comunicación: Los microservicios se comunican entre sí a través de APIs.
  • Escalabilidad: Los microservicios se pueden escalar de forma independiente, lo que permite que las aplicaciones se adapten al tráfico fluctuante.

Beneficios de los microservicios en AWS

Los microservicios en AWS ofrecen una serie de beneficios, entre los que se incluyen:

  • Mejor flexibilidad: Los microservicios permiten a los desarrolladores implementar cambios en partes específicas de una aplicación sin afectar a otras partes.
  • Mejor escalabilidad: Los microservicios se pueden escalar de forma independiente, lo que permite que las aplicaciones se adapten al tráfico fluctuante.
  • Mejor mantenibilidad: Los microservicios son más fáciles de mantener que las aplicaciones monolíticas, ya que cada microservicio es una unidad independiente.

Ejemplo de microservicio en AWS

Un ejemplo de microservicio en AWS es un servicio de procesamiento de pagos. Este servicio podría implementarse como un contenedor de Docker que se ejecuta en Amazon ECS. El servicio se comunicaría con otros microservicios, como un servicio de autenticación y un servicio de inventario, a través de APIs.

Conclusión

Los microservicios son una forma eficaz de organizar el software en AWS. Los microservicios ofrecen una serie de beneficios, entre los que se incluyen la flexibilidad, la escalabilidad y la mantenibilidad.

### 1. **Infraestructura como Código (IaC):** **Infraestructura como Código** se refiere a la práctica de gestionar y provisionar infraestructura de TI utilizando scripts y archivos de definición, en lugar de configurar hardware físico o utilizar interfaces gráficas para configurar servidores y sistemas. Estos scripts y definiciones están escritos en lenguajes específicos y se pueden versionar, compartir y gestionar de la misma manera que el código fuente del software. Herramientas como Terraform y AWS CloudFormation son ejemplos populares que permiten a los desarrolladores y administradores describir la infraestructura deseada y luego crearla automáticamente. ### 2. **Serverless:** **Serverless** no significa que no haya servidores, sino que los desarrolladores no necesitan preocuparse por administrar servidores subyacentes. Es un modelo de computación en la nube donde los proveedores de servicios en la nube (como AWS Lambda, Google Cloud Functions y Azure Functions) gestionan automáticamente la infraestructura para ejecutar código sin necesidad de provisionar o administrar servidores. Los desarrolladores solo necesitan cargar su código y especificar cuándo y cómo debe ejecutarse, y el proveedor de servicios se encarga del resto. Este modelo es útil para aplicaciones que tienen picos de carga intermitentes, ya que solo pagas por el tiempo que se ejecuta el código. ### 3. **Contenedores:** **Contenedores** son unidades ligeras y portátiles que encapsulan aplicaciones y sus dependencias, lo que permite ejecutarlas en cualquier entorno sin problemas. Los contenedores proporcionan una forma estandarizada y coherente de empaquetar aplicaciones y sus dependencias, lo que facilita la implementación y garantiza que una aplicación se ejecute de la misma manera en cualquier entorno. Docker es la plataforma de contenedores más popular que permite a los desarrolladores crear, implementar y ejecutar aplicaciones en contenedores. ### 4. **Microservicios:** **Microservicios** es un enfoque arquitectónico para desarrollar una aplicación como un conjunto de servicios pequeños e independientes que se comunican entre sí a través de API. Cada microservicio se centra en una tarea específica o un conjunto de tareas relacionadas. Esta arquitectura permite que las aplicaciones sean altamente escalables, flexibles y fáciles de mantener y desplegar. Cada microservicio puede ser desarrollado, desplegado y escalado de forma independiente, lo que facilita la innovación y la iteración continua en una aplicación. La comunicación entre los microservicios puede ser síncrona o asíncrona, según los requisitos específicos de la aplicación.
Me gustaría saber cuál es el curso de Terraform
No encuentro el curso de Terraform alguien sabe donde esta
### Microservicios Los microservicios son una arquitectura de software que estructura una aplicación como un conjunto de servicios pequeños, independientes y comunicantes. Cada microservicio es responsable de una funcionalidad específica y se puede desplegar y escalar de manera independiente. #### **Características Clave** * **Descentralización**: Los microservicios permiten una gestión descentralizada de datos y decisiones. * **Despliegue Independiente**: Cada microservicio puede ser desplegado de forma independiente. * **Escalabilidad**: Facilita la escalabilidad horizontal, permitiendo escalar solo las partes necesarias. * **Tolerancia a Fallos**: Aislamiento de fallos, donde un fallo en un microservicio no afecta a toda la aplicación #### **Ejemplos de Uso** * **Aplicaciones Web Escalables**: Como sitios de comercio electrónico que manejan diferentes servicios para productos, pagos y usuarios. * **Servicios Bancarios**: Que requieren modularización para diferentes operaciones como transacciones, gestión de cuentas, etc. # Funciones Las funciones, en el contexto de la computación en la nube, suelen referirse a "Functions as a Service" (FaaS). Es un modelo de ejecución sin servidor donde el código se ejecuta en respuesta a eventos y es gestionado completamente por un proveedor de nube. #### **Características** * **Ejecución Basada en Eventos**: Las funciones se activan en respuesta a eventos específicos. * **Escalado Automático**: Escalan automáticamente en función de la demanda. * **Cero Administración de Infraestructura**: Los desarrolladores solo se centran en el código y la lógica. # Contenedores Los contenedores son una tecnología de virtualización a nivel de sistema operativo que permite empaquetar una aplicación y sus dependencias en un solo artefacto, asegurando que se ejecute de manera consistente en cualquier entorno. #### **Características** * **Portabilidad**: Los contenedores pueden ejecutarse en cualquier entorno que soporte el contenedor. * **Aislamiento**: Cada contenedor se ejecuta en un entorno aislado. * **Ligereza**: Más ligeros que las máquinas virtuales, ya que comparten el kernel del SO. ### Orquestación de Contenedores * **Kubernetes**: Plataforma de orquestación de contenedores que automatiza el despliegue, escalado y operaciones de contenedores. * **Docker Swarm**: Herramienta de orquestación de Docker para gestionar clústeres de Docker. #### Funciones * **AWS Lambda**: Ejecución de código en respuesta a eventos sin necesidad de administrar servidores. * **Azure Functions**: Ejecución de scripts y aplicaciones basadas en eventos en la nube de Azure. * **Google Cloud Functions**: Funciones gestionadas y escalables en la nube de Google.
Buenas alguien podría decir donde se encuentra el curso de terraform en platzi, por más que busco no lo veo.
lo único que me preocupa con respecto a la arquitectura basada en microservicios es la latencia resultante de todas las comunicaciones necesarias entre los request de los microservicios.
¿Qué es herramienta agnóstica?
Gran resumen de conceptos.

osea que las funciones como lambda son para crear transformadores u ordenadores pre programados para ahorrarnos trabajo futuro?

Podría un plugin de Wordpress como Woocommerce considerarse un microservicio? Qué tal una extensión de VSC, sería también una microservicio?

Muy clara y didactica la explicación. Me da confianza la forma de explicar y sobre como lleva la ruta de formación. Muy bien.

## ¿Qué es la infraestructura como código? <https://aws.amazon.com/es/what-is/iac/>
Se podría interpretar los microservicios como cada una de las opciones disponibles en la app, dependiendo de qué tan aislada es la operación, como pagos y retiros, suscripciones y pagos, etc. Es más, hasta pagos, como tal, puede ser un microservicio que interactúa con otro, como el que indica el profesor de consulta de saldo. Similar a cuando es retiros.