Propuesta de VAN: Programando con Windows Azure

81 views
Skip to first unread message

Angel Java Lopez

unread,
Dec 5, 2010, 1:50:14 PM12/5/10
to altnet-...@googlegroups.com
Hola gente!

Queria proponer una VAN, sobre el tema de Programando en Azure.

Temas a incluir:

- Web Roles
- Worker Roles
- Azure Storage: Blobs, Queues, Tables
- Patrones
- Ejemplos

No tengo todavia SQL Azure (seguramente Fabio Maulo podria dar una VAN aparte sobre todo ese tema)

Podria darla en Enero, si les parece.

Nos leemos!

Angel "Java" Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez



Leonardo Micheloni

unread,
Dec 5, 2010, 5:22:49 PM12/5/10
to altnet-...@googlegroups.com
+1

2010/12/5 Angel Java Lopez <ajlop...@gmail.com>:

> --
> Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de
> Grupos de Google.
> Para publicar una entrada en este grupo, envía un correo electrónico a
> altnet-...@googlegroups.com.
> Para anular tu suscripción a este grupo, envía un correo electrónico a
> altnet-hispan...@googlegroups.com
> Para tener acceso a más opciones, visita el grupo en
> http://groups.google.com/group/altnet-hispano?hl=es.
>

Jorge Fioranelli

unread,
Dec 5, 2010, 5:27:53 PM12/5/10
to altnet-...@googlegroups.com

No virus found in this message.
Checked by AVG - www.avg.com
Version: 10.0.1170 / Virus Database: 426/3298 - Release Date: 12/05/10

Carlos Marcelo Santos

unread,
Dec 6, 2010, 6:52:28 AM12/6/10
to altnet-...@googlegroups.com

+1

--
Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a altnet-...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a altnet-hispan...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/altnet-hispano?hl=es.

Se certificó que el correo entrante no contiene virus.
Comprobada por AVG - www.avg.es
Versión: 9.0.872 / Base de datos de virus: 271.1.1/3298 - Fecha de la versión: 12/05/10 04:34:00

Edgar Ramos

unread,
Dec 6, 2010, 7:24:30 AM12/6/10
to altnet-...@googlegroups.com
+1

Alberto Alcaide

unread,
Dec 6, 2010, 7:35:06 AM12/6/10
to altnet-...@googlegroups.com
+1
--
Saludos,

Alberto Alcaide Vargas
Desarrollador de Software
Fono 88077791

Lester Quintero

unread,
Dec 6, 2010, 8:21:42 AM12/6/10
to altnet-...@googlegroups.com
+1

Jorge Gamba

unread,
Dec 6, 2010, 9:27:22 AM12/6/10
to altnet-...@googlegroups.com
+1
Jorge Gamba
Consultor en Desarrollo de Software

Dirección:        Diagonal 16 No. 16D-11, Barrio Bosque
                  Acacías (Meta), Colombia

Teléfono Fijo:    (+57 8)6563055
Teléfono Celular: (+57 300)2699384

Sitio Web:        http://jorgegamba.com
Twitter:          @jorgegamba

jescob...@gmail.com

unread,
Dec 6, 2010, 10:45:12 AM12/6/10
to AltNet-Hispano
Hola que tal!! Bueno me presento mi nombre es Angel soy de Peru y me
parece interesantísimo que propongan temas relacionados con la nube,
en especial Windows Azure como plataforma que al parecer está teniendo
muchísima acogida comercial en el mercado.

Adicionalmente sugiero hablar de Windows Azure AppFabric (caching,
cdn, AC+WIF) yo les puedo apoyar con esto en Enero... anteriormente
realize un par de webcast sobre el tema y bueno a futuro podriamos
conversar sobre WAG (Windows Azure Guidance by Eugenio Pace)
interesantisimoo

Angel Escobedo

El Bruno

unread,
Dec 6, 2010, 3:12:52 PM12/6/10
to AltNet-Hispano
+1

On Dec 6, 3:27 pm, Jorge Gamba <jorgega...@gmail.com> wrote:
> +1
>
> El 6 de diciembre de 2010 08:21, Lester Quintero <lester.quinte...@gmail.com
>
>
>
> > escribió:
> > +1
>
> > El 6 de diciembre de 2010 07:35, Alberto Alcaide <a.alcaid...@gmail.com>escribió:
>
> > +1
>
> >> El 6 de diciembre de 2010 09:24, Edgar Ramos <eramose...@gmail.com>escribió:
>
> >> +1
>
> >>> El 5 de diciembre de 2010 13:50, Angel Java Lopez <ajlopez2...@gmail.com
> >>> > escribió:
>
> >>> Hola gente!
>
> >>>> Queria proponer una VAN, sobre el tema de Programando en Azure.
>
> >>>> Temas a incluir:
>
> >>>> - Web Roles
> >>>> - Worker Roles
> >>>> - Azure Storage: Blobs, Queues, Tables
> >>>> - Patrones
> >>>> - Ejemplos
>
> >>>> No tengo todavia SQL Azure (seguramente Fabio Maulo podria dar una VAN
> >>>> aparte sobre todo ese tema)
>
> >>>> Podria darla en Enero, si les parece.
>
> >>>> Nos leemos!
>
> >>>> Angel "Java" Lopez
> >>>>http://www.ajlopez.com
> >>>>http://twitter.com/ajlopez
>
> >>>>  --
> >>>> Has recibido este mensaje porque estás suscrito al grupo
> >>>> "AltNet-Hispano" de Grupos de Google.
> >>>> Para publicar una entrada en este grupo, envía un correo electrónico a
> >>>> altnet-...@googlegroups.com.
> >>>> Para anular tu suscripción a este grupo, envía un correo electrónico a
> >>>> altnet-hispan...@googlegroups.com<altnet-hispano%2Bunsu...@googlegroups.com>
> >>>> Para tener acceso a más opciones, visita el grupo en
> >>>>http://groups.google.com/group/altnet-hispano?hl=es.
>
> >>>  --
> >>> Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano"
> >>> de Grupos de Google.
> >>> Para publicar una entrada en este grupo, envía un correo electrónico a
> >>> altnet-...@googlegroups.com.
> >>> Para anular tu suscripción a este grupo, envía un correo electrónico a
> >>> altnet-hispan...@googlegroups.com<altnet-hispano%2Bunsu...@googlegroups.com>
> >>> Para tener acceso a más opciones, visita el grupo en
> >>>http://groups.google.com/group/altnet-hispano?hl=es.
>
> >> --
> >> Saludos,
>
> >> Alberto Alcaide Vargas
> >> Desarrollador de Software
> >> Fono 88077791
>
> >>  --
> >> Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano"
> >> de Grupos de Google.
> >> Para publicar una entrada en este grupo, envía un correo electrónico a
> >> altnet-...@googlegroups.com.
> >> Para anular tu suscripción a este grupo, envía un correo electrónico a
> >> altnet-hispan...@googlegroups.com<altnet-hispano%2Bunsu...@googlegroups.com>
> >> Para tener acceso a más opciones, visita el grupo en
> >>http://groups.google.com/group/altnet-hispano?hl=es.
>
> >  --
> > Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano"
> > de Grupos de Google.
> > Para publicar una entrada en este grupo, envía un correo electrónico a
> > altnet-...@googlegroups.com.
> > Para anular tu suscripción a este grupo, envía un correo electrónico a
> > altnet-hispan...@googlegroups.com<altnet-hispano%2Bunsu...@googlegroups.com>
> > Para tener acceso a más opciones, visita el grupo en
> >http://groups.google.com/group/altnet-hispano?hl=es.
>
> --
> *Jorge Gamba*
> *Consultor en Desarrollo de Software*
>
> Dirección:        Diagonal 16 No. 16D-11, Barrio Bosque
>                   Acacías (Meta), Colombia
>
> Teléfono Fijo:    (+57 8)6563055begin_of_the_skype_highlighting            (+57 8)6563055      end_of_the_skype_highlighting
> Teléfono Celular:(+57 300)2699384begin_of_the_skype_highlighting            (+57 300)2699384      end_of_the_skype_highlighting
>
> Sitio Web:        http://jorgegamba.com
> Twitter:          @jorgegamba <http://twitter.com/jorgegamba>

Camilo Vera

unread,
Dec 10, 2010, 10:31:31 AM12/10/10
to altnet-...@googlegroups.com
+1

2010/12/6 El Bruno <bcap...@gmail.com>

Alejandro Labra

unread,
Dec 11, 2010, 11:40:17 PM12/11/10
to AltNet-Hispano
+1

Lo único que faltaría definir es la fecha....

Saludos
Alejandro Labra
@alabras

Angel Java Lopez

unread,
Jan 6, 2011, 7:40:52 AM1/6/11
to altnet-...@googlegroups.com
Hola gente!

Les parece Sabado 29 de Enero, a la misma hora de siempre?

Preferiria Live Meeting.... Martin Salias es mas joven que yo y se adapta a otros programas... yo soy un tradicionalista ;-)
2010/12/12 Alejandro Labra <alejand...@gmail.com>

--

Edgar Ramos

unread,
Jan 6, 2011, 9:24:30 AM1/6/11
to altnet-...@googlegroups.com
+1, Excelente propuesta

Saludos

Edgar

nelopa...@gmail.com

unread,
Jan 6, 2011, 9:26:48 AM1/6/11
to altnet-...@googlegroups.com
+1

2011/1/6 Edgar Ramos <eramo...@gmail.com>:

Alejandro Labra

unread,
Jan 6, 2011, 10:42:41 AM1/6/11
to altnet-...@googlegroups.com
+1,
Hay estaremos...

Jorge Gamba

unread,
Jan 27, 2011, 8:18:46 PM1/27/11
to altnet-...@googlegroups.com
Hola, recuerden que este sábado tenemos la primera VAN del año, esta de Azure con el maestro Angel "Java" López, a la misma hora de siempre, 18:00 UTC/GMT.

El 6 de enero de 2011 10:42, Alejandro Labra <alejand...@gmail.com> escribió:
+1,
Hay estaremos...

--
Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a altnet-...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a altnet-hispan...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/altnet-hispano?hl=es.



--
Jorge Gamba
Consultor en Desarrollo de Software

Dirección:        Diagonal 16 No. 16D-11, Barrio Bosque
                  Acacías (Meta), Colombia

Teléfono Fijo:    (+57 8)6563055
Teléfono Celular: (+57 300)2699384

Jorge Gamba

unread,
Jan 28, 2011, 11:22:27 AM1/28/11
to altnet-...@googlegroups.com
También recuerden que el link de conexión a la reunión via live meeting es http://snipr.com/virtualaltnet, encontrarán más información sobre cómo conectarse en la página http://altnethispano.org/reuniones/descripcion.aspx.

Fabio Maulo

unread,
Jan 28, 2011, 4:17:33 PM1/28/11
to altnet-...@googlegroups.com
No creo ser el adecuado.

2010/12/5 Angel Java Lopez <ajlop...@gmail.com>
Hola gente!

--
Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a altnet-...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a altnet-hispan...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/altnet-hispano?hl=es.



--
Fabio Maulo

Ariel Piñeiro

unread,
Jan 29, 2011, 12:45:54 PM1/29/11
to altnet-...@googlegroups.com
Muchachos arranca ahora en 15 minutos?
O es a las 18 Argentina?

Saludos,
Ariel Piñeiro
http://ar.linkedin.com/in/arielpineiro



2011/1/28 Fabio Maulo <fabio...@gmail.com>

Jorge Gamba

unread,
Jan 29, 2011, 12:47:22 PM1/29/11
to altnet-...@googlegroups.com
Sí, es en 15 minutos

2011/1/29 Ariel Piñeiro <arie...@gmail.com>



--

Alejandro Labra

unread,
Jan 31, 2011, 11:38:10 PM1/31/11
to altnet-...@googlegroups.com
Hola a todos,

Ya se encuentra publicada la VAN, la pueden ver en el siguiente enlace. http://altnethispano.org/wiki/van-2011-01-29-windows-azure.ashx.

Saludos
Alejandro Labra
@alabras

Eugenio Pace

unread,
Feb 2, 2011, 3:53:27 PM2/2/11
to altnet-...@googlegroups.com
Gracias Angel! Muy buena sesion como siempre. Estuve los primeros 30 min, pero despues me tuve que ir.
 
Un par de cosas que escuche en la grabacion sobre las cuales queria agregar un poco mas de informacion para toda la comunidad. Angel meciono algunas de estas, pero las pongo aca para reforzar los conceptos.
 
1- Transacciones entre diferentes tipo de storage (tables, queues y blobs) no estan soportadas. Cada operacion en cualquiera de los subsistemas de storage es atomica e independiente de las otras.
 
2- Transacciones en Tables si estan soportadas, aunque con algunas limitaciones. Usualmente se usa la opcion “batch”. Es decir, cuando se hace un “save”, se hace “save” de una lista de entidades que se tratan como un “unit of work”, pero todas las entidades deben tener al mismo PartitionKey. Otro limite es que la transaccion no puede tener mas de 1000 entidades o 4 MB total.
 
3- La visibilidad de un mensaje en una cola es inmediata. No hay ningun delay despues de un “put”. Por eso usualmente el “put” es la ultima operacion en una “transaccion compleja” (e.g.: escribo un blob, guardo en una tabla, guardo en otra y finalmente notifico a traves de un mensaje). Si fuera al reves, un worker podria leer el mensaje en la cola y tratar de procesar blobs/tables que aun no tienen la informacion. La lectura de un mensaje de una cola simplemente lo convierte en “invisible” hasta que el mensaje se borra explicitamente o hasta que la invisibilidad “expira”. La consecuencia de este comportamiento es que:
    a- Hay una posibilidad no nula de leer el mismo mensaje mas de una vez
    b- Los mensajes pueden leerse en un orden distinto al enviado (no es un FIFO estricto)
    c- Se puede usar la propiedad “dequeue count” como mecanismo para determinar si hubo varios intentos de procesar un mensaje sin exito. (Estos mensajes se denominan “posion messages” porque su contenido puede ser la razon de hacer fallar al proceso que los lee, y consecuencia de eso es que regresan a la queue). Una buena practica es leer el valor de “dequeue count” y si el valor es > a un limite predeterminado escribir el mensaje en otra cola para analisis posterior (una especie de “dead letter queue”).
 
4- Los 8K de limite en la queue es post-encoding. El tamanio efectivo del mensaje es un poco mas chico (~6K). Creo (pero no estoy muy seguro), que este encoding ocurre solo si se usa la API de StorageClient. Si se usa el endpoint directamente (usando HttpRequest por ejemplo), el limite es 8K.
 
5- Leer mensajes en batch (hasta 32) es otra buena practica (mas barato y mejor en relacion a la latencia en la red)
 
6- Un dato pcoo conocido: en Windows Azure es posible tener un Web Role y un Worker role en la misma instancia. Mucho mas barato y aceptable para muchas aplicaciones que no tienen grandes requerimientos (e.g. pocos usuarios concurrentes/proco trafico,etc)
 
7- Costos: les recomiendo el capitulo de nuestro libro: http://msdn.microsoft.com/en-us/library/ff803375.aspx para entender como abordarlo. Los numeros especificos van cambiando porque hay promociones/descuentos/ofertas, etc. Por ejemplo, hace un tiempo hubo una oferte para subscriptores de MSDN (casi 6 meses de uso sin costo), pero el approach es basicamente el mismo.
 
Sintesis de costos (todos los precios en USD)
 
CPU:
- Desde 0.12 a 0.96 $/horas dependendiendo de la potencia de la maquina (hay 4 tamanio de maquinas: 1, 2, 4 y 8 cores). El minimo “quantum” de uso es 1 hora. Si prenden una maquina a las 12:00 y la apagan a las 12:03 –> 1 hora. 12:00 – 12:40 –> 1 hora. El precio es el mismo si es un Web Role o Worker Role o VM Role.
 
Storage:
- 0.15 $/GB por mes, no importa el tipo de storage (tbles, blobs, queues)
- 0.01 $/10K trx –> cada 10.000 operaciones (read, write, delete) pagan 1 centavo de dolar (por eso convienen siempre las operaciones batch)
 
Bandwidth:
- Intra-datacenter en la misma region no tiene costo.
- bandwidth hacia el datacenter: $0.15/GB, saliendo $0.10/GB
 
En Asia , el bandwidth es 3x (0.45 / 0.30 respectivamente)
 
SQL Azure:
   
- 1GB –> $10/mes
- 10GB –> $100/mes
hasta un maximo de 50GB.  
 
Hay mas servicios, pero estos son los principales hoy.
 
 
Finalmente, un mensaje publicitario:
 
- Consideraciones generales de migracion: http://msdn.microsoft.com/en-us/library/ff728592.aspx
- Consideraciones generales de desarrollo (greenfield): http://msdn.microsoft.com/en-us/library/ff966499.aspx
 
Las dos guias incluyen ejemplos (con una funcionalidad un poco mas aburrida que los de Angel: no hay ningun fractal. Y definitivamente muuuucho mas aburridos que los ejemplos con blob storage que mostro Smile. Aca vamos todos presos si publicamos un ejemplo asi...)
 
 
Cierro con una recomendacion: si bien “maestro no toca dinero”, en Windows Azure (y en casi cualquier offering parecido de PaaS), el disenio de la aplicacion tiene un impacto directo en la facturacion que reciben. Asi que entender los numeros no es un mero ejercicio de contabilidad. Va a influenciar directamente la forma en la cual disenian. Una suerte de CDD: cost driven design Smile. Yo creo que esto es bueno, porque en general mejores disenios son premiados con menor facturacion. Y el dinero, es un gran motivador para cambiar comportamiento. No les parece?
 
 
Espero que les sea util. Cualquier duda / consulta / pregunta, me avisan!
 
Saludos a todos.
Eugenio
wlEmoticon-smile[1].png

Angel Java Lopez

unread,
Feb 2, 2011, 4:00:55 PM2/2/11
to altnet-...@googlegroups.com
Hola gente!

Muchas gracias, Eugenio, por asistir, y por esta muy detallada informacion, para completar los temas tratados.
2011/2/2 Eugenio Pace <eugeni...@gmail.com>
Gracias Angel! Muy buena sesion como siempre. Estuve los primeros 30 min, pero despues me tuve que ir...


José F. Romaniello

unread,
Feb 2, 2011, 4:09:47 PM2/2/11
to altnet-...@googlegroups.com
Podriamos hacer copy paste de este mensaje de Eugenio en el wiki?, tal
vez es util para quienes lo vean offline

Saludos

El 02/02/11, Angel Java Lopez <ajlop...@gmail.com> escribió:

> --
> Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de
> Grupos de Google.
> Para publicar una entrada en este grupo, envía un correo electrónico a
> altnet-...@googlegroups.com.
> Para anular tu suscripción a este grupo, envía un correo electrónico a
> altnet-hispan...@googlegroups.com
> Para tener acceso a más opciones, visita el grupo en
> http://groups.google.com/group/altnet-hispano?hl=es.
>
>

--
Enviado desde mi dispositivo móvil

Jorge Fioranelli

unread,
Feb 2, 2011, 4:41:25 PM2/2/11
to altnet-...@googlegroups.com, <altnet-hispano@googlegroups.com>
Hola Eugenio,

Dos consultas:

- Para que el webrole y el workerrole corran en la misma instancia hay que configurar algo en particular?

- Un conocido me contó que si dejas las instancias stopeadas se facturan igual, que la única forma de que no las facturen es borrandolas. Según él esto lo aprendió cuando le vino la primer factura :S. Suena raro que se facture algo que no está corriendo, pero es verdad que al estar ya deployado ocupa lugar en el server.
Es cierto esto?

Muchas gracias

Jorge

Pd: y Angel gracias por la VAN!
Las dos guias incluyen ejemplos (con una funcionalidad un poco mas aburrida que los de Angel: no hay ningun fractal. Y definitivamente muuuucho mas aburridos que los ejemplos con blob storage que mostro <wlEmoticon-smile[1].png>. Aca vamos todos presos si publicamos un ejemplo asi...)
 
 
Cierro con una recomendacion: si bien “maestro no toca dinero”, en Windows Azure (y en casi cualquier offering parecido de PaaS), el disenio de la aplicacion tiene un impacto directo en la facturacion que reciben. Asi que entender los numeros no es un mero ejercicio de contabilidad. Va a influenciar directamente la forma en la cual disenian. Una suerte de CDD: cost driven design <wlEmoticon-smile[1].png>. Yo creo que esto es bueno, porque en general mejores disenios son premiados con menor facturacion. Y el dinero, es un gran motivador para cambiar comportamiento. No les parece?
 
 
Espero que les sea util. Cualquier duda / consulta / pregunta, me avisan!
 
Saludos a todos.
Eugenio
 
 
 
 
 
Sent: Monday, January 31, 2011 8:38 PM
Subject: Re: [altnet-hispano] Propuesta de VAN: Programando con Windows Azure
 
Hola a todos,
 
Ya se encuentra publicada la VAN, la pueden ver en el siguiente enlace. http://altnethispano.org/wiki/van-2011-01-29-windows-azure.ashx.
 
Saludos
Alejandro Labra
@alabras
--
Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a altnet-...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a altnet-hispan...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/altnet-hispano?hl=es.

Angel Java Lopez

unread,
Feb 2, 2011, 4:57:46 PM2/2/11
to altnet-...@googlegroups.com
Respuesta rapida:

Hay un ejemplo de correr una aplicacion web (no se si es un web role) desde un worker role:
http://code.msdn.microsoft.com/wazdmon

No se si esta el codigo disponible, seguramente Eugenio podra aportar mas.

No vi que se pudiera correr un Worker Role desde un Web Role.
2011/2/2 Jorge Fioranelli <jorge.fi...@gmail.com>

Eugenio Pace

unread,
Feb 2, 2011, 5:29:19 PM2/2/11
to altnet-...@googlegroups.com
Este articulo habla de como combinar un WebRole y un Worker Role en una sola instancia:
 
 
Esta medio oculto y es poco intuitivo, pero  muy simple de implementar. Yo lo uso en algunas aplicaciones mias que no requieren muchas prestaciones.
 
 
Jorge – si, es cierto. Un servicio desplegado, pero no iniciado, se factura igual porque, como bien vos decis, esta ocupando un “slot” en el datacenter que no puede ser utilizado por otros. Es el modelo de un hotel: uno reserva la habitacion y tienen garantizado su uso mientras tenga una reserva valida. Ahora, si uno esta durmiendo o pasenado por la ciudad, no importa, igual se paga. Por las razones que expuse en mi mensaje anterior, reservas de menos de 1 hora no tienen ninguna ventaja. Asi que les conviene hacer la programaciond e uso en bloques de horas enteras.
 
En el portal pusieron un cartelito bastante llamativo precisamente para avisar a los usuario y que no haya sorpresas.
 
Saludos
Eugenio
2011/2/2 Jorge Fioranelli <jorge.fi...@gmail.com>
Para anular tu suscripción a este grupo, envía un correo electrónico a mailto:altnet-hispano%2Bunsu...@googlegroups.com

Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/altnet-hispano?hl=es.

Jorge Fioranelli

unread,
Feb 2, 2011, 6:05:50 PM2/2/11
to altnet-...@googlegroups.com, <altnet-hispano@googlegroups.com>
Gracias Eugenio y Ángel por las respuestas.

Fabio Maulo

unread,
Feb 3, 2011, 8:18:48 AM2/3/11
to altnet-...@googlegroups.com
Hola Eugenio.
Para el punto 3 me equivoque confundiendo la visibilidad de un put con el Visibility-timeout de un get.
Sabes si hay algún pattern, que se haya descubierto/descripto para el rollback de un msg en la queue ?

2011/2/2 Eugenio Pace <eugeni...@gmail.com>



--
Fabio Maulo

wlEmoticon-smile[1].png

Eugenio Pace

unread,
Feb 3, 2011, 5:26:50 PM2/3/11
to altnet-...@googlegroups.com
Hola Fabio!
 
EL rollback es manual. El tema es que una vez que se escribe en una cola el mensaje es visible a otros procesos (en workers) asi que es mejor diseniar suponiendo que alguien lo va a leer y compensar de alguna otra manera.
 
El patron mas comun es el que mencionaba abajo: escribir en la cola al final de todo la “transaccion”. En uno de los ejemplos de la guia hacemos precisamente eso.
 
1- Escribimos en todas las tablas / blobs, etc. Usualmente el root lo  escribimos ultimo (e.j. en una “factura”, primero salvamos los “line items”
y despues los “headers”).
2- Al final escribimos en la cola de datos para avisarle al proceso siguiente.
 
Si 1 falla, el mensaje nunca se escribe.
Si 1 falla por la mitad, digamos al escribir el “root”, las entidades subordinadas quedan “colgadas del aire”, pero como nadie las referencia el sistema sigue consistente. Podemos implementar un proceso de limpieza que elimine datos sin referencias.
Si la falla ocurre justo al escribir el mensaje, (supongamos el peor caso de que la maquina “desaparece” justo despues de escribir todas las entidades). En este caso el usuario va a recibir un error igual y podria reintentar. Todo se procesaria de nuevo. Las entidades previas podrian dejarse ahi y simplememte detectar que ya estan y escribir el mensaje en la cola.
 
Un factor a tener en cuenta: storage es barato. Tener info redundante suele no ser un factor importante a considerar desde el punto de vista de costos. Si lo es desde el punto de vista del disenio de la aplicacion, consistencia de los datos, etc.
 
Saludos!
Eugenio
2011/2/2 Eugenio Pace <eugeni...@gmail.com>
Para anular tu suscripción a este grupo, envía un correo electrónico a mailto:altnet-hispano%2Bunsu...@googlegroups.com

Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/altnet-hispano?hl=es.
--
Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a altnet-...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a mailto:altnet-hispano%2Bunsu...@googlegroups.com

Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/altnet-hispano?hl=es.



--
Fabio Maulo

wlEmoticon-smile[1].png

Fabio Maulo

unread,
Feb 4, 2011, 5:22:08 PM2/4/11
to altnet-...@googlegroups.com
Para cerrarlo a mi estilo:
did you send a message to #Azure queue and you would delete it before somebody read it ?
#SayItWithAsong

2011/2/3 Eugenio Pace <eugeni...@gmail.com>



--
Fabio Maulo

wlEmoticon-smile[1].png

Eugenio Pace

unread,
Feb 4, 2011, 7:45:47 PM2/4/11
to altnet-...@googlegroups.com
Bueno, es lo que es...Smile
 
Pero, a ver si entendi bien. Vos preferirias una API que te permita:
 
1- Escribir el mensaje en la cola pero en forma “invisible”
2- Hacer algo
3- Cambiar el mensaje a “visible”
 
La alternativa propuesta (que funciona hoy) es:
 
1- Hacer algo
2- Escribir en la cola
 
En que situaciones la opcion 2 no es suficiente? Tenes un ejemplo?
 
Saludos
Eugenio
 
#sayitwithasong
wlEmoticon-smile[1].png
wlEmoticon-smile[1].png

Fabio Maulo

unread,
Feb 5, 2011, 7:37:47 AM2/5/11
to altnet-...@googlegroups.com
Mas o menos:

Sistema con domain-events (sincronos).
Tenes carteles publicitarios disponibles en una feria. Cada cartel está en una posicción Geo especifica.
Un usuario del sistema alquila el espacio publicitario por un tiempo (ej: 10 dias).
Un usuario puede alquilar un espacio publicitario solo si ya no fue alquilado.
Cuando el alquiler se pudo llebar a cabo se disparan un domain-event.
Por el domain-event hay varios handlers que lleban a cabo varias operacciones.
Alguna operacción necesita el uso de la cola (generar pdf-factura, envio mail con factura etc.) con mensajes "solitarios" y en saga.
Dos usuarios intentan alquilar el mismo cartel pero solo uno podrá llevar a cabo la operacción.

Si bien la solucción del problema es subjeta a opinion y, por lo tanto se pueda resolver de varias formas, se requiere que todo el proceso esté en una transacción (en el mismo TransactionScope) de forma que no lograr enviar el mensaje de generacción del pdf es lo mismo que no poder grabar (en DB) el "reservado" de un cartel.

Creo que tener un mecanismo similar al visibilityTimeout, tambien para el Put, sea algo util.
De todas formas me quedó bastante claro que, por otros motivos como la no certeza de la duplicacción de mensajes, hay que pensar el sistem de forma que el mismo mensaje ejecutado dos veces produzca el mismo identico estado del sistema.

"Lamentablemente" no me ocupé mas del tema y quien se ocupó optó para usar un scheduler que verifique el estado en DB en lugar que usar una queue.
Si/cuando me pongo con algo similar voy a tratar de descubrir algún patrón que haya implementado, a racionalizarlo, darle nombre y postearlo.

P.S. el video no está disponible por estos lidos.

2011/2/4 Eugenio Pace <eugeni...@gmail.com>



--
Fabio Maulo

wlEmoticon-smile[1].png
wlEmoticon-smile[1].png

Eugenio Pace

unread,
Feb 5, 2011, 11:45:02 AM2/5/11
to altnet-...@googlegroups.com
Transacciones distribuidas (tipo DTC) entre Queues/Tablas y Blobs no esta disponible hoy. Y la verdad que no se cuando lo va a estar...
 
Sin embargo la idea esta buena para scheduling de operaciones a futuro. “Time based job scheduling” en general es algo para lo cual no hay mucha infraestructura en Windows Azure hoy. Seria bueno tener algo mas general disponible en la plataforma (e.g. un Control-M y JCL para los mas viejos del grupo como yo Smile).
 
En el ejemplo “Fabrikam Shipping” que publicaron nuestros colegas de DPE (y desarrollado por hay un framework mas o menos sofisticado para lograr esto en combinacion de queues/workers, etc. (parte del ProvisioningFramework). Es similar (aunque mas refinado) a lo implementado en una de nuestras guias (Developing Apps For the Cloud), pero en nuestro caso, no habia ningun concepto tempora, solo sucesos.  (Similar tambien a otros frameworks que han surgido como Lokad, etc)
 
Bueno, despues de leer tu mensaje me di cuenta de algo que olvide mencionar una limitacion adicional: los mensajes en una queue tienen una vida maxima de 7 dias y no hay forma de extenderla (salvo leerlo y reescribirlo). A los 7 dias, Azure borra todo. Esto es solo valido para queues obviamente (un blob o tabla con 7 dias de expiracion no seria muy util, no?). Se que es algo que va a cambiar, y sobre lo cual va a haber mas control, pero no se exactamente cuando...
 
Esto que escribiste es sumamente imoprtante en entornos como Windows Azure por todas las razones discutidas.
wlEmoticon-smile[1].png
wlEmoticon-smile[1].png
wlEmoticon-smile[1].png

Carlos Admirador

unread,
Jun 26, 2015, 10:22:21 AM6/26/15
to altnet-...@googlegroups.com
Otra VAN sobre este tema ? :-)

Saludos.
Carlos


El domingo, 5 de diciembre de 2010, 19:50:14 (UTC+1), ajlopez escribió:
Hola gente!

Queria proponer una VAN, sobre el tema de Programando en Azure.

Temas a incluir:

- Web Roles
- Worker Roles
- Azure Storage: Blobs, Queues, Tables
- Patrones
- Ejemplos

No tengo todavia SQL Azure (seguramente Fabio Maulo podria dar una VAN aparte sobre todo ese tema)

Podria darla en Enero, si les parece.

Juan Carlos Quijano Abad

unread,
Jun 26, 2015, 10:40:19 AM6/26/15
to altnet-...@googlegroups.com

Anda q no ha cambiado Azure desde entonces 😁

Yo puedo dar una de iniciación a Buil + Release Management.

--
Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a altnet-hispan...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a altnet-...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/altnet-hispano.
Para acceder a más opciones, visita https://groups.google.com/d/optout.


--
--
Un saludo
Juan Quijano

Leonardo Micheloni

unread,
Jun 28, 2015, 10:44:21 AM6/28/15
to altnet-hispano
Eso sería excelente Juan Carlos, decinos tu disponibilidad y ya la agendamos. Gracias!

2015-06-26 11:40 GMT-03:00 Juan Carlos Quijano Abad <juancarl...@gmail.com>:

Anda q no ha cambiado Azure desde entonces 😁




--
Leonardo Micheloni
@leomicheloni
emoji_u1f601.png

Juan Carlos Quijano Abad

unread,
Jun 28, 2015, 2:36:36 PM6/28/15
to altnet-hispano
Buenas,

Cualquier día de Julio a partir de las 16:00 hora española.

--
Un saludo
Juan Quijano
emoji_u1f601.png

Ernesto Cárdenas

unread,
Jun 28, 2015, 3:14:57 PM6/28/15