Skip to content

Commit

Permalink
Create Devops Projects
Browse files Browse the repository at this point in the history
  • Loading branch information
ssinuco committed Aug 6, 2024
1 parent b5879a8 commit ee002b5
Show file tree
Hide file tree
Showing 10 changed files with 961 additions and 0 deletions.
20 changes: 20 additions & 0 deletions learning-objectives/data.yml
Original file line number Diff line number Diff line change
Expand Up @@ -486,6 +486,26 @@ data-analytics:
- analysis-report
- analysis-presentation

devops-computing-cloud-services:
- concepts-cloud-infrastructure-virtualization
- setting-up-runtime-environment
- monitoring-application-virtual-machine

devops-docker:
- docker-container-image
- dockerfile
- docker-commands

devops-container-cloud-services:
- orchestration-system-components
- configure-container-task-definitions

devops-kubernetes:
- kubernetes-use-cases
- kubernetes-components
- kubernetes-yaml-files
- kubectl-commands

# New OAs since UXD006
agile-planning:
- scope
Expand Down
100 changes: 100 additions & 0 deletions learning-objectives/intl/es.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2003,6 +2003,106 @@ ai-prompting/open-ai-api:
- title: "The chat completion object - API Reference - OpenAI API"
url: https://platform.openai.com/docs/api-reference/chat/object

devops-computing-cloud-services:
title: Servicios de computación en la nube
description: Servicios de computación en la nube como AWS EC2 y Azure VM

devops-computing-cloud-services/concepts-cloud-infrastructure-virtualization:
title: Comprender los conceptos fundamentales de la infraestructura en la nube y la virtualización
description: Describir los conceptos básicos de la infraestructura en la nube y cómo la virtualización permite la creación y gestión de máquinas virtuales
links:
- title:
url:

devops-computing-cloud-services/setting-up-runtime-environment:
title: Configurar el entorno de ejecución de una aplicación en una máquina virtual
description: Instalar y configurar un sistema operativo y otros servicios esenciales en una máquina virtual para ejecutar una aplicación
links:
- title:
url:

devops-computing-cloud-services/monitoring-application-virtual-machine:
title: Monitorear la ejecución de una aplicación en una máquina virtual
description: Utilizar herramientas de monitoreo para supervisar la ejecución de una aplicación en una máquina virtual
links:
- title:
url:

devops-docker:
title: Docker
description: Docker permite empaquetar una aplicación junto con todas sus dependencias (como bibliotecas, configuraciones y archivos necesarios) en una unidad estándar conocida como contenedor

devops-docker/docker-container-image:
title: Explicar qué es Docker, Docker container y Docker image
description: Explicar qué es Docker, Docker container y Docker image
links:
- title:
url:

devops-docker/dockerfile:
title: Comprender y usar las intrucciones básicas de un Dockerfile para definir una Docker image, como `FROM`, `WORKDIR`, `COPY`, `RUN` y `EXPOSE`
description: Comprender y usar las intrucciones básicas de un Dockerfile para definir una Docker image, como `FROM`, `WORKDIR`, `COPY`, `RUN` y `EXPOSE`
links:
- title:
url:

devops-docker/docker-commands:
title: Ejecutar comandos básicos de Docker para gestionar el ciclo de vida de un contenedor e imagen e interactuar con contenedores
description: Usar comandos como `docker build`, `docker run`, `docker ps`, `docker stop`, `docker rm`, `docker pull` y `docker push`
links:
- title:
url:

devops-container-cloud-services:
title: Servicio de orquestación de contenedores
description: Servicios de orquestación de contenedores en la nube como AWS ECS y Azure Container Apps

devops-container-cloud-services/orchestration-system-components:
title: Describir los componentes clave de un sistema de orquestación, como clústeres, tareas, servicios y balanceadores de carga
description: Describir los componentes clave de un sistema de orquestación, como clústeres, tareas, servicios y balanceadores de carga
links:
- title:
url:

devops-container-cloud-services/configure-container-task-definitions:
title: Crear y configurar definiciones de contenedor y tareas que incluyan todos los componentes necesarios para ejecutar un aplicación, como imágenes Docker, variables de entorno, volúmenes y configuraciones de red
description: Crear y configurar definiciones de contenedor y tareas que incluyan todos los componentes necesarios para ejecutar un aplicación, como imágenes Docker, variables de entorno, volúmenes y configuraciones de red
links:
- title:
url:

devops-kubernetes:
title: Kubernetes
description: Kubernetes es una herramienta que facilita la gestión de aplicaciones contenedorizadas al automatizar el despliegue, el escalado y la recuperación ante fallos

devops-kubernetes/kubernetes-use-cases:
title: Explicar que es Kubernetes y describir sus casos de uso y las necesidades que soluciona
description: Explicar que es Kubernetes y describir sus casos de uso y las necesidades que soluciona
links:
- title:
url:

devops-kubernetes/kubernetes-components:
title: Describir la arquitectura de Kubernetes y sus componentes clave, como nodos, pods, servicios, deployments y namespaces
description: Describir la arquitectura de Kubernetes y sus componentes clave, como nodos, pods, servicios, deployments y namespaces
links:
- title:
url:

devops-kubernetes/kubernetes-yaml-files:
title: Crear y configurar archivos de manifiesto de Kubernetes (YAML) para definir recursos como deployments, services y configMaps necesarios para desplegar una API.
description: Crear y configurar archivos de manifiesto de Kubernetes (YAML) para definir recursos como deployments, services y configMaps necesarios para desplegar una API.
links:
- title:
url:

devops-kubernetes/kubectl-commands:
title: Utilizar comandos de kubectl para gestionar recursos del clúster, escalar aplicaciones manualmente y automatizar el escalado basado en métricas de rendimiento
description: Utilizar comandos de kubectl para gestionar recursos del clúster, escalar aplicaciones manualmente y automatizar el escalado basado en métricas de rendimiento
links:
- title:
url:

data-analytics:
title: Análisis de datos
description: Validar hipótesis mediante el análisis de los datos, y proporcionar recomendaciones estratégicas basadas en tus hallazgos
Expand Down
140 changes: 140 additions & 0 deletions projects/05-computing-service-deployment/README.MD
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
# API Deployment on Computing Service

## Índice

- [1. Consideraciones generales](#1-consideraciones-generales)
- [2. Preámbulo](#2-preámbulo)
- [3. Resumen del proyecto](#3-resumen-del-proyecto)
- [4. Implementaciones de ejemplo](#4-Implementaciones-de-ejemplo)
- [5. Paso a paso general para el despliegue en Amazon EC2 o Azure VMs](#5-Paso-a-paso-general-para-el-despliegue-en-Amazon-EC2-o-Azure-VMs)
- [6. Paso a paso detallado para el despliegue en Amazon EC2](#6-Paso-a-paso-detallado-para-el-despliegue-en-Amazon-EC2)
- [7. Paso a paso detallado para el despliegue en Azure VMs](#7-Paso-a-paso-detallado-para-el-despliegue-en-Azure-VMs)
- [8. Consideraciones para pedir tu Project Feedback](#8-Consideraciones-para-pedir-tu-Project-Feedback)
- [9. Objetivos de aprendizaje](#9-Objetivos-de-aprendizaje)

---

## 1. Consideraciones generales

- Este proyecto lo resolvemos de manera --individual--.
- El rango de tiempo estimado para completar el proyecto es de 1 a 2 Sprints.

## 2. Preámbulo

<img
src="https://github.com/user-attachments/assets/506d6905-593f-4774-be0a-26f28c35af9b"
alt="Hardware"
aria-describedby="hardware" />

<p id="hardware">
Virtual Machines
</p>

_Photo by_
[_Alexandre Debiève_](https://github.com/user-attachments/assets/506d6905-593f-4774-be0a-26f28c35af9b)

AWS EC2 y Azure Virtual Machines son servicios de computación en la
nube que permiten a las desarrolladoras crear, gestionar y escalar máquinas
virtuales conocidos como instancias. Ambos servicios proporcionan una
infraestructura flexible y segura para ejecutar una amplia variedad de
aplicaciones y servicios, con características similares como escalabilidad,
diversidad de tipos de instancias, soporte para múltiples sistemas
operativos, opciones de pago por uso, y avanzadas configuraciones de redes
y seguridad. La elección entre AWS EC2 y Azure VMs a menudo depende de
las necesidades específicas del proyecto, la familiaridad con la plataforma
y otros factores como integración con servicios existentes.

La currícula de Laboratoria incluye 4 proyectos enfocados en
desplegar la [Fleet Management API](../05-fleet-management-api/README.md)
en la nube. Cada proyecto se distingue por utilizar
diferentes métodos de despliegue, lo que te permitirá aprender y aplicar
diversas estrategias para desplegar tu aplicación en producción en un entorno real.

<img
src="https://github.com/user-attachments/assets/807d21eb-4f47-4b91-8441-a952192562f0"
alt="Proyectos Laboratoria"
aria-describedby="devops-projects-laboratoria" />

<p id="devops-projects-laboratoria">
Ruta Devops
</p>

## 3. Resumen del proyecto

En este proyecto desplegarás la Fleet Management API en una máquina
virtual usando **Amazon EC2** o **Azure Virtual Machines (Azure VMs)**.

En lugar de depender únicamente de tu computadora local para ejecutar aplicaciones,
tanto en Amazon EC2 como en Azure VMs, puedes utilizar servidores remotos, llamados
instancias, que ofrecen más potencia y flexibilidad. Puedes elegir entre
diferentes tipos de instancias según las necesidades
de tu aplicación. Hay instancias optimizadas para tareas que requieren
mucha memoria, mucho procesamiento, almacenamiento rápido, etc. Puedes conectarte
a tu instancia desde tu computadora local usando herramientas como SSH
(para Linux) o Remote Desktop (para Windows). Una vez conectada,
puedes usar la instancia como lo harías con tu computadora local:
instalar software, subir código, ejecutar aplicaciones, etc.

## 4. Implementaciones de ejemplo

En caso que no hayas implementado aún la
[Fleet Management API](../05-fleet-management-api/README.md)
puedes usar las siguientes implementaciones mínimas para
completar este proyecto. Elige la implementación en el
lenguaje de programación que más te interese:

- [Implementación en NodeJS](https://github.com/Laboratoria/minimum-impl-fleet-management-api-nodejs)
- [Implementación en Python](https://github.com/Laboratoria/minimum-impl-fleet-management-api-python)
- [Implementación en Java](https://github.com/Laboratoria/minimum-impl-fleet-management-api-java)

## 5. Paso a paso general para el despliegue en Amazon EC2 o Azure VMs

Amazon EC2 y Azure Virtual Machines son servicios muy similares. En ambos
podemos seguir el siguiente paso a paso general para
desplegar la Fleet Management API independientemente del lenguaje de
programación en que esta implementada.

- Paso 1: Crear una cuenta en el proveedor de infraestructura
- Paso 2: Lanzar una máquina virtual
- Paso 3: Configurar la máquina virtual
- Paso 4: Conectar a la máquina virtual desde tu computadora usando SSH
- Paso 5: Instalar las dependencias de la API en la máquina virtual
- Paso 6: Subir el código de tu API en la máquina virtual
- Paso 7: Configurar y ejecutar la API en la máquina virtual
- Paso 8: Probar la API desde tu computadora

## 6. Paso a paso detallado para el despliegue en Amazon EC2

El paso a paso detallado para el despliegue en Amazon EC2
depende del lenguaje de implementacion de la API. Te
sugerimos las siguientes guías:

- [Despliegue de API NodeJS](https://dev.to/drsimplegraffiti/from-code-to-the-cloud-a-step-by-step-guide-to-deploying-your-nodejs-app-on-aws-ec2-4300)
- [Despliegue API Python](https://www.geeksforgeeks.org/how-to-deploy-python-application-in-aws/)
- [Despliegue de API Java](https://medium.com/@amitu2016/deploying-spring-boot-web-app-on-aws-using-ec2-and-s3-4db1d0f55c78)

## 7. Paso a paso detallado para el despliegue en Azure VMs

El paso a paso detallado para el despliegue en Azure VMs
depende del lenguaje de implementacion de la API. Te
sugerimos las siguientes guias:

- [Despliegue de API NodeJS](https://learn.microsoft.com/en-us/azure-stack/user/azure-stack-dev-start-howto-vm-nodejs)
- [Despliegue API Python](https://www.geeksforgeeks.org/how-to-deploy-python-application-in-aws/)
- [Despliegue de API Java](https://learn.microsoft.com/en-us/azure-stack/user/azure-stack-dev-start-howto-vm-java)

## 8. Consideraciones para pedir tu Project Feedback

Antes de agendar tu Project Feedback con tu coach, asegúrate de
tener una coleccion de Postman para probar la API que
desplegaste en Amazon EC2 o Azure VMs.

## 9. Objetivos de aprendizaje

> ℹ️ Esta sección será automáticamente generada en el idioma pertinente, a partir
> de los objetivos de aprendizaje declarados en [`project.yml`](./project.yml),
> al crear el repo del proyecto para un cohort en particular usando
> [`./scripts/create-cohort-project.js`](../../scripts#create-cohort-project-coaches).
>
> Acá puedes ver una [lista de todos los objetivos de aprendizaje](../../learning-objectives/data.yml)
> que contempla nuestra currícula.
5 changes: 5 additions & 0 deletions projects/05-computing-service-deployment/project.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
track: web-dev
tags:
- featured
learningObjectives:
- devops-computing-cloud-services
Loading

0 comments on commit ee002b5

Please sign in to comment.