¿Cuál es la diferencia entre la forma de implementación de aplicaciones de Amazon OpsWorks en comparación con la forma de implementación de aplicaciones de Elasticbeanstalk?

Elastic Beanstalk está destinado a la configuración e implementación rápidas de aplicaciones web. Es una solución de tipo caja negra donde carga el código de su aplicación a través de git y se implementa automáticamente en todos los servidores que necesite, con una solución de equilibrio de carga, agregación de registros, monitoreo y alertas.

También hay herramientas que le permiten ejecutarse en producción, como la implementación de tiempo de inactividad cero, o el hecho de que puede elegir los tamaños de instancia deseados y escalar todo lo que necesite para manejar el tráfico.

Beanstalk se limita a ejecutar código de aplicación escrito en Java, .NET, PHP, Node.js, Python y Ruby. Para sortear estas limitaciones, Beanstalk ahora admite el aprovisionamiento con contenedores Docker, lo que le permitirá crear su propio entorno de aplicaciones: puede ejecutar el software que desee dentro de un contenedor.

Para más detalles: Detalles del producto Beanstalk

OpsWorks es una solución más personalizable destinada a los equipos de DevOps, que depende en gran medida de Chef para automatizar la configuración de aplicaciones y entornos.

En OpsWorks, crea y configura capas para su aplicación de N niveles. Puede tener una capa de base de datos, una capa de caché, una capa de servidor de aplicaciones y una capa de procesamiento de back-end; Todos estos ejecutan diferentes aplicaciones que funcionan en conjunto. Con OpsWorks, puede aprovisionar cada tipo de máquina con recetas de chef, lo que le brinda muchas ventajas: mantener su configuración en código y replicar fácilmente un entorno completo, por nombrar algunos.

Usaría Beanstalk para implementar una aplicación y sus dependencias (como WordPress que usa un servidor MySQL en RDS y el almacenamiento en caché en un nodo memcache en ElastiCache). Luego empujará un nuevo código a través de git y se beneficiará de la escala automática y las alertas cuando sea necesario.
Docker con Beanstalk parece una solución viable si tiene una configuración personalizada o si su aplicación está en un idioma que no es compatible.

OpsWorks se utiliza mejor en un equipo que ofrece una infraestructura repetible y tolerante a fallas con una configuración predecible; un buen ejemplo sería una empresa de desarrollo de Magento (plataforma de comercio electrónico) que necesita muchas implementaciones similares para sus clientes.