Search Site
Topics
RSS Feed
Wednesday
13Jan2010

Bursting CPU's and Distributed Applications

I wanted to call out a specific post I just read. The reason is the because it highlights a very specific area of cloud computing that often seems little understood. That is, CPU Burst-ability.

http://www.thebitsource.com/2010/01/11/rackspace-cloud-servers-versus-amazon-ec2-performance-analysis/

I'll say that I've had this conversation dozens of times with various people and it's nice to see someone took the time to really do a good study. They really went all out to test under various conditions, times of day, different servers on the same platform, and compare apples to apples about as much as is possible. One of the sage things in the report is this gem, "Typically it is best to test specific applications to get a true measure of performance..." That is so very, very true for many reasons. I wish they had time to do the test on the Joyent platform as well. It's similar in it's CPU burst-ability but under the hood it's quite different. Info I provided about this was the subject of a couple of blog posts a while back here. For example, their platform uses 8 cores whereas Rackspacecloud uses 4 cores. Amazon, as far as I know, doesn't allow you to burst at all your CPU allocation is a hard cap which is quite different from RackspaceCloud, Slicehost, or Joyent.

Lastly, people forget and I keep saying ad nauseum, how you write the app means everything as to how well it will perform on the cloud. Generally speaking, adopting many of the ideas and processes around development of distributed applications is key.  But, this is also a very foreign concept to the bulk of developers I've worked with over the years.  This fact, how you write the application matters, is true pretty much no matter what cloud you deploy on and intimately tied to how well you automate certain operations tasks as well. Anyway, I know I've been a quite blogger lately. I simply have too much work to do to blog often with my startup. But, hopefully I can get back into the groove sometime soon.

Friday
18Dec2009

My Posterous

I've decided to try Posterous for quick posting more frequently throughout the day.  I'm going to see if I can somehow integrate it here with this blog soon.  Until then, please check out my posterous feed at http://kentlangley.posterous.com for interesting article, random quick thoughts, and who knows what else.

Cheers!  -Kent

Friday
18Dec2009

AWS EC2 Spot Price Visualization Site and a few thoughts about CPU cycles

This is rather interesting to see.  Someone already put up a set of live charts keeping track of the AWS compute instances.

http://cloudexchange.org

What's interesting to me is that the same resource can have different prices in different regions (obvious, but interesting) and that in many cases (if not all) the costs are substantially below the retail rate for the same instance.

For example:

us-east-1, c1.xlarge, $0.25 / hour.  The retail for that is $0.68 per hour.  Nice discount.

Now, for me, I just wonder when this page:
http://aws.amazon.com/ec2/#pricing

Will just become dynamic across the board.  The prices there just equaling the spot price.  What you pay for the duration you use the resource is the spot price.  If they did this they could just move to that model across the board.  No reserved instances.  No fixed pricing.  Just the market with price changing relative to supply and demand.  Seems like that would want to do this in time perhaps.

Very interesting.  If it was pure spot pricing then, in the event capacity became scarce in the context of demand then more money would flow to AWS as prices rise to help expand capacity.

At the moment a us-east-1, m1.small is $0.026 / hr.  This is still more that the $0.015 cost of a similar device in the Rackspace cloud.  So, to do a small video encoding job I'd still use Rackspace.  But, that can change pretty fast perhaps.

The one thing this spot pricing doesn't take into consideration is actual CPU resources available relative to price.

There was an analysis, I'm searching for the link will add in the comments if I find it, recently comparing different cloud servcies, their cost, and the amount of vCPU you get.  For example, if I say that the us-east-1 m1.small is $0.026 and the Rackspace equivalent is $0.015.  But, I get 4 vCPU's at Rackspace and only 1 vCPU at Amazon, then in reality Amazon is still far more expensive than Rackspace above and beyond the spot pricing vs. fixed pricing if you measure based on CPU Availability per dollar.

This is not a new problem.  It's one that is often quite overlooked when comparing the value of one cloud vs. another cloud.

Sunday
22Nov2009

Excellent RailsEnvy List in Ep.101

RailsEnvy Episode #101

The list of links from this podcast episode was particularly intriguing for me this week.

Of particular interest to me is:

TorqueBox - JRuby backed Rails application platform (and more) build on JBoss AS.  Very intriguing and I'll be experimenting right away with this for an application I've just pushed out into production.

ShardTheLove - An Active Record horizontal sharding solution with build in support for migrations, testing, and more.  I will also be evaluating this for inclusion into a new application I am just launching.

Jammit - A static asset packing solution for Rails applications. Finding a good solution for this can sometimes be challenging.  However, doing it in any modern web application is pretty much mandatory.  I look forward to testing this library.

Great stuff and worth a look if your pumping out Rails applications that you want to be scalable on-demand.

Tuesday
22Sep2009

Monitoring – Updated and Revisited

I’ve written several times on this blog about various monitoring tools and services.  But, in light of a recent project I’ve been working on for the last few months I have some updates.

The Overall Monitoring Architecture

There are areas of monitoring that I usually like to pay close attention to with a live web application.

  1. Process Monitoring - This makes sure things are running and stay running within certain tolerances. Examples are God, Monit, SMF.  Your choice will depending on your operating system and preferences with scripting languages.
  2. Resource Monitoring - This is fine grained CPU, Memory, Disk Space, Disk IO, Networking, application server threads, and much more. Examples are Nagios, Ganglia, and Munin. Choosing correctly depends on your specific situation.  There is a worth newcomer on the block called Reconnoiter that also looks very promising.
  3. UpTime Monitoring - This is the only monitor people usually do if they do any at all. This should be a disinterested 3rd party to provide accountability and what I call a 3rd party eye in the sky should any dispute about uptime arise.  I like pingdom and there are even free services as well.  I’ve also been using CloudKick in some situations for this purpose as well.

Those three above are from a post I wrote some time ago.  Today, I’m adding a 4th item to that list because it has finally become easy enough and reasonably affordable to add now that there is an affordable choice:

4. Synthetic Transaction Monitors – These actually perform tests of processes a user might go through in your application and report back any anomalies if they occur along with an error report, screen shot, and other data as appropriate.  I’ve been using a tool called BrowserMob and Selenium IDE for this.  You create scripts w/ Selenium, upload them to browswermob and then setup a monitor script.  That’s a simplified overview of course but it’s really quite effective and relatively affordable compared to historical solutions for synthetic transaction monitoring.  Historically it was prohibitively expensive to do synthetic transaction monitors.

The Monitoring Tools I use

What follows are some of my personal current favorites to meet the above goals.

Munin > http://munin.projects.linpro.no/

One of the things on my list for a while to get done is enable munin across your systems.  I use it a lot successfully.  You can see a demo here:

Monit > http://mmonit.com/monit/

Pingdom > http://www.pingdom.com

 

Things I’m testing and have high hopes for are Reconnoiter, BrowserMob monitoring, CloudKick

 
Wednesday
09Sep2009

LegalCloud.net is hiring

My company, nScaled/LegalCloud.net has a job posting is on craigslist.  We recently added to our sales team and now need to add to the existing technology team.


Enterprise Cloud Computing Startup + Sr. Systems Administrator (sausalito)
http://sfbay.craigslist.org/nby/sad/1366310094.html

Cheers!b

Kent