vendredi 28 octobre 2016

What tools are available for managing PHP/Laravel projects across autoscaling groups on AWS?

Given the following scenario/desirables.

  • Projects built on Laravel 5.*
  • Source managed using a Git Flow workflow hosted via Bitbucket.
  • High availability + automatic horizontal scaling using a launch configuration and an AWS autoscaling group, ELB, RDS etc.
  • The ability to deploy versions to all servers with zero/minimal downtime.
  • The ability to release said versions preferably from a GUI where all that's required is to specify or choose a tag, branch or commit.
  • Not needing to SSH into instances or do any sort of manual setup in terms of instance build or code deployment (this should be handled as part of the deployment process using checked-in shell scripts etc).
  • Being able to control what services and software run on each instance.
  • Being able to set environment variables/configuration on each instance securely, preferably without checking in these files with the source.

Now I've already played around with Elastic Beanstalk and Code Deploy on AWS. However, each seem to have their own pitfalls when it comes to the above described workflow. Other 3rd party (non AWS) services like Forge and Envoyer (Laravel specific) do address some of the mentioned points, but they focus on manually spun up instances and as far as I am aware cannot manage an AWS auto scaling group.

So my overall question is - what (if any) service(s) exist to manage Laravel/PHP projects across an AWS autoscaling group while offering zero-downtime deployment with no visible effects to active users while deployments occur.

If no such service exists out of the box, have you personally used or found a set of tools or a workflow that closely resembles the above with example code and implementation details you can point to?



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire