Forum OpenACS Q&A: OpenACS Hosting

Collapse
Posted by David Cohen on
In the thread Talli started about his new site map draft, I added a comment about how there's a need to get people interested in using the OpenACS and/or coming to openacs.org and suggested some ideas about how that.

One thing I didn't bring up, though it has been on my mind for *years* was brought up by Adam Farkas, namely, how desireable, or even necessary, it is to have cheap OpenACS hosting available.

Let me quote most of what Adam had to say here:

By "inexpensive", i mean a shared server with DB access, for 
$30.00/month or less. Having access to such a server encourages 
experimentation with a variety of applications, as seen with products 
like phpnuke and the plethora of php-based products that are trying 
to be "frameworks" like OpenACS. 

People are using them because it's easy and cheap to play with them. 

Before the flames come crashing down upon me, the $30 price point 
_is_ possible to achieve with a high degree of reliability, at least 
with apache and mysql. (wolfwater.com has been running on such a 
setup for several years with minimal downtime. check out pair.com for 
details). 

My sincere hope is that some enterprising person will prove that it 
can be done with opennsd and postgresql (the postgresql is the vexing 
piece -- it's almost impossible to find a low-cost postgresql 
provider.) 

At least one member of the OpenACS community who is actively developing has told me that it is, in his opinion, not easy to have an OpenACS machine where many people would be using it to do production sites, because everyone would be able to step on each other's toes, etc. [NOTE: if I've misrepresented your position, please correct me--you know who you are]. There might be some resource issues as well--i.e. needing a bigger machine and also bandwidth becomes an issue too--what happens if one site is very popular and the rest aren't. How do you ensure that everyone will pay for their usage?

Setting up something to let people play around might be easier-- something like the way machines were set up for the Ars Digita bootcamps. But this costs money too--where would that come from?

In any case, discussing these and other hosting issues is what this thread is for, so let me open up the floor...

Collapse
Posted by David Cohen on
Minor correction: I'm not sure it's really been "*years*" since I first realized that cheap ACS hosting of some kind would be important, but it sure feels that way--let's just say, it has been on my mind for quite a while 😊
Collapse
Posted by good bye on
There is a chicken and egg situation in the sense that if there are
only six total people in the world that really want an openACS
install, it is going to be hard to get the price down to $30 a
month. However, if there are say only ... 30 people who would
want this service...i'm fairly confident that _I_ personally could
offer this service....by myself.  I will present my grouchy side now
and say that even though this thread always comes up, I believe
that probably the REAL reason there isn't a $30/m openACS
hosting service is that there is simply not enough interest to
make it break even. I'd really be interested in finding out if this is
not the case.
Collapse
Posted by Yon Derek on
Putting my (non-existant) MBA hat: ACS will never be able to compete on price (i.e., the price you have to pay for hosting ACS site) with low-end solution based on PHP. It's as easy to bring down shared PHP/MySQL box as it is to bring down shared ACS box (last time I've heard you don't really have to try to bring MySQL to it's knees). However, PHP has no overhead, ACS has quite big overhead per page request (request processor, database hits for permission checks). Low-end solution can obsolete ACS in the long term by adding more high-end solution. Given that ACS cant' compete on price the only way (long-term) to compete is by adding more high-end features that are not easily replicated in other toolkits.
Collapse
Posted by Patrick Giagnocavo on
As someone who actually offers OpenACS hosting (www.zill.net),
I am finding that the best way to do it is to have slightly lower end
systems, but dedicate one system to one customer.

No security issues with different users on one box (just the
people from one organization, plus the root user).  This has the
added benefit of making it trivial for the customer to do load
testing - since the only site affected is the customer's.

They can set up custom libraries, add whatever other software
they want, etc.  It works quite well.

Downside is that it is more expensive (my prices start at $150
per month).

There is a way to offer multiple accounts on one machine.  We
have been considering offering it, for about $75 per month.

It is a little difficult to determine exactly what you need for say 10
users - basically you end up being paranoid and adding a little
extra RAM and CPU to compensate for busy periods of the day.
Figure 50MB RAM and 50Mhz to 75Mhz of CPU for each user
(though of course you want a minimum CPU speed regardless).

Could I drop it to $30 per month?  Yes - if the demand was truly
there that I could make it up on volume.

So far, I haven't seen that level of casual interest, in terms of
"let's pay $30 a month and play with it".

Collapse
Posted by Jerry Asher on
Ignoring bandwidth issues, what are the issues? I host about a dozen sites, not all my own, using AOLserver and the ACS.

The sites all share:

  • the AOLserver binaries and modules
  • the group they run under (web), but not the owner
  • service from an nsvhr proxy master (could be squid)
  • cgi bin
  • qmail
Each site gets its own
  • user id (user account)
  • database user
  • aolserver process instance (running as ${site}.web
  • web root in /home/$site/openacs/www
  • nsd.tcl configuration file (named $user.tcl) in /home/$site/openacs
  • server log and access log in /home/openacs/log
Developers can access the machine via SSH, giving them sftp and nscp access.

Using SUDO, developers can start and stop their own server.

What's left:

  • chrooting AOLserver - I never quite figured this one out
  • using daemon tools instead of sudo
  • making nsvhr smart enough to add/remove virtual hosts without requiring a restart
  • installing n different versions of AOLserver, one per user, so that sites can run their own versions of AOLserver or their own modules (I don't think this requires different installations of AOLserver, but it seems a pretty cheap and easy way to do it.)
  • separating cgi bins
What's really left? I haven't figured out how to make PG respect user ids, so that one user can't look at another user's PG instance. I can do this in Oracle, but when I think of running multiple Oracle ACS sites, I start thinking once more about one machine per site.

So what am I missing? Ignoring bandwidth and cpu/memory constraints, how can one user stomp on another?

Collapse
Posted by Yon Derek on
If you ignore the 2 ways in which they can't stomp on each other, then they can't. In practice, however, I can write a script that will take 100% percent CPU, bring the database to its knees and http_get gives me a great way to saturate bandwith as well. You need a lot of trust to let people (potentially) do that. You have to trust that they're not malicious and skilled enough that they won't do something like that by mistake and not making mistakes is a lot to ask from a human being.

This is, however, not a problem specific to ACS. All you need is a system powerful enough to let you write an infinite busy loop.

There are ways to mitigate this problem (setting user limits in OS) but I'm not sure how well they work in practice. It looks like a battle you cannot win.

Collapse
Posted by Patrick Giagnocavo on
Setting a user limit doesn't help when the same process (your AOLserver that is running lots of spurious http_get's) is also doing legitimate work.  The process will be killed, and then either restarted (the problem begins again) or not (now you don't have a web server).
Collapse
Posted by Jerry Asher on
Yon,

I don't believe that folks are asking for a solution (today) that solves problems that can occur at an virtual hosting ISP that allows scripting/programming of some sort.  I don't believe that people are asking for a solution (today) that yields a machine that doesn't require monitoring or a sysadmin.

I think the question is, can AOLserver/ACS be implemented in a way where the "typical, industry standard, expected" virtual hosting problems ARE the MOST likely problems that will occur.  In other words, denial of service to the entire system via a script that's gone skew should be caught reasonably soon by a monitor or sysadmin just as it would (have to be?) if you were using Apache or IIS.

But accessing/altering data or crashing other people's AOLserver or PG instances just won't do at all, and requiring extensive sysadminning to set the whole thing up won't be economical either.

I think the real problem is chicken and egg.  When the ACS has enough compelling applications out of the box to make it interesting to the $30 per month crowd, virtual hosting will appear.  Oddly, the ACS right now is mainly compelling to the $300/$3000 per month and the $3 per month crowds.  The former gets colocated, the latter gets DSL.

Collapse
Posted by Steve Crossan on
A UK company called sigmer (www.sigmer.net) offers shared linux hosting with PostgreSQL from £40 (~$55) per month for 2.4Gb/month/50Mb disk space/25Mb DB space. We've used them in the past for an OpenACS project.

If there are just a handful of people who are looking for hosting, as Rolf suggests, and these are the core OpenACS developers, maybe those of us who've made money from ACS/OpenACS could pool together & stump up for a hosted machine somewhere (from about $4,000/year) & maybe offer subsidised rates. I suggested this kind of thing a while back in the context of hosting OpenACS.org (is that still a requirement?) but it kind of faded away. I'd have to put it to a vote to the guys here but I reckon we'd make a contribution.

Collapse
Posted by good bye on
My arithmetic sucks (my math degree sure comes in handy). I was a few magnitudes off earlier. It isn't possible to make the $30/m price point work unless you have way more users than OpenACS currently has. I think you need at least 1000 users before it becomes remotely worth it.

Here is the math with "only" 300 users:

300 users X $30/m + $30 setup fee each = $117000 /yr

15 users on each machine = 20 machines

20 machines x $2000 per machine = $40,000

space for 20 machines at a decent colo = 1 full cabinet

1 full cabinet + 384K, per month = $1000 ($12,000/yr).

(I'm leaving out a bunch of stuff here (backup system, etc) but this should give you a good idea.)

Thus, with 300 users at $30/m you are making about $65,000 a year....which isn't that bad (but isn't really that good...especially since a good sysadmin can typically make at least $100/hr). For comparison, here is an email exchange I had a while back with an employee of Cal BMW&Triumph motorcycles in Mountain View, California:

>>Rolf Hanson wrote:

>> Hi,
>> I was wondering, what is a ballpark hourly rate for a BMW tech
>> who has zero experience, but has gone through a BMW 
>> training       
> >course, like the one at http://www.amiwrench.com ? 
>> What would
>> a tech with 5 years of experience make?

>Dear Rolf,
>
>I will be as helpful as I can. The rates vary widely depending on 
>what part of the country you are working, ours are among the 
>highest, but so are our living expenses. I will express wages in 
>annual income, since the hourly rate is modified by the 
>efficiency and proficiency of the tech, by bonuses, comeback 
>charges, etc.
>Beginning techs, with above average basic skills, may make 
>around $28-36K a year. Average techs, with average motivation 
>but good skills and high reliability (otherwise they can't work 
>here) make 50K-65K a year. The best of the lot, with high 
>motivation, creativity, continual re-education, etc. make $85 - 
>$100K a year including bonuses. I know the range is wide, but 
>at least you have an idea of what is possible.
>Also, in our shop there is health insurance, dental insurance, 
>paid training, retirement and paid vacation. Not all shops use 
>the same benefits, so be sure to factor that in as well when you 
>are comparing wages in different parts of the country.
Collapse
Posted by Don Baccus on
And of course a good way for that mechanic to lower there income would be
to start renting BMW bikes for $30/month, inclusive of all repair and maintenance work ...

Truly low-cost hosting of OpenACS at this point probably has to be a labor of love among cooperating folks who want to share a server.