Building a SaaS Application. ReddyRaja Annareddy CTO and Founder



Similar documents
SaaS & Cloud Application Development & Delivery

Convert your web application to a Multi tenant SaaS solution using "SaaS-Tenant " Framework

D83167 Oracle Data Integrator 12c: Integration and Administration

NCTA Cloud Architecture

The deployment of OHMS TM. in private cloud

How To Understand Cloud Computing

Oracle Data Integrator 12c: Integration and Administration

Oracle Data Integrator 11g: Integration and Administration

A.Prof. Dr. Markus Hagenbuchner CSCI319 A Brief Introduction to Cloud Computing. CSCI319 Page: 1

Investor Newsletter. Storage Made Easy Cloud Appliance High Availability Options WHAT IS THE CLOUD APPLIANCE?

Alice. Software as a Service(SaaS) Delivery Platform. innovation is simplicity

SaaS Implementation for Technology & Business software companies

Clinical Trials in the Cloud: A New Paradigm?

Cloud Computing for Architects

SaaS Data Architecture. An Oracle White Paper Oct 2008

Azure Scalability Prescriptive Architecture using the Enzo Multitenant Framework

BUILDING SAAS APPLICATIONS ON WINDOWS AZURE

Zero Downtime In Multi tenant Software as a Service Systems

Multi-Tenancy in SharePoint DD105 Spencer Harbar Enterprise Architect harbar.net

Oracle Database Cloud

Multitenancy. Berthold Reinwald, IBM Almaden Research Center. UW MSR Summer Institute, 2010

An Oracle White Paper September Oracle Database and the Oracle Database Cloud

An Advanced Performance Architecture for Salesforce Native Applications

Application Performance Management for Enterprise Applications

Building Multi-tenant Applications with Actian PSQL

CHAPTER 2 THEORETICAL FOUNDATION

Moving to Office 365: Top 10 things you should know. Steve Pogrebivsky 04/05/2014

Elasticity in Multitenant Databases Through Virtual Tenants

SaaS A Product Perspective

HDP Hadoop From concept to deployment.

The Fastest Path to the Cloud Building Your SaaS Company on Force.com

Introduction to Big Data Training

CliQr CloudCenter. Multi-Tenancy

Introduction to Cloud Computing

Getting Started with SandStorm NoSQL Benchmark

CLOUD SERVERS vs DEDICATED SERVERS

Oracle Data Integrator 11g New Features & OBIEE Integration. Presented by: Arun K. Chaturvedi Business Intelligence Consultant/Architect

Webrecs IT infrastructure. The Webrecs IT backend explained and how we store, backup, protect and deliver your documents to you

SAAS. Best practices for SAAS implementation using an Open Source Portal (JBoss)

Cloud Models and Platforms

Looking Ahead The Path to Moving Security into the Cloud

LEARNING SOLUTIONS website milner.com/learning phone

Meeting the Needs of Database Management for SaaS: Oracle Database 12c

INTEGRATION STRATEGIES FOR ISVS: PART I

Where We Are. References. Cloud Computing. Levels of Service. Cloud Computing History. Introduction to Data Management CSE 344

Relay2 Enterprise Cloud Controller Datasheet

W I S E. SQL Server 2012 Database Engine Technical Update WISE LTD.

Time to Value: Successful Cloud Software Implementation

How cloud computing can transform your business landscape.

Scalable Architecture on Amazon AWS Cloud

The Cloud is Not Enough Why Hybrid Infrastructure is Shaping the Future of Cloud Computing

Minder. simplifying IT. All-in-one solution to monitor Network, Server, Application & Log Data

IBM Cognos TM1 on Cloud Solution scalability with rapid time to value

What Cloud computing means in real life

Always On Infrastructure for Software as a Ser vice

Realization of the High-density SaaS Infrastructure with a Fine-grained Multitenant Framework

Fundamental Concepts and Models

Data processing goes big

Business and enterprise cloud sync, backup and sharing solutions

How cloud computing can transform your business landscape

Comparison of Request Admission Based Performance Isolation Approaches in Multi-tenant SaaS Applications

CHAPTER 2 BACKGROUND AND OBJECTIVE OF PRESENT WORK

Oracle Data Integrator: Administration and Development

SharePoint 2013 Logical Architecture

CONDIS. IT Service Management and CMDB

Secure Multi Tenancy In the Cloud. Boris Strongin VP Engineering and Co-founder, Hytrust Inc.

Solution & Design Architecture

Cloud Technology Platform Enables Leading HR and Payroll Services Provider To Meet Solution Objectives

Testing Big data is one of the biggest

The Future of Data Management

Multi-Tenant Engineering Architecture in SaaS

Fax User Guide 07/31/2014 USER GUIDE

IBM InfoSphere Guardium Data Activity Monitor for Hadoop-based systems

PEPPERDATA IN MULTI-TENANT ENVIRONMENTS


Optimizing Service Levels in Public Cloud Deployments

Product Overview. UNIFIED COMPUTING Managed Hosting Compute

Remote Voting Conference

PEPPERDATA OVERVIEW AND DIFFERENTIATORS

Mirjam van Olst. Best Practices & Considerations for Designing Your SharePoint Logical Architecture

The archiving activities occur in the background and are transparent to knowledge workers. Archive Services for SharePoint

Hadoop in the Hybrid Cloud

Mobile Application Development Platform Comparison

Open Source Middleware for the Cloud Stratos. Dimuthu Leelarathne Technical Lead and Product Manager

Gartner References of G Technology

CloudDB: A Data Store for all Sizes in the Cloud

VMware vcloud Powered Services

Cloud Based Application Architectures using Smart Computing

EISOO AnyBackup 5.1. Detailed Features

Cloud/SaaS enablement of existing applications

A MORE FLEXIBLE MULTI-TENANT SOA FOR SAAS

JOURNAL OF OBJECT TECHNOLOGY

Apache Sentry. Prasad Mujumdar

Cloud Security Who do you trust?

Evolution from Big Data to Smart Data

Cloud Security Who do you trust?

Big Data Management and Security

Getting Started with Multitenancy SAP BI 4.1

Transcription:

Building a SaaS Application ReddyRaja Annareddy CTO and Founder

Introduction As cloud becomes more and more prevalent, many ISV s and enterprise are looking forward to move their services and offerings to cloud. We have been building on premise applications for quite long and have the mastered the art of deploying, managing these applications. Moving to SaaS deployments poses three challenges at the outset, first and foremost security, second scaling and third performance. As SaaS becomes more prolific, designing, deploying and managing these applications pose a challenge for ISV s and enterprises alike. We discuss here some of the business drivers and considerations in designing a scalable and secure SaaS solutions over time. Business Drivers SaaS provides several benefits. The significant being the pay per use model, apart from others. The model is proven and CRM tools like SalesForce, Zoho is an example. The success of these tools has paved the way for the wider acceptance of SaaS services. SaaS not only reduces the IT foot print in terms of the physical space, servers and other infrastructure, but also eliminates the support, maintenance of the applications. Last but not the least is the ability of the consumer to choose best breed solutions for the same cost, which means, the organizations no longer have to worry about the innovations and new technology adoptions, which means, that organization can focus on the core business strengths, thus giving them a chance to compete and innovate in their space. Design Considerations Multi-tenancy Multi tenancy is the first and foremost requirement in building a SaaS application. There are several ways to enable the mutitenancy model. The simplest level 1, users the virtualization technology for multi-tenancy. Each tenant gets a virtual machine or a set, which has the complete application. The capacity of the tenant determines the size of the sandbox. This is the case of a same code, same database schema. This model has the advantage, apart from the robust security it offers, has the capability of customizing the software for each tenant and is also a disadvantage, because, this is not a scalable model. The biggest disadvantage is the ability of the SaaS provider to manage the services effectively, even though there are quite number of tools available for deployment and management of virtualization platforms. Copyright Akrantha Software pvt Ltd

The second form or level 2 of Multi-tenancy is to have different database, but the same middleware code. This is generally done by using common cluster of servers for middleware, but an isolated database layer. The advantage with this approach, apart from isolated security, is better manageability of middleware code. The disadvantage is about not able to customize and still have to manage different database instances for data isolation. The third or level3 of Multi-tenancy is to share the code and share the same database instance. This has the advantage of being easy to manage, but requires good effort in terms of designing the security model and data isolation. Note that all the three levels offer logical separation. Security Enabling more than one customer to use the same system to operate on their precious data is a challenge. Customers have to get the comfort and assurance that, no one else is using the system, and his data is safe and only he can only view the data. This can be addressed easily. However, the challenge comes, when each of the customers has different roles, different permissions to view the data. There could be hierarchy in terms of the application of permission model. In such a scenario, the design of security becomes paramount importance. Every data object has to be identified with a tenant marker, which is generally the organization id or the tenant id. Secondly, the permissions on this object has to be managed through multiple levels of gated models, so that, enforcement happens at several levels. As the numbers of security gates grow, the performance of the system can become slow. Copyright Akrantha Software pvt Ltd

Data isolation There are three types of data generally in the system. The identity data, the operational data and the business data itself. Generally the identity store is common across all tenants in a system. This data is generally of the type userid, password, organization, roles, permissions etc. The operational data is specific to the tenant, but it is not the real data of business value or importance. It is more of workflow state, scheduler information, and customization data and other such data. This data is essential for the operation of the system and has no value from the customer perspective. It is this data, on which the system operates for the function. Some times this is also termed as the meta-data. Isolation against the business data is the most important function of SaaS system. Generally this is accomplished using separate database schemas or separate servers for database, which allows for daily backup and management of the data. In case of file system data, separate folders, with auto generated ids would be used. The final path should not be exposed to the data. Even better would a document store that does not reveal the type of file system underneath. The document store would isolate users at a higher level, thus filtering the users before accessing the data. Sharing Common Infrastructure A significant benefit of SaaS is reducing the total cost of ownership, increasing the value. This is achieved by using the common infrastructure components like Email, Message Bus etc. They perform the service asymptotically and do not worry about tenancy, who is the user etc. These are services which are used across several tenants. Copyright Akrantha Software pvt Ltd

Customization of these services could give some complexity. If at all such requirement exists, it should be done at a different layer, without affecting the shared service. Scaling, Capacity Allocation and Service Level agreements Scaling a system should be as simple as adding more number of servers. However scaling can involve scaling the app server and/ or DB servers. In a typical application scaling scenario, application servers are launched or terminated on demand, by simultaneously making changes to the load balancer configuration. Maintaining a single configuration may not be sufficient to get the best out of the hardware. For example, couple of machines in a cluster could have more memory, so that caching sizes could vary. Maintaining multiple versions of these configurations is a challenge. Besides, each of the tenants gets an equal opportunity in using the system. DB scaling involves many issues. Databases cannot be scaled in the same way as an application server. Some DB scaling techniques involve moving the server to a higher configuration machines, or moving the database to a cluster of machines, where the scaling happens automatically. Scaling the database over several tenants could be a challenge. SaaS systems face this complexity once the system gets into use and data grows. The performance of the system depends on how well the database has been indexed. At some point the relation databases would pose a severe challenge for scalability. In such cases, NoSQL database should be used. The design should allow swapping of these databases without much change in the overall design and architecture of the systems. Some of the SaaS systems use both Relational and NoSQL databases. This allows the system to be more transactional and at the same time scalable. Auditing, Logging and debugging Auditing involves tracing the actions of a tenant to the lowest level. Auditing multiple log files for customers using the same deployed solution is a challenge. This is part of shared infrastructure. Logging allows the tenant to see only the log in the context of that tenant. Hence tenant id, filter is required or separate logging context for each tenant need to be designed. Billing, metering and payments How do we charge the tenants? If it is an hourly basis or user basis, it may not be possible to provide SLA s as one tenant could be pumping lot of load compared to the other. In some cases, the highest paying customer could be denied the performance he deserves. These issues bring the complexity to billing and metering of the systems. Some system bill based on the number of transactions. In this case metering would track each of the transactions and bill the tenant accordingly. This is the most granular form Billing by tenant user requires some regulation, where the tenant user cannot consume all the resources denying the other tenant, which they rightfully deserve. In such cases, SaaS system requires tenant usage control measures, such throttling etc. Some of the SaaS systems implement throttling and can be configured per tenant. In some deployments, we have seen customer billing based on the revenue of the company that is handled by that solution. The billing requirements for different customers could be different.

Archiving Data Shared database poses challenges over isolated database instances per tenant. Database backup and recovery poses a challenge. In case a common database is used, the backup has all the tenants data. Sometimes it is required to restore only one tenant data. In such a case, the data base recovery procedures could become complex. Customers at some point would want the data locally for audit purposes or for archiving. Some of the SaaS products offer local archiving facility over time, providing the comfort to customers. Akrantha 2012. All rights reserved. About Akrantha Akrantha is an initiative to build products on bibigdata and Hadoop. Akrantha aims to bring open source technologies toether and provide a compelling value proposition for enterpeise customers, ISV s. We ar e driving much of the product development using Java, J2EE, ROR, Apache Hadoop, Hive and HBase. We provide technical consulting, installation and support services, design and development services enterprises, systems integrators and ISVs.