End of the Line: production site migration and maintenance
IT INFRASTRUCTURE MANAGER’S THREAD (BLUE team)
To Do:
What are the hosting solutions?
Will our Rails applications run on a cloud computing service in future?
Can we make a deployment and maintenance plan by team consensus?
Build upon the Blue team wiki inside Interact, from Workshop 6 by beginning a new page to add your ideas for policy planning and documentation about production site deployment and maintenance solutions.
Administration, scaling, reliability and integration with existing and future services are issues.
Consider all the business options of both in-house deployment and outsourcing as shown by hosting sites like http://www.engineyard.com/
In-House Development vs. Outsourcing
There are many hosting solutions available in the market, each of them has different characteristics and benefits. But before choosing the platform, the more important business decision should be made, that is: whether the web hosting should be built in-house or outsourcing. This consideration is not new, especially in the years of slow economics where cost is a critical factor. More, the emergence of the utility computing (pay per usage) and the technology of Cloud computing makes the decision more precedent to the choice of hosting solutions.
To decide in-house or outsourcing, pros and cons have to be evaluated. According to a Forrester Research report, financial saving is a big proponent, the 'IT shops that outsource infrastructure management and application services can expect to save 12% to 17% annually on average, which means U.S. companies are sitting on about $10 billion in potential savings'. (Networkworld, 2010). From another research by PricewaterhouseCoopers, 40% of outsourcing companies said they want to improve customer relationships. Another 37% uses outsourcing to develop new products or services, and about one-third wants to expand to other locations. Besides the monetary saving, the data security or confidentially is the major reason from using outsourcing, especially the financial institutions and government bureaus.
Networkworld.com. (2007). Outsourcing vs. keeping it in-house. Retrieved on 25 May 2010 from http://www.networkworld.com/news/2007/102607-arguments-outsourcing-inhouse.html?nwwpkg=50arguments&ap1=rcb
According to the Executive white paper from Verizon, there are ten benefits of the outsourcing. (Verizon, 2004).
- More profitable use of valuable in-house IT talent
- Reduced IT overhead
- Reduced capital expense
- Improved IT performance and reliability
- A technology edge over competitors
- Access to different skills and technology as needed
- Accelerated development and time-to-market cycles
- Reduced risk of unscheduled downtime
- Smoother, less costly technology migration
- Business contingency and continuity capabilities
Verizon. (2004). The IT Outsourcing Dilemma. Retrieved on 25 May 2010 from www22.verizon.com/it/files/outsourcing_dilemma_wp.pdf
Come back to the taxi company, the security is not the major concern because the database consists of mainly passengers location information instead of financial transaction. (not all customers will pay by credit card). All the 10 benefits above are directly applicable. Therefore, the final decision is to maintain a small in-house team over the new technologies and features development to stay ahead of competitors and improve customer experience. Other operations like the physical hosting of servers and networks, backup...etc. would be outsourced.
Choosing a Web hosting solutions
From the workshop 6, we have found that Ruby/RoR and Python are the best choices for building Web 2.0 startup and we have decided the Ruby on Rails is the right choice for Taxi online system.
Engine Yard, is 'a Rails Application Cloud for web developers and web teams running on top of cloud computing infrastructure. It provides easy-to-use, automated Rails application deployment and management, with a design philosophy that allows easy migration of your existing applications.'. (Engine Yard, 2010). The features vs. our requirement are listed below:
| Requirements | Features | Benefits |
| Administration | Monitoring & Alerting | Engine Yard Cloud tracks all the essential resource utilization for your application and alerts you when you need additional capacity, or when your latest application push is behaving poorly. Storage, CPU and memory utilization levels are all tracked for conformance to pre-configured thresholds, and email alerts provide timely warnings. |
| Administration | Self-Service Provisioning | Use the Engine Yard Cloud user interface to add and subtract instances on demand. Our Cloud dashboard makes it easy to see the status of your application, and to add and remove capacity or deploy new application versions. |
| Scaling | Managed Application Runtime | Engine Yard Cloud provides you with a pre-integrated, pre-tested Ruby on Rails technology stack, including web, application and database servers, built-in monitoring and process management, a Rails-optimized linux distribution, in-memory caches and more. All components are monitored for security vulnerabilities and updated continuously as vulnerabilities are discovered and patched. |
| Scaling | Seamless Application Capacity Management | Configuring new applications capacity used to be a multi-hour task—now it’s a single click. With Engine Yard Cloud, capacity management is always application aware. Add an additional instance to your application tier, and that instance will automatically deploy with the correct application configuration and join your load-balanced group. |
| Scaling | Auto Deploy-From-Source | Engine Yard provides seamless integration with source code management. Simply add a special comment to your source code check-in and you can have it automatically deploy to a staging or test environment. Now your whole team can always see the current application version. |
| Scaling | Application Templates | One of the essential concepts of an Application Cloud is that all the information required to reproduce application capacity is stored in a configuration management system. With Engine Yard Cloud, you can easily manage application configurations with our application templates, which encapsulate source code, Ruby gems, linux packages and other essential details. |
| Scaling | Extensible Configurations | If you need to use a component or package that Engine Yard does not install or configure by default, you can write a configuration recipe to extend our configuration management system. A configuration recipe is a simple Ruby-based domain specific language that allows you to specify installation and configuration steps for any package you need to install. |
| Reliability | Replicated Database Tier | As your application scales, so should your database. With Engine Yard Cloud, adding a database read replica is as simple as clicking on a button. Scale out by adding more replicas, which can be used to perform complex analytics, backups and maintain high availability without sacrificing on application performance. |
| Realiability | URL Availability Monitoring | Serious production applications require all services to be available at all times. Engine Yard Cloud monitors all your essential services, including configurable application URLs, and alerts you when there is any unexpected downtime. |
| Integration | Utility Tier | Most serious web applications require specialized components outside of the application and database tier. With Engine Yard Cloud, you can easily create a utility instance tier and associate configuration recipes to it. Simply add new servers to do repeatable deploys of custom applications or to offload complex processing to dedicated servers. |
No comments:
Post a Comment