Developers
love choice. And open source developers have choice aplenty. There is a
veritable avalanche of technologies that can be used to build open
source applications. Of these technologies, the LAMP stack (Linux,
Apache, MySQL, and PHP) has emerged as one of the most popular open
source development and deployment platforms. Open source ISVs who
embrace LAMP technologies (SugarCRM for example), have gained legions
of volunteer developers who contribute time, energy, and ideas
(although for every open source success story there are hundreds of
projects that never gain critical mass).
The commercialization of open source raises an interesting question.
What platform choices should the customer of an open source application
have? The reality is that CIOs and IT directors care little about what
language an application is written in. What they do care about is the
platform the application runs on. Enterprise data centers may have
hundreds, if not thousands, of servers running applications that are
central to success of the business. Large-scale enterprises do not
strictly focus on the upfront cost of technology. Considerations such
as platform manageability, reliability, and availability of skill sets
are the important factors. The cost of encountering difficulties in
these areas can easily swamp the few dollars saved by adopting low- or
no-cost software.
A Window to the World
Open source ISVs seeking to offer their customers choices (and who
wouldn't want to do so) should seriously consider supporting Microsoft®
Windows® as a deployment option. Some of the largest sites on the
Internet are run on Microsoft technologies and many enterprises have
standardized on cost efficient Windows Server®. Selling a Linux-only
application into a Windows-centric environment can be difficult. IT
managers are understandably hesitant to support yet another operating
system, especially one that is considered more challenging to
administer.
Let's look at why you should offer your customers choice. The most
important reason, of course, is that the market demands it. The success
of Windows as an enterprise deployment platform virtually guarantees
prospects will ask, "Does your application run on Microsoft Windows?"
Answer no, and you're out of the game. Not only will you have
difficultly selling into homogenous environments, you will also miss
out on the vast marketing and business development resources available
to companies that support Windows.
The economic benefits of becoming a Microsoft partner (which is
available to companies that support Windows) can be especially
important to early-stage open source companies. Your ability to attract
venture capital is greater given a relationship with Microsoft than
without. Becoming a Microsoft partner can help open up a huge world of
new opportunities. What does this mean to you? Well, for starters you
may get entrée into the enterprise—and how much is that worth to your
company?
It's a Simple Switch, Really!
Supporting the Windows platform does not require rewriting your
application into ASP.NET or anything so drastic. The truth is that
little technical work is needed to make a LAMP application into a good
citizen in the world of Windows. PHP is inherently a platform
independent language. You can generally swap out the Linux, Apache, and
MySQL part of the LAMP equation for Windows Server, IIS (Microsoft's
Web server), and SQL Server with little to no effort.
The effort required to port your code to Windows Server is minimal.
It's simply the new platform your PHP application runs on. IIS support
is similarly a no-brainer. PHP industry leader, Zend Technologies, has
done all the heavy lifting for you. In October of 2006, Zend and
Microsoft announced a technical collaboration partnership to improve
the interoperability of PHP on the Windows Server platform. Central to
this collaboration is Microsoft's support for the IIS add-on component,
FastCGI. FastCGI solves the CGI performance problem (it's 4x to 8x
faster than CGI) and also overcomes the thread-safety problems of many
PHP extensions.
Upgrading from MySQL to SQL Server™ is no problem either (just
enable the mssql modules in your PHP installation). Developers may wish
to take advantage of the more advanced feature set of SQL Server. For
example, SQL Server offers native XML support, a robust set of ETL
(extract, transform, load) tools, and more sophisticated query
optimization capabilities. The other reason to consider SQL Server is
it's ubiquity in the corporate world. While MySQL is a good product, it
may not make sense from an administrative standpoint to add an
additional database server, when SQL Server is already deployed in the
enterprise.
As most every technical detail of migrating to Windows is already
taken care of, you only need deal with creating a Windows-compatible
installation (MSI) file. This can be done without purchasing a single
Microsoft development tool. Back in 2004, Microsoft released the
"Windows Installer XML" (WiX) on SourceForge. WiX is a toolset for
building Windows installation packages from XML source code. And to top
it off, WiX is a no-strings proposition as it was released under the
Microsoft Community License agreement (be sure to learn more about Microsoft's Shared Source program).
What's Next?
The ROI for supporting Windows is compelling. A small investment in
moving your PHP application to the Windows platform can help open
markets previously off-limits. Open source ISVs should seriously
consider taking advantage of the benefit offered through the Microsoft NXT
initiative. This offering helps you enter the fast-growing enterprise
market for solutions that run on Microsoft technology. When you
participate in NXT, you get technical, sales, and marketing support,
including guidance and resources to help ensure that cross-platforming
your solution to Microsoft technologies is a success.
*This article was commissioned by and
prepared for Microsoft Corporation. This document is for informational
purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN
THIS SUMMARY.