First let me give you some background, I have spent a great deal of my career as a Windows Systems Engineer and Administrator. Upon graduating from Georgia Tech in Atlanta I began working for a startup web hosting company that later grew to become one of the largest in the world. During the 6 plus years that I worked in the hosting industry the debate always existed of which was a better platform for hosting Linux or Windows. At the time Windows sites were being hosted on NT 4 which was in its infancy. Linux hosting was done on Red Hat I don’t recall which distribution but an early version none the less. Now mind you not only was this technology far less advanced than it is today, but the hosting industry itself was completely in its infant stages at the time. I recall being told when I first arrived that Windows is less stable than Linux and therefore that were limitations to systems we were deploying customer accounts on. That being said a greater percentage of our customers at the time were hosted on our windows platform. Remember that I said hosting was new and many of our customers at the time were not knowledgeable of any other options other than windows, so we grew the business with our windows business. All of our core support systems were built on Windows as well with the exception of a few things (we ran BIND DNS on our Linux systems). Our help desk and sales applications were all desktop apps written in Visual Fox Pro (I know!!!). Customer data was maintained in a SQL 6.5 database. We were almost completely a Windows shop and I believe the Linux systems may have been an after thought once founders realized that there was demand for *nix type of systems. So they brought in a couple guys to design and manage the Linux systems and we then had to offerings for our customers. At the time we were running completely free versions of Red Hat so of course the reoccurring cost was significantly lower than our Windows and thus the price points for our Linux offering was lower as well. So now we were well on our way to becoming a full service hosting with the ability to service the needs of all of our customers.
Our Windows offerings tended to be more feature rich and because we were dealing with customers who themselves were new to web the number of Windows accounts sold increased greatly over the number of Linux accounts. The Linux customers tended to be more tech savvy and because of this we typically steered the less technically inclined customers to Windows. Because of this a great number of our support calls from our Windows customers. The impression was that Windows was less stable and more problematic. However, when I look back on those times both platforms had their issues, many of them were hardware related, others simply were products of a startup company and learning process that came with it. I can remember many of nights of sleeping on the floor waiting on a server to finish rebuilding, or storing customer data from a downed machine that had hardware failure. Also with NT 4 there were the issues that would pop up related to system drivers, blue screens occurred but not as often at some might think, there were quirky permissions issues. I don’t recall a lot of performance related issues in terms of memory and CPU but I’m sure that they occurred. During those times we never really pushed the limits on performance, we were conservative in regards to the number of websites we placed on an individual server so typically the servers were stable from that perspective. Similarly our Linux platform had permissions issues or problems that resulted from changes to conf files, hardware failures, .htaccess issues, script failures, and compatibility issues. In those days the Linux issues were not always on the scale of the issues surrounding the NT 4 platform but none the less they did exist and caused considerable pain. The company was able to hire staff capable of handling many of the day to day Windows issues. It tended to be easier individuals to manage Windows accounts. There was also this underlying fear that someone could do considerably more damanage to a Linux system than could be done to Windows System. In hindsight it may have been the fact that there were fewer hands in the cookie jar that allowed the Linux platform to avoid so many issues caused by human error. Many times we shot ourselves in the foot because of an individual “doing something that he should not have done”. Those kinds of situations turned out to be a blessing in disguise, however, teaching us the value of automation, process and planning.
Over time I and the rest of the Windows engineering team were forced to be creative and resourceful. There was always the underlying competition with the Linux/Unix side of the house. Management always remained under to that the Linux platform was exponentially less expensive to implement and to support. Because of this we had to find ways to counter the perceived cost savings. The first big step was the implementation of Windows 2000 and Active Directory. Windows 2000 was a huge leap over NT 4 in terms of performance and Active Directory made it so much easier to manage our systems. The improvements in IIS 5 allowed us to increase the number of websites we hosted per server in some cases 3 and 4 times as much. Active directory greatly increased the number of objects that could be managed centrally and greatly decreased the number of servers needed for Domain Controllers. Our Windows 2000 deployment resulted in a 75 percent decrease in hardware needed to service our Windows accounts. We created several automation tools and completely revamped our service provisioning system. Because of the plug and play capabilities of Windows 2000 we were able to easily deploy new servers on multiple many different types of hardware. Just as the Linux guys were doing we began writing automated scripts for configuring systems eliminating most of the manual processes involved with building and configuring servers. We were able to collaborate with our Linux counterparts best practices regarding security best practices and were able to develop standards across all platforms. Windows 2000 certainly made things a lot easier. Not only that, competing with and later collaborating with the Linux team also allowed us to develop a more solid platform. Both teams benefited from each others knowledge. Ultimately the goal was to create solid hosting platforms and maintain consistency across all platforms in terms of the services that we provided.
The company built a heterogeneous environment that consisted at multiple platforms from the UNIX and Linux world as well as Windows. We quickly learned that in order to best service our customers that we had to build open systems and applications that easily communicated with one another regardless of the Operating System, whether it was Open Source software or proprietary. What was most important is choosing the platform that performed the best a given situation. This held true for our customer offerings as well as our backend systems. For example our provisioning infrastructure was built completely on Windows but was capable of provisioning sites and services across all hosted platforms within organization. We processed logs and generated reporting using our Linux Infrascture. We built a monitoring and management platform that was based upon both a Linux and Windows Infrastructure. This type of integration was necessary for the company to be successful. I also feel that the competition generated between Linux and other open source platforms and proprietary vendors such as Microsoft has actually been beneficial to the market place. The fact the open source world constantly strives to build solid software and platforms forces other vendors to step up there game and build strong products as well. Imagine where IIS would be if it were not for the Apache Project, and I’m sure that Apache has benefited from features and improvements developed in the IIS world. Ultimately, I think it is important that we strive to have open standards, such as xml and web services in order to build strong platforms and to do what’s most important “getting the job done” the best way possible.
If you have not yet figured it out I work for Microsoft now. Just prior to that I worked in the financial industry, where it is quite obvious that in order for the business to survive many different types of systems must communicate with one another and work well together. I have been impressed with many of the developments that have come out of both the Microsoft and Non-Microsoft world. I believe that the bar will continue to be raised and everyone will stand to benefit.
I’m going to stop babbling now and wait on comments…
This posting is provided "AS IS" with no warranties, and confers no rights. Use of included script samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm.