.

Friday, October 11, 2019

Migration Project Essay

The Tony’s Chips web site is to be moved from and external hosting solution to an internal solution. In addition, the site will be redesigned to enable customers to place orders. These are two separate work tasks that should be treated separately and performed by different team members. There are many options for hosting the web site internally, including software choices to hardware architecture. This document will review the tasks that need to be performed, document the process of performing those tasks, and justify the software and hardware choices. There are a few different alternatives to how this web site can be hosted. The company could host the web site with an external service that maintains their own servers and services. This method is commonly used by start-up businesses and web sites that do not require a huge amount of customization, monitoring, bandwidth, and storage. When a company wishes to have more control over their site and how it is hosted, they can chose to use a server service. With this kind of service, a company that owns a large server farm leases out one or more servers to the company. This allows the company to have dedicated servers, which they have control over without the need to physically store the server or perform the regular maintenance. Web sites that involve database-driven web applications can eventually require many different servers. This can be a problem for some companies that do not have the logistical capabilities to store these servers on-site. Consider that these servers will take up space, require appropriate cooling, and warrant a sophisticated fire-suppression system. A server farm service will have all of this in place all ready at no additional cost to the client. The first step in migrating the web site from an externally hosted service to an internal system is to get the infrastructure in place. This includes the physical computers that will be used, the software servers that will be installed on these computers, the network configuration, the wide area network connectivity, and the necessary firewall. Once all of this is in place, the content of the external web site should be replicated to the internal system, as it currently is. Then, after testing the internal web site via the IP address that points to the internally-hosted version, the systems administrators can update the DNS record for the web-site’s domain name to point to the internally hosted version. This can take a couple days to fully produce across the major DNS backbone on the internet. During that time, some traffic will go to the internal site and some will go to the external site. There will be no downtime as far as the users of the site are considered. However, some data that is stored as a result of user-interaction may not be record at the new site. This will require that the old site to be left running for a business week. After every day, the old site should be checked for any new data transactions. Any found should be migrated to the new site. While this method will place more work on the staff of the company, it results in zero downtime for users of the site. While this method place more work on the staff of the company, it results in zero downtime for users of the site. The work to be performed in this part of the project can be broken down into: Planning and Analysis, Physical Setup, Software Installation, Code Replication, Data Migration. In the Gantt Chart in the attachment following this paper, a lot of the tasks that are taken during the process of migrating the existing site from an externally hosted service to an internally hosted system can occur concurrently. For instance, installation of the web server and the database server can occur at the same time. This is assuming that the web server and the database server are on two different machines. The system software that will be used is rath er standard for a web site. The paradigm hat is chosen revolves around a Linux, Apache, MySQL, PHP (LAMP) model. The security features available within many distributions of Linux are far better than would be available on Windows. In addition, everything in a LAMP model is freely available. An alternative model would use Windows and IIS. However, Windows and IIS are only available commercially. In contrast, Linux and Apache are free systems that are widely supported and are, by far, the most widely used platform for hosting web sites. In addition, the use of PHP and MySQL is also free. The web site could also be set up with something like Adobe ColdFusion and Microsoft SQL Server. However, both of these items are commercially available for a substantial price. While Microsoft SQL Server is quite popular, it does not come close to the wide spread use of MySQL. Likewise, PHP is an order of magnitude more common than Adobe ColdFusion. There is no reason to spend large quantities of money on application and database servers when the most commonly used, and fully supported systems are freely available. Since Tony’s chips is not currently an extremely large web site that processes millions of transactions a day, the architecture will be rather standard and simple. However, the need for redundancy has been made clear and needs to be taken into consideration. In the interest of making the web site fault tolerant, two web servers, two database servers, and a replication server will be set up for the site. The system administrators must also ensure that wide area network connectivity with a static IP address is set up. This way, the static IP address can be assigned to the domain name in the site’s DNS entry. It is also important that security be taken into consideration. The use of a firewall and a demilitarized zone will be required. The demilitarized zone is in place to ensure that the public can access the web servers. However, the database servers and the replication server will exist behind a firewall that prevents the public from accessing these computers. The only external entities that will be able to access these servers are the web servers themselves. The replication server is exactly what it sounds like. It is in control of the replication of data across the two databases. We want to make certain that if a single database fails, that the other database is still up and running. This requires that we keep two copies of the database running at all times. However, this will not require that the program logic deals with two sets of data. All modern database management systems have the ability to set up a replication service that copies all the data entered into one database into another database. This ensures that if one of the databases fails, we can switch over to the database that is still running. After the failure is resolved, the data between the two servers will need reconciled. However, the users of the web site will not notice an interruption. The same basic concept is used for the web servers. Depending on traffic load or server condition, a web server could crash. To ensure that the system is tolerant of such a fault, two web servers are set up. If one of the computers or web servers crashes, the other one can pick up the traffic. In addition to providing the key benefit of fault tolerance, the additional web server can be set up to use load balancing. Since there will usually be two web servers running at any given time, it is possible to set it ups so that the traffic to the web site is split between the two servers. In a case where the web site is getting a very large amount of traffic in a short amount of time, this can help prevent the web server from getting over-taxed. An illustration of the system architecture is also provided in the attachment following this paper. The requirement to update the web site to facilitate customer orders has been identified. This is a software engineering requirement that is fundamentally separate than the requirement to move from an external host to an internal host. The only major impact that this would have on the migration is in the case that the web site never used a database before this change. This has not been identified. However, even if that were the case, the previously described architecture assumes that a database will be used. Therefore, the architecture that is required for the addition of an ordering system is fully in place. Now that such a system is in place, software engineers and programmers can begin the work of designing and implementing the new ordering system. It would not make sense to roll these processes in with the migration of the web site. Migration of a web site has enough potential pit falls and potential points of failure without adding in the variable of entirely new code. If this were to be done at the same time, a fault in the new ordering code could be mistaken for a fault that occurred with the migration, or vice versa. One of the downsides of hosting a web site internally is that all support will be divested to the company rather than a third-party service. This includes all regular maintenance of the system as well as regular web site support. For maintenance, regular backups of each database should made. This could include nightly backups and weekly backups that are stored off-site. This also involves maintaining network cabling and monitoring the temperature of the server storage area and cleaning dust out of the servers fan vents. This will also require monitoring network activity for malicious attacks such as a port scan or a distributed denial of service. More advanced server solutions that are available as external hosting would include all of this in their service fee. Technologies to detect and prevent things like distributed denial of service takes planning and a non-trivial software investment. Of course, the addition of the ordering system adds new requirements to the web site support. Customers will need a place to email and/or call to inquire about orders or complain about the service they received. There will need to be individual who are responsible for addressing these customer interactions. Evaluation of a web site like the one planned in this document is an ongoing process. At first, the success of the migration is evaluated by the existence and duration of any down time. Then, web site responsiveness and uptime is evaluated. With the measure put into place, the downtime should be zero and the uptime should be close to 100%. Even with redundancy and fault tolerance, it is impossible to guarantee 100% uptime. To evaluate the new order system, the success of orders needs to be taken into consideration. Can customers place the orders that they wish to make? When a product is out of stock, does it state so on the product pages and prevent the customer from placing the order? When the customer places the order, does the financial transaction process successfully? Is the database notified about denied charges? Beyond the mechanics of the order procedures, the number of orders being placed should be evaluated. The success of the web site can partially be evaluated by assessing the conversion rate on the web site. The conversion rate is the number of visitors who proceed to making an order. The goal is to convert as many customers as possible. If the system’s cart and the checkout system is not intuitive, the result could be a very low conversion rate. Conclusion The Tony’s Chips web site will be migrated to an internally hosted system consisting of fault tolerance and redundancy. After this logistical process has been completed and all necessary DNS entries have successfully updated, the system will be modified to include an ordering system so that customer can order chips and any other product that is offered. These two objects are separated to ensure that they do not interfere with one another and to limit the number of variables at any given time. With the proposed architecture and design, it is believed that the new system will be highly efficient and effective. In the attachments following this paper, as some were discussed earlier there will be a gnatt chart, system architecture illustration, and a use case.

No comments:

Post a Comment