Bob Familiar's message was loud and clear: It is entirely possible to build highly scalable and transactional Web applications on the Microsoft Windows 2000 platform. It's simply a matter of learning the "best practices" that allow you to do so.
Speaking to attendees of the MS TechNet symposium Wednesday in Boston, Familiar, a consultant with the Microsoft Technology Center, explained some of Microsoft's laboratory-tested techniques for achieving massive scalability on the Web.
"The model that I work with is Windows 2000 Advanced Server version in the Web tier, and SQL Server 2000 in the database tier," said Familiar, whose job is to evaluate Web architectures and educate developers on how to best leverage the Microsoft platform for maximum performance.
Once your tools are in place, he said, the key to building a highly scalable Web architecture is a matter of infrastructure planning, partitioning and, finally, performance tuning and capacity planning.
"It's important that you focus first and foremost on your database; if your database doesn't scale, you don't have a site worth seeing," Familiar told the crowd. Oftentimes, he said, companies neglect to properly design their database architecture because they spend too much time and energy concentrating on the aesthetics of the site. Looks are important, but not as important as performance.
Familiar explained that one of the best ways to make sure that the database design for your Web site scales is called partitioning, or maintaining separate databases. For instance, he said, information about who is registered on your site would be maintained on one database server cluster, while information about the credit card orders customers place is partitioned out to another, and search information is partitioned out to yet another.
In addition to this database tier partitioning, developers using this platform should also partition out server clusters at the Web tier. Developers, he said, can use host names to uniquely identify functional server clusters. As an example of Web tier partitioning, he said that "www.MyDomain.com" could be one cluster, while "Search.MyDomain.com" could be another.
This process can come with a price, said Familiar, such as difficulty in coding all the databases to work together or the cost of additional hardware. But, he said, "you can't put all your databases into one box and hope that it scales."
Familiar was asked by a member of the audience what a company with very limited funds could do to achieve high scalability on the Web. "I would still use this design on the limited amount of hardware," he replied. "Because when the time comes, when the company gets its second round of funding from the (venture capitalists), I don't have to go back and touch the code."
Some of the other benefits of partitioning Familiar pointed out include more control over traffic flow through the application; the ability to separately handle the administration of clusters; scale out capabilities at the database tier; and the ability to use different content management techniques for different functions.
"You can have different administrative rules, and let's say when you go to update the code registration part of the site, well that doesn't bring down your homepage," Familiar said. "So there are some real nice benefits to partitioning."
Familiar also pointed out to the audience that with the SQL server, developers can partition out large transaction-oriented tables across database server clusters. For example, developers can break up a site's registered member list and store portions of it in the site's different functional databases according to customer preference. This way customers get swift results from the portions of the site they use most.
The model presented by Familiar was definitely an eye-opener for many members of the audience, and some approached the speaker to thank him and ask questions.
"We've developed some bigger scale sites, but we haven't done it using the same techniques. We've been mostly putting everything in the Web layer," said Web developer Chip Pappas, who is running Windows NT 4.0 with the SQL database server. "He (Familiar) has obviously done this before, and to be really scalable we're gonna have to go with multi-tiered."