Tony's Chip Migration

Introduction

Tony's Chips currently operates a web site via a third-party hosting provider. The organization has expressed an interest in migrating to an internal solution while making enhancements to the existing web site. These two projects are fundamentally different and must be kept separate to ensure maximum quality and availability. Performing software changes at the same time as a migration is extremely ill-advised and could lead to ambiguity in error recognition. If the new software causes an issue, or the migration causes an issue, it will be difficult to discern which the actual cause was.

Migration to an internal solution requires a lot of planning and preparation. There are hardware and software resources to consider, as well as network infrastructure. With the addition of some electronic commerce functionality, there are even more resources that will be required. Some resources may be free, while others require a hefty investment.

Architecture

The basic architecture of the internally-hosted site will resemble most e-commerce web sites. There is at least one computer, running a web server software that which is accessible via the web. It receives requests and sends back the HTML responses.

Because the site wishes to upgrade to an e-commerce platform, it will be necessary to have a database server. This does not mean that the work to upgrade the site needs to be done at the same time as the migration. In fact, it should not be. However, the infrastructure for this upgraded functionality can and should be put into place. The database server software can technically sit on the same computer as the web server. However, due to load issues and security concerns, it is best to keep the web server and the database server on different computers. Ideally, the computer running the database server will sit behind a firewall that is inaccessible to the web. The only external system that should be able to readily access the database server is the web server.

There are additional concerns when it comes to ensuring maximum availability. Assuming that the site wants to be able to handle a large amount of business, the internal solution should include load balancing and fault tolerance. These two initiatives can work very well together. Enterprise-grade switching devices can be purchased in order to handle the load balancing and fault tolerance operations. In such a paradigm, there may be multiple web servers and multiple database servers. Each server is a clone of any other server. At times when traffic is heavy, load-balancing allows the server that is best suited to process a request to be used. Fault-tolerance will enable requests to be redirected to working servers when any server fails. The more redundancy that a solution has, the more fault-tolerant it will be.

An important decisions that must be made when choosing to implement an internal web hosting solution is the software. There are many pieces of software that will be required with varying levels of support available and financial investment required. At a minimum, this includes operating systems, web server software, application server software, and database management system software.

The implementation of the e-commerce functionality within the web site will require a server-side scripting solution. Many of the software decisions will be dictated by the choice of server-side scripting language. A few common languages include: PHP, ASP, JSP, and ColdFusion. Any one of these languages can be used in order to facilitate an e-commerce solution, but each come with their own requirements and restrictions. For instance, an ASP solution will require that the Operating System is Windows, JSP requires a java-enabled web server software, and ColdFusion requires a rather expensive license for the server software in addition to the Windows Operating System. Unlike ASP and ColdFusion, PHP and JSP can be obtained, developed, published, and hosted free of charge. They can be successfully run on Windows, Mac, and Linux. While development with these languages and hosting of applications written in these languages is free, it should be noted that the availability of quality support can be less than a commercial solution like ColdFusion. As pointed out by Cullen (2002), PHP is a unique language of its own, provided for free, and doesn't have the backing of any major industry names. In contrast, JSP sites can be written using mostly Java and ASP sites can be written using mostly C# or VB.NET. These technologies have major industry names behind them and support is readily available for any purchased products, like Visual Studio.

There are a few good options for the Relational Database Management System. The most popular are Oracle, Microsoft SQL Server, and MySQL. Of that list, MySQL is the only one that is available free of charge. The other two require quite significant financial investment. Obviously, Microsoft SQL Server can only run on Microsoft Windows.

The actual web server software is highly dependent on which language that is to be used. For instance, an ASP solution will rely on Microsoft IIS as the web server, a JSP solution will likely use Apache Tomcat, and a PHP solution can use a standard copy of Apache.

The goal should be to choose the solution that best meets the organization's needs while keeping the financial investment in check. To that end, the best option for Tony's Chips is to select a Linux environment running Apache, PHP, and MySQL. This is known as the "LAMP" stack. It is one of the most popular setups for web hosting in the world and has been for quite some time. It has all the power to host even the most popular sites while remaining completely free of charge. The required initial investment will be hardware, support contracts (if any), and labor to set up the new hosting environment.

Site Architecture:

Migration

Migration from the third-party hosting service to an internal solution should occur over time. The issue with switching one off and the other on is that domain name service (DNS) entries are not instantly updated. When a DNS entry is updated, it must propagate out to other DNS servers throughout the world. It is difficult to say how long this propagation will take in any given circumstance. However, it never occurs instantly. Switching one site off and the new one on will cause an issue where only some people in the world can access the site while others see a broken link. This can be highly detrimental to search engine ranking. Some sites may perform a link check while this is happening and remove their link to the site as a broken link. Fewer quality inbound links translates to a lower search engine ranking.

It is far better to have both the external and internal sites running in parallel until it can be confidently assumed that the DNS entry has propagated successfully. Only then should the third-party, externally-hosted site be switched off.

This transition from the third-party hosting service to an internal solution is another excellent reason why the organization should wait until after successfully migration to begin work on updating the site to use e-commerce. If done before the migration, the phase out of the old site will involve database reconciliation, which is an entirely new level of effort that is unnecessary if the migration is performed before the site upgrade.

Alternatives

The obvious alternative is to leave the site hosted where it currently is. However, there are obviously reason for the organization wishing to change hosting paradigms. Another option is to switch hosting providers. This depends on the real reasons behind the desire to migrate to an internal solution. If the issues are solely focused around reliability and/or cost, there may very well be a better third-party solution that could facilitate the site without needed to invest a significant amount of time, money, and resources into implementing an internal hosting solution.

Another alternative is an off-site server solution. This is very different than a third-party host. There are services throughout the world that allow organizations to lease servers that sit at a server farm. The lessee is in full control of the server, its software, operating system, and everything about the system in general. An organization can lease out multiple servers and set up the exact architecture shown in this document. The difference is that the organization does not need to purchase the computers, the network hardware, or the lines from the telecommunications company. The organization also does not need to allocate space for the servers or deal with overhead like cooling solutions and special fire suppression systems. The entities that offer this service usually have state-of-the-art systems in place to handle the routine physical maintenance and disaster protection.

Probably the best alternative involves cloud computing. In the past, third-party hosting, internal hosting, or leased servers were the only options. Generally, organization would start off with a third-party hosting service and move to an internal solution once their business scaled to the point at which the third-party hosting service was no longer a viable solution. At the same time, organizations do not want to invest too little in an internal solution and design a hosting environment that cannot handle additional scalability and growth. Therefore, it has been necessary for many businesses to invest a very large amount of financial resources in devices and technology to support sites that do not yet require that much power. The hope is that the web site will grow and the return on investment will justify the initial costs. However, there are now better options, and they are being utilized by some of the biggest names in computing. As mentioned by Dhar (2012), cloud-based web services provide businesses with processing power on an as-needed, pay-per-use basis. So instead of the constant costs of equipment, maintenance, and storage, businesses only pay for what they use, when they use it.

Amazon Web Services (AWS) offers a variety of cloud-based solutions to organizations. One of the most high-profile uses of AWS is NetFlix. Amazon Web Services handles all of the storage and streaming of NetFlix content. One would think that a service as successful and ubiquitous as NetFlix would have their own internal solution to store and serve up their content, right? That is simply no longer the case. By leveraging modern cloud-based technologies, organizations can pull processing power when it is needed rather than having four serve computers dedicated solely to the site. In the case of cloud computing services, the site could pull the processing power of 100 computers if it needs it. Or it may only pull two. The point is that the cloud makes it possible to dynamically scale resources to what is needed at that time. And this is all packaged with enterprise-grade quality and support. For businesses looking to migrate from an old, third-party hosting solution like GoDaddy, Amazon Web Services or other similar offerings is likely the best possible solution. The investment is significantly less. The manpower to get things set up is significantly less. And if thing do not go as expected, it is easy to take a step back without being saddled with hardware and software for which the organization has no use.

1

Gantt Chart

1

Use Case

Case Name / Buy Chips
Description / This use case describes the event of a user ordering a bag of chips from the web site.
Primary Actor / User
Basic Course of Events / 1.)User navigates to the Tony's Chips web site
2.)User browses catalog
3.)User adds chips to shopping cart
4.)User clicks on "Checkout"
5.)User enters shipping and payment information
6.)User receives chips after shipping time

Support and Maintenance

Assuming that Tony's chips has made the decision to go with an internally-hosted, on-site web solution, there is a large amount of support and maintenance that must be considered. When deciding on a hosting option, the cost of such support and maintenance must be considered.

The system architecture, as it stand right now, includes four computers. This can be expanded upon later and network attached storage can be added if ever needed. There needs to be space to place all these devices. While this may be as simple as purchasing an appropriate server rack, it is important that the server space is well ventilated and cooled.

The next set of tasks involves disaster preparedness or risk assessment and mitigation. A corporation's hardware resources and, more importantly, data resources need to be protected. If a set of servers is being housed in-house, then it would be ideal to install an appropriate fire suppression system designed for electronics. Additionally, regular backups must be made of the site code and especially the database information. These backups should be stored off-site. In the past, this often meant taking physical backups off-site and storing them somewhere. Today, there are cloud services that can back up system data regularly without needing to mail or physically remove backup media. Regardless, this is an on-going tasks that requires attention.

Data maintenance and site monitoring must occur at all times. Databases and web servers crash, data gets corrupted, database tables become full, and sites get hit with malicious attacks. Hosting a site internally means that one or more people must be monitoring site information at all times in order to ensure maximum availability. This is usually done via automated alerts to on-call systems administrators. However, this extra layer of personnel and effort must be taken into consideration.

Evaluating Performance

The evaluation of the system performance will be different between the migration of the site and the enhancement of the site to include e-commerce capabilities. One vital part of evaluating performance is ensuring that these two tasks are kept separate of each other. It is extremely poor form to perform a major system upgrade at the same time as a migration. If there are critical site errors after the migration, it may be extremely difficult to tell if the errors are a symptom of a bad migration or of a faulty enhancement. The enhancement should be done and tested before the migration, or after the migration. The easiest option is after the migration, as then there will be less to migrate, evaluate, and test when performing the hosting migration.

Evaluating the migration itself should consist of uptime, and server performance monitoring. If the site is loading pages faster, is able to handle high-loads of requests, and is maintaining high availability, then it should be considered a successful migration and the internal hosting solution is a success. This type of monitoring must continue indefinitely, of course.

Evaluating the performance of the e-commerce enhancement goes beyond the metrics of system performance and enters the realm of web marketing and sales performance. Obviously, this type of performance can be measured through conversion rates and sales figures. Also, as pointed out by Tarafdar and Zhang (2007), the performance of a web site can often be correlated to the actual web site design. Therefore, a lack of sales or conversions through the new e-commerce system may be indicative of a wider site design problem that should be evaluated.

References

Cullen, K. F. (2002). PHP: An open source solution for web programming and dynamic content.

Information Technology and Libraries, 21(3), 116 – 120.

Dhar, S. (2012). From outsourcing to cloud computing: Evolution of IT services. Management

Research Review, 35(8), 664 – 675.

Tarafdar, M., & Zhang, J. (2007). Determinants of reach and loyalty – A study of website

performance and implications for website design. The Journal of Computer Information Systems, 48(2), 16 – 24.

1