Soy bastante nuevo en todo el stack de Netflix OSS y en las implementaciones en general. Como antecedentes de mi nivel actual de conocimiento en operaciones, mi papel principal es como ingeniero de aplicaciones front-end. Sin embargo, disfruto del lado operativo de las cosas, por lo que intento configurar una nueva estrategia de implementación y las herramientas para un nuevo proyecto.
Nuestras metas
- Implementaciones súper fáciles (queremos presionar un botón para actualizar la producción)
- Implementaciones automatizadas para probar entornos (usando Jenkins)
- Facilidad de mantenimiento (tenemos una aplicación para escribir, no queremos pasar nuestro tiempo jugando con problemas de producción)
- Capacidad para manejar una arquitectura orientada a servicios (muchas aplicaciones pequeñas, varios idiomas y almacenes de datos)
- Suficiente flexibilidad para garantizar que no tengamos que cambiar las estrategias en el corto plazo (ya estamos tratando de alejarnos de RightScale)
Estamos de acuerdo con un poco más de tiempo de configuración inicial si hacerlo nos ahorrará algunos dolores de cabeza en el futuro.
Entonces, en esta línea, he estado escuchando podcasts, viendo charlas de operaciones y leyendo toneladas de publicaciones de blog y, en función de nuestros objetivos y lo que he considerado como mejores prácticas de formación, hemos comenzado a elaborar un plan utilizando Asgard, enrollando nuestro paquete en un frasco y convirtiéndolo en un AMI.
Todo esto estaba planeado y nos gustan las ventajas del proceso en comparación con el uso de un servidor Chef y las instancias convergentes sobre la marcha (sentimos que esto era propenso a errores dada nuestra línea de tiempo limitada y la falta de comprensión sobre el flujo de trabajo del servidor Chef). Sin embargo, un compañero de trabajo miró un poco por su cuenta y sintió que Elastic Beanstalk satisfizo nuestras necesidades.
Lo he examinado y he creado un entorno de prueba con un archivo WAR y una base de datos RDS adjunta. Las cosas parecen funcionar y creo que podemos automatizar las implementaciones en un entorno de prueba utilizando Jenkins a través de la API de AWS. Parece bastante simple ... tal vez demasiado simple.
Lo que me pregunto es, ¿cuál es el problema? Si Elastic Beanstalk es tan simple y efectivo, ¿por qué no se habla más? Me cuesta encontrar suficientes opiniones objetivas y datos sobre las dos estrategias de implementación diferentes, así que pensé en preguntar.
¿Usas Elastic Beanstalk? Si es así, ¿por qué y qué factores conducen a esa decisión? ¿Qué te gusta y qué no te gusta?
Si no usa Elastic Beanstalk pero lo consideró, ¿qué usa y por qué no usó Elastic Beanstalk?
¿Cuáles son las ventajas y desventajas de una estrategia de implementación basada en Elastic Beanstalk para una SOA? Es decir, ¿Elastic Beanstalk funcionará bien con muchas aplicaciones pequeñas que dependen unas de otras para funcionar?