Hopefully you can move your apps as it is (well not the case with Azure or App Engine, but it is possible with WSO2 Stratos !!!). </li></li></ul><li> What is Multi-tenancy ?<br /><ul><li>Many Parties share the same set of resources, while giving each one his own space</li></li></ul><li>Why Multi-tenancy? 1. Increased sharing <br /><ul><li>Cloud shares resources across a large pool of users.
Now sharing happens in the application level as oppose to sharing at OS level for multiple processes and sharing at HW level with VMs.
That can bring greater savings </li></ul>“There is no delight in owning anything unshared.”<br /> Seneca (Roman philosopher, mid-1st century AD)<br />photo by Ben Gray on Flickr, http://www.flickr.com/photos/ben_grey/4582294721/, Licensed under CC<br />
Why Multi-tenancy? 2. Provide “pay for what you use” <br /><ul><li>Often there will be many accounts in a PaaS or a SaaS, but only a fraction of them will be in use.
We cannot allocate runtime resource per account (disk may be ok, as it is cheap). For example, we cannot run a VM per account.
By sharing the same server with many users, Multi-tenancy provides much reduced runtime cost per server. </li></ul>Flexibility<br />
Multi-tenancy vs. Virtual Machines<br /><ul><li>Multi-tenancy provides much fine grained sharing by many applications sharing the same server.
Say there are 100k accounts, but 10k active users at a time. VM based model needs 100k VMs, which means there is a cost incurred per account.
With Multi-tenancy one server can handle many accounts, and by mixing and matching heavy and light users, Multi-tenancy can operate with much less number of servers. </li></ul>photo by hans s on Flickr, http://www.flickr.com/photos/archeon/2359334908/<br />
To fulfill Cloud Promise: Implementing PaaS<br /><ul><li>As discussed it is crucial in supporting “Pay as you go” in a Platform as a Service (PaaS)</li></ul>Promise<br /><ul><li>For example (within Stratos)
Web Service Hosting as a Service ,Web Application Hosting as a Service, Message Mediation Execution as a Service (ESB), Governance as a Service, Workflow as a Service </li></li></ul><li>SMBs (Small and Medium size Business) <br />Most SMBs can not afforded to run their own SOA technologies. <br />This stops them from going to the next level. <br />Workflow, Service and Web hosting as a service can enable multiple SMBs to share the same infrastructure. <br />This will lower the bar of SOA/ Middleware use, and enable SMBs to move to the next level. <br />photo by Olaf on Flickr http://www.flickr.com/photos/okreitz/3073783437/, Licensed under CC<br />
E-Science Gateways<br /><ul><li>Scientific workflows has been identified as enabling technology for E-Science.
Idea is to let scientists visually compose workflows and run them.
There are many gateways that do this. </li></ul>Enable multiple science gateways to share the same infrastructure thus reducing the maintenance cost and resource sharing . <br />Same would work for most e-Gov stuff and for most organizations. <br />photo by Image Editor on Flickr, http://www.flickr.com/photos/11304375@N07/2769519295/, Licensed under CC<br />
How Good is this Multi-Tenancy implementation?<br />
Multi-tenancy Maturity Models<br /><ul><li>Model is Defined by Chong et al.
(F. Chong and G. Carraro, “Architecture strategies for catching the long tail,” MSDN Library, Microsoft Corporation, 2006.)
Provide a way to understand Multi-tenant implementations.
Level 3: Single instance can serve multiple Clients
Level 4: Scaling up Level 3 by running multiple instances and distributing the load. </li></li></ul><li>Implementing Multi-Tenancy <br />
Goals of Multi-tenancy <br /><ul><li>Sharing – maximize the resource sharing across multiple tenants. </li></ul>Isolation – hide the fact other users are also in the same server. <br />Execution – enforce security. Make sure one tenant can’t call other tenants executable logic. <br />Data – make sure one tenant can’t see other’s data <br />Performance - make sure performance is not affected by existence of other tenants. <br />Scale<br />Server is distributed and it can handle larger load by adding more nodes. <br />photo by John TrainoronFlickr http://www.flickr.com/photos/trainor/2902023575/, Licensed under CC<br />
It is about trading off Isolation vs. Sharing <br />As often the case in research, implementing Multi-tenancy is a tradeoff<br /> photo by Todd Anderson on Flickr, http://www.flickr.com/photos/toddography/12034661/, Licensed under CC<br />
Tenant ID value in the context </li></li></ul><li>Performance Isolation<br /><ul><li> Performance isolation is a challenging issue.
We currently relay on monitoring and auditing where we can kill CPU hogging processes
We are exploring the possibility of changing the priority of CPU hogging processes in the work queues (e.g. workflow engine, ESB etc.). </li></ul>photo Fortes by on Flickr, http://www.fotopedia.com/items/flickr-3193056200<br />
Workflow Performance <br />Setup Multi-tenant and non-multi-tenant versions <br />Run 200 workflows from each client<br />Overhead is minimal<br />MT supports only add few additional lookups and checks<br />Java Security does not come in to play as we do not run user provided code. <br />
For more details (Publications on the topic)<br /><ul><li>A. Azeez and S. Perera et al., WSO2 Stratos: An Industrial Stack to Support Cloud Computing, IT: Methods and Applications of Informatics and Information Technology Journal, the special Issue on Cloud Computing, 2011.
AfkhamAzeez, Srinath Perera, DimuthuGamage, Ruwan Linton, PrabathSiriwardana, DimuthuLeelaratne, SanjivaWeerawarana, Paul Fremantle, "Multi-Tenant SOA Middleware for Cloud Computing" 3rd International Conference on Cloud Computing, Florida, 2010
MilindaPathirage, Srinath Perera, SanjivaWeerawarana, Indika Kumara, A Multi-tenant Architecture for Business Process Execution, 9th International Conference on Web Services (ICWS), 2011</li></li></ul><li>Conclusion<br /><ul><li>We discussed what is Multi-tenancy and why it is crucial for implementing a PaaS.