- Multitenant Architecture – In a multitenant architecture, multiple users and applications share a common source code. This source code is maintained centrally in one location.
- Customization – Since the source code is maintained in a single place, it becomes easier to customize the application based on the business needs of the customer. SaaS is designed and organized in such a fashion that these customizations can easily be managed and maintained per customer.
- Accessibility – SaaS provides better access to data over the Internet. This makes it easier to manage privileges or monitor data usage. It also ensures that same information is available to all users at any point of time.
1. Understand the business requirementsIrrespective of the technology or the model, it is very important to have a clear understanding of the business requirements. Without this, we won’t be able to design and develop any system or application. In order to achieve better results, it is important to identify the goals and objectives at a very early stage. The investigation and discovery process should be robust enough to set the goals and directives at a very early stage. The investigation process should determine the following:
- How should the application be designed to run?
- What are the different categories of users who will access the application?
- How should the application respond to:
2. Identify the team to take on the taskAgain, irrespective of the technology or the model, it is very important that the team assigned to take on the task is well versed in the technology and the concepts. In the SaaS model we should have a team comprised of seasoned developers who understand the concept of SaaS in depth. The team should have members who have the expertise of multiple technologies and also should be well aware of the best practices that are followed in the industry.
3. Design a scalable infrastructureOnce the team has the complete understanding of the business requirements, the next step is to build the infrastructure along with the following components:
- Data center
- Network infrastructure – connectivity and security
- Hardware – both systems and storage
- Backup and monitoring tools
- Service level agreement (SLA)
- Scalability, availability and other performance factors
- Customer support and incident reporting
- Disaster recovery
- Network bandwidth
- Security management
4. Finalize the bandwidth requirement and hosting facilityIt is very important that the infrastructure is hosted within a facility which has a public connectivity and maintains consistency to ensure positive user experience. While reviewing the bandwidth, we must think of the demographics of our application, e.g. the connectivity factor for a user sitting in an office where high bandwidth network speed is available would be different from a user who is connecting from home. It is also important that we place the infrastructure as close as possible to ensure fewer network hops. We should have multiple network connections to our data center, thus eliminating network bottlenecks. If we decide to outsource the data center infrastructure, we should consider the following:
- Is the data center available 24×7×365?
- Testing frequency
- Availability of redundant systems for power and other hardware failures
- Physical security of the campus
5. Procuring the infrastructure componentsOnce the infrastructure design is complete, we need to use components which have proven reliability and functionality. This step is critical in order to ensure high availability. While evaluating these hardware components, we must also ensure that the selected hardware is delivered within the timelines of our business needs.
6. Deployment of the SaaS delivery infrastructureOnce the infrastructure components are available, the operation team should start building and deploying the SaaS components. Servers should be racked, configured and subsequently the operating systems should be installed as per the need. Security devices should be upgraded with the latest versions of IDS. The firewall should also be configured as per the user access policy of the business.
7. Plan for disaster recovery and continuityNow that the application is ready to be used over the SaaS platform, we must plan for disaster recovery and ensure continuity of the application. The following questions need to be answered in this regard:
- How do we respond to a disaster condition?
- How do we bring back the application in a limited time frame?
8. Integration of a monitoring solutionA monitoring subsystem is vital. It helps to ensure timely intervention and avoid disasters. The system monitoring should be done based on the following parameters:
- Memory and CPU usages
- Event logs from the operating system and the application
- Different application components (TCP layer, database, application servers, etc.)