Friday, December 21, 2007

A Step-by-Step Guide to Starting Up SaaS Operations

Introduction

Faced with intensifying competition, as well as a desire for more stable revenue streams and stronger customer relationships, software companies are increasingly turning to the Software as a Service (SaaS) delivery model.

Adoption of SaaS is driven in part by end-users, who benefit from access to any application, from anywhere, on virtually any web-enabled device; better licensing and cost control; and assurance that the most recent version of the application is in use. SaaS is built on the legacy of the ASP model, but modernized and enhanced by today’s robust web services integration capabilities, increased bandwidth and bandwidth availability, and more mature infrastructure.

As a strategic offering, SaaS has already shown that it can:

Ø Open new markets, revenue streams, and distribution channels

Ø Provide a stable, recurring revenue model

Ø Afford consolidation of development and support efforts around single versions of code

Now, software companies are facing the complex issues involved with building the service delivery capabilities necessary to support SaaS offerings. Building an SaaS infrastructure is a complex undertaking, requiring a committed team and a focused effort. End-users demand 100% uptime, appropriate Service Level Agreements, and

24x7 call center support. Meeting those demands requires 24x7 application and systems management, hosting, networking and security infrastructures, disaster recovery capabilities, change management policies and procedures, and more.

The Steps

  1. Understand your business objectives and definition of a successful outcome
  2. Select and staff your services delivery team
  3. Define and understand the infrastructure needed to deliver your SaaS application
  4. Select your hosting facility and Internet Service Providers (ISPs)
  5. Procure the infrastructure and software required to deliver your SaaS application
  6. Deploy your SaaS delivery infrastructure
  7. Implement disaster recovery and business continuity planning
  8. Integrate a monitoring solution
  9. Establish a Network Operations Center (NOC), Client Call Center and ticketing system
  10. Design and manage Service Level Agreements
  11. Document and manage the solution
In the following sections, we describe this high-level, step-by-step methodology for successfully starting operations with SaaS.

1: Discovery - Understand the Objectives for Your SaaS Offering

To successfully deploy Software as a Service offering, you must be guided by clearly defined business requirements, objectives, and timelines. It is critical that these objectives are identified before starting the process. A detailed investigation and discovery process will set the direction for the subsequent decisions related to deploying the offering.

Among the areas for investigation:

Ø How is the on-demand application designed to run?

Ø How is the on-demand application designed to be accessed? Where are the users of this application located when accessing the systems?

Ø Is the on-demand application designed to handle multiple users? If so, how?

Ø Is the on-demand application designed to meet scalability, security, and failover requirements? If so, how?

It is essential to understand the intricacies of your on-demand offering, and the challenges faced in transitioning dedicated applications to an SaaS platform that is traditionally operated by your client’s IT organization, prior to starting infrastructure design and component selection.

2: Designate the Operations Team

The SaaS task force then designates the Operations Team, comprised of seasoned veterans with both engineering and operational expertise, to design the scalable architecture for hosting the SaaS platform, based on the application’s requirements. To be successful the Operations Team will need to have expertise in multiple technologies. Some of these include: system and application management; network and security management; change control expertise; infrastructure design; and deployment experience.

The Operations Team is tasked with developing design solutions that meet the stated objectives. Typically, this is approached one of two ways: from a bottom up, cost-based perspective; or from a top down, maximum needs perspective.

Unfortunately, neither of these approaches will result in an optimized, competitive offering. A cost-based approach may result in an under-built infrastructure that may not be as effective, efficient, scalable, or secure as is required. A maximum needs approach may result in an over-built infrastructure that is never fully utilized, incurring unnecessary costs and dragging down profits. A middle ground is best, resulting in a salable solution that is logically linked to revenues.

3: Conceive and Design Scalable Infrastructure and Services

With a clear understanding of the application(s), and the service offering, the next step or the Operations Team is to architect a comprehensive infrastructure and its supporting components. These infrastructure components include:

Ø Data center

Ø Network components and connectivity

Ø Security

Ø Hardware – systems

Ø Hardware – storage

Ø Storage tape backup

Ø Monitoring tools

Ø Systems management tools

Internal reviews should critically examine cost-benefit issues related to building the infrastructure to support today’s business and application(s) requirements, as compared to short- and long-term architectural considerations for scalability and expanded services offerings.

Final decisions must include strategies for:

Ø SLA creation and management

Ø Scalable 24x7x365 systems and application management

Ø End-user call center support

Ø Disaster recovery

Ø Scalability of web, application and database servers

Ø Performance and availability commitments

Ø Network and bandwidth capacities

Ø Security and security management

Ø Monitoring management and reporting

Obviously, these considerations must also be examined within the context of available budgets, while factoring in ongoing operational expenses to update and maintain the infrastructure.

4: Determine Your Bandwidth Requirements and Select Your Hosting Facility

Hosting your infrastructure behind appropriate public connectivity and in a facility that is best suited to your needs is key to a consistently positive end-user experience. When reviewing bandwidth, you must understand the demographics related to your application(s) by identifying where the majority of your network connections come from. End-users who will access your application from home-based desktop computers will require a different approach, compared to those in corporate offices with dedicated high-speed Internet connections.

Placing your infrastructure as close as possible to the end-user community will reduce network hops and increase performance. Using multiple network connections to your application(s) from tier one providers will eliminate bottlenecks and ensure fast application response times.

If you determine that you will host your infrastructure in a third-party data center, there are some key components to review. Questions include:

Ø Are the data centers staffed 24x7x365?

Ø Are there redundant systems for power and cooling? What is the testing frequency?

Ø What physical security measures are in place?

Ø How many Internet Service Providers (ISPs) are available for purchasing connectivity?

Once selected, the Operations Team will need to ensure that the selected facility and ISP will meet the build and deployment timelines that were discussed during contract negotiations. It is important not to let this critical component slip during the build phase.

5: Procure the Infrastructure Components

With the overall infrastructure design complete, components with proven reliability and functionality are selected for the actual production infrastructure. A core set of these components will include:

Ø Firewall / IDS devices

Ø VPN and SSL acceleration units

Ø Load Balancers

Ø Servers

Ø Storage devices

Ø Software

Ø Support contracts

To meet scalability and business requirements, as well as guaranteed uptime commitments, selecting the right equipment is critical. Equipment should be deployed under a high availability scheme and, for most production infrastructures, platinum-level support contracts should be executed with vendors to ensure immediate (maximum four hour) response, should any of the key components fail at any given point in time. During this period care should be taken to ensure that the selected hardware will be delivered within timelines that will meet your deployment master schedule.

6: Deploy the SaaS Delivery Infrastructure

With the arrival of infrastructure components, the Operations Team enters the build phase, deploying the infrastructure in accordance with set specifications. During this hands-on effort network equipment is racked, burned in, and updated with the latest firmware versions, prior to being configured. Configurations are placed on the networking infrastructure that appropriately manage multiple ISP connections for redundancy and segment traffic from public (customer facing) and private (administrative and backup) networks. Security devices are updated with the most current versions of intrusion detection software (IDS) and firewall rule sets are established that allow your customers access to the systems while keeping unwanted intruders out.

Servers are racked and configured to support overall application(s) requirements. Operating systems are installed and brought up to the appropriate patch levels. Hotfixes specific to your application are installed and utilities that are needed to administer the systems and applications are put into place.

Systems and networks will then need to be tied into your disaster recovery solution. Network device configurations, system configurations, and all data should be backed up nightly to off-site tape facilities, and off-site tapes in storage should be kept available for 3 to 6 months.

7: Implement Disaster Recovery and Business Continuity Planning

With a live application now ready for delivery via SaaS, the task force must focus on business continuity issues. Key questions must be answered:

Ø What happens in the event of a disaster?

Ø How quickly can the application be up and running following such an event?

With widely varying disaster preparedness options, from off-site tape backups to leading edge global load balancing technologies across multiple geographic locations, selected solutions should be based on business requirements relative to budget limitations.

8: Integrate a Monitoring Solution

To ensure that all infrastructure components are both working, and working with each other, a monitoring solution is essential. Key components that must be periodically checked include:

Ø Hardware: memory, CPU, hard drives

Ø Operating Systems: event logs, process lists, key services

Ø Application Layer: process, TCP ports, web service checks

9: Establish a Network Operations Center (NOC), Client Call Center, and Ticketing System

Always focused on your service delivery infrastructure, the NOC is the central monitoring station that performs correlations between triggered alerts and appropriate responses. Fully staffed and on alert 24x7x365, the NOC is also your product’s eyes and ears for monitoring system health and performance. Based on set policies and procedures, the NOC must validate an alert, determine the appropriate response, and set the response in motion. Failure to resolve the issue requires the NOC to further escalate the response by assigning responsibility to an oncall engineer.

End-user support is a key component in successfully deploying SaaS. End-users that encounter application-related issues must have a primary point of contact for escalating issues. Responsible for receiving and processing all support calls, 24x7x365, a call center must have policies and procedures in place designed to help end-users who call in with issues (application access issues, feature requests, bug reports), and a clear path for escalating the issue to an appropriate resource for resolution. The call center must also be responsible for monitoring the response to ensure that the problem is fixed in a timely manner, and that the end-user is satisfied with the result.

In addition to serving end-users, the call center provides another conduit for business intelligence generated as a result of daily operations, identifying usability issues and requested enhancements, and disseminating them to the appropriate development groups within the company. Recording calls from end-users also provides an excellent vehicle for continuous improvement and training for call center employees. The call center is also typically responsible for generating customer satisfaction surveys.

To support the infrastructure, a ticketing system is required that connects the human components across the organization (NOC, operations delivery team, etc.) to issues management. An automated system with centralized communication provides the greatest opportunity for efficient issue management. Email, instant messaging, and phone calls, while inexpensive, have all proven to be inefficient and ineffective alternatives. A robust ticketing system also provides the organization with a consistent view into the issues impacting SaaS delivery, from end-user support to application development.

10: Design and Manage a Service Level Agreement (SLA)

Based on the components that comprise your SaaS offering, the task force should then work with the marketing team to develop a comprehensive SLA that meets end-user expectations. Key SLA elements include:

Ø Application availability

Ø Infrastructure alert response time

Ø Call center response time


The task force must then ensure that the infrastructure components and supporting policies and procedures are in place to meet these benchmark agreements, and that they deliver a satisfactory end-user experience. SLAs must be proactively monitored and managed to ensure that SLA-triggered events are tracked and resolved. The system must also identify SLA failures and specify financial credits to end-users for failure to deliver to benchmark levels.

11: Document and Manage the Solution

Once deployed, the Operations Team must document the entire infrastructure, noting any nuances or areas of concern in regards to custom components. The documentation should take advantage of automated tools and be available within a centralized knowledge base.

To be successful, documentation should include information on all aspects of the SaaS environment, including information on: the data center; bandwidth providers; network and security components and configuration; system components and configuration; disaster recovery activities and plans; and business continuity planning.

Once your infrastructure is in place, all components are working together, and your SaaS offering is bringing in revenues every day, ongoing success will result from diligent management. To that end, daily, weekly, and monthly maintenance task lists should be produced for every device in the infrastructure. Regular maintenance windows should also be used to address infrastructure hotspots, in order to remedy issues before they become problems.

System logs should be methodically reviewed for error/warning messages, and response scenarios updated as needed.

Summary

This high-level overview describes a proven methodology for successfully starting operations with SaaS. It is important to note, however, that there is no substitute for domain expertise. Therefore, the most critical element to have in place, before taking on this challenge, is a team of experts in operations and engineering who have previously designed, built, and managed complex infrastructures.

No comments: