JustAnswer



Tony's Chip MigrationIntroductionTony'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.The creation or addition of an e-commerce solution can be achieved in many different ways. The site can work with a third-party shopping cart server, such as one available through PayPal. The organization could also choose to use a prepackaged commerce solution, like osCommerce. Finally, the organization could chose a custom build. A custom build requires software developers who are familiar with at least one server-side scripting language.It should be noted that there are some good alternatives to internally hosting a web site. Internal hosting is extremely expensive and require constant maintainer and support. Storage areas have to be made available and ready, and personnel must be hired to perform regular maintenance and monitoring. This is in addition to the initial hardware costs and development costs. An internal solution with a custom build e-commerce solution is the most expensive option that a business could possible choose.ArchitectureThe 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 is accessible via the web. It receives requests and sends back the HTML responses.Because the organization 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. While it is possible to implement a fault tolerance and load balancing using advanced hardware, it should be noted that this is not inexpensive. The necessary network infrastructure and hardware is a significant investment with recurring costs. The desired architecture will provide fault-tolerance on both the web servers and the database servers. The database servers will use a functionality that is built into most modern relational database management systems called replication. All updates will occur on one database. This includes any inserts, updates, and deletes to the data in the system. That data is replicated over to the other database(s). Any database can be queried for information. If a database fails or crashes, another database server will pick up the slack. However, this will cause a replication discrepancy, requiring significant effort from those tasked with maintaining the site. So while providing maximum up-time is certainly possible, it comes at a premium. That premium is even greater when an organization chooses to go it alone and do everything themselves.Many 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 . These technologies have major industry names behind them and support is readily available for any purchased products, like Visual Studio.It may seem like the most intuitive option would be with Microsoft Visual Studio. However, such a set up comes with many restrictions. First, the Visual Studio development environment is a licensed product and will require a hefty investment if there are multiple developers. These licenses will need to be renewed periodically. Next, choosing to use Microsoft's .NET solutions means that the web servers will need to be running Microsoft Windows, which also requires a fee. And while there is support available for any products which the organization has licensed, Microsoft will not provide support for the actual ASP, C#, or code. The value of this option over an open-source, free solution like PHP or JSP is hard to identify.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 ArchitectureMigrationMigration 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. Alternatively, the third-party host can be set up to automatically redirect to the new site. This must be set up in a way that it points to the new site's actual IP address and not the domain name. Redirecting to the domain name will simply cause a redirection loop error.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 enhancement. Generally, it is a bad idea to introduce functionality to a system while that system is undergoing a major change. Any qualified QA professional will consider any tests done under such circumstances to be invalid, as it will not represent a test of the system operating under normal conditions. With that in mind, the site should be migrated and verified first. Only once the migration has been deemed a success should the e-commerce enhancement be released onto the site.AlternativesThe 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.Gantt ChartUse CaseCase NameBuy ChipsDescriptionThis use case describes the event of a user ordering a bag of chips from the web site.Primary ActorUserBasic Course of EventsUser navigates to the Tony's Chips web siteUser browses catalogUser adds chips to shopping cartUser clicks on "Checkout"User enters shipping and payment informationUser receives chips after shipping timeSupport and MaintenanceAssuming 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. When an organization finds itself in a position to be doing a huge number of transactions on a daily basis, a database can quickly become full. Database tables in DBMSs like MySQL have a maximum number of records that can be stored and a maximum table storage size. These are number that are unrelated to overall system storage capacity. While it may seem unlikely that the organization will run into this issue in the foreseeable future, failing to plan for it will have unfortunate effects if that day does come. At a time when the business is obviously thriving, the site will stop working and transactions will fail. It is therefore vitally important to keep a database clean and perform data archiving at set intervals.Finally, there is the issue of site support. This does not change much from a third-party hosted site to an internally hosted site. The big difference here is that the addition of an e-commerce solution necessitates the addition of support. A static site with no transactions can easily be supported by a single "webmaster." However, a site that is gathering customer information, processing credit transaction, and storing sensitive data requires a much higher level of support. There will be confused an angry customers, billing mistakes, accidental purchases, incorrect addresses, and all other types of human error to contend with. When dealing with some third-party e-commerce solutions, order support can be contracted out to them. Whether this support is handled in-house or contracted out to a service provider, it represents another financial investment.Evaluating PerformanceThe 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.ReferencesCullen, 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. ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download