In an interview, Peter Harrison, author of the Linux Quick Fix Notebook, discusses the Web site hosting decision making process and shares his thoughts concerning the future of Linux, what is holding it back, and what can be done about it.
Although great strides have been made toward making the Linux operating system easier to install, complexity remains a major hurdle for many network administrators. Many information technology professionals are too busy meeting the immediate demands of their enterprise to fully consider, plan, and then deploy a new operating system and all of the backend software such a deployment will require.
In his book, Linux Quick Fix Notebook, Peter Harrison presents a detailed reference book for many of the common configuration and installation processes required for the deployment of a Linux network and/or Web site. No matter how many times you have configured a network or a Web site under the Linux operating system, there will likely be features you forget to implement if you don't have some form of reference. This is where the Linux Quick Fix Notebook comes in handy. Chapter 2, Introduction to Networking, is available for download from TechRepublic.
In the following interview, Peter Harrison discusses the 'host your own Web site' decision making process and presents his thoughts concerning the future of Linux, what is holding it back, and what can be done about it.
Title: Linux Quick Fix Notebook
Author: Peter Harrison
Chapter 2: Introduction to Networking
Publisher: Addison-Wesley Professional
This chapter is excerpted from the forthcoming new book, 'Linux Quick Fix Notebook', authored by Peter Harrison, scheduled to publish in late March. The chapter is reprinted with permission from publisher Prentice Hall PTR.
[TechRepublic] In your book, you ask the question Why Host Your Own Site? That chapter lists and discusses the pros and cons of hosting your own site. Do you have a general rule of thumb for when an organization would be best served by self-hosting? Which beneficial aspect should carry the heaviest weight when making a decision on self-hosting versus virtual hosting?
[Peter Harrison] The decision to do self-hosting for your business should be strictly based on business needs. Embark on it when your service provider threatens the future growth of your company. Plan well, only use proven stable technologies, go slowly, have a backup plan, inform your customers and minimize your exposure to downtime risk at every step of the way.
The business strategy of a virtual hosting provider is to reduce their costs as much as possible via standardization. Each Web server handles hundreds of Web sites, each with access to only a single type of application server, database, shopping cart, blog, Web mail or message board forums software suite. Customization usually occurs through a standard Web GUI interface which is usually geared towards altering the work flow features of the software and not its overall performance. Support is usually only given through instant messaging.
For a simple Website with the aim of providing supplemental information to newspaper or Web advertising then basic virtual hosting services, which start at about $10 per month, should be sufficient. The cost advantage of this service declines as you require additional high end services or customization.
There are two broad scenarios where self hosting for small businesses starts to become desirable:
Online product searches with shopping carts:
Sometimes you want visitors to be able to search your Website for a list of available products by name, by category, in a particular price range, or from a specific manufacturer. This requires Web pages to be generated dynamically using application server software that queries a database. This can cost about $100 per month, and if you need the person to buy the product using a shopping cart, then the price can reach as much as $150 for an entry level service. You can lease a dedicated server for $200 per month in a collocation data center and if you choose to use Linux, your software procurement costs would be negligible. Self hosting in this scenario can become desirable if you already have a capable IT staff with sufficient resources to complete the project within your budget and on time.
Customized services and support:
There are many combinations of factors that can make a virtual hosting provider become unsuitable for your business.
With virtual hosting you are at the mercy of your service provider to provide software updates or patches to fix security, performance or functionality problems. You may find that the completion time for your request may be long if you are one of a hundred customers on a server. The service provider also has to ensure that the upgrade won't affect any of the other Websites and this can add delays.
There will be times when you need to implement software that needs to be installed external to your home directory and that isn't supported by your hosting provider. Examples of this include a new database product and centrally managed server logins using LDAP.
With hundreds of Websites on a server, you run the risk of slow response times due to one of the URLs owned by another company suddenly becoming popular. The cause of this latency is often difficult to determine, and correct especially in a shared environment where you don't have access to many systems tools.
Additional white paper resources
Many businesses rely on a Web presence for the majority of their revenues and cannot afford to have extended periods of downtime. With the use of load balancing devices it is possible to spread your Web hits across two or more servers. The load balancer regularly probes your servers and automatically steers traffic away from any server that appears to be malfunctioning or down. This is a useful offering if you need to take an application offline for maintenance. Many virtual hosting providers don't offer such a service to individual customers.
You may want your applications to run on unique TCP/IP ports and be accessible only to certain IP address ranges or you may want communications with these ranges to be fully encrypted over a virtual private network (VPN). This will usually require some form of VPN or firewall service that your provider may not offer. Your security policy may open a vulnerability to other Web sites. For example, allowing FTP access to the virtual server allows this access to all sites on the server, this may be viewed as a security risk for your neighbors. If you don't want to risk this type of exposure, then consider self-hosting.
You may require highly customized reporting or have complicated inventory listings which have to track parts, sub assemblies and finished products. There may be the need to link your shopping cart order entry system with the inventory system of a supplier which your virtual hosting provider may be able to do, but it may expose more of your business to this provider thereby increasing your risk.
If you decide to do self-hosting, you should also consider its consumption of your business resources, namely time, talent and money. The financial cost of the equipment is obvious, but there are resource costs related to installation, training, staff shortages, consulting, security and long term maintenance. With an existing IT staff, the strain would be less but if the company has less than a dozen employees the price of customization could be a high proportion of your business overhead expenses.
If you are a small company with limited IT staff, or have capable staff who would be better utilized expanding the business, then it may be best to adjust your requirements so that they can be easily managed by a virtual hosting service. As the customization needs of the company grow consider self hosting. Create a pilot project using only the most essential customization and if successful, gradually migrate over to a production version of the pilot site. Convert your pilot to general testing and staging area and then add modifications to the production site when you are satisfied they work.
Sometimes businesses should accept the fact that self-hosting, though desirable, may be beyond the budget and capabilities of their organizations. Switching from a virtual hosting operation to a more expensive fully managed hosting provider that specializes in customizations may have to be considered. Replacing your virtual hosting provider with a fully managed service may be required if virtual hosting hinders the growth or survival of your company and you feel you would be incapable of completing a successful self-hosting operation on your own.
[TechRepublic] In the book, you discuss the configuration of 802.11a/b wireless networks in Linux using either Wireless Tools or Linux-WLAN. Are there similar packages for 802.11g/n? Are the configurations similar to those you outline?
[Peter Harrison] There are a number of ways to get 54 Mbps 802.11g/n cards to work with Fedora, but most open source references focus on the Prism54 and NdisWrapper projects.
Though it works, the Prism54.org software suite has a number of limitations. It requires you to apply kernel patches and then recompile the kernel. It is also only compatible with a limited number of wireless cards. This can be a daunting process even for experienced Linux users.
Windows uses the Network Driver Interface Specification (NDIS) as a standardized method for the operating system to communicate with the NIC driver software from various manufacturers. The Linux NdisWrapper software suite, available from ndiswrapper.sourceforge.net, allows you to run your Windows NIC card's drivers under Linux by creating a software wrapper around the Windows driver to trick it into thinking that it is communicating with Windows and not Linux. The compatibility range is therefore much wider and in cases where you need to recompile your kernel, the project's Website has links to RPM packages of standard kernels with NdisWrapper support. Installation instructions on the project's Web site are reasonably clear and a proficient Linux user should be able to get their NIC card working within an hour or two on their first try.
NdisWrapper has some limitations too. It only works on hardware architectures supported by Windows, the very useful iwspy command isn't supported and the wrappers add a layer of software complexity that would not exist normally. There is a commercial competitor to NdisWrapper called DriverLoader created by the Linuxant Corporation which readers may also want to consider.
NDISwrapper transparently interfaces with Linux wireless tools which makes configuration very similar to that of 802.11b. The higher speed 802.11g capability is activated by placing the string 'RATE=54Mb/s' in your /etc/sysconfig/network-scripts/ifcfg-eth* file. You also have to deactivate your 802.11g NIC in the /etc/modprobe.conf file and instead list the NDIS driver. I have a brief tutorial of how to do this on my Website.
My experience with NdisWrapper in the home has been very good, but like Prism54 and even Linux-WLAN, you have to reinstall the product each time you upgrade your kernel. This may not be tolerable in a mission critical business environment where maintenance related downtime needs to be kept to a minimum and where all software used needs to be 100% Linux compatible to ensure stability.
When 802.11g WiFi technology becomes more mature it will indubitably be supported natively by Linux Wireless Tools without the need for additional software, but there will always be NICs that don't support Linux and knowledge of NdisWrapper will be invaluable.
Additional download resources
[TechRepublic] When an organization places a server of any kind on the Internet, it becomes responsible for the security of that node. More than just a few of the security vulnerabilities exploited by the nefarious members of society stem directly from small operations that simply do not keep up with the latest server-software security patches. What are the essential steps an organization self-hosting a Web site should take to secure their systems?
[Peter Harrison] Security is really a broad topic and should be considered as anything that can potentially affect the availability of your site. I have included some general categories that come immediately to mind:
Restrict network access
A good rule of thumb is to try to make HTTP traffic the only unencrypted traffic to hit your Web site from the Internet. Remote access by employees or satellite offices should be done via encrypted VPNs or using secure login clients such as SSH.
This requirement demands a firewall to easily support VPNs. Most entry level units start at about $400 making them reasonably affordable and often use a Web GUI to make them easily configurable. I generally prefer the use of a single firewall to protect a network as the management of firewall applications running on individual servers can quickly become unmanageable.
Other servers that support your Website via mail and DNS services can't have encryption, but have inbound Internet access limited to these ports only. Remote access to them by employees should be over secure channels.
When you install your servers, you should also ensure that they are only listening on the expected TCP/IP ports. Direct access from the Internet to database servers should be severely restricted. Internet based SQL queries should only come via VPNs. The less of your site that's visible, the better it is for security.
Be proactively informed and patch accordingly
You should patch whenever you can and be aware that this activity may cause your application to stop working. Always have a means to revert to the original configuration when doing this.
Patching shouldn't be the only means of application security. Most software vendors provide tools to reduce the risk to attack and have their own security mailing lists to inform you of required upgrades. These should be taken utilized at every opportunity.
Bolster physical security
Your servers should be in a secured, cool, clean area with access limited to only authorized personnel. Power should be reliable and protected by a UPS. The location should have water free fire suppression equipment as a first line of defense. Your data should be backed up regularly. If you cannot afford a tape unit, then disk to disk backup within your server or to another server on your network should be considered. Make sure you have redundant infrastructure whenever possible. This should include dual routers, switches, firewalls and servers with preferably automatic failover.
Improve user management
Force the changing of passwords regularly. Be judicious with providing super user capabilities, and use the sudo utility whenever privileged access needed. Disable user accounts and all network access to employees who have left your organization.
This short list should be sufficient starting point for most small self-hosting operations and should reduce your vulnerability to attack significantly. Last but not least, assign the role of IT Security Expert to one of your members of staff so that the topic is given the attention it deserves. Make this person train and inform staff of security issues so that the entire organization can participate in making the entire organization more secure.
[TechRepublic] The Linux/MySQL/Apache setup is arguably the most-popular Web site server system in use today. In addition, open source software continues to grow in popularity. What Linux and/or open source software would you like to see develop in the next year? Is there a particular piece of software or a service you feel is missing from the current Linux toolbox?
[Peter Harrison] The growth of the open source movement will be stunted unless software developers seek new sources of inspiration for usability. It may seem odd, but life's lessons learned in your kitchen are very applicable. Linux needs to be microwaveable.
It is now possible to replace Windows with Linux for basic office tasks. The overall look and feel is purposely similar, the file formats are generally compatible, and as many office applications work on both systems, retraining costs have been greatly reduced. In the very near future the decision to use Microsoft Office, versus a product like Linux's StarOffice, will hinge not only on cost but also on personal preference. User demand for common features and competitive pricing will make the differences in cost and the user experience of desktop operating systems almost unnoticeable.
Similar trends are occurring in the use of open source software in the back office. Linux based applications are being enthusiastically promoted by younger systems administrators who have been exposed to non-proprietary software. They will soon occupy the management positions needed to ensure the acceptance of open source projects throughout the organization. Software aggregators such as RedHat, Novell, Mandrake and Red Flag have created corporate personae with whom binding contracts defining performance, features, warranties and support can be made. It is becoming easier to justify new large scale projects with Linux in businesses, for legal, financial and strategic reasons.
Unfortunately, for the back office, Linux is still too hard to use. Most importantly there is no standardized and simple method for installing software. Why can't all installation programs automatically use a software archive's filename extension to determine and implement the necessary installation steps? Why should you ever need to read an installation README.TXT file when you could be prompted instead? Why don't installation programs prompt you for the parameters most likely to be needed by the application to get it to work? The requesting of an application's administrator password, automatically creating supporting databases, and the prompting for whether the application should be immediately started and/or started on reboot should be standard options. Why can't the addition of network routes or IP addresses on interfaces be done via a series of simple command line prompts? Why doesn't Linux have a series of simple 'show' and 'set' commands to view the system's status and modify configurations?
When I go to the supermarket I have a choice in food. I can buy less satisfying microwaveable food or buy all the ingredients from scratch to create a meal worth remembering. Linux software installation should be the same. There should be two options from the command line; the first should prompt the user for the most likely parameters 80% of the population should need to get the basic application to work. It should be as easy as reheating a TV dinner, you shouldn't have to refer to the README.TXT file. The second option would maintain the default configuration file for expert gourmet editing.
Additional white paper resources
Great strides have been made to create helper applications to make the Linux command line less intimidating. It would be good if each application had its own basic configuration script 'for dummies' with the same naming scheme based on an application's daemon name, so for example, sendmail-guru would be used to set up a mail server and httpd-guru would be used to set up the Apache Web server's daemon. The further development of companion Web GUI interfaces for applications similar to the Samba SWAT and the CUPS printing utilities would also be of great help. Standardized configuration URLs running on HTTPS would help to make things easier. To a great extent this exists already in the Webmin application suite. Basic Webmin style functionality just needs to come bundled with the base software to get the user started and should be easily disabled for security reasons once the configuration is complete.
Linux software installation may be easy using the console GUI, but it can be intimidating from the command line. Unless Linux software installation is as easy as it is in Windows, the resistance from systems administrators that are only familiar with Windows and other proprietary operating systems will continue. This is a large group of technology filters who need to be persuaded to consider open source as a convenient potential business alternative. Their involvement will help to accelerate Linux adoption in businesses.
This need is even more important as Linux is at the center of an increasing trend in the use of commodity operating systems that are cheap enough to fit a vast number of budgets and efficient enough to breathe new life into old hardware. We will therefore see it being used by increasing numbers of people with much less initial exposure to technology and access to financing. Simplicity will be critical for more universal acceptance.
The Linux community is extremely vibrant, maybe even irrepressible, and thousands of new open source software projects are created each year. I can think of no better feature or product that I feel more strongly about than the need to simplify the Linux experience for the systems administrator and newbie without sacrificing functionality. Only then will Linux be considered as a viable alternative at all levels of the decision making process in homes, schools, governments and the private sector. It's not the product, it's the packaging. Linux needs to be microwaveable.