Five things I like about WebROaR

Posted by Sam

WebROaR was announced a couple of days ago but somehow I missed the announcement. The more I look it over the more I like it so I thought I'd put together a list of five things I really like about it.

  1. Deploying a new application or taking down an application doesn't require a server restart. This is important when you have many apps running because it takes a while to fire those applications up again.
  2. Integrated stats! This is similar to what you get with New Relic.
  3. Exception tracking built into the app server! No longer do you need to remember to use ExceptionNotifier or other such plugins.
  4. Minimum workers! No longer do you have to wait 15 seconds for your app to load because the app server unloaded your site due to inactivity. I hear this is coming Phusion 3 but this is important for sites that aren't terribly busy.
  5. The admin interface!

And now for three things I'd like them to add.

  1. Multiple users. It looks like you could manually add users to a file but it should be doable through the admin interface as well.
  2. Restful interface. Call me picky but I'd like to see a RESTful interface for sites, users, stats, etc...
  3. iPhone interface. I know we don't NEED an iPhone interface but it would be nice, especially for those of us still on the Edge network.

Overall I really like where they are going with it. If they continue down the road they are heading down I think they'll have one of the best app servers for any language. Peaking at their code though it looks like they've got a ways to go, but for an initial release I definitely like where their head's at.

Tags: rubyonrails webroar

Good riddance Expedient

Posted by Sam

When we purchased Ripple Effects we inherited the data center that they had been using. I don't want to mention them by name so let's just say it starts with a Ex and ends with an pedient or you can hit their site if you really care. They have the absolute worst customer service but it was mostly a non-issue until recently.

Most of the stuff that was hosted there was pretty quickly transferred to a local data center where the rest of our servers currently reside, but like always we had a couple of stragglers. The bad service started when we had a database backup request. It's a fully managed SQL Server and we didn't have access to make backups. After waiting for more than an hour I called and was told that the person handling this for us had just left for the day without handing it off to somebody else. So me, my fellow admin and the client are all waiting on a backup that was never going to come because somebody decided it wasn't important enough to take care of before leaving for the day. Keep in mind we sent the request at 4:00 their time so it wasn't like we requested it at quitting time. Thanks, because my time is clearly less valuable than yours!

The next example of their wonderful customer service comes when we shutdown a mail server that was no longer in use. Whoever setup their network seemed fond of handing critical tasks to others so Expedient was supposed to handle monitor critical services. Well about 2 HOURS after we shutdown the mail server we got a call from their NOC that the service was down. Awesome! Thanks for the responsiveness. If this was a critical service, which it was at some point, then two hours is unacceptable. I probably would have heard from a client that the server was down long before Expedient and their crew noticed it. Well done sirs, well done!

And finally comes the straw that broke the camel's back. If I wasn't already disappointed with them before this certainly would have pushed me over the edge. I contacted Expedient last week to let them know we'd be removing the equipment from the data center the following week. Our contract expires late January and I wanted to get out there and remove all the equipment so I didn't have to wait until the last minute. There are several other things that need to be done in Pittsburgh anyway so the trip and timing made sense. All the sites have been moved and the services have been turned off in preparation. I was told that I could not remove OUR equipment until the contract was paid in full. Huh!?! You're holding our equipment hostage because you're afraid we MIGHT not pay? We've barely been using your services for months and yet we are still paying your ridiculous bills every month. Not to mention we have this thing called a contract. Maybe you've heard of it?! It says we agree to pay you this amount until this point in time. It doesn't say anything about us paying that amount unless we move all of our stuff out. We are a multimillion dollar company and as far as I know we don't screw over the companies we do business with. According to John Rosenson this is their policy. Might I recommend you adopt a policy that doesn't treat your clients like criminals? I'd also like to see where in their contract it states that we can't remove equipment whenever we want, because I really doubt it's in there. Also, let me clue you in to something. The equipment that is in your rack is worth about 1/5th of the last couple of payments so when you are trying to get leverage on a client you might want to make sure it's worth it. Expedient's solution to all of this was to ask us to write a little note saying we promise to pay through our contract. Yeah, because that's way more enforceable than a CONTRACT! Clueless! If you do host your servers at a colo I highly recommend NOT hosting at Expedient unless you like to overpay and be under serviced.

Tags: colocation datacenter badservice expedient

New Augmented Reality site launched

Posted by Sam

I've been hard at work (in the off hours) on a side project with a few other folks. It's really starting to come together, but it's very early on yet. If you are interested in augmented reality then you should check out Shimmerbeam. Keep in mind it's a long ways from finished but it's already a fun way to inject yourself into augmented reality. And it's one of the more interesting things I've coded in a while. If you have any suggestions on how to make it better feel free to post them in the comments!

For the technical folks the entire site is built on Ruby on Rails, RMagick, Prawn and PostgreSQL and so far the whole thing is written in less than 1,100 lines of code! Once I get rid of the controller logic in Rails 3 it will be even less code. Check out the site... go... now!

Tags: augmentedreality rubyonrails

New Site Launched

Posted by Sam

I've had this idea rolling around in my head for a while that I thought would be fun. It celebrates the under appreciated White Boy Fro. You can hop on over and rate your favorite fros, comment and even upload your own fro. Hopefully people will find it fun.

Tags:

A10 AX2000 Load Balancer Review

Posted by Sam

We've been using a Kemp load balancer for a bit over a year now. At the time we purchased the Kemp we weren't pushing that much traffic and the Kemp was an OK replacement for the Cisco LocalDirector that it replaced. However, our needs grew more quickly than we expected and the Kemp just couldn't keep up. When it was only pushing L4 traffic it was fine, but once we started pushing L7 traffic it just couldn't keep up. The CPU would spike to 100% and the load balancer would stop passing traffic until it caught it's breath. Usually only a few seconds but that's a lifetime for a website. The Kemp had other things that I didn't really like once I dug deeper. For example there was no way to setup a second server to only get traffic when the primary went down. You could set the weighting really high but it was still hacky. The interface also had it's quirks. Sometimes you could set a label on a VIP and sometimes you couldn't. I didn't feel confident that another Kemp would serve us well with our increased requirements. So I started researching other load balancers.

I'd never heard of A10 until I read this article on selective source NATing. I prefer to use the load balancer as the gateway in what's often called routed mode. This works great for everything except being able to hit the VIP on the same subnet. Selective source NATing lets me use routed mode, keep the client IP addresses and still be able to hit the VIP locally. This is really useful when you have one site that needs to call another site or for monitoring. You can hit the VIP and keep the benefits of load balancing the servers.

Another thing I like about the A10 is that they don't have licensing fees. Once you own the box you own all of the features that the software has. F5 and most of the other big vendors charge you a licensing fee to "unlock" additional features. They also don't require a license key like the Kemp does.

So far the A10 has been extremely fast. It's a quad CPU box and I've never seen the dedicated data CPUs rise about 2-3%. The A10 has other features that you'd expect such as caching, compression and SSL offloading. I'm not too concerned with any of those features yet, but so far the A10 nails the basics. I expect to be able to use caching and compression without any CPU congestion.

There are a couple of nitpicks with the A10 such as the web interface could use some usability tweaks and a quick start guide would be nice. Also, looking through the aFlex rules it looks like you can't override which server traffic goes to if you are using server persistence. I understand the logic but it's very possible that you might want to offload static files to a very fast web server while serving dynamic content from an app server for example. If I'm reading the aFlex guide correctly this isn't possible.

A couple of features I'd like to see are the ability to limit traffic based on bandwidth. This can be done through the firewall but it would be nice if it was integrated into the load balancer. The other thing I'd like to see are combined bandwidth and connections graphs. The A10 shows one graph per VIP. It would be really nice to see one graph with all the VIPs so you could see all the traffic with one graph instead of switching among perhaps a dozen or more individual graphs. This can be accomplished with something that monitors the A10 via SNMP but it would be nice to have it in the web interface. And last on my wish list would be some sort of application firewall. This might be possible with aFlex rules but writing a decent set of rules from scratch would be a pretty big task. At least a basic set of rules would be helpful (assuming the aFlex rules would work for that).

All in all I'm pretty happy with the A10. It's solid and fast. A few more features and nothing in it's price range could touch the A10. If you have any specific questions feel free to leave them in the comments.

Tags: loadbalancer