US9471353B1ActiveUtility

Isolating tenants executing in multi-tenant software containers

95
Assignee: AMAZON TECH INCPriority: Mar 21, 2014Filed: Mar 21, 2014Granted: Oct 18, 2016
Est. expiryMar 21, 2034(~7.7 yrs left)· nominal 20-yr term from priority
G06F 11/0706G06F 11/079G06F 9/45504G06F 11/0793G06F 9/44521G06F 9/45533
95
PatentIndex Score
38
Cited by
52
References
20
Claims

Abstract

Technologies are described herein for isolating tenants executing in a multi-tenant software container. Mechanisms for resource isolation allow tenants executing in a multi-tenant software container to be isolated in order to prevent resource starvation by one or more of the tenants. Mechanisms for dependency isolation may be utilized to prevent one tenant executing in a multi-tenant software container from using another tenant in the same container in a manner that requires co-tenancy. Mechanisms for security isolation may be utilized to prevent one tenant in a multi-tenant software container from accessing protected data or functionality of another tenant. Mechanisms for fault isolation may be utilized to prevent tenants in a multi-tenant software container from causing faults or other types of errors that affect other tenants executing in the same software container.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A non-transitory computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by a computer, cause the computer to:
 execute a plurality of tenants in a multi-tenant software container; and 
 implement one or more mechanisms for preventing a fault caused by one of the tenants of the multi-tenant software container from impacting another tenant of the multi-tenant software container, the mechanisms comprising one or more of
 preventing the tenants that issue a shutdown request from shutting down the software container, a virtual machine, an operating system, or a host computer, 
 limiting a number of versions of individual ones of the tenants executing in the software container, 
 preventing two of the plurality of tenants in the multi-tenant software container from utilizing the same identifier, or 
 making objects passed between the tenants immutable. 
 
 
     
     
       2. The non-transitory computer-readable storage medium of  claim 1 , wherein the one or more mechanisms for preventing a fault caused by one of the tenants of the multi-tenant software container from impacting another tenant of the multi-tenant software container further comprise restricting an ability of the tenants to create new processes. 
     
     
       3. The non-transitory computer-readable storage medium of  claim 1 , wherein the one or more mechanisms for preventing a fault caused by one of the tenants of the multi-tenant software container from impacting another tenant of the multi-tenant software container further comprise dynamically unloading a tenant from memory based upon utilization of the tenant. 
     
     
       4. The non-transitory computer-readable storage medium of  claim 1 , wherein the one or more mechanisms for preventing a fault caused by one of the tenants of the multi-tenant software container from impacting another tenant of the multi-tenant software container further comprise:
 intercepting an error; 
 determining a context of the error; and 
 determining that the error is not allowed to be generated based upon the determined context. 
 
     
     
       5. The non-transitory computer-readable storage medium of  claim 1 , wherein the one or more mechanisms for preventing a fault caused by one of the tenants of the multi-tenant software container from impacting another tenant of the multi-tenant software container further comprise preventing the tenants from making configuration changes to the software container, a virtual machine, an operating system, or the host computer. 
     
     
       6. The non-transitory computer-readable storage medium of  claim 1 , wherein the one or more mechanisms for preventing a fault caused by one of the tenants of the multi-tenant software container from impacting another tenant of the multi-tenant software container further comprise restricting an ability of the tenants to execute native code. 
     
     
       7. An apparatus for preventing a fault caused by one of the tenants of the multi-tenant software container from impacting another tenant of the multi-tenant software container, the apparatus comprising:
 a processor; and 
 a computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by the processor, cause the apparatus to 
 execute a plurality of tenants in a multi-tenant software container, and 
 implement one or more mechanisms in conjunction with the execution of the plurality of tenants to prevent a fault from being caused by one of the tenants of the multi-tenant software container that would impact another tenant of the multi-tenant software container, the one or more mechanisms comprising one or more of 
 making one or more objects passed between the plurality of tenants immutable, or 
 preventing two of the plurality of tenants in a multi-tenant software container from utilizing the same identifier. 
 
     
     
       8. The apparatus of  claim 7 , wherein at least one of the mechanisms for preventing a fault from being caused by one of the tenants of the multi-tenant software container that would impact another tenant of the multi-tenant software container comprises preventing the tenants from shutting down the software container, a virtual machine, an operating system, or a host computer. 
     
     
       9. The apparatus of  claim 7 , wherein at least one of the mechanisms for preventing a fault from being caused by one of the tenants of the multi-tenant software container that would impact another tenant of the multi-tenant software container comprises limiting a number of active releases of individual tenant executing in the software container. 
     
     
       10. The apparatus of  claim 7 , wherein at least one of the mechanisms for preventing a fault from being caused by one of the tenants of the multi-tenant software container that would impact another tenant of the multi-tenant software container comprises restricting an ability of the tenants to execute native code. 
     
     
       11. The apparatus of  claim 7 , wherein at least one of the mechanisms for preventing a fault from being caused by one of the tenants of the multi-tenant software container that would impact another tenant of the multi-tenant software container dynamically unloading a tenant from memory based upon utilization of the tenant. 
     
     
       12. The apparatus of  claim 7 , wherein at least one of the mechanisms for preventing a fault from being caused by one of the tenants of the multi-tenant software container that would impact another tenant of the multi-tenant software container comprises:
 intercepting an error; 
 determining a context of the error; and 
 determining that the error is to be allowed based upon the determined context. 
 
     
     
       13. The apparatus of  claim 7 , wherein at least one of the mechanisms for preventing a fault from being caused by one of the tenants of the multi-tenant software container that would impact another tenant of the multi-tenant software container comprises restricting an ability of the tenants to create new processes. 
     
     
       14. A computer-implemented method for preventing a fault caused by one of the tenants of the multi-tenant software container from impacting another tenant of the multi-tenant software container, the method comprising:
 executing a plurality of tenants in a multi-tenant software container; and 
 implementing one or more mechanisms for preventing a fault caused by one of the tenants of the multi-tenant software container from impacting another tenant of the multi-tenant software container, the one or more mechanisms comprising one or more of 
 making one or more objects passed between the plurality of tenants immutable, or 
 preventing two of the plurality of tenants in a multi-tenant software container from utilizing the same identifier. 
 
     
     
       15. The computer-implemented method of  claim 14 , wherein at least one of the one or more mechanisms for preventing a fault caused by one of the tenants of the multi-tenant software container from impacting another tenant of the multi-tenant software container comprises preventing the tenants from making configuration changes to the software container, to a virtual machine, to an operating system, or to a host computer executing the multi-tenant software container. 
     
     
       16. The computer-implemented method of  claim 14 , wherein at least one of the one or more mechanisms for preventing a fault caused by one of the tenants of the multi-tenant software container from impacting another tenant of the multi-tenant software container comprises preventing the tenants from shutting down the software container, a virtual machine, an operating system, or a host computer. 
     
     
       17. The computer-implemented method of  claim 14 , wherein at least one of the one or more mechanisms for preventing a fault caused by one of the tenants of the multi-tenant software container from impacting another tenant of the multi-tenant software container comprises limiting a number of active releases of individual tenant executing in the software container. 
     
     
       18. The computer-implemented method of  claim 14 , wherein at least one of the one or more mechanisms for preventing a fault caused by one of the tenants of the multi-tenant software container from impacting another tenant of the multi-tenant software container comprises restricting an ability of the tenants to execute native code. 
     
     
       19. The computer-implemented method of  claim 14 , wherein at least one of the one or more mechanisms for preventing a fault caused by one of the tenants of the multi-tenant software container from impacting another tenant of the multi-tenant software container comprises dynamically unloading a tenant from memory based upon utilization of the tenant. 
     
     
       20. The computer-implemented method of  claim 14 , wherein at least one of the one or more mechanisms for preventing a fault caused by one of the tenants of the multi-tenant software container from impacting another tenant of the multi-tenant software container comprises restricting an ability of the tenants to create new processes.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.