Guillermo Bellmann
Microsoft Azure MVP
Cloud architect - Nubimetrics
@gjbellmann
Tipos de nube
Privada
(On-Premise)
Infrastructure
as a Service
Platform
as a Service
Storage
HW del Server
Networking
Servers
Bases de datos
Virtualización
Runtimes
Aplicaciones
Seguridad e Integración
Storage
HW del Server
Networking
Servers
Bases de datos
Virtualización
Runtimes
Aplicaciones
Seguridad e Integración
Storage
HW del Server
Networking
Servers
Bases de datos
Virtualización
Runtimes
Aplicaciones
Seguridad e Integración
Nosotros
Proveedor
Proveedor
Nosotros
Nosotros
Software
as a Service
Storage
HW del Server
Networking
Servers
Bases de datos
Virtualización
Runtimes
Aplicaciones
Seguridad e Integración
Proveedor
API APPS
Construye y consume
fácilmente APIs en la nube
WEB APPS
Aplicaciones Web que escalan
con nuestro negocio
LOGIC APPS
Automatiza procesos de
negocio contra SaaS y on-
premises
MOBILE APPS
Construye aplicaciones
móviles para cualquier
dispositivo
Azure App Service
WEB APPS
Funcionalidades disponibles:
• .NET, Node.js, Java, PHP, y Python
• WebJobs para tareas de larga duración
• Publicación desde VS integrada, debug
remoto
• CI con GitHub, BitBucket, VSTS
• Auto-load balance, Autoescalado, Geo DR
• Virtual networking y conexiones híbridas
• Slots para deploymentes de staging
Aplicaciones web corren como están
sin necesidad de cambios
Nuevas características para Mobile
apps:
• WebJobs para tareas de larga duración
• CI con GitHub, BitBucket, VSAuto-load
balance, Autoescalado, Geo DR
• Virtual networking y conexiones híbridas
• Slots para deploymentes de staging
Mobile services
con mucho más
MOBILE APPS
Logic Apps para automatización
simplificada
• Diseñador sin código para creación rápida
• Docenas de templates pre-armados para
arrancar
• Soporte Out of the boxpara aplicaciones SaaS
y on-premises populares
• Uso con API Apps custom creadas por
nosotros
• Biztalk APIs para escenarios de integración
expertos
Automatiza sistemas
SaaS y on-premises
LOGIC APPS
Easily use cloud or custom APIs:
• Dozens of built-in APIs for popular SaaS
• An ecosystem of APIs for any need
• Create and publish custom, reusable APIs
• Visual Studio tooling with one click publish
and remote debugging
• Automatic client SDK generation for many
languages
Crea, consume y hostea
APIs más fácilmente
API APPS
Planes y características
Free Shared Basic Standard Premium
Cuando usarlo Spikes, pruebas
de concepto
dev - test con
SSL
Producción con
bajo tráfico y
poca carga
Producción con
autoescalado y
manejo de
tráfico
avanzado
Producción
Más avanzado –
Conectores
Biztalk, etc
# cores Compartidos,
60 mins CPU
por día
Compartidos,
240 mins CPU
por día
1-4 1-4 1-8
RAM 1GB 0,5GB 1.75-7GB 1.75-7GB 1.75-14GB
SLA 99.95% 99.95% 99.95%
Dominio
custom &
certificados
no si si si si
Profiling remoto no no no si si
Continuous Deployment para Web Apps
Web App
Production Slot
Repositorio de códigoWeb App
Staging Slot
Commit
Agilidad a través de Continuous Deployment
Auto-Swap
de los cambios
Hooks
Git pull
Developer
Microsoft Azure
Load Balancer
Runtime Database
Application Database
API Endpoint
Frontend (IIS ARR)
Publish Endpoint Blob Storage
File Server
Metering
Deployment
Server(s)
Arquitectura de una Web App
• 3 tipos de logs:
• Detailed Error Logging
• Failed Request Tracing
• Web Server Logging (W3C extended log format)
• Se puede hacer el log en el sistema de archivos (rolling files), table storage o
• blob storage
• Cuando se habilita el log de la aplicación, queda encendido por 12 horas
Log Streaming
• Open source .NET Foundation https://github.com/projectkudu/kudu
• Encargado de los deployments en App Services
• También puede correr fuera de Azure
• Deploys desde Git
• Build steps configurables
• Sitio y utilidades de Kudu “secretas”
Kudu & Site Extensions
Tareas livianas con alto uso de CPU
run.cmd, run.bat run.exe run.ps1 run.sh run.php run.py run.js
BlobTrigger, TableTrigger, QueueTrigger,
ServicebusTrigger
Escala: Singleton, Multi-instancia
Tipo de job: On-Demand, Scheduled, Continuous
Características del
SDK de WebJobs:
Deployment: Portal, Visual Studio, CLI, Git
WebJobs
WebJobs
Beneficios de las API Apps
• Trae tu API como está
• .NET Web API / Node.js + Express
• Java / PHP y muchos más
• Control de Acceso Simple – no hay que cambiar el código para
habilitar la autenticación que viene incorporada
• Integración con Visual Studio
• Integración con Logic Apps
• Administración central de CORS
API Apps tiene en cuenta los mayores
problemas al construir y consumir APIs
Consume APIs
Authentication,
built-in to mobile and
web SDKs
SSO,
manejado por el
server
Generación de SDKs
Descubrimiento de
APIs
Galería – pública &
organizacional
Construye tu API
Web Apps++: Trae tu
API como está, en tu
lenguaje preferido
Control de acceso
simple
SSO Contrato de metadata
Estilo de
Microservicios
Expone APIs
enterprise
20
Consumiendo API Apps
• API Apps expone servicios HTTP
• La Metadata se expone usando Swagger 2.0
metadata
• Archivo JSON
• Ampliamente soportado
• Aplicaciones cliente
• Box
• Chatter
• Delay
• Dropbox
• Azure HD Insight
• Marketo
• Azure Media Services
• OneDrive
• SharePoint
• SQL Server
• Office 365
• Oracle
• QuickBooks
• SalesForce
• Sugar CRM
• SAP
• Azure Service Bus
• Azure Storage
• Timer / Recurrence
• Twilio
• Twitter
• IBM DB2
• Informix
• Websphere MQ
• Azure Web Jobs
• Yammer
• Dynamics CRM
• Dynamics AX
• Hybrid Connectivity
• HTTP, HTTPS
• File
• Flat File
• FTP, SFTP
• POP3/IMAP
• SMTP
• SOAP + WCF
• Batching / Debatching
• Validate
• Extract (XPath)
• Transform (+Mapper)
• Convert (XML-JSON)
• Convert (XML-FF)
• X12
• EDIFACT
• AS2
• TPMOM
• Rules Engine
Conectores
Protocolos BizTalk Services
Conectores a APIs Built-in
Azure Mobile Services
Storage
Autenticación
Lógica
Push
Scheduler
Almacenamiento estructurado
• Powered by SQL Database
• Soporta queries ricas
• Esquema dinámico
• Administración de los datos en:
• Azure Portal
• SQL Portal (Silverlight)
• SQL Management Studio
• REST API
• Azure CLI Tools
• SQL CLI
Scripts en Tablas del lado del servidor
Scripts Node.js
Intercepta requests CRUD
a las tablas
Pasa a SQL por default
Totalmente customizable
Backend
.NET Web API
en Visual Studio
MongoDB, Table Storage,
SQL out of the box
Custom API
• Endpoints no basados en tablas
• Accesibles desde
• GET
• POST
• PUT
• PATCH
• DELETE
• Para lógica node.js en scripts como los endpoints de
tablas
• Para .NET entregado a través de una WebAPI
• Expone cualquier funcionalidad que quieras
Azure Functions
• Ejecución de código basado en eventos
• Serverless
• C#, JavaScript, F#, Python, PHP, Java, Bash, Batch, PS
• Basado en el SDK de WebJobs
Triggers y bindings
Librerías ya incluidas
• mscorlib
• System
• System.Core
• System.Xml
• System.Net.Http
• Microsoft.Azure.WebJobs
• Microsoft.Azure.WebJobs.Host
• Microsoft.Azure.WebJobs.Extensions
• System.Web.Http
• System.Net.Http.Formatting
Librerías ya incluidas
• Newtonsoft.Json
• Microsoft.WindowsAzure.Storage
• Microsoft.ServiceBus
• Microsoft.AspNet.WebHooks.Receivers
• Microsoft.AspNet.WebHooks.Common
Estructura de carpetas
using System;
public static void Run(TimerInfo myTimer, TraceWriter log)
{
log.Info($"Función con trigger por timer ejecutada el
{DateTime.Now}");
}
Application Insights
Mejores prácticas
• Autoescalado encendido & Sticky sessions apagado
• Hacer back up de la base de datos
• Hacer test de carga antes de poner en producción
• Configurar el failover automático con Azure Global Traffic Manager
• Automatizar los deploys usando los slots
• Testear el site recovery
• Usar Azure Rersource Groups
• Setear alertas de billing
• Bundling & minificación de recursos web
• Usar Azure CDN para los archivos estáticos
• Implementar las políticas de retry adecuadas para la BD
Guillermo Bellmann
Microsoft Azure MVP
Cloud architect - Nubimetrics
@gjbellmann

Introducción a Azure App Service - MUG Buenos Aires

  • 1.
    Guillermo Bellmann Microsoft AzureMVP Cloud architect - Nubimetrics @gjbellmann
  • 2.
    Tipos de nube Privada (On-Premise) Infrastructure asa Service Platform as a Service Storage HW del Server Networking Servers Bases de datos Virtualización Runtimes Aplicaciones Seguridad e Integración Storage HW del Server Networking Servers Bases de datos Virtualización Runtimes Aplicaciones Seguridad e Integración Storage HW del Server Networking Servers Bases de datos Virtualización Runtimes Aplicaciones Seguridad e Integración Nosotros Proveedor Proveedor Nosotros Nosotros Software as a Service Storage HW del Server Networking Servers Bases de datos Virtualización Runtimes Aplicaciones Seguridad e Integración Proveedor
  • 3.
    API APPS Construye yconsume fácilmente APIs en la nube WEB APPS Aplicaciones Web que escalan con nuestro negocio LOGIC APPS Automatiza procesos de negocio contra SaaS y on- premises MOBILE APPS Construye aplicaciones móviles para cualquier dispositivo Azure App Service
  • 4.
    WEB APPS Funcionalidades disponibles: •.NET, Node.js, Java, PHP, y Python • WebJobs para tareas de larga duración • Publicación desde VS integrada, debug remoto • CI con GitHub, BitBucket, VSTS • Auto-load balance, Autoescalado, Geo DR • Virtual networking y conexiones híbridas • Slots para deploymentes de staging Aplicaciones web corren como están sin necesidad de cambios
  • 5.
    Nuevas características paraMobile apps: • WebJobs para tareas de larga duración • CI con GitHub, BitBucket, VSAuto-load balance, Autoescalado, Geo DR • Virtual networking y conexiones híbridas • Slots para deploymentes de staging Mobile services con mucho más MOBILE APPS
  • 6.
    Logic Apps paraautomatización simplificada • Diseñador sin código para creación rápida • Docenas de templates pre-armados para arrancar • Soporte Out of the boxpara aplicaciones SaaS y on-premises populares • Uso con API Apps custom creadas por nosotros • Biztalk APIs para escenarios de integración expertos Automatiza sistemas SaaS y on-premises LOGIC APPS
  • 7.
    Easily use cloudor custom APIs: • Dozens of built-in APIs for popular SaaS • An ecosystem of APIs for any need • Create and publish custom, reusable APIs • Visual Studio tooling with one click publish and remote debugging • Automatic client SDK generation for many languages Crea, consume y hostea APIs más fácilmente API APPS
  • 8.
    Planes y características FreeShared Basic Standard Premium Cuando usarlo Spikes, pruebas de concepto dev - test con SSL Producción con bajo tráfico y poca carga Producción con autoescalado y manejo de tráfico avanzado Producción Más avanzado – Conectores Biztalk, etc # cores Compartidos, 60 mins CPU por día Compartidos, 240 mins CPU por día 1-4 1-4 1-8 RAM 1GB 0,5GB 1.75-7GB 1.75-7GB 1.75-14GB SLA 99.95% 99.95% 99.95% Dominio custom & certificados no si si si si Profiling remoto no no no si si
  • 10.
    Continuous Deployment paraWeb Apps Web App Production Slot Repositorio de códigoWeb App Staging Slot Commit Agilidad a través de Continuous Deployment Auto-Swap de los cambios Hooks Git pull Developer
  • 11.
    Microsoft Azure Load Balancer RuntimeDatabase Application Database API Endpoint Frontend (IIS ARR) Publish Endpoint Blob Storage File Server Metering Deployment Server(s) Arquitectura de una Web App
  • 12.
    • 3 tiposde logs: • Detailed Error Logging • Failed Request Tracing • Web Server Logging (W3C extended log format) • Se puede hacer el log en el sistema de archivos (rolling files), table storage o • blob storage • Cuando se habilita el log de la aplicación, queda encendido por 12 horas Log Streaming
  • 13.
    • Open source.NET Foundation https://github.com/projectkudu/kudu • Encargado de los deployments en App Services • También puede correr fuera de Azure • Deploys desde Git • Build steps configurables • Sitio y utilidades de Kudu “secretas” Kudu & Site Extensions
  • 15.
    Tareas livianas conalto uso de CPU run.cmd, run.bat run.exe run.ps1 run.sh run.php run.py run.js BlobTrigger, TableTrigger, QueueTrigger, ServicebusTrigger Escala: Singleton, Multi-instancia Tipo de job: On-Demand, Scheduled, Continuous Características del SDK de WebJobs: Deployment: Portal, Visual Studio, CLI, Git
  • 16.
  • 17.
  • 19.
    Beneficios de lasAPI Apps • Trae tu API como está • .NET Web API / Node.js + Express • Java / PHP y muchos más • Control de Acceso Simple – no hay que cambiar el código para habilitar la autenticación que viene incorporada • Integración con Visual Studio • Integración con Logic Apps • Administración central de CORS
  • 20.
    API Apps tieneen cuenta los mayores problemas al construir y consumir APIs Consume APIs Authentication, built-in to mobile and web SDKs SSO, manejado por el server Generación de SDKs Descubrimiento de APIs Galería – pública & organizacional Construye tu API Web Apps++: Trae tu API como está, en tu lenguaje preferido Control de acceso simple SSO Contrato de metadata Estilo de Microservicios Expone APIs enterprise 20
  • 21.
    Consumiendo API Apps •API Apps expone servicios HTTP • La Metadata se expone usando Swagger 2.0 metadata • Archivo JSON • Ampliamente soportado • Aplicaciones cliente
  • 24.
    • Box • Chatter •Delay • Dropbox • Azure HD Insight • Marketo • Azure Media Services • OneDrive • SharePoint • SQL Server • Office 365 • Oracle • QuickBooks • SalesForce • Sugar CRM • SAP • Azure Service Bus • Azure Storage • Timer / Recurrence • Twilio • Twitter • IBM DB2 • Informix • Websphere MQ • Azure Web Jobs • Yammer • Dynamics CRM • Dynamics AX • Hybrid Connectivity • HTTP, HTTPS • File • Flat File • FTP, SFTP • POP3/IMAP • SMTP • SOAP + WCF • Batching / Debatching • Validate • Extract (XPath) • Transform (+Mapper) • Convert (XML-JSON) • Convert (XML-FF) • X12 • EDIFACT • AS2 • TPMOM • Rules Engine Conectores Protocolos BizTalk Services Conectores a APIs Built-in
  • 26.
  • 27.
    Almacenamiento estructurado • Poweredby SQL Database • Soporta queries ricas • Esquema dinámico • Administración de los datos en: • Azure Portal • SQL Portal (Silverlight) • SQL Management Studio • REST API • Azure CLI Tools • SQL CLI
  • 28.
    Scripts en Tablasdel lado del servidor Scripts Node.js Intercepta requests CRUD a las tablas Pasa a SQL por default Totalmente customizable Backend .NET Web API en Visual Studio MongoDB, Table Storage, SQL out of the box
  • 29.
    Custom API • Endpointsno basados en tablas • Accesibles desde • GET • POST • PUT • PATCH • DELETE • Para lógica node.js en scripts como los endpoints de tablas • Para .NET entregado a través de una WebAPI • Expone cualquier funcionalidad que quieras
  • 31.
    Azure Functions • Ejecuciónde código basado en eventos • Serverless • C#, JavaScript, F#, Python, PHP, Java, Bash, Batch, PS • Basado en el SDK de WebJobs
  • 32.
  • 33.
    Librerías ya incluidas •mscorlib • System • System.Core • System.Xml • System.Net.Http • Microsoft.Azure.WebJobs • Microsoft.Azure.WebJobs.Host • Microsoft.Azure.WebJobs.Extensions • System.Web.Http • System.Net.Http.Formatting
  • 34.
    Librerías ya incluidas •Newtonsoft.Json • Microsoft.WindowsAzure.Storage • Microsoft.ServiceBus • Microsoft.AspNet.WebHooks.Receivers • Microsoft.AspNet.WebHooks.Common
  • 35.
  • 36.
    using System; public staticvoid Run(TimerInfo myTimer, TraceWriter log) { log.Info($"Función con trigger por timer ejecutada el {DateTime.Now}"); }
  • 38.
  • 40.
    Mejores prácticas • Autoescaladoencendido & Sticky sessions apagado • Hacer back up de la base de datos • Hacer test de carga antes de poner en producción • Configurar el failover automático con Azure Global Traffic Manager • Automatizar los deploys usando los slots • Testear el site recovery • Usar Azure Rersource Groups • Setear alertas de billing • Bundling & minificación de recursos web • Usar Azure CDN para los archivos estáticos • Implementar las políticas de retry adecuadas para la BD
  • 42.
    Guillermo Bellmann Microsoft AzureMVP Cloud architect - Nubimetrics @gjbellmann

Notas del editor

  • #30 Speaking points All scripts so far tied to a table action Custom APIs are non-table based endpoints Script functionality for normal HTTP methods