Saltar a contenido

Sesión 02: Introducción a la nube II

Fecha 23 de Julio de 2024

Tener presente: https://learn.microsoft.com/es-es/windows/wsl/install

Aspectos teóricos I parte

¿Que aspectos se deben considerar para prestar un servicio de software?

  • Recursos hardware
  • Inversiones infraestructura
  • Debemos considerar picos de uso y cómo responder a ellos

Se realizó una discusión sobre las ventajas y desventajas de la nube, la nube nos ofrece capacidad variable de almacenamiento y procesamiento pero perdemos el control de dónde se almacenan los datos y ejecutan los proceso, por esta razón muchas organizaciones prefieren esquemas híbridos


Tipos de almacenamiento

  • Bloques: Se referenciados por un ID
  • Objetos: Se utilizan las URL (s3)
  • Archivos: Sistemas de archivos enfocados a la red (HPFS, NFS, directorio activo)

Bases de datos

  • Bases de datos de series temporales
  • Bases de documentos: Firestore
  • Bases de datos relacionales: Optimización de consultas
  • Bases de datos no relacionales: Flexibilidad en el modelo de datos
  • Bases de datos en memoria: Cache, vistas, requieren mecanismos para mantener la persistencia
  • Bases de datos orientadas a grafos: Enfocadas a consultas complejas
  • Bases de datos clave valor: JSON

Contenedores

  • Paravirtualización: Aisla procesos pero los recursos son gestionados por el sistema anfitrión
  • Permite aislar aplicaciones de forma efectiva
  • Son livianos y fácilmente escalables

Servicios de la nube: Consola de administración y desde los CLIs

Contenedores locales

https://www.docker.com/

:'
Ejemplo de contenedores que contengan bases de datos
'
docker login 
docker pull postgres:latest
docker run --name psql-cont -e POSTGRES_PASSWORD=mypassword -p 5432:5432 -p postgres -d

docker exec -it psql-cont bash #ingresar al bash del contenedor

docker stop psql-cont #detener el contenedor
docker rm psql-cont #borra el contenedor
docker image rm postgres

docker system prune -a #Si esta seguro de que esta todo
services:
  db:
    image: mysql:latest
    restart: always
    environment:
      MYSQL_DATABASE: 'db'
      # So you don't have to use root, but you can if you like
      MYSQL_USER: 'user'
      # You can use whatever password you like
      MYSQL_PASSWORD: 'password'
      # Password for root access
      MYSQL_ROOT_PASSWORD: 'password'
    ports:
      # <Port exposed> : <MySQL Port running inside container>
      - '3306:3306'
    expose:
      # Opens port 3306 on the container
      - '3306'
    volumes:
      - my-db:/var/lib/mysql
volumes:
  my-db:
:'
esto debe ejecutar en el directori que contenga el archivo docker-compose.yaml
'
docker compose up -d #levanta los servicios
docker compose down #baja los servicios

Aws cli

https://aws.amazon.com/es/cli/

#conectamos
aws configure

: '
Para hacer esto en la consola de administración ir al servicio IAM y buscar Manage Access Key y crear una
Tener en cuenta que la clave secreta solo se muestra una vez, si la pierde, debe generar otra llave
AWS Access Key ID [None]:  <id>
AWS Secret Access Key [None]: <id>
Default region name [None]: us-east-1
Default output format [None]: table
'

#Ejemplo con s3 (bucket)
#cambiar nombre-unico por uno pesado por usted
aws s3api create-bucket --bucket nombre-unico  --region us-east-1
aws s3 ls
aws s3api put-object --bucket nombre-unico --key nombre-nube --body nombre-archivo-local
aws s3api delete-bucket --bucket nombre-unico --region us-east-1

Google cloud

gcloud https://cloud.google.com/sdk/docs/install

gcloud auth login #Abre un navegador, se antentica por cuenta de google

gcloud projects list #Lista los proyectos

gcloud projects create usb20242 #crear un nuevo proyecto

#Gestionar la cuenta de facturación, debe crearse en la pagina
gcloud billing accounts list
gcloud billing projects link usb20242c --billing-account=<ID de la cuenta>

gcloud config set project usb20242c #Conectamos al proyecto

:'
Generamos un bucket, subimos un archivo y luego lo borramos
'

gcloud storage buckets create gs://storageusb20242 --location=us-east1
gcloud storage ls

echo "hola,que mas" >> hola.txt #Crea un archivo

gcloud storage cp hola.txt gs://storageusb20242 #Subo el archivo

:'
Reviso el archivo y el bucket
'
gcloud storage ls gs://storageusb20242
gcloud storage ls gs://storageusb20242/hola.txt
gcloud storage objects describe gs://storageusb20242/hola.txt

gcloud storage cp gs://storageusb20242/hola.txt hola2.txt #Descarga el archivo

:'
Borramos los buckets
'
gcloud storage rm gs://storageusb20242/hola.txt
gcloud storage rm gs://storageusb20242 --recursive

#Cerramos sesión
gcloud auth revoke

Microsoft azure

https://learn.microsoft.com/es-es/cli/azure/install-azure-cli

az login --use-device-code

az group create --name usb20242 --location eastus

az storage account create \
    --name mystorageusb20242 \ 
    --resource-group usb20242 \
    --location eastus \ 
    --sku Standard_RAGRS \
    --kind StorageV2 \
    --min-tls-version TLS1_2 \
    --allow-blob-public-access false
az storage container list --account-name mystorageusb20242 --subscription <id>
az resources list #Listar recursos

az storage account delete --name mystorageusb20242

az resource list #Listas recursos

az logout