Skip to content

Commit b6730e4

Browse files
committed
Update Azure IaaS and PaaS READMEs
1 parent 693152b commit b6730e4

5 files changed

Lines changed: 342 additions & 6 deletions

File tree

04-cloud/azure/iaas/README.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,6 @@ Una vez que tengas una cuenta de Azure y el CLI instalado, lo primero que tienes
1212
az login
1313
```
1414

15-
o si estás en Windows:
16-
17-
```pwsh
18-
az login
19-
```
20-
2115
Una vez hecho esto, te recomiendo que setees algunas variables de entorno para que no tengas que escribir tanto, ni acordarte de los nombres que has dado a los recursos que crearemos a continuación. Para ello, ejecuta los siguientes comandos:
2216

2317
```bash
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# Azure SQL Database
2+
3+
Se trata de un servicio PaaS de Azure que nos permite crear bases de datos relacionales en la nube sin necesidad de tener que administrar la infraestructura subyacente.
4+
5+
Para este ejemplo, vamos a crear una base de datos en Azure SQL Database y vamos a conectarla con la API de Tour of heroes.
6+
7+
Lo primero que necesitas es cargar algunas variables de entorno:
8+
9+
```bash
10+
# Database variables
11+
SQL_SERVER_NAME="heroes-sql-server"
12+
SQL_USER="sqladmin"
13+
SQL_PASSWORD="P@ssw0rd!"
14+
startIp="0.0.0.0"
15+
endIp="0.0.0.0"
16+
```
17+
18+
o si estás en Windows:
19+
20+
```pwsh
21+
# Database variables
22+
$SQL_SERVER_NAME="heroes-sql-server"
23+
$SQL_USER="sqladmin"
24+
$SQL_PASSWORD="P@ssw0rd!"
25+
$startIp="0.0.0.0"
26+
$endIp="0.0.0.0"
27+
```
28+
29+
## Creando la base de datos
30+
31+
Para crear una base de datos en Azure SQL Database, lo primero que tienes que hacer es crear un servidor de base de datos. Para ello, ejecuta el siguiente comando:
32+
33+
```bash
34+
echo "Creating $SQL_SERVER_NAME in $LOCATION..."
35+
36+
az sql server create --name $SQL_SERVER_NAME \
37+
--resource-group $RESOURCE_GROUP \
38+
--location "$LOCATION" \
39+
--admin-user $SQL_USER \
40+
--admin-password $SQL_PASSWORD
41+
```
42+
43+
o si estás en Windows:
44+
45+
```pwsh
46+
echo "Creating $SQL_SERVER_NAME in $LOCATION..."
47+
48+
az sql server create --name $SQL_SERVER_NAME `
49+
--resource-group $RESOURCE_GROUP `
50+
--location "$LOCATION" `
51+
--admin-user $SQL_USER `
52+
--admin-password $SQL_PASSWORD
53+
```
54+
55+
En este ejemplo no necesitamos crear la base de datos, ya que nuestra API, que hace uso de Entity Framework Core, se encargará de crearla por nosotros.
56+
57+
Lo que si es necesario es que permitamos el acceso a la base de datos desde otros recursos de Azure. Para ello, ejecuta el siguiente comando:
58+
59+
```bash
60+
echo "Configuring firewall..."
61+
az sql server firewall-rule create \
62+
--resource-group $RESOURCE_GROUP \
63+
--server $SQL_SERVER_NAME \
64+
-n AllowYourIp \
65+
--start-ip-address $startIp \
66+
--end-ip-address $endIp
67+
```
68+
69+
o si estás en Windows:
70+
71+
```pwsh
72+
echo "Configuring firewall..."
73+
az sql server firewall-rule create `
74+
--resource-group $RESOURCE_GROUP `
75+
--server $SQL_SERVER_NAME `
76+
-n AllowYourIp `
77+
--start-ip-address $startIp `
78+
--end-ip-address $endIp
79+
```
80+
81+
Ahora lo siguiente que necesitamos es desplegar la API que haga uso de esta base de datos. Para ello, puedes seguir los pasos que te comparto en este otro [README](/04-cloud/azure/paas/02-app-service/README.md).
82+
83+
Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
# Azure App Service
2+
3+
Este servicio de Azure nos permite desplegar aplicaciones web y API REST de forma rápida y sencilla. Además, nos permite escalarlas de forma automática y nos ofrece integración con otros servicios de Azure como Azure SQL Database, Azure Cosmos DB, Azure Functions, Azure Storage, Azure Key Vault, Azure Active Directory, etc.
4+
5+
Para este ejemplo, vamos a crear una API REST con ASP.NET Core y la vamos a desplegar en Azure App Service.
6+
7+
Lo primero que necesitas es cargar algunas variables de entorno:
8+
9+
```bash
10+
# App Service variables
11+
APP_SVC_PLAN_NAME="tour-of-heroes-plan"
12+
WEB_API_NAME="tour-of-heroes-api"
13+
```
14+
15+
o si estás en Windows:
16+
17+
```pwsh
18+
# App Service variables
19+
$APP_SVC_PLAN_NAME="tour-of-heroes-plan"
20+
$WEB_API_NAME="tour-of-heroes-api"
21+
```
22+
23+
## Creando el plan de App Service
24+
25+
Las aplicaciones web alojadas en este servicio necesitan estar dentro de un plan de App Service. Para crear uno, ejecuta el siguiente comando:
26+
27+
```bash
28+
echo -e "Create Azure App Service for the API 🚀"
29+
30+
az appservice plan create \
31+
--name $APP_SVC_PLAN_NAME \
32+
--resource-group $RESOURCE_GROUP \
33+
--location $LOCATION \
34+
--sku S1
35+
```
36+
37+
o si estás en Windows:
38+
39+
```pwsh
40+
echo -e "Create Azure App Service for the API 🚀"
41+
42+
az appservice plan create `
43+
--name $APP_SVC_PLAN_NAME `
44+
--resource-group $RESOURCE_GROUP `
45+
--location $LOCATION `
46+
--sku S1
47+
```
48+
49+
Este es el que determina el tamaño de las máquinas virtuales que se van a utilizar para alojar las aplicaciones web. En este caso, hemos elegido el plan S1.
50+
51+
## Crear la web app para la API
52+
53+
Una vez que tenemos el plan de App Service, lo siguiente es crear la web app para la API. Para ello, ejecuta el siguiente comando:
54+
55+
```bash
56+
az webapp create \
57+
--name $WEB_API_NAME \
58+
--runtime "dotnet:8" \
59+
--resource-group $RESOURCE_GROUP \
60+
--plan $APP_SVC_PLAN_NAME
61+
```
62+
63+
o si estás en Windows:
64+
65+
```pwsh
66+
az webapp create `
67+
--name $WEB_API_NAME `
68+
--runtime "dotnet:8" `
69+
--resource-group $RESOURCE_GROUP `
70+
--plan $APP_SVC_PLAN_NAME
71+
```
72+
73+
## Configurar la web app para la API
74+
75+
Una vez que tenemos la web app creada, podemos añadirle algunas configuraciones. Para ello, ejecuta el siguiente comando:
76+
77+
```bash
78+
az webapp config connection-string set \
79+
--name $WEB_API_NAME \
80+
--resource-group $RESOURCE_GROUP \
81+
--connection-string-type SQLAzure \
82+
--settings "DefaultConnection=Server=tcp:$SQL_SERVER_NAME.database.windows.net,1433;Initial Catalog=heroes-db;Persist Security Info=False;User ID=$SQL_USER;Password=$SQL_PASSWORD;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
83+
84+
az webapp config appsettings set \
85+
--name $WEB_API_NAME \
86+
--resource-group $RESOURCE_GROUP \
87+
--settings "OTEL_SERVICE_NAME=tour-of-heroes-api"
88+
```
89+
90+
o si estás en Windows:
91+
92+
```pwsh
93+
az webapp config connection-string set `
94+
--name $WEB_API_NAME `
95+
--resource-group $RESOURCE_GROUP `
96+
--connection-string-type SQLAzure `
97+
--settings "DefaultConnection=Server=tcp:$SQL_SERVER_NAME.database.windows.net,1433;Initial Catalog=heroes-db;Persist Security Info=False;User ID=$SQL_USER;Password=$SQL_PASSWORD;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
98+
```
99+
100+
```pwsh
101+
az webapp config appsettings set `
102+
--name $WEB_API_NAME `
103+
--resource-group $RESOURCE_GROUP `
104+
--settings "OTEL_SERVICE_NAME=tour-of-heroes-api"
105+
```
106+
107+
En este caso, hemos añadido la cadena de conexión a la base de datos y el nombre del servicio para que se pueda identificar en OpenTelemetry/Azure Monitor.
108+
109+
## Desplegar la API
110+
111+
Ahora que ya tenemos un sitio donde desplegar nuestra API lo único que nos queda es desplegarla 😃.
112+
113+
```bash
114+
echo "Clone the repo..."
115+
git clone https://github.com/0GiS0/tour-of-heroes-dotnet-api.git
116+
cd tour-of-heroes-dotnet-api
117+
118+
dotnet publish tour-of-heroes-api.csproj -o ./publish
119+
120+
cd publish
121+
122+
zip -r site.zip *
123+
124+
az webapp deployment source config-zip \
125+
--src site.zip \
126+
--resource-group $RESOURCE_GROUP \
127+
--name $WEB_API_NAME
128+
```
129+
130+
o si estás en Windows:
131+
132+
```pwsh
133+
echo "Clone the repo..."
134+
git clone https://github.com/0GiS0/tour-of-heroes-dotnet-api.git
135+
cd tour-of-heroes-dotnet-api
136+
137+
dotnet publish tour-of-heroes-api.csproj -o ./publish
138+
139+
cd publish
140+
141+
Compress-Archive -Path * -DestinationPath site.zip
142+
143+
az webapp deployment source config-zip `
144+
--src site.zip `
145+
--resource-group $RESOURCE_GROUP `
146+
--name $WEB_API_NAME
147+
```
148+
149+
Para comprobar que todo ha ido bien, puedes ejecutar el siguiente comando:
150+
151+
```bash
152+
echo "API deployed 🚀"
153+
echo "API URL: https://$WEB_API_NAME.azurewebsites.net"
154+
```
155+
156+
Ahora lo único que nos queda por hacer es desplegar el frontal que consuma esta API. Para seguir los pasos puedes continuar en este otro [README](/04-cloud/azure/paas/03-static-web-apps/README.md).
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# Azure Static Web Apps
2+
3+
Si lo que tienes es una aplicación web estática, es decir, una aplicación web que no tiene ningún tipo de lógica de negocio en el lado del servidor, puedes desplegarla en [Azure Static Web Apps](https://docs.microsoft.com/es-es/azure/static-web-apps/overview).
4+
5+
Para poder desplegar el frontal de Tour of heroes lo primero que necesitas hacer es un fork de mi repositorio: [https://github.com/0GiS0/tour-of-heroes-angular](https://github.com/0GiS0/tour-of-heroes-angular) ya que al lanzar el comando que despliegue la aplicación este inyectará un flujo de GitHub Actions en el mismo para poder desplegarlo en Azure Static Web Apps.
6+
7+
Como en el resto de los servicios, lo primero que vamos a hacer es cargar algunas variables de entorno:
8+
9+
```bash
10+
# Static Web App variables
11+
WEB_APP_NAME="tour-of-heroes-web"
12+
GITHUB_USER_NAME="<your-github-user-name>"
13+
```
14+
15+
o si estás en Windows:
16+
17+
```pwsh
18+
# Static Web App variables
19+
$WEB_APP_NAME="tour-of-heroes-web"
20+
$GITHUB_USER_NAME="<your-github-user-name>"
21+
```
22+
23+
## Crear el servicio de Azure Static Web Apps
24+
25+
Para crear el servicio de Azure Static Web Apps, ejecuta el siguiente comando:
26+
27+
```bash
28+
echo -e "Create Azure Static Web App 🚀"
29+
30+
az staticwebapp create \
31+
--name $WEB_APP_NAME \
32+
--resource-group $RESOURCE_GROUP \
33+
--source https://github.com/$GITHUB_USER_NAME/tour-of-heroes-angular \
34+
--location "westeurope" \
35+
--branch main \
36+
--app-location "/" \
37+
--output-location "dist/angular-tour-of-heroes" \
38+
--login-with-github
39+
```
40+
41+
o si estás en Windows:
42+
43+
```pwsh
44+
echo -e "Create Azure Static Web App 🚀"
45+
46+
az staticwebapp create `
47+
--name $WEB_APP_NAME `
48+
--resource-group $RESOURCE_GROUP `
49+
--source https://github.com/$GITHUB_USER_NAME/tour-of-heroes-angular `
50+
--location "westeurope" `
51+
--branch main `
52+
--app-location "/" `
53+
--output-location "dist/angular-tour-of-heroes" `
54+
--login-with-github
55+
```
56+
57+
El resto de servicios se han desplegado en la región `uksouth`, pero en este caso, como no hay disponibilidad de Azure Static Web Apps en esa región, lo he desplegado en `westeurope`.
58+
59+
¡Y ya está! Con esto ya tienes desplegada la aplicación Tour Of Heroes en servicios PaaS de Azure. Si quisieras eliminar todo lo creado hasta ahora es tan sencillo como ejecutar el siguiente comando:
60+
61+
```bash
62+
az group delete --name $RESOURCE_GROUP --yes --no-wait
63+
```
64+
65+
Happy coding! 🥸

04-cloud/azure/paas/README.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
## Desplegando Tour of heroes en servicios PaaS de Azure
2+
3+
Antes de empezar a montar servicios PaaS como loc@s lo primero que necesitas es tener una cuenta de Azure. Si no tienes una, puedes crear una gratuita [aquí](https://azure.microsoft.com/es-es/free/).
4+
5+
Por otro lado, necesitas tener instalado el [CLI de Azure](https://docs.microsoft.com/es-es/cli/azure/install-azure-cli?view=azure-cli-latest) en tu máquina local.
6+
7+
Todos los comandos que te comparto aquí puedes ejecutarlos en un terminal e ir construyendo poco a poco tu entorno.
8+
9+
Una vez que tengas una cuenta de Azure y el CLI instalado, lo primero que tienes que hacer es logarte en tu cuenta de Azure desde el CLI. Para ello, ejecuta el siguiente comando:
10+
11+
```bash
12+
az login
13+
```
14+
15+
Una vez hecho esto, te recomiendo que setees algunas variables de entorno para que no tengas que escribir tanto, ni acordarte de los nombres que has dado a los recursos que crearemos a continuación. Para ello, ejecuta los siguientes comandos:
16+
17+
```bash
18+
# General variables
19+
RESOURCE_GROUP="tour-of-heroes-paas"
20+
LOCATION="uksouth"
21+
```
22+
o si estás en Windows:
23+
24+
```pwsh
25+
# General variables
26+
$RESOURCE_GROUP="tour-of-heroes-paas"
27+
$LOCATION="uksouth"
28+
```
29+
30+
Una vez que las tengas cargadas en tu terminal, deber saber que todo lo que crees en Azure tiene que estar dentro de lo que se conoce como **grupo de recursos**. Un grupo de recursos es un contenedor lógico en el que se despliegan y se administran los recursos de Azure.
31+
32+
Para crear uno, ejecuta el siguiente comando:
33+
34+
```bash
35+
az group create --name $RESOURCE_GROUP --location $LOCATION
36+
```
37+
38+
Ahora que ya tienes lo mínimo indispensable, vamos a empezar creando la base de datos. Para seguir los pasos puedes hacerlo en este otro [README](/04-cloud/azure/paas/01-sql-database/README.md).

0 commit comments

Comments
 (0)