Oliver Nassar

Personal-list of most useful web services

April 16, 2011

The following is a breakdown of what cloud-services I use (besides API's) for a large-variety of projects.

Postmark

Very simple email-ing API; different from MailChimp as it's not centered around mailing lists. Rather, it's a brutally-simple API for post email's to be sent out. Advertising $1.50 / 1,000 emails. I don't really know how good of a price that is, but it's something I can live with for rapid prototyping without the headache.

The alternative? I believe Amazon has one, but for me, it was always connecting to my own SMTP server to do so. This brought up high lag and variable-latency, so it's not a route I'd go again.

HeyWatch!

Back in the day, I test a lot of different video-encoding services. Encoding.com was overrated, running my own ffmpeg was overrated (and a big hastle). I tested a few others, and settled on HeyWatch! Wicked fast, easy enough to integrate (not trivial, but straightforward). Price back then was $0.10 / video. Reasonable.

Amazon EC2

Amazon's hosting service (I simplify it as that). A little costly for smaller projects, but amazingly useful when you combine it with S3, CloudFront, EBS and ELB. Easy to setup; amazing control; solid community.

The alternative would be something like Slicehost (currently using), Linode, MediaTemple, Rackspace (cloud or dedicated) or just a straightforward shared account somewhere.

Amazon Elastic Load Balancing

I've only recently understood the value of this. Wow. Again, some up front costs and not something you need for a tiny (read < 50,000 hits) site, but very useful if you're running a pretty intensive app, or a site for a potential target of a DOS attack.

Very easy to setup. Directly dependent on you using EC2. Downside would be lack of complete control of the load balancer (eg. firewall). Still though, amazing service.

Amazon RDS

The first question I would have when talking about a load-balanced setup, would be how to centralize your data. That's where Amazon's RDS (Relational Database Service) comes in. I don't know much about the latency between RDS and a local data-storage server, but the ease that comes with it would be enough for me to use for most projects, until the point where data op's were noticeably slow.

And then what would I do? Memcached! And as luck would have it, using memcached as a caching layer between RDS and your app works great since when you have an ELB running, can use the resources from the balancer-EC2-nodes to distribute your cache :)

S3

File storage on amazon. Easy, and I think I'd rather use this than EBS as I don't have to think about disk-size issues, and it syncs up really well with Cloudfront. Price is pretty low as well.

Cloudfront

CDN (content delivery network) run by amazon, that is synced in perfectly with S3. Unbelievably easy to setup.

Facebook Connect

As far as authentication goes, Facebook would be my go-to. Virtually global-user-base. Easy to set up. Gives access to tonnes of great data. The alternative? Your own auth system. Useful in some cases, but really depends on your needs and long-term service.

Twitter Connect (aka. "Sign in with Twitter")

Same as above. Not as "global", but provides some even more interesting data, such as larger-set of status updates, geo-data such as tweet location, and a set of data that is updated much more timely.