¿Cuál es el mejor flujo de trabajo para implementar un sitio web y una aplicación web en AWS?

Si desea automatizar el flujo de trabajo completo de implementación de su aplicación en AWS, le sugiero que use la combinación de la herramienta CI / CD como la herramienta Jenkins / GitLab CI / CD o cualquier otra con AWS CodeDeploy.

AWS CodeDeploy es un servicio de implementación que automatiza las implementaciones de aplicaciones en instancias de Amazon EC2 o infraestructura local. CodeDeploy puede implementar contenido de aplicaciones almacenado en S3, repositorio de GitHub o AWS CodeCommit. CodeDeploy también lo ayuda a evitar el tiempo de inactividad durante la implementación de la aplicación, también lo ayuda con una buena función de reversión en caso de falla de la implementación.

CodeDeploy generalmente se integra con las herramientas de CI / CD, ayuda a automatizar la ejecución de casos de prueba, compilación y empaquetado de la aplicación, y AWS CodeDeploy asume la responsabilidad de manejar la implementación de la aplicación. Aquí puede encontrar la publicación del blog que describe cómo gestionamos la automatización de la compilación y la implementación de nuestra aplicación basada en Angular2 y Spring Boot.

Como Eric ya había mencionado, la respuesta a esta pregunta variará significativamente de un proyecto a otro.

Personalmente, la mayor parte de mi trabajo consiste en implementaciones de python / django en un servidor de AWS. Mi flujo de trabajo se ejecuta de la siguiente manera en proyectos de pequeña y mediana escala. Esto supone que tiene una implementación inicial funcional:

  1. Hacer actualizaciones al código existente
  2. Ejecute pruebas unitarias en el código actualizado. Arregle cualquier prueba fallida aquí y repita.
  3. Ejecute la implementación en el servidor de prueba django. Haga algunas comprobaciones de cordura manuales para asegurarse de que las pruebas unitarias no estén viviendo en otro planeta.
  4. Confirme los cambios en su repositorio de git y luego implemente usando la herramienta de interfaz de línea de comando (cli) beanstalk beans.

Habrá muchos escenarios para implementar un sitio web y una aplicación web en AWS.

  • Simplemente use SSH / SFTP para agregar su último código en la instancia EC2, si el sitio web no requiere softwares adicionales
  • Utilice herramientas de automatización como ElasticBeanstalk, OpsWorks. Estas herramientas se pueden configurar con Code Deploy, Code Commit OR Github OR Bitbucket. Hay muchas otras opciones, como Jenkins o Circle CI, etc. para tener pasos de compilación y prueba.
  • Puede usar los comandos de la CLI de AWS o las herramientas de Python para automatizar la implementación de sitios web y aplicaciones web.

Los usuarios de Quora pueden proporcionarle respuestas detalladas si proporciona información exacta sobre su sitio web O aplicación web.

Gracias,

Sachin A, Koroit

No estoy seguro de lo que quiere decir con “sitio web y aplicación web” y eso puede influir en la respuesta.

AWS es muy complejo y puede encontrar muchas, muchas formas de hacer lo mismo.

Si desea una solución simple, utilice Elastic Beanstalk o CodeDeploy.

Sin embargo, debe invertir tiempo en leer la documentación completa de AWS y hacer una pregunta más detallada, con una descripción de su arquitectura actual, sus limitaciones (costo, usuarios, actuaciones) para que las personas puedan dar una respuesta más precisa en función de sus necesidades.

Con la mayoría de las cosas, realmente depende de la pila que uses.

Mi favorito personal es usar la pila OpsWorks y hacer que Chef configure sus nodos de producción. Chef ofrece un control tan preciso sobre qué software se instala, cómo se configura y construye su proyecto, y cómo implementa el último código de producción. Es realmente lo mejor, pero también es lo más difícil de aprender.

Alternativamente, puede usar Elastic Beanstalk, que configura la mayor parte de su proyecto de acuerdo con algunas reglas predeterminadas básicas. Creo que puede modificar muchas cosas, pero no de la misma manera que con las recetas de OpsWorks y Chef.