Azure: Cursos y trainings gratuitos de Udemy

Siguiendo con recursos de formación gratuitos en Udemy encontramos un gran grupo de ellos tanto para iniciarse desde cero en Azure como algunos para preparar alguna certificacion oficial.

La lista de cursos y trainings están en ingles y son gratuitos disponibles en Udemy:

1.Azure Basics Part 1 (Azure AD, Subscription, Resource Group)
https://lnkd.in/eNzYJ-fw

2. Azure Basics Part2 (Network , Compute and Load Balancers)
https://lnkd.in/eAcGj4Nc

3. Azure Basics Part3 (Storage Account)
https://lnkd.in/e9zqNWFD

4. Azure Basics Part4 (App Service )
https://lnkd.in/ezBy9Nfe

5. Azure Basics Part 5 Azure with docker Containers
https://lnkd.in/enc2fMSM

6. Create a 3-Tier Application Using Azure Virtual Machines
https://lnkd.in/ezUvVNMM

7. Microsoft Azure for Absolute Beginners
https://lnkd.in/eHm2raD8

8. Zero to Hero in Cloud computing Essentials With Azure
https://lnkd.in/eBQeSV67

9. AZ-900 Microsoft Azure Fundamentals
https://lnkd.in/dtf_NPA4

10. AZ-204 Developing Solutions for Microsoft Azure
https://lnkd.in/eGGfHEyk

11. Azure Real World Hand-on Training For Beginners.
https://lnkd.in/ewZCsnfZ

12. Migrate Windows service to Azure
https://lnkd.in/eV-3aFpd

13. Azure Security real world-hands-on for beginners
https://lnkd.in/eEnR7KE3

14. Microsoft Azure Databricks for Data Engineering
https://lnkd.in/eeGksC_6

15. Deploy Azure Virtual Desktop for beginners
https://lnkd.in/e45q2aTW

16. Azure Serverless Functions
https://lnkd.in/eg5h-XfR

17. Modern Data Architecture using Microsoft Azure
https://lnkd.in/eiQ7UFh5

18. Terraform on Azure – Basic Tutorial
https://lnkd.in/ef9bQdf5

Como siempre que os sea de utilidad!

Anuncio publicitario

Azure: Laboratorios hands-on Microsoft trainings

El último artículo para finalizar el año que quiero compartir son una serie de prácticas de laboratorios de Azure y Microsoft 365 para aprender paso a paso algunas tareas comunes que se realizan en Azure y que también son útiles para los exámenes de certificación como por ejemplo AZ-104 Azure Administrator.

Los laboratorios o trainings están en ingles y son guiados:

  1. Create a new user in Azure AD
    https://lnkd.in/gm2Qfr5A
  2. Manage Azure AD identities
    https://lnkd.in/gGKN-7eX
  3. Enable SSPR in Azure AD
    https://lnkd.in/ggKKt5NZ
  4. Create a conditional access policy
    https://lnkd.in/gZigbcdQ
  5. Explore Microsoft security score
    https://lnkd.in/gxaarvqK
  6. Use secure score in Microsoft Defender to improve security posture
    https://lnkd.in/gFKnSFX5
  7. Microsoft 365 Defender for Cloud Apps
    https://lnkd.in/gJjFwmpa
  8. Explore the Service Trust Portal
    https://lnkd.in/g-ReCYKw
  9. Explore the Microsoft Purview compliance portal
    https://lnkd.in/gP_-RSck
  10. Explore compliance manager
    https://lnkd.in/gUd6BYaK
  11. Manage subscriptions and RBAC
    https://lnkd.in/g4Jmzu9q
  12. Manage governance via Azure Policy
    https://lnkd.in/gSF6vJPt
  13. Manage Azure resources by using the Azure Portal
    https://lnkd.in/gFAzwgPd
  14. Manage Azure resources by using ARM templates
    https://lnkd.in/g-Xf7Crj
  15. Manage Azure resources by using Azure PowerShell
    https://lnkd.in/gPyDt2zW
  16. Manage Azure resources by using Azure CLI
    https://lnkd.in/gqXTn9fN
  17. Implement virtual networking
    https://lnkd.in/gRb8cbei
  18. Implement inter-site connectivity
    https://lnkd.in/gU9Zt7Dc
  19. Implement traffic management
    https://lnkd.in/geThBtbA
  20. Manage Azure storage
    https://lnkd.in/gdYd7u-4
  21. Manage virtual machines
    https://lnkd.in/gisq2g2e
  22. Implement Azure web apps
    https://lnkd.in/gFs7vJQy
  23. Implement Azure Container Instances
    https://lnkd.in/ghvPHPx9
  24. Implement Azure Kubernetes Service
    https://lnkd.in/gXMa847F
  25. Backup virtual machines
    https://lnkd.in/gJTVUnw8
  26. Implement monitoring
    https://lnkd.in/gcd3hytY

Feliz Año y nos leemos el próximo!!

Azure: Diseñando Arquitecturas con Landing Zones

Hoy quiero compartir un par de videos muy interesantes para conocer como diseñar soluciones de Azure mediante Landing Zones y trabajar de forma correcta con buenas prácticas en la plataforma de Azure.

¿Que es una Landing Zone?

El concepto de Landing Zone esta definido dentro del marco de Azure en lo se conoce como CAF (Cloud Adoptation Framework) y nos indica los pilares básicos necesarios para diseñar correctamente.

La definición de Microsoft es bastante buena y nos dice: «Una zona de aterrizaje de Azure es la salida de un entorno de Azure con varias suscripciones que tiene en cuenta la escala, seguridad, gobernanza, redes e identidad. Una zona de aterrizaje de Azure permite la migración, modernización e innovación de aplicaciones a escala empresarial en Azure.»

Como diagramas de referencia para landing zones seguro que muchos de vosotros conoceis algunos de los que existen dentro del framework CAF tanto para arquitecturas Enterprise o como otras más pequeñas:

Ref: https://learn.microsoft.com/es-es/azure/cloud-adoption-framework/ready/landing-zone/

Aqui teneis un video oficial de Microsoft Mechanics:

Y este video de John Savill con los conceptos muy bien explicados:

Como siempre, espero que os sea de utilidad.

Azure: Guia y enlaces para Migracion de datos (Database Migration Services)

En este articulo, voy a publicar una recopilación de enlaces que pueden ser utiles para escenarios de migracion de bases de datos a Azure.

Como sabeis, Azure dispone de Azure Database Migration Service para hacer un evaluación y herramientas que podemos utilizar para llevar nuestros datos a la nube según cada tipo de base de datos a migrar como MariaDB, MySQL, SQL Server, Mongo, Oracle y otras.

En general, el proceso de migración de base de datos consiste en las siguientes fases:

  • Analisis de requisitos previos: conectividad, usuarios, permisos, versiones soportadas, etc.
  • Pre Migración: Evaluar la base de datos a migrar mediante algún asistente y haciendo inspección manual que nos indica cada guia según la base de datos.
  • Realizar Migracion: Si todo es correcto y no hay discrepancias o problemas detectados durante la evaluación previa se realiza la migración con la herramienta adecuda para cada base de datos.
  • Post Migración: Validar que todos los son correctos, si tenemos test ejecutarlos para asegurar que los datos se han volcado correctamente. Importante tambien validar el SKU, DTU,etc. de la base de datos en Azure para detectar problemas de rendimiento en funcion de la capa de precios seleccionada.
  • Herramientas: En la documentacion de Azure encontraremos una lista de tooling, pdf, excel, herramientas de comparación de esquemas y datos, otros «assets» para ayudarnos en los procesos de migración que recomienda Microsoft como, por ejemplo: Azure Data Studio.

Lo bueno de tener la lista de enlaces es que nos ahorra tiempo de busqueda a la hora de encontrar todos los pasos y procesos que recomienda Microsoft para cada tipo de base de datos que os comparto aqui.

Migrar Access a Azure

Migrar SQL Server a Azure

Migrar Oracle a Azure

Migrar MariaDB a Azure

Migrar MySQL a Azure

Migrar PostgreSQL a Azure

Migrar desde NoSQL a Azure

Migrar desde DB2 a Azure

Como siempre, espero que os sea de utilidad.

Azure: Centro de Arquitectura para Soluciones DevOps

El articulo de hoy es una recopilación de enlaces que suelo utilizar cuando tengo que montar temas relacionados con practicas y procesos DevOps en diferentes empresas.

Azure Architecture Center es una web donde encontraremos de forma centralizada guías, procedimientos recomendados, buenas prácticas y patrones para diseño de soluciones arquitectónicas en Microsoft Azure para todo tipo de aplicaciones.

Link: https://docs.microsoft.com/es-es/azure/architecture

Recopilacion de Escenarios para Devops

Hay varias arquitecturas y soluciones de ejemplo relacionadas con DevOps que os pueden servir de guia o aceleradores para implementar proyectos sin tener que partir de cero, os comparto la lista:

• Azure DevOps: https://docs.microsoft.com/azure/architecture/example-scenario/apps/devops-dotnet-webapp
• DevOps with containers: https://docs.microsoft.com/azure/architecture/example-scenario/apps/devops-with-aks
• Microservices with AKS and Azure DevOps: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/microservices-with-aks
• Secure DevOps for AKS: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/secure-devops-for-kubernetes
• Azure DevOps CI/CD pipelines for chatbots: https://docs.microsoft.com/es-es/azure/architecture/example-scenario/apps/devops-cicd-chatbot
• CI/CD for Azure VMs: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/cicd-for-azure-vms
• CI/CD for Azure web apps: https://docs.microsoft.com/es-es/azure/architecture/solution-ideas/articles/azure-devops-continuous-integration-and-continuous-deployment-for-azure-web-apps
• CI/CD for containers: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/cicd-for-containers
• Container CI/CD using Jenkins and Kubernetes on AKS: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/container-cicd-using-jenkins-and-kubernetes-on-azure-container-service
• DevSecOps in Azure: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/devsecops-in-azure
• DevTest for IaaS solutions: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/dev-test-iaas

• DevTest for PaaS solutions: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/dev-test-paas
• DevTest for microservices: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/dev-test-microservice
• DevTest Image Factory: https://docs.microsoft.com/es-es/azure/architecture/solution-ideas/articles/dev-test-image-factory
• Immutable infrastructure using Jenkins and Terraform on Azure: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/immutable-infrastructure-cicd-using-jenkins-and-terraform-on-azure-virtual-architecture-overview
• DevOps in a hybrid environment: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/java-cicd-using-jenkins-and-azure-web-apps
• Java CI/CD using Jenkins and Azure web apps: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/java-cicd-using-jenkins-and-azure-web-apps
• Run a Jenkins server on Azure: https://docs.microsoft.com/azure/architecture/example-scenario/apps/jenkins
• SharePoint Farm for testing: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/sharepoint-farm-devtest

Como siempre, espero que os sea de utilidad.

Azure: Error Data Factory V2 expression limit exceeded maximum ‘8192’

Esta semana realizando unas actividades con Azure DataFactory hemos encontrado un error a la hora de procesar una pipeline para la carga y movimiento de datos entre cuentas storage y bases de datos.

El error que aparecía era: «ErrorMessage=The expression limit exceeded: maximum ‘8192’ and actual ‘8280’, al principio nos despisto un poco, pero después de investigarlo os comparto el origen del problema y como solucionarlo.

Azure subscription y Data Factory limites

Como sabéis, los recursos en Azure están limitados por Microsoft para cada suscripción y evitar afectar al rendimiento de los datacenters distribuidos globalmente, por ello, existen limites para cada servicio contratado.

Lo cierto, es que muchas veces no encontramos a la primera en la documentación el detalle del error o incluso el portal de Azure no informa adecuadamente del problema para depurarlo.

Afortunadamente, Microsoft nos ofrece una pagina bastante extensa donde encontrar y consultar toda la información referente a los limites de servicios que nos sirve de ayuda para estos temas.

Azure Data Factory V2 limits

En el caso de Azure DataFactory V2 tenemos todas estas limitaciones (copia del original) y podéis encontrar en la lista «Characters per expression = 8192″

ResourceDefault limitMaximum limit
Total number of entities, such as pipelines, data sets, triggers, linked services, Private Endpoints, and integration runtimes, within a data factory5,000Contact support.
Total CPU cores for Azure-SSIS Integration Runtimes under one subscription256Contact support.
Concurrent pipeline runs per data factory that’s shared among all pipelines in the factory10,00010,000
Concurrent External activity runs per subscription per Azure Integration Runtime region
External activities are managed on integration runtime but execute on linked services, including Databricks, stored procedure, Web, and others. This limit does not apply to Self-hosted IR.
3,0003,000
Concurrent Pipeline activity runs per subscription per Azure Integration Runtime region
Pipeline activities execute on integration runtime, including Lookup, GetMetadata, and Delete. This limit does not apply to Self-hosted IR.
1,0001,000
Concurrent authoring operations per subscription per Azure Integration Runtime region
Including test connection, browse folder list and table list, preview data. This limit does not apply to Self-hosted IR.
200200
Concurrent Data Integration Units1 consumption per subscription per Azure Integration Runtime regionRegion group 12: 6,000
Region group 22: 3,000
Region group 32: 1,500
Managed virtual network2: 2,400
Region group 12: 6,000
Region group 22: 3,000
Region group 32: 1,500
Managed virtual network: Contact support.
Maximum activities per pipeline, which includes inner activities for containers4040
Maximum number of linked integration runtimes that can be created against a single self-hosted integration runtime100Contact support.
Maximum number of node that can be created against a single self-hosted integration runtime4Contact support
Maximum parameters per pipeline5050
ForEach items100,000100,000
ForEach parallelism2050
Maximum queued runs per pipeline100100
Characters per expression8,1928,192
Minimum tumbling window trigger interval5 min15 min
Maximum timeout for pipeline activity runs7 days7 days
Bytes per object for pipeline objects3200 KB200 KB
Bytes per object for dataset and linked service objects3100 KB2,000 KB
Bytes per payload for each activity run4896 KB896 KB
Data Integration Units1 per copy activity run256256
Write API calls1,200/h1,200/h

This limit is imposed by Azure Resource Manager, not Azure Data Factory.
Read API calls12,500/h12,500/h

This limit is imposed by Azure Resource Manager, not Azure Data Factory.
Monitoring queries per minute1,0001,000
Maximum time of data flow debug session8 hrs8 hrs
Concurrent number of data flows per integration runtime50Contact support.
Concurrent number of data flows per integration runtime in managed vNet20Contact support.
Concurrent number of data flow debug sessions per user per factory33
Data Flow Azure IR TTL limit4 hrs4 hrs
Meta Data Entity Size limit in a factory2 GBContact support.

La solución en nuestro caso, por temas de timming, fue rediseñar la actividad en Datafactory para hacerla más pequeña y no llegar al limite establecido.

También tenéis la posibilidad de abrir un ticket a Microsoft para aumentar la cuota del limite, aunque no siempre es posible en todos los escenarios: New support request desde el Portal de Azure

El link con todos los limites de servicios, que os recomiendo guardar en favoritos es este: https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits

Espero que os sea de utilidad.

Docker: Error Access denied – you must be in the docker-users group en Windows

A veces ocurre cuando instalamos Docker o creamos nuevos usuarios en tu equipo local que intentas abrir Docker Desktop en tu PC con Windows y aparece el error indicado en el titulo del artículo.

El problema es que Windows detecta que el usuarios no pertenece al grupo «docker-users» y para solucionarlo hay varias opciones que os comparto.

Arreglar desde Administracion de usuarios locales y grupos

Para hacer esto tenemos ser administradores del equipo local, abrimos «herramientas administrativas», nos vamos a «Usuarios y grupos», buscamos el «usuario» y simplemente lo asignamos al grupo «docker-users» en la pantalla de dialogo.

Una vez asignado Aceptamos y tenemos que volver a conectarnos con el usuario para que detecte los cambios del nuevo grupo.

Arreglar desde consola de comandos de nuestro Widnows

Al igual que antes, debemos ser administradores locales, abrimos nuestro «CMD» o «Powershell» en modo administrador y escribimos lo siguiente en la consola:

c:\> net localgroup docker-users «username» /ADD

Para aplicar los cambios hay que cerrar sesión y volver a entrar en Windows con el usuario.

Espero que os sea de utilidad!!

Welcome to .NET6

Empezamos el año 2022 con nuevos retos y cosas que aprender, seguramente muchos de vosotros ya estáis al tanto de la nueva versión de .NET6 oficial, en este articulo quiero compartir información de todas las novedades presentadas y recomendar que si estáis empezando nuevos desarrollos utilizar desde ya esta versión del framework porque a diferencia de .NET5, la versión .NET6 es LTS (Long Term Support).

En .NET6, utilizando Visual Studio 2022 o VisualStudio Code podemos crear soluciones modernas para Azure, AWS, GCP, Windows, Linux, Android, macOS, iOS, tvOS, watchOS, WebAssembly, Xbox, IoT entre otras, todo ello, integrado dentro de una única plataforma global de desarrollo de soluciones.

A nivel de plataforma de desarrollo soporta todo tipo de aplicaciones como en el anterior .NET5 donde encontramos la siguiente lista de soluciones:

  • Cloud Development
  • Web Development
  • Desktop Development
  • Mobile Development
  • Gaming Development
  • IoT and Devices Development
  • AI y Machine Learing Development
  • Angular, React, VUE y otras librerías JS soportadas
  • CoreFX soportado y extendido para compilación estática de .NET

Como novedades destacadas aquí os comparto una lista:

  • Production stress-tested
  • Supported for three years LTS release
  • Unified platform
  • Performance improved
  • C# 10
  • Hot Reload
  • Cloud diagnostics
  • JSON APIs have higher performance
  • Minimal APIs
  • Blazor integrated with existing JavaScript based apps.
  • WebAssembly AOT
  • Single-page apps
  • HTTP/3
  • File IO now has support for symbolic links
  • Security has been improved with support for OpenSSL 3
  • Single-file apps (extraction-free)
  • IL trimming is now more capable and effective
  • Source generators and analyzers
  • Source build enables organizations like Red Hat to build .NET from source

Encontrareis más info detallada en este extenso articulo de Microsoft con todas las novedades que son muchísimas: https://devblogs.microsoft.com/dotnet/announcing-net-6/

En este video oficial de Microsoft podeis ver la presentacion en Microsoft Build.

Como siempre que lo disfruteis!!

Azure: Activar MFA como usuario de forma fácil para usar con Microsoft Authenticator App

Este articulo es muy breve, se trata de compartir como registrar el MFA como usuario de forma facil, para ello necesitareis descargar la Aplicacion de Microsoft Authenticator en vuestro móvil Android o iOS y seguir los pasos a partir de este link: https://aka.ms/mfasetup

En este video oficial oculto de Microsoft encontrareis todos los pasos explicados :

Descargar Microsoft Authenticator

Como siempre, espero que os sea de utilidad.

Azure: Application Error en AppService Linux al desplegar aplicaciones Angular12/Node14

El artículo de hoy pretende servir de ayuda para cuando estás desplegando aplicaciones de Angular 12/Node14 en AppService de Linux y aparezca el error siguiente:

Si lleváis poco tiempo trabajando con Azure, unas de las dudas más comunes cuando queremos crear y desplegar aplicaciones web es sobre qué plan Windows o Linux debemos elegir, incluso buscando por Google encontrareis las 2 opciones, lo cual crea confusión sobre cuál de ellos configurar para desplegar nuestra aplicación web.

Para que tengais contexto de todo esto, al principio los AppServices solo estaban disponibles con planes Windows sobre un IIS que administra directamente el servicio PaaS y Microsoft tuvo que implementar un módulo de Node para IIS para ejecutar aplicaciones que no fueran del ecosistema .NET, por eso, encontrareis artículos donde os explican que se debe configurar y desplegar un archivo web.config con el módulo de iisnode y definiendo rutas para servir la web.

La verdad es que este modelo de despliegue ya no es recomendado, si visitáis el repo de GitHub veréis que han pasado varios años y apenas se mantiene.

Creando Aplicación Angular HelloWorld

Primero, creamos una aplicación básica de Angular 12 (yo tengo instalada la versión de Node 14.17.6) con el comando: «ng new angular-hello», la compilamos con «ng build» y ejecutamos «ng serve» en local para comprobar que funciona:

Creando AppService de Linux

El siguiente paso, desde el Portal de Azure creamos un AppService de Linux con un plan Basico B1 indicando el Stack de Node y la version 14 (seguir cualquier tutorial MS) que nos termina dejando la siguiente configuración como podemos ver aquí:

Desplegando Angular en AppService de Linux

La parte del deploy, tenemos muchas opciones, yo utilizo VSCode con la extensión de Azure AppService y la opción «Deploy to WebApp…» para esta prueba, pero hay varias formas de realizarlo como podéis comprobar en esta lista de tutoriales que os comparto:

Enlace: https://code.visualstudio.com/docs/azure/deployment

El objetivo al final es desplegar la carpeta dist de nuestra Angular HelloWorld en AppService de Linux y verificar que se produce el Application Error.

Solucionando el Application Error

Ya hemos realizado el deploy, validamos que aparece el error al ejecutar nuestra aplicación Angular HelloWorld.

La imagen tiene un atributo ALT vacío; su nombre de archivo es appservice-angular-application-error.jpg

Para solucionarlo os comparto 2 métodos que he tenido que utilizar en algunos proyectos, ya que, dependiendo de la versión de Angular y el Stack del AppService Node10, 12, 14, etc. (recordar que es un servicio PaaS y Microsoft lo va evolucionando con el tiempo) puede ser que a veces alguno de ellos no funcione y tengais que usar el otro.

Debemos indicar una de estas opciones en la configuración de Startup command:

  1. pm2 serve /home/site/wwwroot –no-daemon –spa
  2. npx serve -s

Os comparto captura para saber donde tenéis que introducirlo, no olvidaros de pulsar el boton «save» para que guarde los cambios 🙂

Si con esto no funciona, puede ser que existen otros problemas relacionados con vuestra build/deploy, y las opciones de configuracion del AppServices, tendréis que examinar Logs stream y revisar desde Appservice Kudu el despliegue realizado y entrar en la carpeta de wwwroot para validar que esta todo correcto,accediendo desde el Portal de Azure, url del navegador o por Bash:

Importante: En las opciones de configuración de Application Settings tenéis que indicar esta variable de entorno SCM_DO_BUILD_DURING_DEPLOYMENT = false, ya que, la build para generar vuestra carpeta dist la realizas de forma local o desde Azure Devops.

Como siempre, espero que os sirva de utilidad!!