Skip to content

Commit

Permalink
Merge branch 'next' into salesforce-objectives
Browse files Browse the repository at this point in the history
  • Loading branch information
Ivy Feraco authored Aug 16, 2024
2 parents 96a0a89 + d898561 commit b955998
Show file tree
Hide file tree
Showing 10 changed files with 578 additions and 2 deletions.
13 changes: 13 additions & 0 deletions learning-objectives/data.yml
Original file line number Diff line number Diff line change
Expand Up @@ -490,6 +490,19 @@ data-analytics:
- analysis-report
- analysis-presentation

devops:
- computing-cloud-services:
- concepts-cloud-infrastructure-virtualization
- setting-up-runtime-environment
- monitoring-application-virtual-machine
- docker:
- docker-container-image
- dockerfile
- docker-commands
- container-cloud-services:
- orchestration-system-components
- configure-container-task-definitions

# New OAs since UXD006
agile-planning:
- scope
Expand Down
98 changes: 98 additions & 0 deletions learning-objectives/intl/es.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2003,6 +2003,104 @@ 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:
title: DevOps

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: AWS Cloud Essentials
url: https://aws.amazon.com/getting-started/cloud-essentials/
- title: Get started with Amazon EC2
url: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html

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: Despliegue de API NodeJS
url: https://dev.to/drsimplegraffiti/from-code-to-the-cloud-a-step-by-step-guide-to-deploying-your-nodejs-app-on-aws-ec2-4300
- title: Despliegue API Python
url: https://www.geeksforgeeks.org/how-to-deploy-python-application-in-aws/
- title: Despliegue de API Java
url: https://medium.com/@amitu2016/deploying-spring-boot-web-app-on-aws-using-ec2-and-s3-4db1d0f55c78

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: Monitor Amazon EC2 resources
url: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring_ec2.html

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: What is a container?
url: https://docs.docker.com/guides/docker-concepts/the-basics/what-is-a-container/
- title: What is an image?
url: https://docs.docker.com/guides/docker-concepts/the-basics/what-is-an-image/
- title: What is a registry?
url: https://docs.docker.com/guides/docker-concepts/the-basics/what-is-a-registry/

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: Understanding the image layers
url: https://docs.docker.com/guides/docker-concepts/building-images/understanding-image-layers/
- title: Writing a Dockerfile
url: https://docs.docker.com/guides/docker-concepts/building-images/writing-a-dockerfile/
- title: Build, tag, and publish an image
url: https://docs.docker.com/guides/docker-concepts/building-images/build-tag-and-publish-an-image/
- title: Multi-stage builds
url: https://docs.docker.com/guides/docker-concepts/building-images/multi-stage-builds/

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: Docker CLI Reference
url: https://docs.docker.com/reference/cli/docker/

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:

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
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ describe('Test de data set', () => {

describe('shortDescripcion', () => {
it('Debe ser un string', () => {
expect(typeof item.description).toBe('string');
expect(typeof item.shortDescription).toBe('string');
});

it('Debe tener maximo 20 palabras', () => {
Expand Down
2 changes: 1 addition & 1 deletion projects/03-dataverse-chat/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -383,7 +383,7 @@ está detallado en la sección de [Consideraciones técnicas](#5-consideraciones
### Primeros pasos

Súmate al canal de Slack
[#project-dataverse-chat](https://claseslaboratoria.slack.com/archives/C03MV35EP5M)
[#project-dataverse-chat](https://claseslaboratoria.slack.com/archives/C06317MH3N0)
para conversar y pedir ayuda del proyecto.

Te sugerimos algunas tareas para dar inicio al proyecto. No es necesario
Expand Down
126 changes: 126 additions & 0 deletions projects/05-computing-service-deployment/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
# 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](#5-Paso-a-paso-general-para-el-despliegue-en-Amazon-EC2)
- [6. Paso a paso detallado para el despliegue en Amazon EC2](#6-Paso-a-paso-detallado-para-el-despliegue-en-Amazon-EC2)
- [7. Consideraciones para pedir tu Project Feedback](#7-Consideraciones-para-pedir-tu-Project-Feedback)
- [8. Objetivos de aprendizaje](#8-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 es un servicio de computación en la
nube que permiten a las desarrolladoras crear, gestionar y escalar máquinas
virtuales conocidos como instancias. Proporciona una
infraestructura flexible y segura para ejecutar una amplia variedad de
aplicaciones y servicios, con características 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 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**.

En lugar de depender únicamente de tu computadora local para ejecutar aplicaciones,
tanto en Amazon EC2, 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

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. 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.

## 8. 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 b955998

Please sign in to comment.