

Ask HN: Do you need a reverse proxy ("RPaaS") in the cloud? - mskierkowski

I've worked on numerous web service/sites which needed a reverse proxy either for load balancing, versioning, or deployment. This was usually achieved by using a custom system or nginx; however, it would be great if this was an offering part of EC2, Azure, etc. Would you want a reverse-proxy-as-a-service? If so, how would you use it?
======
HerraBRE
I am actually already offering a very similar service, although it is
optimized for a somewhat different use case.

The service is here: <http://pagekite.net/>

It's useful for all kinds of things. :-)

~~~
mskierkowski
Thanks for the pointer. You should check out Microsoft Windows Azure AppFabric
Service Bus
([http://www.microsoft.com/windowsazure/AppFabric/Overview/def...](http://www.microsoft.com/windowsazure/AppFabric/Overview/default.aspx)).
It's supported for .NET by MSFT; however, I think there are other
implementations for other platforms. Technologically it is very similar. (I
used to be a Program Manager on that team not long ago).

I understand the technology quite well; however, (hope I don't sound rude) I'm
not clear on what the value is to the customer (presumably developer) of
pagekite.net. Please email me; my email address is on
<http://www.skierkowski.com/> (I have CAPTCHA on there which is why I don't
just give it to you here).

~~~
HerraBRE
Just to answer here as well (I'll be in touch), the easiest pitch is to
content creators who want to remove the "deploy stuff to some server in order
to show progress to clients and coworkers" step from their work flow.
Obviously, this is most applicable to people working on web designs or web app
development.

Another way to think of it, is that anyone who uses dynamic DNS today might
find PageKite is a better fit for certain tasks. Dynamic DNS only works when a
device is immobile and you have a visible, unfiltered IP. PageKite doesn't
have those limitations, and is way easier to set up.

There are many reasons to want to be able to run a simple server on a personal
computing device, we've just been beaten out of the habit of even considering
it by firewalls and NAT. So you are absolutely right that the value is often
unclear to people at first - we have a definite up-hill struggle ahead in
marketing this. I am optimistic though, because so far most techies who have
given it a try found it so convenient all their objections melted away.

------
nl
EC2 has this already: <http://aws.amazon.com/elasticloadbalancing/>

~~~
mskierkowski
The Amazon Load Balancer only performs load balancing... a reverse proxy can
be used for a whole lot of other scenarios... here are just a few...

Rolling Upgrades: you have 20 instances of V1 of your app, you want to slowly
test them out, so you start with moving 5 instance to V2, then 5 more, etc. To
switch from V1 to V2 gradually to make sure there are no major snags.

Versioning: Make a single API available at the address <http://foo.com/V1> and
<http://foo.com/V2> but those actually go to two different servers running two
different applications.

Sub domain to path rewrite: You want to provide customers with sub-domains at
<customer>.foo.com but it actually serves up contents from
service.foo.com/<customer> on the back-end.

Virtual Sites on single server: Some providers (i.e. some shared services)
only allow you to have one or just a few domains/sub-domains for a single
instance of your application. Now you can have <http://foo.com> and
<http://bar.com> actually host up pages from <http://foobar.com/> and the
original requested address will be in a new HTTP header so your app at
<http://foobar.com/> can distinguish the two.

Instance Allocation per customer: Some multi-tenant architectures have a
"home" node for each customer. In this case you could setup a rule that states
that customer a.foo.com goes to instance x while customer b.foo.com goes to
instance y.

