Application hosting, whether it's done in-house, at a co-lo facility or outsourced to a managed service provider,...
is a big undertaking. Accurately gathering and analyzing both business and technical requirements can smooth out a lot of bumps in the deployment process. Here is a list of requirements that typically go unresolved until late in the game, but can impact the total cost of application hosting and/or result in a service that does not meet the needs or expectations of your organization.
1. Aggregate storage requirements: Storage can be a costly proposition, so use a just-in-time-inventory approach. Answering these questions can help build a better more accurate picture that may defer costs until they are essential:
- How much storage do you need in the next 3-5 years? Break this into both SAN and NAS.
- How much is needed now?
- How much additional space is needed each year?
- How many business continuance volume's (BCV) and what size are needed?
- Will you archive data over time and pull it out of the main storage area? How much and when?
2. Environments to be hosted: How many environments will be hosted and what type? Staging, training, testing, production and development are just a few of the environments you may need to host. Typically each environment has different requirements in terms of support, availability, operational tasks and access. Be sure to assess the use and flow of data within and between these environments to accurately determine the requirements for each.
3. Backup/restore services and disaster recovery: Define what is expected to be backed up, how often and when. Include data files, databases and BCVs. Don't forget to determine how many snaps a day are required for each BCV, and when snaps stored to disk are to be moved to tape. How quickly do you expect a file to be restored from tape? What happens when there is a disaster and the datacenter is completely unusable? Do you have a continuity of operations plan?
4. Service level agreements monitoring and reporting: Key performance indicators are great, but only if they show what is important to you. Be sure that you define all areas of availability that are important to your organization, including not only the overall level of availability but the core hours during which availability is required. What elements are to be monitored? What is the interval for monitoring and the threshold for those items being monitored? Are specific application components to be monitored? How are reports to be structured and provided?
5. Root access: Who needs root access? Typically, system root access is not given to anyone outside the data center staff, but full application administrative access may be granted to application admin staff. In some cases, service providers will waive SLAs if an outage occurs during a time when a non root access account is logged in, if it can be determined that account caused the outage. Be sure to ask your provider their policies, or set your own for in-house applications.
6. Operational tasks: Installation, configuration, steady state operations, tuning and database support tasks should be defined as specifically as possible, or alternatively, agree on a specific number of support hours each week/month/year that can be used in any way needed. Be sure to define which processes are to be followed for each of the operational tasks and include them in the Standard Operating Procedures Manual. Agree on a training plan for data center staff to come up to speed on these procedures.
7. Licensing: Define who is responsible for acquiring software licenses and maintenance agreements (if any), as well as who is the party responsible for paying for these licenses. Licensing costs are a significant component in any application hosting arrangement, and it is worth researching any opportunity to take advantage of an enterprise or volume licensing agreement.
8. Testing: Ensuring your deployment operates as intended is critical to going live successfully. Define what types of tests to be performed and who is to perform them as part of the hosting requirements.
9. Help Desk: Define clearly how the help desk or support system is to operate for this application. Will there be a super-user model with only specific users permitted to call the help desk, or can any user call in to report a problem? How are issues escalated, and what parties must be notified in the event of an outage? Agree on a regular escalation and notification matrix update process and review cycle.
10. Contracts: Contracts define more than just what goods and services are delivered, and how much they cost. They also define how different organizations interface with each other. Even if an application is hosted in-house, it is wise to draft a memorandum or understanding between the department that owns the application (Finance, for example), the group that built the application (Development), and the group that hosts the applications (IT Operations). This can prevent misunderstandings and provide a framework for dispute resolution and continuous improvement.
About the author: Kackie Cohen is a Silicon Valley-based consultant providing data center planning and operations management to government and private sector clients. Kackie is the author of Windows 2000 Routing and Remote Access Service and co-author of Windows XP Networking.