I am thinking about applying EC2's Elastic Load Balancing features, but I am managing a web application (around the Light stack) which has frequent changes and wondering what the most typical technique is to keep the applying synchronized between your servers which are load balanced. The database would live elsewhere, so I am only worried (at this time) about keeping the particular scripts synchronized after i make changes.

It is dependent how often you are likely to update the scripts:

  • The most typical option would be to keep your shared components within an EBS volume, produce a snapshot after which mount that in the instances - either because the root device (permitting you to definitely keep your entire code condition synchronized across all instances) or like a secondary volume (that contains just your code, permitting you to employ AMIs built by other customers, like Canonical)
  • With frequent updates an easy solution like rsync is probably the champion, alternatively you can have them on S3 and employ the S3 fuse module to mount the scripts from S3 (with this particular solution you might finish up investing a little more on the amount of S3 GET demands for the way S3 fuse caches).

The just one way of addressing this issue is applying a continuous integration which could transfer your files with rsync and make the project around the servers, this isn't at this time.

You will find quite a lot of plug ins available (PHPUnit, Code Coverage, Code Analysis, etc):

Jenkins

How:

  1. Install Jenkins
  2. Configure any project (most likely you code ought to be in certain code-version-system) with Jenkins
    1. Configure the servers, project-path, pre-job, publish-job, etc.
  3. Schedule the jobOrwork.
  4. There you have it, done.

Reference:

  1. Configuration:
    1. configuring - ex.1
    2. Initial configuration
      1. Configuring the jobs
  2. http://agile.dzone.com/news/continuous-integration-php