Candideit.org de @ciudadanoi en Amazon AWS

Nunca he sido muy fanático de la administración de sistemas; de hecho no me gusta para nada, pero este texto nace por que me he llevado una tremenda y agradable sorpresa usando la infraestructura de amazon aws para hostear candideit.org

Dado que esperamos tener una cantidad de visitas prominente durante el período de las elecciones municipales en Chile, tuvimos que repensar los fierros debajo de candideit.org. Amazon tiene la tremenda gracia de ser Elastic, pero que significa eso para nosotros??. Que hoy cuando no tenemos ninguna visita estamos pagando muy poco (casi nada) y cuando tengamos 5*10e^67 visitas por día estaremos pagando más plata pero siempre lo que corresponde.

Pero para lograr esto tuvimos que mover algunas cosas y re-definir cuales serían las partes que podrían crecer y la forma como crecían. Fue así como cambiamos nuestra única instancia con todo bien apretadito por la infraestructura que se describe en la imagen.

Ahora les voy a contar que sucede cuando ustedes aprietan “Intro” y en su barra de navegación dice http://candideit.org o quizás http://www.candideit.org.

  • 1 -> Amazon va a buscar dentro de su DNS o nuestro servicio Route 53 donde hay que ir. Gracias a @rezzo por ayudarme a que candideit.org tenga su nombre en la Web.
  • 2 -> Donde hay que ir es un balanceador de carga o Amazon ELB que decide quien tiene que tomar tu solicitud (hoy hay una sola micro instancia que lo está haciendo).
  • 3 -> Los datos de tus candidatos y elecciones se almacenan en una sola base de datos MySql que está hosteada por Amazon RDS.
  • 4 -> La solicitud viene con un montón de imágenes y css que hizo y dibujó @CaMargozzini y que hacen que candideit.org se vea super bonito; estas imágenes se encuentran hosteadas en Amazon S3 pero las estamos cacheando en Amazon CloudFront, esta combinación hace que tus css e imágenes se bajen mucho más rápido.

Ya, pero ¿Donde podemos crecer? ¿Por qué tanta parafernalia? R: Podemos hacer crecer la cantidad de instancias (servidores), pero también podríamos pagar por un servidor más grande y más poderoso para soportar muchas solicitudes por minuto. (Debo volver a revisar mis cuadernos de la universidad para saber cual de todas es la mejor opción, pero quizás mi profe @escheihi me pueda ayudar).

Ahora les daré alguno que otro link.

En otro post les contaré como estamos haciendo deploys automáticos con jenkins.

El equipo de candideit.org es: @CaMargozzini, @pdaire, @lfalvarez y nos aporta día a día @rezzo, @maugsburger, @montselobos y @kathemalis!

candideit.org distribuido

Por @lfalvarez