From owner-freebsd-advocacy Thu Jul 8 8: 3:21 1999 Delivered-To: freebsd-advocacy@freebsd.org Received: from luna.pingnet.ch (luna.pingnet.ch [194.148.8.14]) by hub.freebsd.org (Postfix) with ESMTP id A5F5E155FB for ; Thu, 8 Jul 1999 08:03:12 -0700 (PDT) (envelope-from mgilly@bonsai-studio.com) Received: from [192.168.1.2] (pop-zh-5-dialup-4.freesurf.ch [194.230.18.4]) by luna.pingnet.ch (8.9.3/8.9.3) with ESMTP id PAA09942 for ; Thu, 8 Jul 1999 15:06:13 GMT Message-Id: <199907081506.PAA09942@luna.pingnet.ch> X-Mailer: Microsoft Outlook Express Macintosh Edition - 4.5 (0410) Date: Thu, 08 Jul 1999 17:01:37 +0000 Subject: FreeBSD as Webserver (long) From: "Miguel Gilly" To: freebsd-advocacy@freebsd.org Mime-version: 1.0 X-Priority: 3 Sender: owner-freebsd-advocacy@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Bonsai Studio: Web Design and More http://www.bonsai-studio.com Content-type: text/plain; charset="US-ASCII" Content-transfer-encoding: 7bit Hi, This is a _long_ message about FreeBSD as Webserver, Hardware-Monitoring support and a Web based configuration of FreeBSD. first I'd like to tell a little about me: I'm currently involved in the web design business, and what brought me to FreeBSD, was the need for a Webserver. First, I considered a solution on Macintosh with Webten (=Apache), an OS I worked with over the last years. After playing around with Webten for a while, the whole system crashed. So I started to look at Linux which is supposed to be stable. I digged at Linux sites for a few weeks, and installed Suse 6.1 on my PC. I wasn't very excited, though I know MS-DOS and Windows 386, 3.0, 3.1 etc. and was used to tweak config files. However, two weeks ago I discovered the FreeBSD site. It was much more what I was looking for: Serious, professional attitude and a conservative approach. Built to last and survive in production enviroments. That's exactly what I was looking for. But after some time, I realized, that there are some significant things missing in FreeBSD (as well as Linux btw.): An intelligent clustering software for webservers and support for Server Hardware Extensions (read: hardware-monitoring, logging and alerting on Intel Server Boards or IBM Netfinity series for example). This leads to this mail offering some suggestions. Probably they where posted before, as the need is obvious, so forgive me if I recite old requests for the n'th time. 1. Redundant, scaleable remote webserver clustering The idea behind this is simple. Take two cheap Boxes, colocate them at different ISP's, and if one server fails (one ISP goes offline, a harddisk or NIC fails or whatever else happens) the other one takes over. Add more servers as needed either at the same ISP or over more remote sites to grow with your needs. Mirroring the content is not such a problem, but load balancing and health monitoring requires an intelligent software (let's call it router), that 1. Works on the same machine as the webserver or on a dedicated machine 2. Traces the client to determine it's location and direct him to its topologically closest available router 3. Keeps the client on the same webserver during the whole session, to allow e.commerce and SSL connections 4. Keeps a record of load, health and cache-content of all servers within the cluster as well as the load and health of all other routers (one router only manages it's own servers, and communicates with all other routers that manage their own servers. Routers report overall load of the cluster). 5. Scaleable from a simple 2 servery configuration to a worldwide clustered cluster of hundreds of servers. Hardware price/performance considerations: One Enterprise Level Quad Xeon with 2MB caches and RAID costs around 50-70K, depending on what you buy. 12 P2/450 Boxes with 256 MB RAM each cost around 15K, and offer more CPU performance, which is relevant for dynamic content and SSL encryption. Add a redundant Fileserver with RAID and ATM (OC-3) networking for another 15K. What do you get for half the price of an Enterprise Server? More redundancy and more CPU power. Tradeoff? Heat, power consumption, required space. If that's not a problem, it's your solution. That is, if you have the right software. You can buy boxes w/o redundant power supplies, redundant NIC's and without any disks (LAN boot) or use small IDE-Flash disks to boot. If one box fails, take it out, fix it, and put it back in. The point is, you can start with two boxes and scale pretty well until a certain level (where you will compete with the largest sites of the world or even beyond), by adding a central fileserver, switch-ports, network bandwith (OC-12) and more remote sites. All your investements are protected, from the very beginning with your first server pair. Or a more simple example: Take two simple AMD K6-3 boxes with SCSI drive and compare the price to a redundant server with the same performance. You pay less for the two boxes and have more redundancy. For example, though it rarely fails, the mainboard isn't redundant on a conventional server, no matter what price range. Also the software isn't (a software hang cuts the whole service off). You can twist and turn it as long as you want, two non-redundant small boxes offer more redundancy than a single redundant server, probably for less money. The cluster-software is the core of all. Keeping users on the same machine during a session and maintaining a cache record and load status of each machine within a cluster allows an efficient use of the caches, preventing a popular site to fill all node-caches with its content as it happens with simple load balancing. 2. Hardware-Monitoring: Intel Server Boards and servers from IBM, HP, Compaq etc. offer all enhanced hardware monitoring capabilities. Unfortunately, only few commercial operating systems are supported. For a server that is in a mission critical enviroment, hardware monitoring is imperative. FreeBSD would strenghten it's position as reliable, bulletproof Server OS by supporting those features. It would also convince more decision makers to switch to FreeBSD, because from a marketing point of view, it has a lot of weight. Think about spending a lot of money for a IBM Netfinity server, put FreeBSD on it and you can't use all those nice things that distinguish it from a simple PC... The same goes for Intel Server Boards, that notify the administrator when a CPU fan fails or even when an entire CPU goes down (in SMP systems). But again, no support in FreeBSD. It would be enough to focus on one OEM supplier (Intel) and one System supplier (IBM), instead of supporting all kinds of extensions. Both brands mentioned above are known to be conservative and offer reliable products for x86-world standards. 3. Web based configuration for FreeBSD To attract more non Unix folks (I had to push myself quite a bit to accept the challenge of Unix, but I finally saw no alternative to a Unix-based webserver), a GUI based configuration would be a great thing. This is also a part where I would be willing and able to contribute. Back to the web business: Today, more complex sites become standard: Dynamic content, scripting extensions, databases, SSL certificates and custom logging to name the most common. The typical Virtual Server offering of an ISP can't fullfill the demands of a professional website. A webdesigner is very soon at a point where he considers to buy his own webserver to have full control over his projects and colocates it at an ISP. Now, especially smaller companies don't have always a Unix savvy team member, so they are tempted to go with one of those popular gadget operating systems, as they fear the complexity of Unix and expect high support costs. To make Unix (in this case FreeBSD) more attractive and also productive to them, a GUI based administration is the key. I'm thinking about a browser (HTML) based GUI, that starts shell scripts on the host. It can be easily used over the web to administrate a server. It would allow Mac users (most webdesigner are) to stay in their enviroment (Mac Browser) when they access the Unix server, which gives them a familiar feel and builds up trust to the new system. This convinces more than any feature list, I guess. Summary: What's basically needed for a great webserver package is the webcluster software, hardware-monitoring support and a web based GUI for FreeBSD. All this would make a great turnkey solution based on FreeBSD, which could be offered additionally to the standard distribution. As webservers there could be a choice of Apache and Roxen (and others). You put in Floppy and CD, it asks you few things on startup (i.e. which webserver to install), and there you have a preconfigured, ready to use webserver with web based administration. You could even put it on a headless machine, eliminating the need for a keyboard or graphic adapter. It would attract all kinds of web design companies, ISP's, organizations and corporations or whoever else is in need of a reliable, redundant, scaleable and easy to maintain webserver (who's not?). Similar commercial products are available, but either are they not scaleable, don't allow SSL/ecommerce and dynamic content or they are in the highest price ranges (again not scaleable to small configurations). Offering this above mentioned functionality in a free OS would make it a real no brainer which system to choose, and in a lively and fast growing market like the Internet, it would help FreeBSD to gain widespread popularity in the webserver space, which can be considered as prestigious. Though the desktop/workstation segment is also interesting, I think this could be addressed with another specialized package of FreeBSD. Again, a web based GUI administration as found in certain webservers would help a lot to break the ice between mainstream users and Unix. HTML is quickly edited and makes it a really flexible and future proof choice for configurating FreeBSD (also remotely over any SSL capable browser). Best wishes Miguel Gilly PS: A less controversial and more business friendly mascot wouldn't hurt to promote FreeBSD (go ahead, hit me ;-) ) -- Bonsai Studio Web Design & E-Commerce http://www.bonsai-studio.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-advocacy" in the body of the message