introducción a azure app service - mug buenos aires

Post on 07-Jan-2017

35 Views

Category:

Software

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Guillermo BellmannMicrosoft Azure MVPCloud architect - Nubimetrics@gjbellmann

Introducción a Azure App ServiceMUG Buenos Aires

Tipos de nubePrivada

(On-Premise)Infrastructu

reas a Service

Platformas 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

Noso

tros

Proveedor

Proveedor

Noso

tros

Noso

tros

Softwareas a Service

Storage

HW del Server

Networking

Servers

Bases de datos

Virtualización

Runtimes

Aplicaciones

Seguridad e Integración

Proveedor

API APPSConstruye y consume fácilmente APIs en la

nube

WEB APPSAplicaciones Web que escalan con nuestro

negocio

LOGIC APPSAutomatiza procesos de negocio contra SaaS y

on-premises

MOBILE APPSConstruye 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ánsin 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 hosteaAPIs más fácilmente

API APPS

Planes y característicasFree 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ónMá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

Web Apps

Continuous Deployment para Web Apps

Web App Production

Slot

Repositorio de código

Web App Staging Slot

Commit

Agilidad a través de Continuous Deployment

Auto-Swap

de los cambios

Hooks

Git pull

Developer

Microsoft AzureLoad Balancer

Runtime Database

Application Database

API Endpoint

Frontend (IIS ARR)

Publish Endpoint Blob StorageFile Server

Metering

DeploymentServer(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

WebJobs

Tareas livianas con alto uso de CPUrun.cmd, run.bat run.exe run.ps1 run.sh run.php run.py run.js

BlobTrigger, TableTrigger, QueueTrigger, ServicebusTrigger

Escala: Singleton, Multi-instanciaTipo de

job: On-Demand, Scheduled, Continuous

Características del SDK de WebJobs:

Deployment: Portal, Visual Studio, CLI, Git

WebJobs

Web App

WebJobs

Web App

API Apps

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 APIsAuthentication, built-in to mobile

and web SDKs

SSO, manejado por el

serverGeneración de

SDKsDescubrimiento de

APIsGalería – pública &

organizacional

Construye tu APIWeb Apps++: Trae tu API como está,

en tu lenguaje preferido

Control de acceso simple SSO Contrato de

metadataEstilo de

MicroserviciosExpone 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

Logic Apps

Integración de SaaS

• 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

Mobile Apps

Azure Mobile ServicesStorage

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

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

Nuestra función: run.csxusing System;

public static void Run(TimerInfo myTimer, TraceWriter log){ log.Info($"Función con trigger por timer ejecutada el {DateTime.Now}");}

Application Insights

Application Insights

Mejores Prácticas

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

¿Preguntas?

Guillermo BellmannMicrosoft Azure MVPCloud architect - Nubimetrics@gjbellmann

¡Gracias!

top related