“La flexibilidad fue uno de los factores decisivos a la hora de elegir Amazon EC2 como solución de hosting” afirma Thomas Floracks, COO de VivaReal Network. “Como un proyecto nuevo, no estábamos seguros acerca de los requerimientos de hardware y no contábamos con el tiempo o los recursos para hacer pruebas de simulación de carga o escalabilidad, entonces decidimos arriesgarnos y esperar que todo saliera de la mejor manera posible. Amazon nos dio la oportunidad de ser completamente flexibles con la cantidad de servidores que usábamos así como con las configuraciones de hardware requeridas.”
“El modelo de utility computing también era bastante atractivo. No existía riesgo de comprar o rentar servidores de manera equivocada o en exceso. En otros servicios de hosting o alojamiento convencional, en los cuales hubiéramos tenido que comprar o alquilar el hardware, cualquier tipo de cambio habría sido muy costoso.”
Floracks habla un poco más de su modelo de arquitectura, “La estructura de VivaReal Network se compone por 3 capas: servidores web, servidores de aplicaciones y servidores de respaldo (bases de datos). En total utilizamos 16 instancias EC2 que permiten mantener la plataforma de VivaReal. Cada portal (dominio) cuenta con una instancia propia que corre en Apache TomCat 6.x. Para los servidores web TomCat utilizamos una instancia media con capacidad de memoria de 1.7 GB y dos procesadores core de 2.5GHz. Los servicios adicionales de AWS nos permiten escalar de manera dinámica el numero de servidores de cada portal dependiendo de la carga: CloudWatch, Auto Scaling y Elastic Load Balancing.
Cloud Watch nos permite monitorear el uso de recursos de cada servidor web, así como la memoria disponible, el tiempo de la CPU o el ancho de banda utilizado. Cuando uno de los servidores web tiene un nivel de carga alto y uno de los recursos que están siendo monitoreados excede un límite crítico, el servicio de Cloud Watch lo reporta al balanceador de carga elástica que a su vez utilizara el servicio de auto escalamiento para replicar el servidor web y dividir la carga entre dos Tomcats. Ya que AWS solo cobra por los recursos que realmente se están utilizando, nos permite reducir costos ya que no tenemos que comprar el hardware para los casos de mayor carga. Cuando se necesita, la cantidad de servidores aumenta (durante el día) y cuando no se requiere (en la noche) los servidores adicionales se apagan y dejamos de pagar por ellos. El uso del balanceador de carga elástica permite definir la cantidad máxima y mínima de servidores, además provee un mecanismo básico para la conmutación de errores. Si un servidor deja de funcionar en uno de los puertos que está siendo monitoreado por el CloudWatch, el balanceador apaga la instancia y la reemplaza con una nueva y funcional.”
Floracks agrega, “Otro de los servicios de AWS que ha sido muy útil para la plataforma de VivaReal es Amazon SQS (Simple Query Service). SQS brinda un sistema de fila para objetos en texto plano. El ciclo de vida de un objeto en fila es de 4 días y su tamaño máximo de 8kb, lo cual ha resultado ser bastante útil cuando nuestra aplicación requiere un comportamiento asíncrono. Un buen ejemplo de nuestro sistema es el procesamiento de feeds XML. Recibimos una gran cantidad de inmuebles en esta formato, algunas veces la cantidad supera las 100,000 en un solo archivo XML. Nuestro sistema comienza el procesamiento de los feeds y escribe los objetos en la fila SQS. Estos objetos son leídos en fila y son escritos en nuestra base de datos de manera controlada por un proceso separado. Si escribiéramos toda la información directamente en la base de datos nos estaríamos arriesgando a bloquear o a sobrecargar el servidor de la base de datos. El procesamiento asíncrono junto con el SQS nos permite amortiguar la información en fila y procesarla hábilmente dependiendo de la carga en nuestros servidores de la base de datos.”
VivaReal también usa Amazon CloudFront para entregar las fotos de los inmuebles y quitar esa carga de sus servidores web.
Además de hospedar sus portales en AWS, VivaReal utiliza los servicios de hosting para tareas de simulación y prueba de su sistema en cualquier momento. “Las pruebas convencionales de carga por medio del alquiler o la compra de los servidores que se requieren para desplegar una replica 1:1 de un sistema en producción pueden resultar muy costosas,” afirma Floracks. “El Cloud Hosting nos brinda una ventaja gigantesca frente a los sistemas de hosting convencionales. Muchas compañías no pueden cubrir los costos de pagar dos veces en cantidades de servidores para replicar un ambiente de pruebas y con frecuencia se ven en la necesidad de reducir las versiones de su sistema de producción para llevar a cabo las pruebas, con todos los riesgos que esto implica. Amazon Web Services, el Cloud Hosting y Utility Computing hacen que éste sea un problema del pasado.”
VivaReal maneja 6 portales inmobiliarios concentrados en Brasil, Colombia, Estados Unidos y México. Para conocer VivaReal, visite http://www.vivareal.com