No tienes acceso a esta clase

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

Contenedores de software

4/16
Recursos

El propósito de un contenedor es crear un paquete de tu programa y todas sus librerías y dependencias con las versiones específicas con las que has trabajado, para producir una imagen que pueda ser ejecutada en cualquier máquina.

Un problema común del desarrollo de software es utilizar distintas versiones de diferentes librerías/lenguajes de programación/programas. Docker nos permite crear contenedores para resolver este problema.

Amazon ECS

Amazon ECS es un servicio de contenedores, donde puedes implementar tus imágenes en contenedores en AWS. Cuando corras tus contenedores en AWS, no notarás diferencia entre tu máquina local y el entorno de AWS.

Contribución creada por Ciro Villafraz.

Aportes 16

Preguntas 1

Ordenar por:

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

Cotenedores

Programador Común, escribe un fragmento de código

ejemplo: Código que usa una librería (http)

// create a web server
const http = require( 'http');
const requestListener = function (request, response) {
  response.writeHead( 200, { "Content-Type': 'text/plain' });
  response.end('Hello World\n');
};
const server = http.createServer(requestListener);
server.listen(8080);

Un problema puede ser que hay diferentes versiones de la misma librería

{
	"name": "my-awesome-package",
	dependencies: {
		"axis": "0.21.0",
		"express" : "4.17.1",
          }
}
express --version
4.16.1

Los lenguajes de programación también pueden tener diferentes versiones (node.js, python…) y esto puede complicarse si cada programador utiliza una versión diferente

Docker

El propósito de un contenedor es crear un paquete de tu programa y todas sus librerías y dependencias que utiliza con las versiones especificadas con las que has estado desarrollando. Para producir una imagen que pueda ser ejecutada en cualquier ordenador alrededor del mundo
imagenes
Amazon ECS, es el servidor de contenedor de contenidos, donde puedes implementar tus imágenes en contenedores en AWS

esta fue mi semana de aprender docker y me causa gracia que todos los cursos en español mencionan al chapulin colorado jahajkjahaj

Docker colabora con AWS para ayudar a los desarrolladores a acelerar la entrega de aplicaciones modernas a la nube. Esta colaboración ayuda a los desarrolladores a utilizar Docker Compose y Docker Desktop para aprovechar el mismo flujo de trabajo local que utilizan hoy a fin de implementar sin inconvenientes aplicaciones en Amazon ECS y en AWS Fargate.

Información resumida de esta clase
#EstudiantesDePlatzi

  • Un problema común que podemos tener es que cuando estemos desarrollando nuestro proyecto utilicemos librerías y dependencias que necesitemos en nuestra computadora, pero cuando este proyecto este corriendo en otra computadora es muy probable que las dependencias y librerías no estén correctamente actualizadas

  • Para solucionar este problema podemos usar Docker

  • El propósito de un contenedor es crear un paquete del proyecto donde estarán todas las librerías y dependencias que necesita junto con sus versiones para que pueda se ejecutado en cualquier computadora

  • Luego de crear un contenedor lo puedo implementar en cualquier lugar

  • Amazon Elastic Container Service: Es un servicio de contenedor de contenido donde puedo implementar la imagen del proyecto

Para aquellos que desean profundizar en docker o DevOps en AWS

(https://aws.amazon.com/es/getting-started/learning-path-devops-engineer/?e=gs2020&p=gsrc)

Los cursos de docker y kubernetes están caídos ![](https://static.platzi.com/media/user_upload/image-185d1283-90b7-4059-b936-830e43a8284a.jpg) ![](https://static.platzi.com/media/user_upload/image-f571a840-3f58-4701-8757-e17a4ebb1190.jpg) Como acceder a esos recursos?

En otras palabras, como se mencionó al inicio, Elastic Container Services (ECS), es un servicio para correr contenedores confiables y escalables. Ej. Mediante la utilización de Docker, donde estará incluido todas las librerías y dependencias que formarán parte del proyecto que permitirá ejecutar desde cualquier computadora, e implementar en cualquier lugar.

### **🚀 Contenedores de Software: Concepto y Uso en AWS** Los **contenedores de software** son una forma de empaquetar aplicaciones junto con sus dependencias para que se ejecuten de manera **consistente en cualquier entorno**. ✅ **Comparación con Máquinas Virtuales (VMs)** CaracterísticaContenedoresMáquinas Virtuales (VMs)Arranque rápido✅ Milisegundos❌ MinutosUso de recursos✅ Ligero❌ PesadoPortabilidad✅ Alta❌ Depende del hipervisorEscalabilidad✅ Fácil❌ Más difícil Los contenedores usan el **kernel del sistema operativo** y comparten recursos, lo que los hace más eficientes que las VMs. ## **🔹 Tecnologías de Contenedores** Las principales tecnologías de contenedores incluyen: 1️⃣ **Docker** – Plataforma para construir, ejecutar y gestionar contenedores. 2️⃣ **Kubernetes (K8s)** – Orquestador de contenedores que permite escalado y administración automatizada. 3️⃣ **Podman** – Alternativa sin daemon a Docker. ## **🔹 Contenedores en AWS** AWS ofrece varios servicios para manejar contenedores: ### **1. Amazon ECS (Elastic Container Service)** ✅ Orquestación de contenedores sin necesidad de gestionar servidores. ✅ Soporta Docker. ✅ Se integra con **AWS Fargate** para ejecutar contenedores sin administrar infraestructura. ### **2. AWS Fargate** ✅ Ejecución de contenedores **sin servidores**. ✅ AWS gestiona la infraestructura automáticamente. ✅ Paga solo por los recursos usados. ### **3. Amazon EKS (Elastic Kubernetes Service)** ✅ Servicio Kubernetes totalmente gestionado en AWS. ✅ Ideal para arquitecturas de **microservicios**. ✅ Integración con **EC2, Fargate y AWS Lambda**. ### **4. Amazon Lightsail Containers** ✅ Servicio simple para desplegar contenedores. ✅ Ideal para pequeñas aplicaciones y entornos de prueba. ## **🔹 Ejemplo: Ejecutar un Contenedor en AWS ECS** 1️⃣ **Crear una imagen Docker** y subirla a Amazon Elastic Container Registry (ECR): docker build -t mi-app . docker tag mi-app:latest 123456789012.dkr.ecr.us-east-1.amazonaws.com/mi-app docker push 123456789012.dkr.ecr.us-east-1.amazonaws.com/mi-app 2️⃣ **Crear un cluster en ECS**. 3️⃣ **Definir una tarea ECS** y usar la imagen de ECR. 4️⃣ **Ejecutar el servicio ECS** con balanceo de carga. ## **🔹 Casos de Uso de Contenedores** ✅ Aplicaciones escalables en la nube ✅ Microservicios ✅ CI/CD con Jenkins y GitHub Actions ✅ Big Data y Machine Learning ✅ Migración de aplicaciones monolíticas a la nube
minuto 3.33, solo dijiste computador, era "computador o computadora"
Pero ahora en la actualidad se come un paquete de código y se lo presenta a ChatGPT y se le da el Prompt correcto para que ChatGPT lo actualice todo el paquete de código ya en la actualidad existen compañías que usan ChatGPT para que les actualicen los códigos que están sin actualizar.
# Ventajas de Utilizar Contenedores de Software: * **Portabilidad**: Los contenedores permiten que las aplicaciones se ejecuten de manera consistente en diferentes entornos, lo que facilita la implementación y migración. * **Aislamiento**: Cada contenedor tiene su propio entorno aislado, lo que mejora la seguridad y evita conflictos entre aplicaciones. * **Eficiencia de Recursos**: Al compartir recursos del sistema operativo host, los contenedores son más eficientes en términos de consumo de recursos que las máquinas virtuales. * **Desarrollo Ágil**: Facilitan la entrega continua y la integración continua al proporcionar entornos de desarrollo consistentes y reproducibles.

Una gran ventaja del uso de contenedores, es que se estandariza el entorno de trabajo.

Sin importar si se usa MacOS, Windows o Linux. Por ende, el software correra muy similar en tu computadora a como correrá en producción.

O resuelve el gran problema de cuando alguien mas se integra al equipo de desarrollo, con solo tener una copia del código y ejecutar un comando ya tiene el mismo entorno que todos los demás.

Esto mejora cuando el código es versionado, pero eso es de otro curso.

Me queda claro, se puede construir “paquetes” reutilizables de codigo, pero hay que actualizar para que pueda seguir siendo utilizado.

Uff, que gran explicación. No puedo creer que solo en 4 minutos me haya quedado claro lo que es Docker.