Hi All,
Thanks to everyone who has kicked back some advice on my CF/SQl Server/NT
vs. ?/?/?nix scaling questions. I have been debating whether or not the
combination of Cold Fusion, MS SQL Server, NT4 and IIS will scale to be able
to host a few hundred or more virtual domains all feeding off of one central
database.
Here's a summary of where I'm at now:
>From Mike Stone:
> one of the guys on my team wrote the book (literally.. on
> advance from the publisher and everything) on hooking PHP into
> Apache. his name is Charles Fisher, and with a little digging
> you can probably find some of the articles he's done online.
> i'll let him know you're looking for resources and pass along
> whatever he sends back.
I have started to explore PHP ( http://www.php.net/ ) in depth as an
alternative to Cold Fusion. Until recently, I wasn't aware that PHP could
function as a server module for Apache. The last time I used it was a few
years ago and it didn't do that at that point.
> > > would an
> > > Apache/PHP server that can deliver the same number of pages in
> > > the same amount of time at equal or lower processing load be
> > > adequate?
> >
> > "Is that the case", is the question. Where do I get the answers?
>
> the more pertinent question is, "does solution X have the power
> to handle what i want to do?" close on its heels would be "if
> i go with solution X and it doesn't pan out, am i SOL?" my
> personal opinion is that unix/Apache gives you better odds in
> both areas than NT/IIS. it's also less expensive to
> test/reject unix and move to NT than it is to go the other
> direction.
Very good point: the "cost factor" for trying unix/apache and dumping it for
bloatware if it doesn't scale well, but as far as the scripting stuff, I'm
already done phase one in CF, so there's a few months of work that I already
put into it. We've also got the NT Server up and running. I don't think it
would take me very long to port the CF stuff over to PHP, since they both
are embedded in HTML and PHP *seems* to have an equivalent for all of the CF
flow-control stuff. Another key to the PHP alternative is that it works well
with MySQL, which means I could dump MSQ SQL Server entirely, before I even
buy it! (Right now, the data is sitting in an Access database waiting for a
new home.) This would be a substantial cost savings and would keep me from
getting into the MS trappings (another key point).
I discovered that there is an NT version of MySQL and a corresponding ODBC
driver. I did the install for both components and it went fine. The ODBC
driver works with Cold Fusion, too! As soon as I made this discovery, I
began porting my Access data over to MySQL and running tests. I found that
the MySQL ODBC driver requires using a different variant of SQL than the one
that Access understands. In particular, MySQL ODBC doesn't understand "INNER
JOIN", which I have used in many places in my SQL statements. I still need
to figure out what the workaround will be..and figure that's just a matter
of a little more research.
The key point here is that I can use MySQL on NT with ColdFusion, with
probably just a few hours of work changing the SQL statements to jibe with
the MySQL ODBC driver. Also, by having my data in MySQL on NT, I am probably
only a short step away from being able to move it over to a Unix box - which
I will probably do, depending on my scaling needs and schedule, when a
native version of CF comes out for HPUX or Linux *or* when/if I decide to
port to PHP.
Before I decide to completely dump the SQL Server plan in favor of MySQL, I
need to gain more confidence in the dependability of MySQL in a busy
environment. According to mysql.com docs, they have a db of 50mil records
running and MySQL is *made* for handling large databases. Also, according to
their docs, they have not have a single incident of lost data due to table
corruption, other than when the db admin person does something they
shouldn't have done. Those are some fairly strong claims.
If anyone has any experience running MySQL in a high-demand, busy
environment, I would be interested in hearing from them. I've also spent
many hours poring through the MySQL listserve archive at:
http://outside.organic.com/mail-archives/mysql/
In sum, if I go with MySQL/MySQL ODBC right now I can skip the expense of
SQL Server. I can also keep my CF code and run on the NT machine that is
running now. Then I can decide to either move to CF on Unix or PHP on Unix
in the near future. I am thinking that the MySQL data will easily move over
to a Unix version, but still need to quell a few questions about that
porting process.
A real bonus of this plan (other than the ones already mentioned) is that by
going with OSS/Unix I get all the delightful benefits. Also, by getting away
from MS SQL server and using MySQL I have more scripting languages at my
disposal for doing tricky stuff.
Any opinions on this plan?
Oh, BTW, FYI there are two "current versions" of MySQL for NT. The shareware
one is not really the most current release, but supposedly it's very
similar. The real "most current" release on NT costs around $200 US to buy
and there is no evaluation version.
Info about MySQL available at:
http://www.myslq.com (with a few mirrors available from there)
Now, on to my scaling issues. It seems pretty clear that I'm headed away
from NT (all rejoice), but there are many unknowns for me. I've read about
as much as I can bear about server farming, load-balancing, round-robin,
etc, etc. over the past few days. I have a meeting with our network
consultant tomorrow to talk about my options and will fill you in/ask
questions prolly.
> the simple fact of the
> matter is that in a webserver, the motherboard is a fancy
> interface between the network card and the hard drive.
> when it comes to the OS, the big question is, "how much
> redundant, unnecessary crap does it carry, and how much of it
> can you turn off?" short of the ability to tune things like
> the filesystem block size and file buffers, the next largest
> waste of server performance is the latency due to unwanted
> processes chewing up CPU time.
>
> that's one of the areas where NT scores worst, in my book.
> aside from the fact that there's no capacity to tune the
> low-level system parameters, there's a bunch of gunk in the
> middleware that can't be eliminated. the OS is welded shut, so
> if Microsoft wants it to support a wide range of different uses,
> they have to build in hooks for all of them. for any given
> use, the OS is maintaining a load of unnecessary services that
> are pure waste. that overhead is the price of flexibility, but
> the price is unnecessary if you have a well-defined purpose for
> the machine.
These points absolutely hit home, Mike. For my workstation machine a lot of
that stuff makes sense: good gui, lots of software available, great image
editing programs, the CF Studio IDE, etc. For the webserver, though, as you
said "in a webserver, the motherboard is a fancy interface between the
network card and the hard drive."
> obviously, unix is at the opposite end of the scale. you can
> decide exactly what should and should not be included in the
> kernel, and define system parameters as you choose. you have
> complete control over the boot process, so once you know what
> you're doing, it's easy to create a system with exactly the
> capacities and services you want.
Well, it's certainly a step for me to go from a web developer who hosts at a
service that offers robust virtual server services on Unix machines
(iServer) to running my own gaggle of boxes, but I reckon that when all will
be said and done I'll be another nail in the non-OSS coffin. :-)
BTW, if anyone knows of an alternative to PHP that allows embedded
flow-control and database access from inside HTML templates *and* hooks into
server API's *and* is as robust as the PHP/Apache combination *and is not
server-side java* *and* (for bonus points) is OSS *and* runs on UNIX, please
let me know.
I also want to thank the folks who sent me links about load balancing, they
were very interesting.
Oh, another interesting thing I found out about the Apache/PHP/MySQL
combination is that you can setup Apache to put it's server logs right into
a MySQL database, which is nice and convenient.
Jack
____________________________________________________________________
--------------------------------------------------------------------
Join The NEW Web Consultants Association FORUMS and CHAT:
Register Today at: http://just4u.com/forums/
Web Consultants Web Site : http://just4u.com/webconsultants
Give the Gift of Life This Year...
Just4U Stop Smoking Support forum - helping smokers for
over three years-tell a friend: http://just4u.com/forums/
To get 500 Banner Ads for FREE
go to http://www.linkbuddies.com/start.go?id=111261
---------------------------------------------------------------------