Azure

[ASP.NET] Subiendo archivos a un blob storage con RadCloudUpload

Posted on Actualizado enn

Hola a todos, actualmente es muy común que en las aplicaciones Web el cargue de archivos se haga a un storage en la nube, y generalmente es necesario crear todo el código para implementar dicha funcionalidad, sin embargo Telerik nos hace la vida más sencilla ya que en su gama de controles ahora disponemos de RadCloudUpload, control que en esencia nos permite realizar la subida de un archivo a un storage en la nube (Azure, Amazon S3 y Telerik Backend Services).

Pues bien, su implementación es bastante sencilla y la vamos a realizarm para cargar archivos a un blob storage de Microsoft Azure, una vez añadimos el control, como es costumbre tenemos algunas opciones para comenzar su parametrización como:

  • Tamaño del archivo
  • Proveedor del storage
  • Extensiones permitidas
  • Posibilidad de subir múltiples archivos
  • Skin

cloudupload1

Como hemos seleccionado en el proveedor Azure, se habilita un wizard para ingresar los datos del storage:

cloudupload3

No olvides agregar por Nuget el paquete Windows Azure Storage:

cloudupload2

Y listo, ya es solo probar, una vista previa del control funcionando:

cloudupload4

Si luego requieren cambiar los datos del storage, todos los datos se han replicado en el web.config:

<telerik.web.ui>
	<radCloudUpload>
	  <storageProviders>
		<add name="Azure" type="Telerik.Web.UI.AzureProvider" 
			 accountKey="681o+9PweN+2k....." 
			 accountName="demomvcsignalr" 
			 blobContainer="democloudupload" 
			 ensureContainer="true" 
			 uncommitedFilesExpirationPeriod="1" 
			 defaultEndpointsProtocol="" />
	  </storageProviders>
	</radCloudUpload>
</telerik.web.ui>

Saludos!

[Azure] Azure Web Sites – Backups

Posted on Actualizado enn

Hola, siguiente con la seria de post sobre Azure Web Sites, hoy vamos a revisar la características de Backups, como primera medida, para poder hacer uso de dicha característica el Web Site debe estar establecido en modo Standard, asi que una vez vamos a la opción de Bakups tenemos dos opciones, backups a demanda y backups automáticos; para los dos tipos de backups es necesario utilizar una cuenta de storage:

backups1

Backup por demanda

Generar el backup por demanda es tan sencillo como dar click en la opción de backup:

backups2

Y Windows Azure inicia dicho proceso:

backups3

Y listo!

Backups Automáticos

La otra opción es configurar los backups para que se generen de forma automática, para ello habilitamos la característica en Automated Backup, luego establecemos la frecuencia (por el momento solo se puede en días) y la fecha de inicio de los bakups:

backups4

Finalmente, podemos realizar una restauración del sitio desde algunos de esos backups, para ellos en la parte inferior seleccionamos Restore Now:

backups5

Luego seleccionamos el backup que deseamos restaurar:

backups6

Y finalmente podemos escoger si restaurar en un nuevo sitio Web o en el mismo sitio:

backups7

Y listo, espero les haya sido de utilidad el post!

@julitogtu

[Azure] Azure Web Sites – Escalamiento

Posted on Actualizado enn

Hola, en el post anterior hablamos de cómo podemos integrar un Azure Web Site con un repositorio, para así automatizar el proceso de despliegues y tener la posibilidad de realizar rollbacks en cualquier momento; hoy vamos a ver como es posible escalar dicho Web Site, bastante útil cuando ya lo que viene por default no es suficiente.

Para comenzar a escalar el Web Site, seleccionamos la opción SCALE, por defecto nuestro Web Site corre en el modo FREE con 1 sola instancia:

escalamiento1

Bien, para este ejemplo vamos a escalar a STANDARD, y automáticamente tenemos nuevas opciones disponibles como:

  • Escoger Web Site: Permite seleccionar el Web Site.
  • Tamaño de instancia: Permite escoger entre Small, Medium y Large, lo cual se verá reflejado en el tamaño de la máquina virtual.
  • Número de instancias: Permite seleccionar el número de instancias asociadas al Web Site.
  • Escalamiento: Permite escalar el Web Site en una hora determinada, o por algún consumo de CPU específico.

escalamiento2

Ahora hagamos enfásis en la parte de escalamiento, si escogemos en la metrica que escale por CPU, dos opciones nuevas se habilitan, la cantidad de instancias y el consumo de CPU (rango de uso de CPU), allí entonces definimos el número de instancias (mínimo y máximo) cuando el consumo de CPU este en un rango determinado:

escalamiento3

La otra opción es configurar el escalamiento para una hora determinada, esto es bastante útil cuando conoces con anterioridad los picos de tráfico del Web Site, para ello damos click en Set up schedule times, y en el modal que se muestra configuramos el escalamiento, allí inicialmente podemos escoger entre escalamiento diferente para el día y la noche y/o para días entre semana y fines de semana, y luego establemos los horarios:

escalamiento4

Al confirmar ya tenemos disponible los escalamientos creados, solo resta decirle que número de instancias vamos a usar:

escalamiento5

Espero el post les sea interesante, hasta la próxima!

Saludos!

[Azure] Azure Web Sites – Integración con repositorios

Posted on Actualizado enn

Hola, ultimamente he visto varias personas que ven los Azure Web Sites como simples “hosting”, creyendo que para lo único que sirven es para publicar tu sitio Web y… listo, así que pienso hacer una pequeña serie de post para mostrar algunas características que permiten a los Azure Web Sites ser un componente robusto e interesante.

En este post vamos a revisar como es posible enlazar el Azure Web Site con algún tipo de respositorio (Visual Studio Online, Git Local, GitHub, Dropbox, Bitbucket, CodePlex o alguno externo) para automatizar los despliegues, en ese caso vamos a relacionarlo con un repositorio en GitHub, para ello vamos al dashboard del Web Site y seleccionamos Set up deployment from source control, luego se abre una ventana modal para elegir el tipo de repositorio, por lo que para este ejemplo escogemos GitHub:

repositorio

Luego nos pide autenticarnos con nuestra en GitHub, una vez confirmada la autenticación, escogemos el repositorio y el branch:

branch

Una vez finalizada la integración, Windows Azure se encarga de realizar el despliegue y nos informa del mismo:

info deploy

Uno de los puntos interesantes de esta integración, es que cada vez que se haga commit al repositorio el GitHub, Azure realizará el despliegue de los cambios y vamos a ver el historial de todos ellos:

historial despliegues

Si por alguna razón, necesitamos volver a un deploy anterior, lo podemos hacer sin problema, basta con seleccionar el deploy y en la parte inferior seleccionar Redeploy para hacer el rollback a una versión anterior:

redeploy

Espero les sea de utilidad, en próximos post seguiremos hablando de los Azure Web Sites!

Saludos!

[Ebook] Building Real-World Cloud Apps with Windows Azure

Posted on Actualizado enn

Hola, hoy quiero compartirles un excelente libro que si o si se tiene que leer, el ebook es Building Real-World Cloud Apps with Windows Azure  y lo pueden descargar acá, allí podrán descargar el ebook, el source code o si lo prefieren pueden seguir los tutoriales de manera online.

En esencia el libro trata:

This e-book walks you through a patterns-based approach to building real-world cloud solutions. The patterns apply to the development process as well as to architecture and coding practices.

Este libro le guía a través de un enfoque basado en patrones para la construcción de soluciones reales en la nube. Los patrones se aplican al proceso de desarrollo, así como a la arquitectura y las prácticas de codificación.

Espero lo disfruten, saludos!

[ASP.NET MVC] Implementando Cache con Windows Azure Cache

Posted on Actualizado enn

Hola a todos, hoy quiero mostrarles como es de fácil implementar Windows Azure Cache como proveedor de cache para una aplicación ASP.NET MVC.

Lo primero es crear el servicio de cache en Windows Azure, para ello vamos a New -> Data Services -> Cache -> Quick Create y allí ingresamos los datos correspondientes:

cache1

Luego seleccionamos Create a new cache y esperamos que finalice la creación de la cache.

Ahora ya en Visual Studio y en el proyecto de MVC buscamos el paquete Nuget Windows Azure Cache y lo agregamos:

cache2

Una vez instalado, el paquete agrega las secciones correspondientes en el web.config, aspi que vamos a dicho archivo, buscamos la sección Windows Azure Cache session state provider y descomentariamos las siguientes línes:

<sessionState mode="Custom" customProvider="AFCacheSessionStateProvider">
  <providers>
    <add name="AFCacheSessionStateProvider" 
		type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" 
		cacheName="default" dataCacheClientName="default" 
		applicationName="AFCacheSessionState"/>
  </providers>
</sessionState>

Paso siguiente, en el mismo archivo de configuración, dentro del nodo dataCacheClients en identifier le damos el valor del Endpoint, dicho valor lo pueden consultar en el servicio de Cache en Windows Azure:

<autoDiscover isEnabled="true" identifier="democache.cache.windows.net" />

cache3

En el mismo nodo dataCacheClients, descomentariamos la parte de securityProperties y en authorizationInfo definimos el valor correspondiente a la Primary Access Key:

<securityProperties mode="Message" sslEnabled="false">
    <messageSecurity authorizationInfo="YWNzOmh0dHBzOi8vZ....." />
</securityProperties>

cache4

Por último solo resta comenzar a utilizar dicho servicio, para lo cual simplemente debemos ir creando/leyendo objetos de session:

//Añadir Objeto
Session.Add("key", value);

//Leer Objeto
var item = Session["key"];

Espero les sea de utilidad el post, saludos!

[ASP.NET MVC] Implementando autenticación con Windows Azure Active Directory

Posted on Actualizado enn

Hola a todos, con el release de Visual Studio 2013, Microsoft ha lanzado características super interesantes para los desarrolladores Web, y una de ellas trata sobre el concepto de 1 solo ASP.NET, en donde podemos realizar una mezcla bien cool de las diferentes opciones disponibles, adicionalmente, se ha incluido un pequeño wizard para poder configurar el sistema de autenticación (algo de lo que tratará este post), y lo mejor de todo es que lo podemos trabajar con Windows Azure Active Directory.

Lo primero que necesitamos es crear un nuevo Acitve Directory en Windows Azure, así que una vez logueados vamos a New > App Services > Active Directory > Directory > Custom Create:

Create AD

En la ventana modal que se abre ingresamos la información relacionada:

Add AD

Luego ya solo queda navegar a la opción Active Directory, seleccionar el directorio que acabamos de crear e iniciar la creación de usuarios:

testmvc ad

Ahora, vamos a Visual Studio 2013 donde se va a crear una nueva aplicación ASP.NET:

Visual Studio 2013

Ahora para el ejemplo, solo seleccionaré el template MVC:

Template MVC

En la misma pantalla, se va a cambiar el tipo de autenticación, así que click en Change Authentication, se abre una ventana en la cual se debe como primera medida seleccionar Organizational Accounts, y en la parte derecha para el campo Domain se ingresa la cuenta de Active Directoy creada anteriormente:

Change Authentication

Una vez ingresada la información anterior, al dar OK se debe ingresar la información de autenticación del Active Directory:

login

Una vez autenticados ya se crea el template de la aplicación, dicha aplicación ya tiene todo implementando para conectarnos con el Active Directory creado, como punto importante, para que la aplicación se ejecute correctamente dicha aplicación debe ejecutarse sobre https, afortunadamente cuando se ejecuta la aplicación desde Visual Studio, podemos simular el https:

https

Simplemente le decimos continuar a este sitio Web, una vez logueados somo redirigidos  a nuestra aplicación ya logueados (super no?):

mvc + ad

Espero el post les haya gustado, saludos!