Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Inevitability of Multi-Tenancy & SAAS in Product Engineering

515 views

Published on

Inevitability of Multi-Tenancy & SAAS in Product Engineering
an in-depth overview of the SAAS requirements and introduction multi-tenancy by Prashanth B Panduranga

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Inevitability of Multi-Tenancy & SAAS in Product Engineering

  1. 1. Inevitability of Multi-Tenancy & SAAS in Product Engineering In-Depth Overview
  2. 2. Servitizationof productsis abouttransformingproductsintoservices. Services are an integral part of mostproducts. Itis importantto notethat in the services economy that we live in, enterprises have an emphasizedfocus on services. This Blog talks aboutsomeof the mostimportantSAAS requirements and providesinsightinto somearchitectural considerations, while introducingconceptssuch as Multi- tenancy. Before getting deeper into SAAS, let’s take a cursory look at the productlife cycle. The productlife cycle consistsof the following steps: • Requirement • Usability Engineering • Architecture andDesign • Prototyping • Development • Testing andQA • Documentation • Deployment • Support • Maintenance SAAS affects every step of the productlife cycle quite significantly, some more thanthe others. Most impacted steps in my view are deployment, supportandmaintenance. Thefollowing steps extendsthe life cycle. • Evaluate • Purchase • Provisioning • On Boarding • UsageTracking • Monitoring • Billing • Updates
  3. 3. Figure 1 Extended SAAS Life Cycle SAAS development imposes an architectural paradigmshift. The following diagramrepresents a few of the features that cloud introduces/enhances. I shall notbe covering all the features thathas been represented in the diagram below, however feel free to Email me at Prashanth.panduranga@gmail.com with any questionsyoumighthaveand will try andrespondat the earliest.
  4. 4. Figure 2 Cloud paradigm shift So what is SAAS? Software as a Service: Is a software licensing and delivery model, in which the software is licensed on a subscription basis and is centrally hosted. It is sometimes referred to as "on-demand software". SaaS is typically accessed by users using a thin client via a web browser.One of the biggest selling points for these companies is the potential to reduce IT support costs by outsourcing hardware and software maintenance andsupporttotheSaaSprovider-- Wikipedia While any software product delivered as service can be called so, enterprises building SAAS need to build aroundrequirementswhich makesit easier to deploy, maintainand support. While a system can be built separately for each consumer, a single instance where every consumer sharesevery part of the systemis at the extreme other end. Building a systemwith the right amountof sharingand reuse is absolutely necessary for a successful implementationof a SAAS system. Let’s first look at SAAS requirementsthat are importantarchitectural considerations:  SAASis built tobe consumedtypically by morethanoneconsumerandhenceneedssegregation built in place. Datasegregation, service segregation if needed, rules segregation, customization segregation andmore  Functional Modules: When the application features are built as modules, not all consumers would want to subscribe to all the modules, obviously every new feature would come with an Asynchronous Messaging Distributed Caching Compute Partitioning Data Consistency Multiple Zones Parallel Security Dynamic Vs Static Data Isoloation Software License Model Performance Environments Prod/Non Prod Storage Virtualization Enterprise Scale Infrastructure Global Data Replication Elasticity Automation Resource Optimization Service Metering DR Network Client Caching Big Data NoSQL HA Multi-Tenancy Instrumentation Telemetric
  5. 5. increased cost. Even when there aren’t cost differences some of the consumersmight choose notto use few modulesfor simplicity. Needcapability to group consumers by functionalitywhile buildingmulti-tenantedarchitecture.  Consumer organizations come in various sizes, only certain business units might consume the service. Few organizations might have 10 users while other organizations might use the same service for 10,000 users. Let’s say there are 2 modules, one being calculation engine and the other analytics engine. One consumer might have 70% of users using calculation engine and 40% of users using the Analytics service, while another consumer might have 90% users using Analytics engine, such variance when the user base is large will need special consideration for grouping customersbased onexpected usage patterns.  Enterprises create multiple modules based on the functionality, however there are lot other considerations such as performance, workload, number of users using the system, scale etc which imposes different subscriptionlevels –standard, premium, etc.  Consumersofthe services while usingthe features also would like to limit the spending, onthe other side Enterprises would like to ensure that there are restrictions on the number of users, licenses etc basedon the cost model or for performance reasons, for technical reasons or due to operationalreasons. This imposes different usage limitations.  With Various consumers having different requirements, the Enterprises need to cater for different SLA’s (Service Level Agreement). Examples include: Availability, Downtime, Disaster Recovery, Business Continuity, mean time to repair and respond, clearly defined escalation paths, uptimes, back up, upgradetimes and more.  InSAAS productswhere new consumersoruserscan join at any time, the productshouldallow provisioning capability. While registration of users are examples of self-registration, there are scenarios in which consumers are organizations and need extended functionality to use the system such as administration, provisioning for the organizations users etc. On-Boarding the customers can be built as separate modules, some of these could mean setting up new infrastructure, network etc. involvingvery high complexity.  What’sa user experience without customization?Mostorganizationswantstheiremployeesto have a similar experience, look and feel, ease of use, etc. White labelled solutions, well integrated solutions, Single sign-oncustomizationshavevariousflavour to it. Application need to provide the capability such as adding or removing features, changing themes, logos, sometimeseven code or script. Movableweb partsandmore. This doeshavequite asignificant architectural impact and the amountofallowable customizationsneeda careful consideration  When there are multiple consumers the maintenance cycles need to be carefully architected and managed, be it upgrade, back-ups, downtimeor other maintenance tasks. The complexity increases when the availability of the system is expected to be 24 X 7 and further increases when the users are geographically distributed. All data must be preserved when an product update/upgradeis performed.  With multiple consumers and their expectation of the feature upgrades being different, handling and managing the changes during product launch/feature updates will be quite challenging.  When there are multiple consumers and shared architecture, isolating the issues and troubleshooting gets more complex if not handled correctly. Monitoring activities of all the consumersand at all tiers and levels is key.
  6. 6.  While providing self-service and other facilities, the scope for automation in cloud based systems can go far and beyond, such as auto provisioning the infrastructure, auto scaling, ensuring security across tenants, on boarding, rules and other tasks, tasks involved in maintenance, tasksinvolvedinloadbalancing, checking for conformity of systems, checkingfor latencies, checking for performance bottlenecks, configuration management changes, monitoring and other tasks. While the need for automation is undeniable, finding the right balance of automationis key  Evaluatingproductsisnotonly a requirement of SAAS, howeverwith the variationsin features, confusion to an extent in licensing models, and lot of factors impacting the usage, more and more users want to evaluate extensively before committing to software for longer periods. Introducing features such as Free trial, and either providing all features or restricting certain features for the free versions, mightbe need from an enterprise pointof view and enabling all the abovefeatures for the evaluation version might be a consideration  Involvingthesales force, while mightnever lose its charm dueto personaltouch, the capability toupsellandcross sell via thesoftware itself iskey tothe growthandhencemostSAASproducts include the purchasingcapability builtin.  Enterprises need an option, whichallows extending core capabilities such as processing, storage etc. ondemand, this feature is also called as “Capacity onDemand”.  Apart from the abovementionedmonitoringcapabilities, Usage Trackingby itself is quite important. Thisprovidesinsight for the enterprises onthe usage of different parts of the systems, andanalyzefor further development.  The productshouldalso haveinbuilt Analytics.  Billingtheconsumersbasedonthe subscribedmodels.  Capability to offer different packages atdifferent prizes. Prize catalogue and capability of tying the same to the subscription models, capability to change the models and record the usage underdifferent models at different times.  Individual consumers do not want the activities of other consumers to affect their use of the system. Isolation ofeachconsumeractivity in a shared systemis important.  Consumers need to be sure thatother consumers cannotaccess their data. Data Privacyisone of themostimportantfeatures. Thiscan evenextend tothelevels of necessity of the databeing with in a particular geographic region, the regulations around the sanitization of certain data andmore.  With multiple consumers, each consumer need to have their data secure and private to their usage. The data needs to be protected both from other consumers using the system and external public.  Exclusivity:Consumers wantthe applicationto appear asthoughthey have exclusive use of it.  Someconsumers want the applicationto be constantly available, while someconsumersmight want the application available during working hours, these however will be defined with guarantees in an SLA, making sure that the software meets these availabilityrequirementshas architectural considerations  Whether the application is being shared or not, the consumersexpect, the applicationto scale and meet their expected demand. Some of the software such as ticket booking etc can have very sporadic scaling demands, Spikes with very little lead time, while other software’s might haveknownlevels of scale demand. While the demandoccursthe applicationscales up or out, naturally if the subscription is usage based the cost goes up, consumers will also want the
  7. 7. architecture to consider these sporadic nature of scaling and scale down immediately or gradually and thusreduce costs.  An enterprise consumer if is willing to use a system not deployed on premise, has cost considerations. Thecost hastobelower thandedicated applications. The cost modelhas tobe relatively easy to understand, anticipate/estimateanduse.  Large enterprises are geographically distributed witha wider global reach. Productshostedand consumedonlinenaturally isexposedtotheglobalreach. Consumersinonegeographiclocation accessing content and data hosted in another geographical location will have performance impact. While implementing CDN’sfor static content, to replicating data and other content to multiple locations introduces complexity at different levels. However performant application requirement precedes thosecomplexities.  Most software products aren’t self-contained. The data being used for the product could be shared across business or would need to integrate with other products, the system needs to have advanced integration capabilities such as adapters to known products or flexible architecture which enables easy integration.  The SAAS product might be built with a pre-configured database, self-contained data or dependent data. The product might also be built in such a way that it does not have its own database but rather works on any consumer database. It might also need to integrate into variousunstructureddata. SAAS might imposevariousstorage models orhybridmodels.  Omni-Channel: The presentation layer created should work on any device the consumer choosesto use. Someof the other general architectural requirements are:  Capability to work on Hybrid Cloud environments – While it is an architectural decision, some enterprises have hybrid/multi cloud environments as their DR/BCP strategy which might force thoserequirements.  Fault tolerantsystem  Distributedcomputing  Globally located Data centres  Stability  Security  ALM  State management basedon chosenstate managementstrategy  Caching  Rapidly roll outnew features for existing services  Regulatory constraints  Performance  Reliability  Maintainability  Polyglotpersistence  Flexibility  Configurability  Usability
  8. 8.  Portability  Conformanceto Standards  Internationalizability  Responsive The cost advantage of using SAAS is in using a shared model. Multi-Tenancy is an architectural pattern which enables multiple consumers share resources, be it servers or database or other components that makesup the product. Application and databasecan be of a single instance deployedon multiple servers, or multiple application instances with a single database, there are a lot of different ways SAAS can be architected. As an example: Salesforce handlesmulti-tenancy in the all of the following components/tiers: Kernel:which is theforce.com PAAS, Metadata-drivenKernel, runtimeengine, polyglotpersistence –which includes transaction engine, queues, in-memory data and metadata caching, search engine, data model, metadata, indexes, relationships, filed history, partitioneddata, metadata andindexes, App development – A browser based development framework, API, Query Languages, Processing, Query processing, search processing, index processing, bulk operations, schemamodifications, etc. At this point, let’s look at couple of famousquotesonmulti-tenancy “Multi-Tenancy is a requirement for a SAAS vendor to be successful” – Marc Benioff, CEO, Salesforce.com “It’simpossibleto be successful in SAAS without multi-tenancy”– Treb Ryan, CEO, OpSource Managing product hosting, servers, storage, load balancing, network, data, code and their versioning, updates, maintenance, etc. especially when there are multiple consumersinvolvedgetscost effective only via sharing of underlying resources. Asimpleanalogy is, anindividualhousecompared toan apartment. An individualhousetohaveamenitiessuchas24 X 7 generator, swimmingpool, tenniscourt,badmintoncourt, basketball court, Gymnasium, children’s play area, security etc. would be extremely expensive and unaffordable. However, in an apartmentsince youare sharing the facilities with other tenantsit becomes much cheaper and affordable. Concept of Multi-tenancy in SAAS is exactly the same and while there is complexity involved, adoptingthe same is inevitable. It is important to note that Multi-Tenancy is more vulnerable to failure and it effects larger number/all consumersthanin a single instancearchitecture. I wouldlike toemphasizethat multi-tenancy isnotjust aboutsharingthe“database”as perceived by lot of people, Presentation layer, Service layer, Queue, cache, Virtual Network, Storage, throttling, rules processing, batch processing, query processing, etc. any architectural tier can be architected to be multi tenanted. Cloud helps with lot of the above mentioned requirements, and can be utilized effectively in various different ways. To know more or if you have questions you can reach me at Prashanth.panduranga@gmail.com

×