Solved

How to update our application on an autoscaling EC2 stack

Posted on 2014-02-28
4
723 Views
Last Modified: 2014-11-12
Hi,

We have a particularly unique situation so I will try to be as clear as I can be.

Background information:
We are a SaaS business that currently runs a LAMP stack application on amazon EC2. We have no autoscaling and we plan to move to it in the very near future. Our deployment processes are moving towards agile development but we're not quite there yet. We run subversion as our version control system from which we manage multiple versions of our code at the same time.

End Goal:
We want to move to autoscaling using Amazon's Autoscaling infrastructure with CloudFormation for our web servers only at the moment. We're currently stuck on coming up with a method to perform updates to our code base all at the same time, whenever we want. The key here is that the update needs to be performed at the same time across all servers (we can allow for a small delay between updates of each server <1 min). I know that Amazon cloud formation can perform updates to the stack, but from what I have read the servers will update on their own time within a 15 minute period. This is of course not feasible as we don't want our clients on different versions of a particular code base.

We've thought about using a custom script on a permanent server that will push commands to update the code base on each server (by forking a process to each instance in the autoscaling group) but don't know if that's the best route. We're also trying to avoid having to re-bake the AMI used in the launch config to have new code in it.

The Question:
Does anyone know a method that works for them for updating the codebase on autoscaling servers that doesn't require building a new AMI for each release?

Thanks very much for your help!
0
Comment
Question by:alon_sabi
  • 2
  • 2
4 Comments
 
LVL 33

Expert Comment

by:shalomc
ID: 39898462
The key is using your own application configuration management tools.
CloudFormation deals only with infrastructure, and has a hook to bootstrap configuration scripts.
Choose either Chef or Puppet as your tool.
CloudFormation will start a base AMI with latest patches and a Puppet client.
The Puppet client will pull the application from SVN.

When there is an application change, the Puppet master will push application changes on demand to all servers.
0
 

Author Comment

by:alon_sabi
ID: 39904389
Your answer is actually very insightful. I was unaware puppet uses a pub/sub method for delivering update commands to servers. I don't think puppet is exactly good for us at the moment as we're still fairly small company, but it got me looking into it.

I'm more inclined to use an amazon service like SNS and SQS for this over puppet's ActiveMQ implementation.

What're your thoughts about this?
0
 
LVL 33

Accepted Solution

by:
shalomc earned 500 total points
ID: 39907109
So you want to create your own configuration management clients and c&c.
I am not a fan of reinventing stuff unlesd it really makes sense, and I am not convinced that it does in your case.
If you feel that puppet is too big for you, why dont you try Amazon Opsworks? Its even mostly free...
0
 

Author Comment

by:alon_sabi
ID: 39907141
Thanks, I'll check out OpsWorks. I'll be honest I didn't even think to consider it.

Thanks again :)
0

Featured Post

Free learning courses: Active Directory Deep Dive

Get a firm grasp on your IT environment when you learn Active Directory best practices with Veeam! Watch all, or choose any amount, of this three-part webinar series to improve your skills. From the basics to virtualization and backup, we got you covered.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Wordpress and Wufoo 1 36
Google Dork query 7 55
sed/awk/tail: how to read 3'de last line 4 38
regular expression help for sed command 5 37
In the wake of AWS' S3 outage, we want to discuss the importance of storage and data diversification in the event of a hack, crash, or system disruption. We spoke with Experts Exchange’s COO Gene Richardson for a deeper understanding.
When speed and performance are vital to revenue, companies must have complete confidence in their cloud environment.
The viewer will learn how to dynamically set the form action using jQuery.
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…

679 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question