¿Desarrollo de aplicaciones sobre la nube o incluso optimización de esta sin un proceso de “testing” a la altura? La utilización de bancos de pruebas reales sin duda limita los experimentos y hace que la reproducción de resultados sea para este tipo de entornos un tanto difícil.

Una alternativa adecuada es usar herramientas de simulación, ya que abren la posibilidad de evaluar la hipótesis antes del desarrollo de software en un entorno donde se pueden reproducir tests sin impacto en el bolsillo. Como bien conocemos en la computación en la nube, el acceso a la infraestructura incurre en pagos a golpe de tarjeta, los enfoques basados ​​en la simulación ofrecen beneficios significativos, ya que permite a los clientes probar sus servicios/aplicaciones en un entorno repetible y controlable cerca de un coste que tiende a 0. Es decir, que si buscamos ajustar aspectos de rendimiento y evitar futuros cuellos de botella antes de implementarlos en nubes públicas reales nos pueden ser de mucha utilidad.

Por la parte del proveedor, los entornos de simulación permiten la evaluación de diferentes tipos de escenarios de “alquiler” de recursos con diversas configuraciones de cargas de trabajo y a partir de aquí llegar incluso a ajustar o establecer sus tarifas. En ausencia de este tipo de plataformas de simulación, los clientes y los proveedores cloud tienen que confiar en suposiciones teóricas, dónde los enfoques de prueba/error pueden conducir a la prestación de un servicio ineficiente y en consecuencia impacto sobre la propia generación de ingresos.

Resumiendo, tests de integración parecidos al entorno productivo permiten:

  1. Validar rápidamente suposiciones.
  2. Trabajar con volumenes de recursos que no podemos conseguir.
  3. Ahorrar tiempo.
  4. [alguna más que seguro estás pensando..]

Algunos ejemplos de “frameworks” disponibles:
CloudSim http://www.cloudbus.org/cloudsim/  – Univ. of Melbourne

  • Dedicado a entornos cloud (IaaS & PaaS)
  • Java
  • Se está situando como estándar en su campo




SimGrid http://simgrid.gforge.inria.fr/ –  Inria / Univ. Lorraine

  • Establecido en al comunidad científica (muy versátil)
  • C y varios bindings (Java incluido)
  • Reorientado hacia cloud por la ANR via el proyecto Songs






GreenCloud http://greencloud.gforge.uni.lu/ – Univ. Luxembourg

  • Orientado a la mejora de la eficiencia energética.
  • Simulación de entornos de virtualización y clouds privados.
  • Altamente enfocado a networking.

Y hasta aquí el repaso del ecosistema de herramientas de referencia, como es habitual cada opción con sus ventajas e inconvenientes dónde su aplicación vendrá determinada por cada caso.
A modo de conclusiones:

  • Los simuladores sin duda son de mucha utilidad frente a la validación y testeo de algoritmos de  optimización/automatización de procesos y del manejo del ciclo de vida de recursos en cloud. Un verdadero reto dónde las aplicaciones (lo de arriba) y la infraestructura (lo de abajo) aumentaran su eficiencia debido a alinearse con los primeros y en consecuencia hacer un mejor uso de los segundos.
  • El uso de simuladores permite a investigadores y desarrolladores de la industria concentrarse en cuestiones de diseño de sistemas específicos que quieren investigar, sin estar preocupados por los detalles relacionados con la infraestructura y servicios base que ofrece la nube.

Para finalizar y como recomendación no olvides que en ocasiones la simulación se puede alejar de la realidad si no se contemplan los tiempos,  (provisonar 50k MV’s via simulador (10 seg) sobre tu cloud provider favorito un poco más… 😉