2010-01-25 11 views
6

Nota: si está familiarizado con el modelo de precios de Azure, simplemente vaya a la sección "pregunta".Plataforma azul: instancias de escala arriba y abajo

Microsoft comenzará a cobrar por el uso de la plataforma Azure comenzando por February 1, 2010. La factura mensual será función del ancho de banda, el almacenamiento y otros. Entre los factores utilizados para calcular la factura está , tiempo de cálculo. Este último factor, sin embargo, tiene un nombre engañoso: en su lugar debe llamarse tiempo de host de instancia. Citando la página de precios de Windows Azure:

Al desarrollar y probar su aplicación, los desarrolladores tendrán que desee eliminar las instancias de proceso que no están siendo utilizados para minimizar horas de cómputo de facturación

lo tanto hacer que se piensa no es horas de cómputo, pero horas de actividad lo que se le cobrará. La duda se desvanece por completo después de leer la respuesta oficial a this question en los foros de MSDN:

puedo confirmar que cada instancia (de cualquier función) cuenta, y todas las horas que tiene la instancia recuento activas (independientemente de cómo mucha "actividad" que tienen). En el caso de una aplicación que tiene dos instancias de rol web y dos instancias de rol de trabajo, que le será facturado por cuatro casos

A partir de $ 0.12/hora por ejemplo, una aplicación para el uso de instancias N se le cobrará un promedio de 24 * 30 * 0.12 * N/mes = ~ $ 86/mes por instancia. El asunto empeora para sitios web pequeños cuando se tiene en cuenta el hecho de que no se pueden tener menos de 2 instancias si se desea que se aplique el tiempo de actividad del 99.9% service level agreement.

Por lo tanto, un sitio web pequeño y de bajo costo no es probablemente el mercado objetivo para Azure. Pero para los procesos por lotes, la carga probablemente desaparecería.

Pregunta

Hablando sólo en términos de cálculo de energía y "horas de proceso" facturación, Azure sería una buena opción de alojamiento para un proceso por lotes que se ejecuta sólo unas pocas horas al mes, siempre y solo si puede escalar (y abajo!) el número de instancias fácilmente. Por lo tanto:

  • ¿Es posible escalar progresivamente de forma programada el número de instancias en Azure? ¿Hay alguna otra opción además de cambiar manualmente el archivo de configuración?
  • ¿Existen problemas no obvios de reducir el número de instancias?
  • ¿Cuánto tiempo tarda Azure en "reconocer" la reducción de escala de su aplicación?

En cuanto a la última pregunta: Tomemos el caso extremo en el que tenga una gran cantidad de instancias (digamos, 1000) funcionando durante 45 minutos. Si Azure no es capaz de tomar nota de la reducción dentro de los 15 minutos posteriores a la finalización del proceso, se le cobrará por otras 1000 horas de tiempo de computación.

+1

Nota pequeña: "Escalado hacia arriba" y "hacia abajo" se utilizan generalmente para agregar recursos a un solo nodo. En este caso, creo que te refieres a "escalar" y "salir", lo que está agregando más nodos a un sistema. - Puede guiar la actualización de un archivo de configuración a un nuevo número de instancias con csmanage (http://code.msdn.microsoft.com/windowsazuresamples). Todavía tendría que patear esa secuencia de comandos localmente (no en azul). Es posible que desee comprobar esto: Automatización del ciclo de vida de la aplicación (http://microsoftpdc.com/Sessions/SVC25) –

+0

Hice una pregunta similar hace unos minutos en MSDN Azure Forum: http://social.msdn.microsoft. com/Foros/en-US/windowsazure/thread/e4fba2df-7676-48f9-9dfd-f0f3e40f7fe8 PD: ¡Gracias Jason! Visitaré los enlaces (¡y definitivamente revisaré mi idioma! :) –

Respuesta

3

Una pequeña advertencia, mis comentarios a continuación no se basan en la ejecución de aplicaciones de producción en Windows Azure; hasta ahora solo he estado jugando con eso y leyendo documentos.

¿Es posible escalar progresivamente de forma programada el número de instancias en Azure?

Sí, pero AFAIK Azure no escala y sube por sí mismo, tendrá que hacerlo a través de llamadas de servicio web (más o menos lo mismo que usar la interfaz de usuario para hacerlo a mano). Consulte este MSDN doc, la sección "Servicios alojados", y continúe leyendo desde allí.

Algo como el Hudson CI server se puede expandir con bastante facilidad para realizar una supervisión básica de cola de trabajos. Quizás necesites algo más rico en características; hay muchos sistemas similares de todo el mundo del "bus de servicio empresarial".

¿Existen problemas no obvios de reducir el número de instancias?

Hmn. Debe pensar en bloquear, es decir, cómo asegurarse de que cada trabajador abandone la cola en un estado constante y complete sus tareas antes del apagado.

Además, de la lista de precios de Azure: "Las horas de cálculo parciales se facturan como horas completas".

¿Cuánto tiempo tarda Azure en "reconocer" la reducción de escala de su aplicación?

Honestamente, no sé, pero asumiendo que su solicitud ha salido limpiamente su trabajo, yo supongo que sea un par de minutos como máximo. Instalan servidores nuevos lo suficientemente rápido, y supongo que comenzar nuevos servidores lleva más tiempo que cerrarlos.

Probarlo. Cree una cuenta barata, inicie algunos servidores, ciérrelos, etc. Cree un pequeño prototipo de su aplicación (o use una de las aplicaciones de muestra de Azure) y siéntase cómodo.

Otro aspecto es: ¿cuáles son sus garantías de poder escalar siempre que lo desee? Actualmente, no existe tal garantía con ningún proveedor de computación en la nube AFAIK; pero Amazon ha tenido un muy buen historial en esto. Azure es una nueva oferta, y no sabemos cuán buena es la estimación de la capacidad de Microsoft, es decir, no sabemos qué tan bien funcionarán en esto en los próximos meses. I espera esto para no ser un problema; que Microsoft manejará esto bien, pero aún no tengo evidencia de esto.

+0

Gracias por la guía. Creo que comenzaré algunas pruebas y responderé la última pregunta yo mismo ... el profesional es que obtendré una respuesta bastante precisa, la estafa es que tendré que pagar por la prueba :( –

+0

No lo hacen Empieza a cargar hasta el 1 de febrero ... así que si lo haces esta semana no tendrás que pagar por ello ... aunque no estoy seguro si puedes escalar a 1000 instancias actualmente (no lo he intentado)) aunque vi este enlace sobre algunos límites: http://blogs.msdn.com/jnak/archive/2010/01/22/windows-azure-instances-storage-limits.aspx –

+0

No, no se puede hacer está en el CTP (el máximo está restringido a 2) y todo lo que haga en enero comercialmente se cobrará en febrero. –

4

Tiene razón; paga horas de actividad, no de horas.

Una cosa de qué preocuparse es que pague por horas parciales sin ninguna prorrateo, por lo que si escala rápidamente hacia arriba y hacia abajo, estará comiendo horas completas.

Como han mencionado otras personas, puede escalar progresivamente desde su aplicación. sin embargo, en general, un rol particular solo tendrá acceso a sus propias métricas (a menos que guarde las métricas en almacenamiento), más cualquier métrica de recursos globales (longitud de cola, etc.), por lo que escalar según la utilización de CPU, etc., puede ser difícil.

La ampliación comienza casi al instante con una máquina que tarda unos minutos en girar. No hay acuerdos de nivel de servicio (SLA) con el servicio avanzado actualmente. Microsoft ha dicho que las instancias se presentarán en diferentes momentos, por lo que si realiza una operación de escalado muy grande, puede llevar mucho tiempo antes de que todas las instancias estén disponibles; pero algunas instancias estarán disponibles casi de inmediato. No se le cobrará por una instancia hasta que se haya agotado por completo.

La reducción de escala ocurre casi de inmediato, pero no puede controlar qué instancias se utilizan para la reducción, por lo que si el 50% de sus instancias están inactivas y realiza una reducción del 50%, puede eliminar todas sus instancias activas, y ese trabajo necesitaría reiniciarse en las instancias previamente inactivas. Debe asegurarse de que su diseño sea compatible con un buen reinicio del trabajo (si utiliza tiempos de espera de cola, esto puede suceder mayormente automáticamente)

Hay algunas soluciones de terceros que comienzan a aparecer para ayudar a escalar. Uno que he mirado que parece prometedor es AzureWatch de http://paraleap.com/ que ofrece algunas cosas como la automática de escala hacia arriba/abajo de los roles web y de los trabajadores, según la utilización, QueueLength, horario, etc.

2

Sí, ahora con la recién estrenada Autoscaling Application Block, La escala progresiva y progresiva del número de instancias en Azure es más fácil que nunca.

Ver mi respuesta detallada en este thread.

3

A partir del 26 de junio de 2013, Windows Azure incluye las capacidades de autoescalado incorporadas en la plataforma. Por ahora solo en la vista previa y con solo 2 métricas compatibles (uso de CPU y longitud de cola), es muy intuitivo y fácil de habilitar. Check it out.

Cuestiones relacionadas