Overview – SAAS stands for Software AS a Service. In this approach, applications are delivered over the internet in the form of service. Rather than installing and maintaining the software we simply need to access the software over the internet.
In this document, I will talk about the SAAS model and the best practices which should be followed while implementing SAAS model.
Introduction – SAAS is the short form of a concept called Software as a Service. Here we don’t need to install or maintain any software. Just we need to have an internet access using which we can use the service. A SAAS model should have the following key characteristics –
- Multitenant Architecture – In a multitenant architecture, we have multiple users and applications who share a common source code. This source code is maintained centrally at one place.
- Customization – Since the source code maintained at a single place, it becomes easier to customize the application based on the business need of the customer. SAAS is designed and organised 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 the privileges or monitor the data usage. It also ensures that same information is available to all the users at any point of time.
Best Practices followed in SAAS model –
Let us walk thru the steps used to follow best practices while implementing SAAS model –
- Understand the business requirement – Irrespective of the technology or the model, it is very important to have a clear understanding of the business requirement. If we don’t have this, we won’t be able to design and develop any system or application. Also, to have better result it is important that we 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 take care of the following-
It is very important that we identify and understand the characteristics of the application at a very early stage. Not only that, we should pay equal attention in identifying the challenges the existing application or the system or the process is facing.
- Identify the team to take the task – Again irrespective of the technology or the model, it is very important that the team which would be assigned to take up the task must be well versed of the technology and the concepts. In the SAAS model we should have a team comprising of seasoned developers who understand the concept of the SAAS in full length. 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.
- Design the scalable infrastructure – Once the team has the complete understanding of the business requirement, the next step is to build the infrastructure along with the following components –
- Data Centre.
- Network infrastructure – connectivity and security.
- Hardware – both systems and storage.
- Backup and monitoring tools.
On top of these, there should be internal reviews to evaluate the cost benefit related issues while building the infrastructure. While taking the final call, one must take the following into consideration –
- The Service Level Agreement or the SLA.
- Scalability and availability and other performance factors.
- Customer support and incident reporting.
- Disaster recovery.
- Network bandwidth.
- Security management.
- Finalize the bandwidth requirement and hosting facility – It is very important that we host our infrastructure 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 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 lesser network hops. We should have multiple network connection to our data centre, thus eliminating the network bottle necks. If we take a call to out source the data centre infrastructure, we should consider the following –
- Is the data centre available 24X7X365?
- The testing frequency.
- Availability of redundant systems for power and other hardware failures.
- The physical security of the campus.
- Procuring the infrastructure components – Once the infrastructure design is complete, we need to have the components which have proven reliability and functionality. This step is critical in order to ensure the high availability. While evaluating these hardware components we must also ensure that the selected hardware is delivered within the timelines of our business needs.
- Deployment of the SAAS delivery infrastructure – Once the infrastructure components are available, the operation team should start building and deploying the SAAS components one after another. 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. Also the firewall should be configured as per the user access policy of the business.
- Plan for Disaster recovery and continuity – Now that the application is ready to be used over a SAAS platform, we must need to plan for disaster recovery and ensure continuity of the application. The following questions needs to be answered in this regard –
- How to respond to a disaster condition?
- How to bring back the application in a limited time frame?
- Integration of the Monitoring solution – The monitoring subsystem is very vital system. It helps to ensure timely intervention and avoid any unwanted disaster. 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 e.g. TCP layer, database, application servers etc.
- Prepare the customer support call centre – Once the application is out in the market, it can’t exist without having a customer support call centre. The call centre should be well connected and equipped to manage an appropriate ticketing system. Customer support is a key component to ensure success of any model or application irrespective of the technology. The ticketing system should be enabled with appropriate emailing system. In case any issue requires the attention of the development team the ticketing system should be enabled to send emails to the appropriate team member.
- Prepare the SLA or the Service Level Agreement – We need to have an SLA in place while implementing the SAAS model. The SLA should clearly mention the turnaround time and the response time along with the application availability.
- Documentation – Once all of the above steps are over, we need to document the entire infrastructure and its components. This document will help the next generation to handle any exceptional behaviour of the application. Also it would help if there is any modification or alteration required in the infrastructure.
Summary: Throughout the article we have discussed the best practices followed in a SAAS model. We have also covered the key characteristics of a SAAS application. Now Let us conclude our discussion in the form of following bullets –
- Best practice needs to be followed every where as it ensures better performance of the application.
- In SAAS model the following best practices should be followed –
- Understand the business requirement
- Identify the team to take the task
- Design the scalable infrastructure
- Finalize the bandwidth requirement and hosting facility
- Procuring the infrastructure components
- Deployment of the SAAS delivery infrastructure
- Plan for Disaster recovery and continuity
- Integration of the Monitoring solution
- Prepare the customer support call centre
- Prepare the SLA or the Service Level Agreement