Skip to content

Commit e2b11e7

Browse files
committed
Enhance Azure VM deployment documentation and scripts with emojis and improved language
- Updated README files for database, API, frontend, and load balancer VMs to include emojis and clearer instructions. - Modified bash and PowerShell scripts to provide more informative output messages during execution. - Changed the base URL in the API HTTP file to reflect a new deployment. - Improved installation scripts for Angular frontend and .NET API with better logging and user-friendly messages. - Added comments and structured output for better readability and understanding of the deployment process.
1 parent 359c694 commit e2b11e7

File tree

10 files changed

+157
-242
lines changed

10 files changed

+157
-242
lines changed

.devcontainer/devcontainer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@
4242
"extensions": [
4343
"humao.rest-client",
4444
"GitHub.copilot-chat",
45-
"ms-dotnettools.csdevkit"
45+
"ms-dotnettools.csdevkit",
46+
"ms-vscode.PowerShell"
4647
]
4748
}
4849
}

04-cloud/azure/iaas/00-vnet/README.md

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
# Redes virtuales en Azure
1+
# 🌐 Redes virtuales en Azure
22

3-
## Creando una red virtual
3+
## 🔧 Creando una red virtual
44

55
En nuestro ejemplo de Tour of Heroes vamos a incluir todas las máquinas virtuales dentro de una misma red virtual. Para ello, vamos a definir primero las siguientes variables:
66

77
```bash
8-
# Virtual network variables
8+
# 📋 Variables de red virtual
99
VNET_NAME="heroes-vnet"
1010
VNET_ADDRESS_PREFIX=192.168.0.0/16
1111
DB_SUBNET_NAME="db-subnet"
@@ -19,7 +19,7 @@ FRONTEND_SUBNET_ADDRESS_PREFIX=192.168.3.0/24
1919
o si estás en Windows:
2020

2121
```pwsh
22-
# Virtual network variables
22+
# 📋 Variables de red virtual
2323
$VNET_NAME="heroes-vnet"
2424
$VNET_ADDRESS_PREFIX=192.168.0.0/16
2525
$DB_SUBNET_NAME="db-subnet"
@@ -30,10 +30,13 @@ $FRONTEND_SUBNET_NAME="frontend-subnet"
3030
$FRONTEND_SUBNET_ADDRESS_PREFIX=192.168.3.0/24
3131
```
3232

33+
>[!NOTE]
34+
> ¿Qué es eso del /16 o /24? Son las máscaras de red que definen el tamaño del rango de direcciones IP que vamos a usar en la red virtual y en las subredes. Si quieres saber más sobre esto, puedes leer [aquí](https://docs.microsoft.com/en-us/azure/virtual-network/virtual-networks-faq#what-is-a-subnet-mask).
35+
3336
Para crear una red virtual, ejecuta el siguiente comando:
3437

3538
```bash
36-
echo -e "Creating virtual network $VNET_NAME with address prefix $VNET_ADDRESS_PREFIX and subnet $DB_SUBNET_NAME with address prefix $DB_SUBNET_ADDRESS_PREFIX"
39+
echo -e "🌐 Creando red virtual $VNET_NAME con prefijo $VNET_ADDRESS_PREFIX y subred $DB_SUBNET_NAME"
3740

3841
az network vnet create \
3942
--resource-group $RESOURCE_GROUP \
@@ -46,7 +49,7 @@ az network vnet create \
4649
o si estás en Windows:
4750

4851
```pwsh
49-
echo -e "Creating virtual network $VNET_NAME with address prefix $VNET_ADDRESS_PREFIX and subnet $DB_SUBNET_NAME with address prefix $DB_SUBNET_ADDRESS_PREFIX"
52+
echo -e "🌐 Creando red virtual $VNET_NAME con prefijo $VNET_ADDRESS_PREFIX y subred $DB_SUBNET_NAME"
5053
5154
az network vnet create `
5255
--resource-group $RESOURCE_GROUP `
@@ -56,10 +59,10 @@ az network vnet create `
5659
--subnet-prefixes $DB_SUBNET_ADDRESS_PREFIX
5760
```
5861

59-
Como ves, durante la creación de la red virtual hemos creado una subred para la base de datos. Ahora vamos a crear las subredes para la API y el frontend:
62+
Como ves, durante la creación de la red virtual hemos creado una subred para la base de datos. Ahora vamos a crear las subredes para la API 🔌 y el frontend 🎨:
6063

6164
```bash
62-
echo -e "Creating subnets $API_SUBNET_NAME with address prefix $API_SUBNET_ADDRESS_PREFIX and $FRONTEND_SUBNET_NAME with address prefix $FRONTEND_SUBNET_ADDRESS_PREFIX"
65+
echo -e "🔌 Creando subredes $API_SUBNET_NAME y $FRONTEND_SUBNET_NAME"
6366

6467
az network vnet subnet create \
6568
--resource-group $RESOURCE_GROUP \
@@ -77,7 +80,7 @@ az network vnet subnet create \
7780
o si estás en Windows:
7881

7982
```pwsh
80-
echo -e "Creating subnets $API_SUBNET_NAME with address prefix $API_SUBNET_ADDRESS_PREFIX and $FRONTEND_SUBNET_NAME with address prefix $FRONTEND_SUBNET_ADDRESS_PREFIX"
83+
echo -e "🔌 Creando subredes $API_SUBNET_NAME y $FRONTEND_SUBNET_NAME"
8184
8285
az network vnet subnet create `
8386
--resource-group $RESOURCE_GROUP `
@@ -92,8 +95,8 @@ az network vnet subnet create `
9295
--address-prefixes $FRONTEND_SUBNET_ADDRESS_PREFIX
9396
```
9497

95-
Con esto ya tenemos nuestra red virtual creada. Y tendríamos la foto de la siguiente manera:
98+
Con esto ya tenemos nuestra red virtual creada 🎉. Y tendríamos la foto de la siguiente manera:
9699

97100
![Red virtual con tres subredes](/04-cloud/azure/iaas/images/vnet.png)
98101

99-
Ahora vamos a crear una máquina virtual en cada una de las subredes. [Puedes empezar por aquí con la base de datos](/04-cloud/azure/iaas/01-db-vm/README.md).
102+
Ahora vamos a crear una máquina virtual en cada una de las subredes 🖥️. [Puedes empezar por aquí con la base de datos](/04-cloud/azure/iaas/01-db-vm/README.md) 💾.

04-cloud/azure/iaas/01-db-vm/README.md

Lines changed: 43 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
# Crear máquina virtual para la base de datos
1+
# 💾 Crear máquina virtual para la base de datos
22

33
Ahora vamos a crear la máquina virtual para la base de datos. Para ello, vamos a necesitar las siguientes variables de entorno:
44

55
```bash
6-
# SQL Server VM on Azure
6+
# 🗄️ SQL Server VM en Azure
77
DB_VM_NAME="db-vm"
88
DB_VM_IMAGE="MicrosoftSQLServer:sql2022-ws2022:sqldev-gen2:16.0.230613"
99
DB_VM_ADMIN_USERNAME="dbadmin"
@@ -14,7 +14,7 @@ DB_VM_NSG_NAME="db-vm-nsg"
1414
o si estás en Windows:
1515

1616
```pwsh
17-
# SQL Server VM on Azure
17+
# 🗄️ SQL Server VM en Azure
1818
$DB_VM_NAME="db-vm"
1919
$DB_VM_IMAGE="MicrosoftSQLServer:sql2022-ws2022:sqldev-gen2:16.0.230613"
2020
$DB_VM_ADMIN_USERNAME="dbadmin"
@@ -23,7 +23,7 @@ $DB_VM_NSG_NAME="db-vm-nsg"
2323
```
2424

2525
```bash
26-
echo -e "Create a database vm named $DB_VM_NAME with image $DB_VM_IMAGE"
26+
echo -e "🖥️ Creando máquina virtual de base de datos $DB_VM_NAME"
2727

2828
az vm create \
2929
--resource-group $RESOURCE_GROUP \
@@ -41,7 +41,7 @@ az vm create \
4141
o si estás en Windows:
4242

4343
```pwsh
44-
echo -e "Create a database vm named $DB_VM_NAME with image $DB_VM_IMAGE"
44+
echo -e "🖥️ Creando máquina virtual de base de datos $DB_VM_NAME"
4545
4646
az vm create `
4747
--resource-group $RESOURCE_GROUP `
@@ -58,18 +58,19 @@ az vm create `
5858

5959
Esta no necesita tener acceso desde fuera de la red virtual en la que se encuentra, por lo que no le asignamos una IP pública. Por otro lado, le hemos añadido un network security group (a través del parámetro --nsg), el cual es un conjunto de reglas que permiten o deniegan el tráfico de red entrante o saliente de los recursos de Azure.
6060

61-
## Crear una cuenta de almacenamiento para los backups
61+
<!-- ## 💾 Crear una cuenta de almacenamiento para los backups
6262
6363
Una buenísima práctica es tener backups de la base de datos. Para ello, vamos a crear una cuenta de almacenamiento en Azure para guardar los backups. Para ello, ejecuta el siguiente comando:
6464
6565
```bash
66-
echo -e "Create a storage acount for the backups"
66+
echo -e "📦 Creando cuenta de almacenamiento para backups"
6767
az storage account create \
6868
--name $STORAGE_ACCOUNT_NAME \
6969
--resource-group $RESOURCE_GROUP \
7070
--location $LOCATION \
7171
--sku Standard_LRS \
72-
--kind StorageV2
72+
--kind StorageV2 \
73+
--allow-shared-key-access true
7374
7475
STORAGE_KEY=$(az storage account keys list \
7576
--resource-group $RESOURCE_GROUP \
@@ -81,7 +82,7 @@ STORAGE_KEY=$(az storage account keys list \
8182
o si estás en Windows:
8283
8384
```pwsh
84-
echo -e "Create a storage acount for the backups"
85+
echo -e "📦 Creando cuenta de almacenamiento para backups"
8586
az storage account create `
8687
--name $STORAGE_ACCOUNT_NAME `
8788
--resource-group $RESOURCE_GROUP `
@@ -96,14 +97,15 @@ $STORAGE_KEY=$(az storage account keys list `
9697
--output tsv)
9798
```
9899
99-
>Importante: Debes tener en cuenta que el nombre de la cuenta de almacenamiento debe ser único en Azure. Si te da un error, prueba a cambiar el nombre.
100+
>Importante: Debes tener en cuenta que el nombre de la cuenta de almacenamiento debe ser único en Azure. Si te da un error, prueba a cambiar el nombre. -->
100101

101-
## Crear la extensión de SQL Server para la máquina virtual de la base de datos
102+
## ⚙️ Crear la extensión de SQL Server para la máquina virtual de la base de datos
102103

103-
Si estás trabajando con SQL Server en máquinas virtuales en Azure puedes usar la extensión de SQL Server para automatizar las tareas de administración de este tipo de base de datos. Para ello, ejecuta el siguiente comando:
104+
Si estás trabajando con SQL Server en máquinas virtuales en Azure puedes usar la extensión de SQL Server gestionar esa máquina virtual con un sabor de base de datos. Para ello, ejecuta el siguiente comando:
104105

106+
<!--
105107
```bash
106-
echo -e "Add SQL Server extension to the database vm"
108+
echo -e "⚙️ Añadiendo extensión de SQL Server a la VM de base de datos"
107109
az sql vm create \
108110
--name $DB_VM_NAME \
109111
--license-type payg \
@@ -122,13 +124,13 @@ az sql vm create \
122124
--retention-period 30 \
123125
--log-backup-frequency 60
124126
125-
echo -e "Database extension created"
127+
echo -e "✅ Extensión de base de datos creada"
126128
```
127129
128130
o si estás en Windows:
129131
130132
```bash
131-
echo -e "Add SQL Server extension to the database vm"
133+
echo -e "⚙️ Añadiendo extensión de SQL Server a la VM de base de datos"
132134
133135
az sql vm create `
134136
--name $DB_VM_NAME `
@@ -149,14 +151,36 @@ az sql vm create `
149151
--log-backup-frequency 60
150152
151153
echo -e "Database extension created"
154+
``` -->
155+
156+
```bash
157+
echo -e "⚙️ Añadiendo extensión de SQL Server a la VM de base de datos"
158+
az sql vm create \
159+
--name $DB_VM_NAME \
160+
--license-type payg \
161+
--resource-group $RESOURCE_GROUP \
162+
--sql-mgmt-type Lightweight
163+
164+
echo -e "✅ Extensión de base de datos creada"
165+
```
166+
167+
o si estás en Windows:
168+
169+
```pwsh
170+
echo -e "⚙️ Añadiendo extensión de SQL Server a la VM de base
171+
az sql vm create `
172+
--name $DB_VM_NAME `
173+
--license-type payg `
174+
--resource-group $RESOURCE_GROUP `
175+
--sql-mgmt-type Lightweight
152176
```
153177

154-
## Crear una regla de seguridad de red para SQL Server
178+
## 🔒 Crear una regla de seguridad de red para SQL Server
155179

156180
Para poder acceder a SQL Server desde la API, vamos a crear una regla de seguridad de red para SQL Server. Para ello, ejecuta el siguiente comando:
157181

158182
```bash
159-
echo -e "Create a network security group rule for SQL Server port 1433"
183+
echo -e "🔒 Creando regla de seguridad para SQL Server puerto 1433"
160184

161185
az network nsg rule create \
162186
--resource-group $RESOURCE_GROUP \
@@ -172,7 +196,7 @@ az network nsg rule create \
172196
o si estás en Windows:
173197

174198
```pwsh
175-
echo -e "Create a network security group rule for SQL Server port 1433"
199+
echo -e "🔒 Creando regla de seguridad para SQL Server puerto 1433"
176200
177201
az network nsg rule create `
178202
--resource-group $RESOURCE_GROUP `
@@ -191,4 +215,4 @@ Quedando la foto de la siguiente manera:
191215

192216
![VM para la base de datos](/04-cloud/azure/iaas/images/db-vm.png)
193217

194-
Ahora que ya tenemos la base de datos creada, necesitamos una API que interactúe con ella. Puedes continuar en el siguiente [paso](../02-api-vm/README.md).
218+
Ahora que ya tenemos la base de datos creada, necesitamos una API que interactúe con ella. Puedes continuar en el siguiente [paso](../02-api-vm/README.md) 🚀.

04-cloud/azure/iaas/02-api-vm/README.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
# Crear la máquina virtual para la API en .NET
1+
# 🔌 Crear la máquina virtual para la API en .NET
22

33
Para esta pieza de la arquitectura de Tour of Heroes vamos a usar una máquina virtual que utilice como sistema operativo Ubuntu. Para este componente vas a necesitar que cargues las siguientes variables:
44

55
```bash
6-
# API VM on Azure
6+
# 🔌 API VM en Azure
77
API_VM_NAME="api-vm"
88
API_VM_DNS_LABEL="tour-of-heroes-api-vm-$RANDOM"
99
API_VM_IMAGE="Ubuntu2204"
@@ -15,7 +15,7 @@ API_VM_NSG_NAME="api-vm-nsg"
1515
o si estás en Windows:
1616

1717
```pwsh
18-
# API VM on Azure
18+
# 🔌 API VM en Azure
1919
$API_VM_NAME="api-vm"
2020
$API_VM_DNS_LABEL="tour-of-heroes-api-vm-$RANDOM"
2121
$API_VM_IMAGE="Ubuntu2204"
@@ -27,7 +27,7 @@ $API_VM_NSG_NAME="api-vm-nsg"
2727
Ahora con estas vamos a crear la máquina virtual de la misma forma que lo hicimos con la base de datos:
2828

2929
```bash
30-
echo -e "Create an API VM named $API_VM_NAME with image $API_VM_IMAGE"
30+
echo -e "🖥️ Creando VM de API $API_VM_NAME"
3131

3232
FQDN_API_VM=$(az vm create \
3333
--resource-group $RESOURCE_GROUP \
@@ -41,13 +41,13 @@ FQDN_API_VM=$(az vm create \
4141
--nsg $API_VM_NSG_NAME \
4242
--size $VM_SIZE --query "fqdns" -o tsv)
4343

44-
echo -e "API VM created"
44+
echo -e " VM de API creada"
4545
```
4646

4747
o si estás en Windows:
4848

4949
```pwsh
50-
echo -e "Create an api vm named $API_VM_NAME with image $API_VM_IMAGE"
50+
echo -e "🖥️ Creando VM de API $API_VM_NAME"
5151
5252
$FQDN_API_VM=az vm create `
5353
--resource-group $RESOURCE_GROUP `
@@ -61,14 +61,14 @@ $FQDN_API_VM=az vm create `
6161
--nsg $API_VM_NSG_NAME `
6262
--size $VM_SIZE --query "fqdns" -o tsv
6363
64-
echo -e "Api VM created"
64+
echo -e " VM de API creada"
6565
```
6666

6767
Sin embargo, con esto solo no basta ya que por ahora sólo tenemos la máquina virtual pero no está ni configurada para poder hospedar mi API en .NET ni configurado ningún servidor web que la sirva. Para ello vamos a hacer uso del subcomando **run-command** de la CLI de Azure. Este nos permite ejecutar comandos en la máquina virtual de forma remota:
6868

6969
```bash
7070
# https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-7.0&tabs=linux-ubuntu
71-
echo -e "Execute script to install nginx, .NET Core, deploy the app and create the service"
71+
echo -e "⚙️ Ejecutando script para instalar Nginx, .NET Core y la API"
7272
az vm run-command invoke \
7373
--resource-group $RESOURCE_GROUP \
7474
--name $API_VM_NAME \
@@ -81,7 +81,7 @@ o si estás en Windows:
8181

8282
```pwsh
8383
# https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-7.0&tabs=linux-ubuntu
84-
echo -e "Execute script to install nginx, .NET Core, deploy the app and create the service"
84+
echo -e "⚙️ Ejecutando script para instalar Nginx, .NET Core y la API"
8585
az vm run-command invoke `
8686
--resource-group $RESOURCE_GROUP `
8787
--name $API_VM_NAME `
@@ -95,7 +95,7 @@ Con este comando estamos ejecutando un script que se encuentra en la carpeta **s
9595
Por último necesitamos crear una **network security rule** para permitir el acceso a través del puerto 80 a la API:
9696

9797
```bash
98-
echo -e "Create a network security group rule for port 80"
98+
echo -e "🔒 Creando regla de seguridad para permitir puerto 80"
9999
az network nsg rule create \
100100
--resource-group $RESOURCE_GROUP \
101101
--nsg-name $API_VM_NSG_NAME \
@@ -108,7 +108,7 @@ az network nsg rule create \
108108
o si estás en Windows:
109109

110110
```pwsh
111-
echo -e "Create a network security group rule for port 80"
111+
echo -e "🔒 Creando regla de seguridad para permitir puerto 80"
112112
113113
az network nsg rule create `
114114
--resource-group $RESOURCE_GROUP `
@@ -133,4 +133,4 @@ El resultado hasta ahora debería ser el siguiente:
133133

134134
![VM para la API](/04-cloud/azure/iaas/images/api-vm-y-db-vm.png)
135135

136-
Y con esto ya tendríamos la API desplegada en una máquina virtual de Azure. Ahora vamos a desplegar el frontend en otra máquina virtual de Azure. Puedes continuar en el siguiente [paso](../03-frontend-vm/README.md).
136+
Y con esto ya tendríamos la API desplegada en una máquina virtual de Azure. Ahora vamos a desplegar el frontend en otra máquina virtual de Azure. Puedes continuar en el siguiente [paso](../03-frontend-vm/README.md) 🚀.

04-cloud/azure/iaas/02-api-vm/api.http

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#@base_url = http://tour-of-heroes-api-vm-<TU_NUMERO_RANDOM>.uksouth.cloudapp.azure.com/api/hero
2-
@base_url = http://tour-of-heroes-api-vm-8250.uksouth.cloudapp.azure.com/api/hero
2+
@base_url = http://tour-of-heroes-api-vm-22555.spaincentral.cloudapp.azure.com/api/hero
33

44
GET {{base_url}} HTTP/1.1
55

0 commit comments

Comments
 (0)