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.
Abstract:
Techniques are disclosed for testing applications and systems used to provide a high performance computing (HPC) system, such as a cluster or grid. A grid computing system is tested using a “shadow mode” approach, where information regarding a parallel computing job launched on a first instance of a computing grid is recorded, stored, and used to replay the parallel computing job on a second instance of the computing grid. For example, the parallel computing job may be executed using a production build of grid applications and replayed on a candidate build of grid applications. Output from executing the parallel computing job is also captured in order to provide a reference result which may be compared with candidate results generated by replaying the parallel computing job. The parallel computing job may specify a set of inputs and execution logic along with any other requirements or dependencies needed to accurately replay the parallel computing job.
Abstract:
A classloader executing in an execution environment, such as a JAVA virtual machine or a software container, may be configured to generate class usage data describing the historical usage of classes by applications in the execution environment. Based upon the class usage data, one or more classes may be pre-loaded into a cache prior to receiving a request from an application to load the classes. If an application subsequently requests a class, the request may be satisfied using the class stored in the cache rather than by loading the class at the time the request is received. A probabilistic data structure, such as a Bloom filter, might also be utilized to determine whether a classloader can possibly load a requested class. Only if the classloader can possibly load the requested class will a search be made for the requested class in a classpath associated with the classloader.
Abstract:
Methods, systems, and computer-readable media for optimizing a load balancer configuration are disclosed. A load balancer is configured to perform traffic management for a distributed system. A new component is deployed to the distributed system or a performance deviation is predicted in the distributed system. In response to the initiation of the deployment or the prediction of the performance deviation, the configuration of the load balancer is modified from a first state to a second state. Modifying the configuration of the load balancer modifies the traffic management for the distributed system. If the configuration was changed due to a deployment, the configuration of the load balancer is restored from the second state to the first state after a period of time has elapsed.
Abstract:
Methods, systems, and computer-readable media for optimizing a load balancer configuration are disclosed. A load balancer is configured to perform traffic management for a distributed system. A new component is deployed to the distributed system or a performance deviation is predicted in the distributed system. In response to the initiation of the deployment or the prediction of the performance deviation, the configuration of the load balancer is modified from a first state to a second state. Modifying the configuration of the load balancer modifies the traffic management for the distributed system. If the configuration was changed due to a deployment, the configuration of the load balancer is restored from the second state to the first state after a period of time has elapsed.
Abstract:
A routing service provides functionality for selecting an instance of a tenant service for processing a service request and for providing the network location of the selected instance to a service client. The service client may utilize the network location to make a service request to the selected instance of the tenant service. The routing service might also route the service request to the selected instance of a tenant service. The selection of a particular instance of a tenant service for processing a service request may be made based upon various factors including, but not limited to, attributes of the service client making the request and/or attributes of instances of the tenant service being called. The selection of an instance of a tenant service might also be made to implement segmentation, to implement A/B testing, to load balance service requests, and/or to gradually deploy new versions of a tenant service.
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.
Abstract:
A multi-tenant service container receives a container health check request and responsively identifies a list of expected tenants. The list of expected tenants may include all of the tenants hosted by the multi-tenant service container, all of the tenants hosted by the multi-tenant service container that are associated with a particular process or a list of tenants defined by the container health check request. The multi-tenant service container issues a tenant health status request to the tenants in the expected tenant list and responsively receives a tenant health status from the tenants. The received tenant health status is either a tenant healthy status or a tenant unhealthy status. The multi-tenant service container issues a container health status based on the tenant health statuses received from the tenants on the expected tenant list.
Abstract:
A classloader executing in an execution environment, such as a JAVA virtual machine or a software container, may be configured to generate class usage data describing the historical usage of classes by applications in the execution environment. Based upon the class usage data, one or more classes may be pre-loaded into a cache prior to receiving a request from an application to load the classes. If an application subsequently requests a class, the request may be satisfied using the class stored in the cache rather than by loading the class at the time the request is received. A probabilistic data structure, such as a Bloom filter, might also be utilized to determine whether a classloader can possibly load a requested class. Only if the classloader can possibly load the requested class will a search be made for the requested class in a classpath associated with the classloader.