Global Azure Bootcamp Science Lab – Montando WebApps

Sitio dedicado a Microsoft Azure y otras tecnologías Cloud

[Actualización 27/04/19 16:47]

Está siendo una lucha denodada el conseguir no caer del top 5 mundial en la ejecución del laboratorio científico de la Global Azure Bootcamp, en donde buscamos explanetas como explicaba en el primer artículo.

Y hemos conseguido, entre todos, llevar a los límites de Azure en Europa al notificarnos que hemos dejado sin más capacidad de Container Instances en el Cloud.

Personálmente, tengo montadas 149 instancias de contenedor, y quiero superar el límite de vcpu que me impide montar un AKS con decenas de Pods.

Y lo he conseguido.

WebApps como contenedores Docker.

Para romper este límite y poder instanciar más contenedores, he optado por hacerlo montando la imagen del laboratorio en una Web App, y construir un script en powershel + AZ Cli para automatizar la creación:

az login
az account set -s 'xxxxx-xxxx-xxxx-xxxxxxxxxx'

#Bucle para construir de 10 en 10
for (($i = 0), ($j = 0); $i -lt 10; $i++)
{

#Global parameters
$RESOURCE_GROUP="GlobalAzureBootcamp"
$LOCATION="westeurope"
$APP_PLAN="GABSLAppPlan" + $i
$WEBAPP_NAME="GABSL" + $i
$IMAGEN="globalazurebootcamp/sciencelab2019:latest"


#Crear grupo de resursos
#az group create -n ${RESOURCE_GROUP} -l ${LOCATION}

#Crear AppPlan
az appservice plan create -n ${APP_PLAN} -g ${RESOURCE_GROUP} --sku S1 --is-linux

#Publicar container GABSL
az webapp create -n ${WEBAPP_NAME} --plan ${APP_PLAN} -g ${RESOURCE_GROUP} --deployment-container-image-name ${IMAGEN} 

#Añadir las variables de contexto
az webapp config appsettings set -n ${WEBAPP_NAME} -g ${RESOURCE_GROUP} --settings WEBSITES_PORT=80
az webapp config appsettings set -n ${WEBAPP_NAME} -g ${RESOURCE_GROUP} --settings BatchClient__Email=jc_quijano@hotmail.com
az webapp config appsettings set -n ${WEBAPP_NAME} -g ${RESOURCE_GROUP} --settings BatchClient__Fullname="Juan Quijano"
az webapp config appsettings set -n ${WEBAPP_NAME} -g ${RESOURCE_GROUP} --settings BatchClient__TeamName="Juan Quijano"
az webapp config appsettings set -n ${WEBAPP_NAME} -g ${RESOURCE_GROUP} --settings BatchClient__CompanyName="Juan Quijano"
az webapp config appsettings set -n ${WEBAPP_NAME} -g ${RESOURCE_GROUP} --settings BatchClient__CountryCode="ES"
az webapp config appsettings set -n ${WEBAPP_NAME} -g ${RESOURCE_GROUP} --settings BatchClient__LabKeyCode="THE-GAB-ORG"

}

Es cierto que no es el script más bonito del mundo y que podría meter las variables de contexto de forma más elegante; pero con esto, sigo aún en la lucha, y tengo montadas +50 webapps, por encima del limite de mi suscripciones en la persecución de Angel Royo para conseguir el podium global.

Por alguna razón el la aplicación no arranca sola dentro dce la WebApp en múltiples casos y he lanzado el siguiente script para que haga un request que «despierte» el cliente.

Foreach($Webapp in $rgWebApp)
{
    #Escalar horizontalmente el App Plan
    $rg = $appservice.ResourceGroup

    Write-Host $webapp.Name
    $url = "https://" + $webapp.Name + ".azurewebsites.net"

    Invoke-WebRequest $url #-UseBasicParsing
}

Ya he encontrado, al menos, dos posibles candidatos de planetas!!!!

Espero que sea de utilidad.

 

 

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.