Windows Azure Storage REST API


Los servicios de almacenamiento de Windows Azure, son expuestos nativamente desde una interface REST lo cual permite su uso desde cualquier tipo de aplicacion y plataforma.

Los servicios del API REST permiten  Windows Azure Storage son

Queue Service API

OperationDescription

List Queues

Lists all queues under the given account.

Create Queue

Creates a new queue under the given account.

Delete Queue

Deletes a queue.

Get Queue Metadata

Returns queue properties, including user-defined metadata.

Set Queue Metadata

Sets user-defined metadata on the queue.

Put Message

Adds a message to the queue.

Get Messages

Retrieves a message from the queue and makes it invisible to other consumers.

Peek Messages

Retrieves a message from the front of the queue, without changing the message visibility.

Delete Message

Deletes a specified message from the queue.

Clear Messages

Clears all messages from the queue.

Table Service API

OperationDescription

Query Tables

Enumerates the tables in a storage account.

Create Table

Creates a new table within a storage account.

Delete Table

Deletes a table from a storage account.

Query Entities

Queries data in a table.

Insert Entity

Inserts a new entity into a table.

Update Entity

Updates an existing entity within a table by replacing it.

Merge Entity

Updates an existing entity within a table by merging new property values into the entity.

Delete Entity

Deletes an entity within a table

Blob Service API

OperationResource TypeDescription

List Containers

Account

Lists all of the containers in the given storage account.

Create Container

Container

Creates a new container in the given storage account.

Get Container Properties

Container

Returns all properties and metadata on the container.

Get Container Metadata

Container

Returns only user-defined metadata for the specified container.

Set Container Metadata

Container

Sets metadata headers on the container.

Get Container ACL

Container

Gets the access control list (ACL) and any container-level access policies for the container.

Set Container ACL

Container

Sets the ACL and any container-level access policies for the container.

Delete Container

Container

Deletes the container and any blobs that it contains.

List Blobs

Container

Lists all of the blobs in the given container.

Put Blob

Block and page blobs

Creates a new blob or replaces an existing blob within a container.

Get Blob

Block and page blobs

Reads or downloads a blob from the system, including its metadata and properties.

Get Blob Properties

Block and page blobs

Returns all properties and metadata on the blob.

Set Blob Properties

Block and page blobs

Sets system properties defined for a blob.

Get Blob Metadata

Block and page blobs

Retrieves metadata headers on the blob.

Set Blob Metadata

Block and page blobs

Sets metadata headers on the blob.

Delete Blob

Block and page blobs

Deletes a blob.

Lease Blob

Block and page blobs

Establishes an exclusive one-minute write lock on a blob. To write to a locked blob, a client must provide a lease ID.

Snapshot Blob

Block and page blobs

Creates a snapshot of a blob.

Copy Blob

Block and page blobs

Copies a source blob to a destination blob within the same storage account.

Put Block

Block blobs only

Creates a new block to be committed as part of a block blob.

Put Block List

Block blobs only

Commits a blob by specifying the set of block IDs that comprise the block blob.

Get Block List

Block blobs only

Retrieves the list of blocks that make up the block blob.

Put Page

Page blobs only

Puts a range of pages into a page blob, or clears a range of pages from the blob.

Get Page Regions

Page blobs only

Returns a list of active page ranges for a page blob. Active page ranges are those that have been populated with data.

 

Nos leemos

  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati

author: Juan Mestas J. (aka gotchas) | Posted On Monday, October 03, 2011 4:13 PM | Feedback (0)

Windows Azure y ALM


ALM (Application Lifecycle Management) permite la gestion y control de los procesos involucrados en el desarrollo de soluciones dentro de una empresa, estableciendo buenas practicas y un marco medible, ALM se consigue mediante una combinación práctica y efectiva de servicios y herramientas, que ayudan a organizar y gestionar el ciclo de puesta en producción de los servicios o aplicaciones de software.

El desarrollo de aplicaciones en Windows Azure se puede beneficiar enormemente del soporte de TFS y MS Build a las practicas de ALM, en este post se ve un detalle de la configuracion de TFS Build para su uso con Windows Azure

http://www.thinkingtogether.net/blog/index.php/despliegue-a-azure-desde-build-de-tfs-2010-2/

Nos leemos


  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati

author: Juan Mestas J. (aka gotchas) | Posted On Monday, October 03, 2011 4:06 PM | Feedback (0)

Windows Azure Extra Small Instance


En el PDC10 del año pasado se realizaron una serie de anuncios alrededor de la Plataforma de Windows Azure, entre estas se incluyo el anuncion de una beta privada para la instancia ExtraSmall de Windows Azure. Esta instancia más pequeña proporciona a los desarrolladores un entorno de formación y desarrollo rentable.

image

También, los desarrolladores pueden utilizar la instancia ExtraSmall para prototipos de soluciones de nube a un menor costo. Para ver una comparación de precios y recursos de tamaños de instancia, haga clic aquí.

Esto significa por ejemplo que podemos hacer un piloto con un web y un worker role ambos (ExtraSmall: $0.05 x 2 = USD$0.1 la hora) en la nube a un costo aún menor que tener una instancia pequeña (small) con solo alguno de estos dos roles (USD$0.12).

Hoy en dia este programa es una beta publica, para poder tener acceso al mismo solo necesitamos entrar al nuevo portal de desarrollo y registrarnos para acceder al Beta

Nos leemos


  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati

author: Juan Mestas J. (aka gotchas) | Posted On Monday, October 03, 2011 3:25 PM | Feedback (0)

Roles en Windows Azure


Un servicio de hospedaje en Windows Azure, consiste en una aplicación diseñada para correr en la Nube de Microsoft y unos ficheros XML de configuración que definen cómo debe funcionar.

El modelo del servicio es determinado por la configuración almacenada en los ficheros ServiceDefinition.csdef y ServiceConfiguration.csfg y que son utilizados por Windows Azure para saber como la aplicación ha de funcionar. Y los cuales hemos visto en las entradas sobre Gestión de Servicios Azure.

Windows Azure Rol

 

 

¿Qué es un Rol?


Para un programador de .NET, como el que escribe estas líneas, es un tanto confuso como se utiliza el concepto de Rol en Windows Azure ya que, instintivamente, lo igualo al concepto de Rol de seguridad de un desarrollo .NET de escritorio o, aún más, de un proyecto ASP.NET.

 

En ASP.NET, Rol se trata sobre la manera en que se gestiona las autorizaciones de los usuarios. Es decir, con un simple User.IsInRole(), puedo saber si un usuario pertenece a una unidad organizativa de Directorio Activo o a un grupo de usuarios o a lo que yo haya definido en mi estructura. Y, entonces dar acceso o no a una página, servicio o control.

En windows Azure Role se refiere a la forma de funcionar de mi aplicación en la plataforma Azure. No a la seguridad, si no al cómo mi desarrollo se va a relacionar con mis usuarios u otras aplicaciones. Y los requisitos físicos y lógicos que implementa cada uno.

 

Web Role


Es el Role más utilizado y el más sencillo de entender. Es un sitio Web. Los recursos que implementa está orientados a soportar tráfico por http y a ser accesibles por navegantes tanto públicos como privados. Es decir aplicaciones Web que puedan correr sobre un IIS. Siendo actualmente soportados lenguajes como los .NET (C#, VB, etc.) más php, ruby y java.

 

La ventaja de este Role es que te puedes olvidar de configuraciones del IIS ya que todo está listo para publicar y funcionar. Como desventaja se podría señalar que no esta pensado para soportar procesos con ejecuciones largas. Que para eso está el Worker.

 

Worker Role


Este Role, a diferencia del anterior, está diseñado para ser el trabajador en la oscuridad. En desarrollo sería lo más parecido a un Servicio Windows ya que tiene el mismo objetivo: lanzar una tarea de forma reiterativa en el tiempo para que ejecute el código.

 

No tiene acceso directo con el usuario. Pero si que se puede comunicar tanto con otros Workers como con Webs Rolers configurando canales de comunicación con el protocolo y puerto que prefiera.

Y esa es la mayor ventaja y potencia de este Rol: la capacidad de ejecutar tareas de largo o muy largo proceso. Siendo el complemento ideal de los Web Roles para las ejecuciones de procesos en segundo plano.

 

VM Role

VM Role

 

Este Role es el último que ha llegado a la plataforma de Windows Azure. Y cruza la linea de PaaS para incluir servicios IasS. Básicamente cojo un Windows Server 2008 R2 Standar o Enterprise, solamente vale en inglés, y creo una disco duro virtual VHD.

Este disco duro lo subo a Windows Azure, con sus ficheros de configuración y despliegue oportunos, y se crea una máquina virtual con todas las capacidades del entorno Azure: escalabilidad inmediata, soporte de fallos, soporte de apagado, balanceador de carga e integración con el resto de los componentes de la Nube de Microsoft.

La gran diferencia de este Role con los anteriores es que no está centrado en desarrollar y hacer funcionar el código. Con este Role es necesario o accesible, el realizar labores de mantenimiento del sistema operativo como pudieran ser las actualizaciones, instalaciones de software o actuaciones ante contingencias. El trabajo de un IT.

El VM está pensado para cuando las instalaciones de mis aplicaciones sean largas, complejas o con posibilidades de incidencias en integración.

Nos leemos

 

 

  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati

author: Juan Mestas J. (aka gotchas) | Posted On Monday, October 03, 2011 3:19 PM | Feedback (0)

Principales Proveedores de Cloud Computing


  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati

author: Juan Mestas J. (aka gotchas) | Posted On Monday, October 03, 2011 12:16 PM | Feedback (0)

Ecosistema de Servicios en la Nube


  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati

author: Juan Mestas J. (aka gotchas) | Posted On Monday, October 03, 2011 12:16 PM | Feedback (0)

Caracteristicas Esenciales Cloud Computing


El modelo Cloud Computing cuenta con una serie de caracteristicas, las caracteristicas esenciales son 5:

1. Auto-Servicio bajo demanda: el consumidor podrá aprovisionar recursos computacionales en forma unilateral, según lo requiera, y sin requerimiento de interacción humana con el proveedor del servicio.

2. Permitir el acceso desde la red (pública, privada, híbrida, comunitaria): todos los recursos que ofrece la nube están disponibles en la red, y el consumidor no sólo puede acceder a ellos a través de mecanismos estándar, sino que también mediante plataformas heterogéneas como teléfonos móviles, laptops, PDAs, etc.

3. Pooles de recursos según características de servicio: los recursos del proveedor estarán agrupados para servir a múltiples consumidores (o tenants), utilizando un modelo que le permita una separación segura una vez asignados. Estos recursos pueden ser físicos o virtuales y deben tener todos componentes necesarios para brindar un SERVICIO COMPLETO, entendiéndose que éste podrá incluir recursos de almacenamiento, conectividad, procesamiento, elementos de software, políticas, métricas, etc. Estos mismos elementos podrán ser liberados de la misma forma como fueron aprovisionados, conservando las pautas de seguridad. La ubicación de los recursos donde se basa el servicio es prerrogativa del proveedor, y de cara al cliente existe una capa de abstracción en este sentido. Cabe recordar que a pesar de lo mencionado, es requisito cumplir con los niveles de servicio mencionados.

4. Capacidad de rápido crecimiento: las unidades de capacidad pueden ser rápidas y fácilmente aprovisionadas (en algunos casos en forma automática), escaladas (crecimiento) o liberadas. Para el consumidor, estos recursos suelen parecer ilimitados, y pueden ser adquiridos en cualquier cantidad y momento.

5. Servicio medido: los sistemas de la nube controlan de forma automática y optimizada la utilización de los recursos. Este uso de los recursos puede ser monitoreado y controlado, además, es posible realizar reportes para ambas partes, a fin de establecer la facturación del servicio.

Nos leemos

  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati

author: Juan Mestas J. (aka gotchas) | Posted On Monday, October 03, 2011 11:54 AM | Feedback (0)

Marco de Referencia Cloud Computing


El NIST ha definido el siguiente modelo de Referencia para el entorno de computacion en la Nube

Cloud Computing Marco

Nos leemos

  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati

author: Juan Mestas J. (aka gotchas) | Posted On Monday, October 03, 2011 11:47 AM | Feedback (1)

Areas Criticas de Soluciones en la Nube


Cloud Security Alliance, ha desarrollado una guia de Seguridad para la atencion de las areas criticas identificadas en entornos de Cloud Computing, esta guia puede ser accedida desde

https://cloudsecurityalliance.org/guidance/csaguide-es.v2.pdf

Nos leemos

 

  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati

author: Juan Mestas J. (aka gotchas) | Posted On Monday, October 03, 2011 11:38 AM | Feedback (0)

Modelos de Despliegue en la Nube


El NIST define 4 modelos de despliegue dentro del entorno de Cloud Computing

Nube Privada

 

Una Nube privada es la implementación de servicios de la nube sobre los recursos que se dedican a su organización, ya sea una implementación dentro de las instalaciones de la organización (on-premises) o fuera de ellas (off-premises) . Con una nube privada, obtendrá muchos de los beneficios de los servicios de una nube publica — incluyendo autoservicio, escalabilidad y elasticidad — con el control adicional y personalización de disponer de recursos dedicados.

Hay dos modelos de servicios de nube que se pueden brindar en una nube privada: infraestructura como un servicio (IaaS) y la plataforma como un servicio (PaaS). Con IaaS, puede utilizar los recursos de la infraestructura (computacionales, de red y de almacenamiento de información) como un servicio, mientras que PaaS proporciona una plataforma completa de aplicaciones como un servicio. Microsoft ofrece soluciones que brindan IaaS y PaaS para ambas implementaciones de nube privadas y públicas.

Soluciones de nube de privada

Usando la infraestructura como un modelo de servicio, la solución de nube privada de Microsoft, construída sobre la base de Windows Server 2008 R2 Hyper-V y System Center, es una parte fundamental del enfoque de Microsoft al cloud computing, lo que permite construir un entorno de nube dedicada a transformar la manera en la que se brindan los servicios de TI para el negocio.

Microsoft Solution para IaaS de nube privada

Usando la infraestructura como un modelo de servicio, la solución de Microsoft de nube privada, basada en Windows Server 2008 R2 Hyper-V y System Center, es una parte clave del enfoque de Microsoft a la computación en nube, lo que le permitirá construir un ambiente dedicadado a transformar la forma en ofrecer servicios de TI para el negocio.

 

Nube Comunitaria

La infraestructura de esta nube es compartida por varias organizaciones y apoya las preocupaciones de una comunidad particular sobre un tema específico, por ejemplo, seguridad, investigación, políticas o cumplimientos. Puede ser administrada por la organización o por un tercero y puede existir dentro de la misma, “on premises” o fuera de la misma, “off premises”.

Una nube comunitaria es similar a una nube pública excepto que su acceso es limitado a una comunidad específica de consumidores de la misma nube.

 

Nube Publica

La denominación de Cloud Público o Nube Pública hace referencia al modelo estándar de Cloud Computing, en donde el prestador de estos servicios pone a disposición de cualquier usuario en Internet su infraestructura, es decir, permite al usuario el uso de su software o hardware en forma libre o mediante el pago de una suma de dinero por el tiempo de uso de los mismos. 

  

La infraestructura de esta nube está disponible para el público en general o para un gran grupo de industria y dicha infraestructura la provee una organización que vende servicios en la nube.
Generalmente las nubes públicas se manejan por terceras partes, y los trabajos de muchos clientes diferentes pueden estar mezclados en los servidores, los sistemas de almacenamiento y otras infraestructuras de la nube. Los usuarios finales no conocen qué trabajos de otros clientes pueden estar corriendo en el mismo servidor, red, discos como los suyos propios

La ventaja más clara de las nubes públicas es la capacidad de procesamiento y almacenamiento sin instalar máquinas localmente, por lo que no tiene una inversión inicial o gasto de mantenimiento en este sentido, si no que se paga por el uso. La carga operacional y la seguridad de los datos (backup, accesibilidad, etc.) recae íntegramente sobre el proveedor del hardware y software, debido a ello, el riesgo por la adopción de una nueva tecnología es bastante bajo. El retorno de la inversión se hace rápido y más predecible con este tipo de nubes.

Como inconvenientes se cuenta con el acceso de toda la información a terceras empresas, y la dependencia de los servicios en línea (a través de Internet). También puede resultar difícil integrar estos servicios con otros sistemas propietarios. Es muy importante a la hora de apostar por un servicio en la nube pública, asegurarse de que se puede conseguir todos los datos que se tengan en ella, gratuitamente y en el menor tiempo posible.

Nube Hibrida
Es la composición de dos o más nubes, por ejemplo privada y pública, que permanecen como entidades únicas pero que coexisten por tener tecnología que permite compartir datos o aplicaciones entre las mismas. Piensen en un escenario en donde la aplicación se desarrolla y se prueba en una nube privada y luego se despliega a una nube pública.
Las nubes híbridas combinan los modelos de nubes públicas y privadas. Usted es propietario de unas partes y comparte otras, aunque de una manera controlada. Las nubes híbridas ofrecen la promesa del escalado aprovisionada externamente, en-demanda, pero añaden la complejidad de determinar cómo distribuir las aplicaciones a través de estos ambientes diferentes. Las empresas pueden sentir cierta atracción por la promesa de una nube híbrida, pero esta opción, al menos inicialmente, estará probablemente reservada a aplicaciones simples sin condicionantes, que no requieran de ninguna sincronización o necesiten bases de datos complejas.

Por ejemplo, muchas empresas han visto que es más económico usar un IaaS, como por ejemplo Amazon Simple Storage Service (S3), para almacenar imágenes, vídeos y documentos que en infraestructuras propias. El modelo híbrido también se presta a un enfoque incremental.

Incluso la nube híbrida puede ser un buen paso intermedio antes de pasar la mayor parte de las aplicaciones a la nube, ya que es algo menos arriesgado. Por tanto, sería interesante pasar algunas aplicaciones más útiles para la nube a esta y en el momento que se esté más cómodo, mover las que sean necesarias.

Una nube híbrida tiene la ventaja de una inversión inicial más moderada y a la vez contar con SaaS, PaaS o IaaS bajo demanda. En el momento necesario, utilizando las APIs de las distintas plataformas públicas existentes, se tiene la posibilidad de escalar la plataforma todo lo que se quiera sin invertir en infraestructura con la idea de tomar uno de los siguientes caminos:

  1. Si dicha necesidad llegara a ser de carácter estable, sería recomendable incrementar la capacidad de la nube privada e incorporar los servicios adoptados en la pública pasándolos a la nube propia.
  2. Si dicha necesidad es puntual o intermitente se mantendría el servicio en los Clouds públicos, lo que permite no aumentar la infraestructura innecesariamente.
Parece que este tipo de nubes está teniendo buena aceptación en las empresas de cara a un futuro próximo, ya que se están desarrollando softwares de gestión de nubes para poder gestionar la nube privada y a su vez adquirir recursos en los grandes proveedores públicos.

Nos leemos
Referencias

 

 

  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati

author: Juan Mestas J. (aka gotchas) | Posted On Monday, October 03, 2011 11:24 AM | Feedback (0)