Multitenancy, or running multiple customers or departments on the same central hardware and software infrastructure, is not an issue for client/server applications since each user has her own instance of the application, and most likely each department or customer has its own dedicated database server. In cloud environments, the application, database, and hardware infrastructure are shared among departments or even companies.
Multi-tenancy for most companies and cloud hosting providers is achieved by using Server Based Computing or Virtual Desktop Infrastructure. Server Based Computing is most commonly associated with VMWare vSphere. Virtual Desktop Infrastructure (VDI) has become the latest buzzword in the cloud computing arena. VDI is very similar to Virtual Server (referred to as SBC - Server Based Computing). Both offer virtualization and both holding the virtual environment on a centralized server. This is where the similarities end. VDI provides a full desktop experience while SBC offers terminal service based access to a centralized/shared operating environment. However, virtualization can also be done with Oracle at the database, application, and operating system layers without using SBC or VDI products. Oracle does offer both VDI (Oracle Virtual Desktop) and SBC (Oracle Virtual Server) if you do chose this option.
Database multi-tenancy can be achieved in a number of ways without using hardware or OS based virtualization using these database features and options:
1. Instance Caging - Using the DB Resource Manager to limit the amount of CPU a DB consumes. Therefore, you can place more then one database on the same machine, or run multiple databases in one RAC instance, and assign specific CPU resources to each customer's database.
2. DB Resource Manager and IO Resource Management - Enables coordination and prioritization of I/O bandwidth consumed between DB's and between different users and classes of work, and distributes available processing resources by allocating percentages of CPU time to different users and applications. Therefore, you could create a consumer group for one customer and assign DB and IO resources to the different customers/consumer groups. You could also place DB Quality of Service (QoS) Management policy-based resource management of resources for customer application SLA's 'on top of this'.
3. VPD (Virtual Private Database) - In this case, all customers would share the same database put would only see the rows in the database tables that are associated to them.
4. One schema per customer - Each customer can have its own schema within the same database. This offers more isolation, easier management, migration from Oracle instance in one location to another then VPD.
A. E. One database per customer - Of course, you could always go to having a separate databases for each customer. This is provides even more isolation then one schema per customer.
Multi-tenancy can be achieved at the application tier without VDI or SBC products using feature of two Oracle technologies:
1. Oracle Solaris Zones Oracle Solaris Zones are a form of operating-system-level virtualization. Different Oracle WebLogic Server instances and other Oracle Fusion Middleware components can be run on different OS virtual environments for optimal hardware utilization and to provide security so that one department or customer is protected from executing another department’s or customer’s applications.
2. WebLogic domains A WebLogic domain is an interrelated set of units to be managed as a WebLogic Server resource. For example, one customer or department can have its own domain consisting of all its applications.