Category: "Web Business"

Application Upgrades - an excellent business opportunity

The web is constantly changing and keeping applications on servers which can support them may be difficult, as hosting companies upgrade the servers to improve security, the applications may fail.

Most web companies are extremely careful and use strategies such as running PHP 5 through php5 extenstions, and leaving PHP 4 as the default, but there does come a time when the server has be upgraded. In addition, it is the responsibility of the application installer to ensure the application is maintained for security and performance.

This creates an excellent business opportunity for web companies, especially for powerful applications with complex hosting requirements, such as eZ publish. The key is careful identification and management of the opportunities.

Once identified, one must look at the site to try to assess the quality of work. Upgrades can be difficult, so the offer to upgrade an eZ installation should be made carefully - so all parties understand the risks and estimated costs.

Bear in mind if the application is running from a subdirectory, this strategy may not work. That’s okay, there are lots of other sites. :)

This approach will work for any application that provides identification information in a publicly accessible area (either the headers or the HTML). It is especially valuable for applications with steep learning curves.

Use curl or wget to get the site headers or HTML.

RIA Hosting

Using RPMs to install open source toolkits such as dojo, Smarty, and Zend Framework allows hosting companies to create a cost-efficient architecture to offer clients servers ready to support RIAs and sophisticated sites.

This may improve security by allowing the hosting company to prevent clients from modifying open source products. Access to the code can be provided easily through the use of symlinks. Account setup can be automated with server management/admin software like WebHostManager and Plesk - by customizing the account setup scripts with additional RPMs.

Advantages:

  • Significant savings in disk space
  • Elimination of installation at the account level
  • Permission management performed at the server level
  • Ease of toolkit maintenance, a single installation can be upgraded for the whole server
  • Offering an RIA ready server is a valuable service that may be delivered in a cost effective manner. It may be an offering that makes one hosting company more attractive to clients than another, in other words, good business sense.

Disadvantages:

  • Changes to the toolkits will affect every site, thus they cannot be changed easily, and upgrades may be disruptive. However, based on the assumption that this code should not be modified, and upgrades are often security related, synchronizing the toolkits across the server is reasonable.
  • An excellent understanding of the server architecture, software, and RIA toolkits is required for a graceful implementation.

RPMs with web applications and version control

Any large web application requires version control. Whether it is subversion or CVS, ClearCase, or some other tool, a system must be in place to manage the software changes and updates, especially if more than one person is working on the code.

The organization of the code within the version control system should reflect the anticipated deployment approach. Many web applications have varying levels of functionality. One approach is to place th core code in a single directory. This includes the foundation architecture, default language and configuration, core functionality, and shared class definitions, as well as anything else that is required to support the system. Other modules can be in separate directories, which makes it easy to build RPMs.

Thus, the core RPM is created with the core files, and the other system components require the core for installation.

Since the RPMs use tar files to get the source, and tar files are a convenient way to update the code for development, scripts that generate the tar files, then the RPMs can support both development and distribution, by updating the internal/informal and external/formal deliverables. One script can extract the latest versions of the code from version control, create tar files, make them accessible to the RPMs and build the RPMs. The same script could also copy the new RPMs to a target server, which could then install them with little effort.

This approach may be too rigid for small applications or those that will be distributed to a larger community, as tar files are more flexible.

Open source - open season

Open source is extremely accessible, meaning literally everyone can download it and use it.

This is a double-edged sword.

For people that want powerful sites with sophisticated applications, most of the materials are available, free. For people that want to learn how to use the software, they can use it.

However, it also means that virtually everyone can claim exposure and competence with the products.

The best qualified people will admit they have little experience, or that they are still learning. Those that are new to the field may be reluctant to admit their inexperience, for fear of missing out on an opportunity.

This is one area where requiring a certain level of related education can help differentiate between candidates that are likely to succeed and those who will struggle. The foundation knowledge provided by a computer science or software engineering degree, even if it isn’t web-specific, should help someone new to the field learn quickly and learn well.

Experience is not as reliable as a way to measure someone’s qualifications. If they have worked with something, poorly, for five years, they may not be a valuable asset.

Sample URLs can be used to assess a candidates skill level, but one must be sure their contribution is clearly stated. For example, one person might do the site design, another might do the server-side logic.

There are many self-taught web people who have excellent skills and experience, however, there are also many people who consider access and exposure to web code a license to practice - but lack the requisite skills to be part of successful projects.

Extend the capacity of a web server with careful common component management

Many web companies use a common, core set of javascript libraries and applications which use hierarchical CSS architectures.

If the live server is used for development (which is a very cost-effective approach), thousands of requests are made for the same files.

To reduce this, common components can be sourced from a single point, which the HTTP headers set to cache them with far-future expire dates.

In addition to reducing bandwidth consumption during the development phase, it also reduces it for live sites.

If there are related sites on the same server - the benefit is extended.

This is a small CDN (content delivery network), which allows distribution of customized files for a company, or custom code. It also simplifies management of the common code core, since updates only have to be made to one file.

This saves disk space as well, and speeds page loads.

If there is an issue with having content from a different URL, rewrite rules can be used to hide the true source of the files, while retaining the advantages of a single source.

With additional creative configuration, an application can be used to support multiple accounts. This is riskier, and I don’t recommend it - unless you can be sure you will never change the application. I would try it with this blog software (b2evolution), because from what I’ve seen - it would be very successful.