Tech Talk 3 by Miguel de Icaza
Server Windows to Linux Migration
It's the New Black
- Tech Talk 01 With all your data in your OpenOffice.org Base database, how do you access it to help make decisions? Query your database to help you analyze your data
- Tech Talk 02 If you didn't make it to BrainShare or just want a recap of the keynote messages this article is for you. The Novell executives walk you through the latest and greatest in Novell strategy and technology.
- Tech Talk 03 Attention Web enterprise developers: Mono is ready to take on the Microsoft-dominated ASP.NET stack. You can now deploy your software on Linux-based servers without the powers that be feeling a thing.
- Tech Talk 04 Lengthy release cycles are a thing of the past. We want to know what you want, and we want to deliver it to you now.
- Proof Point As a non-profit organization, Sesame Workshop has a small IT staff with a big job. They've found the extra help they need with Novell ZENworks Asset Management and SUSE Linux Enterprise Server.
- Trend Talk Are tightening budgets forcing you to consider other options? Start considering other office productivity suites (and some are online offerings) to release the strangle hold proprietary vendors might have on you-and your budget.
The Lion's share of Web enterprise developers use the Java-based J2EE stack or the .NET-based ASP.NET stack for their own line of business applications or their public-facing applications. The two stacks have competed for a long time and roughly command equal shares of the market; only about 10 percent of the market is driven by other stacks, which are mostly open source application servers. Figure 1
Multiple vendors provide J2EE stacks, but only two vendors are behind ASP.NET: Microsoft and Novell. Microsoft offers its platform on Windows, while Novell offers ASP.NET on SUSE Linux and other Unix systems. Figure 2
The first column represents the highly competitive J2EE stack that is supported by a myriad of vendor applications . The second column shows how Microsoft, the creator of the ASP.NET stack dominates almost half of the market with a single product. As you can see, Novell has a small presence there.
Because of the enhancements included with the release of Mono 1.9, application developers who have been developing ASP.NET 2.0 applications will find it easy to move them to SUSE Linux.
Traditionally, the ASP.NET stack has been bound to the Windows platform, while the J2EE stacks have been cross platform stacks. We now have an opportunity to grow our presence on the ASP.NET space by helping customers move their applications from Windows servers to Linux servers. In an ideal world, Linux would get half of that ASP.NET space, but I will be happy if we can show the light to 10 percent of that market.Figure 3.
The Novell implementation of ASP.NET is part of the Mono project, and is a standard component of our SUSE Linux Enterprise offerings and OpenSUSE Linux distribution.
By offering this 100 percent-compatible implementation of ASP.NET, we have opened a whole new world for developers. You can now take advantage of all the performance, security and management features that Linux has to offer. You can keep your existing applications, code bases, experience, training and expertise you have in Microsoft's .NET implementation, but then deploy your software on Linux-based servers.
In this article we will explore how to migrate from Windows to Linux and the differences between these two platforms in the context of ASP.NET.
A Web application is typically made up of two tiers:
1. a presentation tier (the actual ASP.NET application), which typically is merely a Web front end to the contents of a database
2. the back-end tier, which is typically the database.
It is easier to migrate the front-end machines to Linux than migrating the back ends because the front ends can be replaced gradually and can be done as part of a regular software update. Migrating the data storage requires a switch to take place, and in many cases is outside the scope of the developers creating the front end.
Our recommendation is to first port the front end, and keep the existing database back end intact. Mono contains database connectors that allow you to continue using your existing SQL servers: Microsoft SQL server, IBM DB2, Oracle or the open source PostgreSQL, MySQL, Firebird or Sqlite.
To illustrate how easy it is to port ASP.NET applications from Windows to Linux (and also, to serve as part of our own QA efforts), we have ported various samples and popular open source ASP.NET applications to Linux. Ready-to-run RPM packages for OpenSUSE and the source code with the port are posted. (See Installing our Packages.)
The source code we provide uses the traditional RPM mechanism, meaning we distribute the original source code without any modification; it includes the pristine source and patch files, extra configuration files and a description of how to turn the pristine application into a ported application. This is called the ?spec file? in RPM parlance.
To make things easier to test-drive, we not only ported and packaged the ASP.NET applications, but we also ported the back-end storage from using Microsoft SQL server to use PostgreSQL. Our packages will also prepare the databases and get your application integrated with Apache and Mono's own mod_mono module.
We use the OpenSUSE Build System to make our ports available to a wide variety of Linux systems. You can download our samples from the Mono:Community.