SlideShare a Scribd company logo
Tenant-based resource allocation model for cost-effective scaling Software-as-a- Service applications over cloud computing infrastructureDissertation DefensePh. D. in Information Technology and Communications Program 
Javier MijailEspadasPech 
Asesor: Dr. Arturo Molina
6/9/2011 
2 
Tecnológico de Monterrey –DTC -2011 
Agenda 
•Concepts: Cloud computing, SaaS, multi-tenancy 
•Background 
•Premise, hypothesis and objectives 
•Research methodology 
•Problem measurement 
•Proposed solution 
•Results analysis 
•Conclusions, contributions and future work 
•Thesis’ outcomes
6/9/2011 3 
Tecnológico de Monterrey – DTC - 2011 
The Cloud
6/9/2011 
4 
Tecnológico de Monterrey –DTC -2011 
Cloud Computing 
•Computing resources are being transformed into a model consisting of services that are commoditized and delivered in a similar way to traditional utilities such as water, electricity or gas. 
•One of the computing paradigms that have promised to deliver this utility computing vision is known as Cloud Computing. 
•Cloud Computing provides on-demand access to computational resources (commonly virtual machines) which together with pay-per-use business models, enables application providers seamlessly scaling their services.
6/9/2011 
5 
Tecnológico de Monterrey –DTC -2011 
Cloud computing layers 
Applications 
(Software as a Service) 
Abstract Services 
(Platform as a Service) 
Flexible infrastructure 
(Infrastructure as a 
Service) 
Service 
Service 
Service 
Infrastructure 
Interface 
Development 
Deployment 
Data Storage 
Virtualization 
OS 
Hardware 
Cloud Actors 
Service Users 
Service Providers 
Cloud Layers 
Salesforce.com 
Microsoft Live Office 
Cisco 
Webex 
Google Apps 
Cloud Services 
Amazon S3 
Microsoft Azure 
Google SDK 
Amazon Elastic Cloud 
Masso 
Hosting Cloud 
Virtualization 
OS 
Hardware 
Virtualization 
OS 
Hardware
6/9/2011 
6 
Tecnológico de Monterrey –DTC -2011 
Software-as-a-Service 
•SaaS is a software delivery paradigm where the software is hosted off-premise, developed by service providers and delivered via Internet and the payment mode follows a subscription model. 
•IDC estimates customers spending on SaaS solutions to increase to $14.8 billion by 2011. 
•In order to achieve higher profit margin by leveraging the economics of scale, an important requirement for SaaS applications is the support of multiple tenants.
6/9/2011 
7 
Tecnológico de Monterrey –DTC -2011 
SaaS multi-tenancy 
•A tenant is a customerthat uses or provides a SaaS application. 
•SaaS provider offers the same instance of a SaaS application to multiple tenants. 
•Multi-tenancy means that each tenant can interact with the application as if it were the unique owner of the application. 
•In particular a tenant cannot access or view the data of another tenant.
6/9/2011 
8 
Tecnológico de Monterrey –DTC -2011 
Background: Large-scale 
•Applications deployed on the Internet (i.e. SaaS) are immediately accessible to a vast population of potential users. 
•They tend to experience fluctuating and unpredictable load, especially due to events such as breaking news (e.g., 9/11) and sudden popularity spikes (e.g., the "Slashdot Effect"). 
•Facebook dynamically generates more than two billion pages per day resulting in over 23,000 page views a second . 
•Image-processing Animoto web application experimented viral growth that caused to go from ten to more than 3500 servers in only three days. 
Worker servers on Amazon EC2
6/9/2011 
9 
Tecnológico de Monterrey –DTC -2011 
Background: Resources 
•For Internet software providers, having the power to scale up or down an application to only consume and pay for the resources that are required at certain point in time is an attractive capability and if done correctly it will be less expensive than running on traditional hosting. 
•However, cost-effective scalability is not achieved just by deploying large-scale applications over pay-per-use cloud infrastructures, and idle processes and not used resources are wasted but charged to application providers.
6/9/2011 
10 
Tecnológico de Monterrey –DTC -2011 
Background: Problem 
•Real elasticity in pay-per-use cloud models is not achieved yet. 
•Over provisioning effect happens due the resource underutilization: even if peak loads are successfully anticipated, resources are wasted (light gray areas). 
•Under provisioning occurs when potential revenue from customers (dark gray areas) is lost due poor performance (saturation). 
Pay-per-use resourcesReal demandExpected demandUnder provisioning (saturation) Over provisioning (underutilization)
6/9/2011 
11 
Tecnológico de Monterrey –DTC -2011 
Premise 
•SaaS applications give an opportunity to tackle the former problem due their multi-tenancy architecture. 
•Due this multi-tenant nature of SaaS applications it is possible to create on-demand resources and distribute workload for each tenant within pay-per-use cloud infrastructures. 
•SaaS platforms can take advantage of tenant- aware parallelism and work distribution by using cloud computing platforms.
6/9/2011 
12 
Tecnológico de Monterrey –DTC -2011 
Hypothesis 
•Is possible to reduce over and underutilization of virtualized resources in order to obtain cost-effective scalability for Software-as-a-Service applications within a cloud computing pay-per-use infrastructure by implementing tenant-based resource allocation mechanisms such as isolation, virtual machine creation and load balancing.
6/9/2011 
13 
Tecnológico de Monterrey –DTC -2011 
Objectives 
•To design a resource allocation model for scaling SaaS platforms and their applications over cloud computing platforms in order to create cost-effective scalability. 
–Analyze SaaS and cloud architectures. 
–Define workload mechanisms. 
–Develop monitoring mechanisms. 
–Define mechanisms for tenant-level isolation. 
–Create algorithms for virtual machine allocation. 
–Design a load balancer. 
–Gather, consolidate and analyze results.
6/9/2011 
14 
Tecnológico de Monterrey –DTC -2011 
Research Methodology 
•Action-Research (AR) to implement actions and learning cycles from previous results. 
•Two AR cycles, starting diagnosing the initial problem and finishing with the measuring of such problem within a test bed infrastructure for the first cycle. 
•Second cycle starts by designing the solution (resource allocation model) and it outcomes an evaluation of this solution against former results through a statistical analysis.
6/9/2011 
15 
Tecnológico de Monterrey –DTC -2011 
Research Methodology 
DiagnosingAction PlanningAction TakingEvaluationAction PlanningAction TakingEvaluationLearningBackground (Chapter 1) Problem Statement (Chapter 1) Literature Review & State-of-art (Chapter 3) Over and Underutilization Measurements (Chapter 7) Cloud Resources: Concept & Measurement (Chapter 4) Proposed Model (Chapter 8)SaaS Platform: Design andImplementation (Chapter 5) Test Bed Architecture (Chapter 6) Tenant-based Isolation (Chapter 8) Tenant-based VM Allocation (Chapter 9) Tenant-based Load Balancing (Chapter 10) Result Analysis(Chapter 11) Conclusions and Future Work(Chapter 12) Phase 2Phase 1
6/9/2011 
16 
Tecnológico de Monterrey –DTC -2011 
LiteratureReview 
Researcharea 
Section 
Review 
CloudComputing 
3.2Cloudcomputing 
Conceptsaboutcloudcomputing,itslayersanddefinitions. 
Software-as-a-Service 
3.3Software-as-a-Service 
Software-as-a-Service(SaaS),itsimpact,characteristicsandimplementations. 
SaaSplatformsfortestbed 
3.4SaaSMulti-tenancy 
Howmulti-tenancyisimplementedcurrentlyandtheexistenttenant-basedpatterns. 
Cloudplatformsfortestbed 
3.5EucalyptusCloudPlatform 
Eucalyptusplatformisanalyzedanddetailed. 
Virtualizationforcloudcomputing 
3.6Virtualization 
3.7VirtualizationModelsforCloudComputing 
Willbedetailedhowvirtualizationmodelsfitswithinacloudenvironment. 
Monitoringandmeasuringincloudcomputing 
3.8.1Cloudresourcemonitoringandmeasuring 
Measuringtheproblemisanimportantstepintheresearchmethodology,thereforeisanalyzedrelatedworktomonitoringcloudenvironments. 
Isolationmodelsforcloudcomputing 
3.8.2ToolkitforSaaSgranularityandisolation 
SaaSisolationestablishesthebasemechanismtoseparateexecutionfromtenants.Thissectionwillpresentarelatedworkonthisproblem. 
Virtualmachineallocationforcloudcomputing 
3.8.3VirtualMachineAssignment 
Relevantresearchandworkistheallocationofvirtualmachinesasthesearebasicunitsforpay-per-useresource. 
Balancingandscaling 
3.8.4Profile-basedjust-in-timescalability 
3.8.5AutoScalingfromAmazonWebServices 
Finally,itispresentedinSection3.7relatedworkforjust-in- timescalabilityandprofile-basedworkloadbalancing.
6/9/2011 
17 
Tecnológico de Monterrey –DTC -2011 
Problem measurement 
•How cloud computing resources are defined and measured? 
•What is under and over resource provisioning? 
•How they can be gathered and measured in virtualized environments such as cloud computing? 
•Diagnosing: is important to measure resources within virtual machines (CPU, Java heap memory). 
•Action planning: to deploy traditional scaling within cloud computing
6/9/2011 
18 
Tecnológico de Monterrey –DTC -2011 
Traditional scaling: Load balancing 
•The higher level of granularity for cloud computing resources is the virtual machine. 
•Each virtual machine or cloud instance has its own capabilities (CPU, memory, storage, etc.). 
•When running parallel servers such as Apache Tomcat, a Web Server is required on top to distribute the workload over the underlying server instances.
6/9/2011 
19 
Tecnológico de Monterrey –DTC -2011 
Traditional scaling in cloud computing 
•For the application server instances (Tomcat) is recommended to use large VM instances. 
VMTomcatDatabaseCloud Platform (IaaS) VMTomcatVMTomcatVMTomcatVM = Virtual MachineSaaSPlatform
6/9/2011 
20 
Tecnológico de Monterrey –DTC -2011 
Distributed metering 
•JConsoleaccesses several core monitoring and management functionalities provided by the Java platform. 
•Java Management Extension (JMX) Remote framework connects to remote Tomcat processes and gather all related resource consumption information about them. 
•SIGAR (stands for System Information Gatherer And Reporter) API provides a portable interface for gathering system information.
6/9/2011 
21 
Tecnológico de Monterrey –DTC -2011 
Distributed monitoring 
•Resource Consumption State (RCS) is composed by the metering of CPU and heap memory in different time periods, not only for individual application servers, instead the measuring represents the status of the whole deployed cluster. 
VMTomcatVMTomcatVMTomcatVMTomcatVMTomcatRCSMonitor
6/9/2011 22 
Tecnológico de Monterrey – DTC - 2011 
Overutilization (saturation) 
• For overutilization definition is 
used the term of point of 
exhaustion. 
• Point of exhaustion for cloud 
computing can be defined by the 
maximum useful work 
(throughput) that can be executed 
on a single virtual machine. 
• When resource utilization 
skyrockets, throughput generally 
declines. 
• throughput = (number of requests) 
/ (total time) 
M1 M2 M3 
Resource utilization 
Throughput 
T1 
R1 
R2 
T2 
T3 
R3
6/9/2011 
23 
Tecnológico de Monterrey –DTC -2011 
Underutilization (resource wasting) 
•The quantity of underutilized resources for a set of VMs is the number of virtual machines that can be released by allocating their resources within another VM. 
•Each VM is evaluated against the rest at certain point time. 
•In this dissertation, this number is obtained through a knapsack (bin packing) approach. 
•The knapsackfunction returns the maximum number of VMs that can be released because it maximizes resource availability and gives low weight to VMs with low usage. 
40 % usedTotal VM1 memoryThreshold or maximum allowed (70%) 10 % usedTotal VM2 memory20 % usedTotal VM3 memory65 % usedTotal VM4 memory
6/9/2011 
24 
Tecnológico de Monterrey –DTC -2011 
SaaS platform 
•Diagnosing: is important to measure resources within virtual machines (CPU, Java heap memory). 
•Action planning: to develop and deploy a SaaS platform with traditional scaling within cloud computing 
•(1) multitenant-supporting large number of tenants/subscribers. 
•(2) single version-single version per application and this one is available and shared among all the application users. 
•(3) logical data separation-with just one data domain for each tenant but all the data is stored in a single database. 
•SaaS platform enables a simple development, deployment and management of software applications delivered as services. 
SaaSPlatformSubscription ServiceMetering ServiceCommunications Service(Mail, SMS) Integrations Service(Google Apps) SaaSApplicationSaaSApplicationSaaS SDKSaaS TagLibsJava LibrariesXML Configuration FilesMulti-tentantSaaSDB SaaS Core Web App SaaSApplication Deployment Manager Infrastructure ManagementSOAAuth, Log, Account
6/9/2011 25 
Tecnológico de Monterrey – DTC - 2011 
Test bed architecture 
itesm-cloud 
Databases 
Apache HTTP 
VM 
SaaS platform 
(Tomcat instance) 
VM VM 
… 
Workload Generation 
JMeter machines 
Requests 
Resource Consumption State 
(RCS) Monitor 
SaaS platform 
(Tomcat instance) 
VM 
SaaS platform 
(Tomcat instance) 
VM 
itesm-cloud platform 
Databases 
Apache HTTP 
VM 
SaaS platform 
(Tomcat instance) 
VM 
VM 
… SaaS platform 
(Tomcat instance) 
VM 
SaaS platform 
(Tomcat instance) 
VM 
SaaS platform 
(Tomcat instance) 
VM 
VM = Virtual Machine instance
6/9/2011 26 
Tecnológico de Monterrey – DTC - 2011 
Generating workload 
• Apache JMeter tool was selected to create 
heavy workload to the Tomcat cluster installed 
in a cloud environment and where the SaaS 
platform is deployed. 
JMeter 
Site / Server 
JMeter 
JMeter 
JMeter 
Network 
Host 1 
Host 2 
1 
2
6/9/2011 27 
Tecnológico de Monterrey – DTC - 2011 
Generating workload 
• Incremental. For each time period, workload starts from 
the peak of the previous time period and increases until to 
reach the maximum peak of established users at the end of 
current period (solid line). 
• Peak load. For each time period, workload starts from zero 
users and increments until to reach the maximum peak of 
users at the middle of the period. Then, the workload starts 
to decrease until zero at the end of the period (dotted line). 
0 
200 
400 
600 
800 
1000 
1200 
1400 
1600 
1800 
1 2 3 4 5 6 7 8 9 10 11 12 
Concurrent Users per Month 
Concurrent Users 
Each Tomcat server 
(VM) can handle 100 
users as top
6/9/2011 
28 
Tecnológico de Monterrey –DTC -2011 
Problem measurement: Results 
•% UU (Underutilization) = ( Combined UU / Measurements per hour) / Server-hours 
•% OU (Overutilization) = Combined OU / (Measurements per month * Number of virtual machines)
6/9/2011 
29 
Tecnológico de Monterrey –DTC -2011 
Resource allocation model 
•Tenant-based isolation: creates tenant-level granularity and separates execution contexts for different tenants 
•Tenant-based VM allocation: implements mechanisms to calculate the number of VM instances needed, given a set of tenants. 
•Tenant-based load balancing: implements a distribution mechanism to process and dispatch workload requests concerning to each tenant. 
Cloud Communication LayerVM FactoryVM Status HandlerSaaSCore Web AppTenant-based Load BalancerTenant Context ManagerRequestsTenant-Based VM Calculator Databases SaaSplatform(Tomcat instance) VMVM… SaaSplatform(Tomcat instance) VMSaaSplatform(Tomcat instance) VMitesm-cloudEucalyptus APITenant Context Interceptor
6/9/2011 
30 
Tecnológico de Monterrey –DTC -2011 
Tenant-based isolation 
•Each user belongs to one or more subscriber or tenant. Once the user has been authenticated through an email and password, SaaS platform links the user to its subscriber ID. 
•The tenant-based information is stored in the context session and the rest of the applications can access it through the aspect-oriented mechanisms. 
SaaSCore Web App Look for subscriberInternetGet subscriber (tenant) ID Set session cookieUserUserUserUser
6/9/2011 
31 
Tecnológico de Monterrey –DTC -2011 
Tenant-based isolation 
•Excepting the login request, each subsequent request done to the platform has an associated subscriber / tenant. 
•This isolation mechanism has to be dependent of each request done and it represents the portion of the resources used by each subscriber. 
Tenant Context CPU, Memory, StorageCPU, Memory, StoragePersistence Layer# loaded objectsUser.subscriberId= 101Subscriber 101# logged users# apps usedSubscriber 102# logged users# apps usedApp Service 1App Service 2App Service 3User.subscriberId= 101User.subscriberId= 101User.subscriberId= 102User.subscriberId= 102# database connections# database connectionsPersistence Layer# loaded objects
6/9/2011 32 
Tecnológico de Monterrey – DTC - 2011 
Tenant-based isolation 
// TenantContextInterceptor.java 
public class TenantContextInterceptor extends AbstractInterceptor implements 
StrutsStatics { 
... 
public String intercept(ActionInvocation invocation) throws Exception { 
ActionContext context = invocation.getInvocationContext (); 
HttpServletRequest request = (HttpServletRequest) 
context.get(HTTP_REQUEST); 
... 
UserVO user = SidelAuth.getAuthenticatedUser(request); 
String username = user.getEmail(); 
long subscriberId = user.getSubscriberId(); 
TenantContextManager tenantContextManager = 
TenantContextManager.getInstance(); 
tenantContextManager.updateTenantContext(subscriberId,usern 
ame); 
... 
return invocation.invoke (); 
} 
class Class Model 
TenantContextInterceptor 
+ intercept(ActionInvocation) : String 
TenantContext 
- activeUsers: int 
- tenantId: long 
- users: List<String> 
TenantContextManager 
- contexts: Map<Long, TenantContext> 
+ getInstance() : TenantContextManager 
+ updateTenantContext(long, String) : void 
updates 
uses 
• TenantContextInterceptor class 
implements an AbstractInterceptor 
interface in order to catch the 
request invocation performed by the 
user. 
• When the request is intercepted, it 
is retrieved the 
TenantContextManager instance 
which implements a Singleton design 
pattern to have only one single 
instance of such class. 
• TenantContextManager holds a 
map where the TenantContext 
objects are stored.
6/9/2011 
33 
Tecnológico de Monterrey –DTC -2011 
Tenant-based VM allocation 
•Virtual Machine Assignment Problem (VMAP): find an assignment which distributes the load on the VMs such that all have access to adequate resources and the number of servers used is minimized. 
•Thesis adaptation calculates the minimum number of virtual machine instances with specific and homogeneous capacity that need to be run when certain workload is received in the cluster.
6/9/2011 
34 
Tecnológico de Monterrey –DTC -2011 
Tenant-based VM allocation 
•Tenant Context weight= Active users * ( heap size / maxThreads) 
•VM capacity= Heap size -( ( heap size / maxThreads) * platform threads)
6/9/2011 
35 
Tecnológico de Monterrey –DTC -2011 
Tenant-based VM allocation 
intVMs = 0; 
public intcalculateVMs(intcapacity,int[]tenantWeights){ 
VMs = preProcessWeights(capacity, tenantWeights); //STEP_1 Initial VMs for overweight tenants 
tenantWeights= processWeightArray( capacity,tenantWeights); //STEP_2 Eliminate overweight values 
calculateVmsAllocation(capacity, tenantWeights); //STEP_3 Calculate VMs 
return VMs; 
}//end of function 
private void calculateVmsAllocation(intcapacity,int[]tenantWeights){ 
if (tenantWeights.length==0) return; 
else{ 
//EVERY ITERATION INCREMENTS VM INSTANCES NUMBER 
VMs++; 
//SOLVING KNAPSACK 
Knapsack KS = new Knapsack(capacity, tenantWeights, tenantWeights);KS.search(0,0,0); 
int[] take = KS.getBestSolution(); 
//FILTERING NOT-TAKEN ELEMENTS 
List<Integer> newWeightList= new ArrayList<Integer>(); 
for (intc=0;c<take.length;c++){ 
if (take[c]==0){ newWeightList.add(tenantWeights[c]); } //not taken 
} 
//REDUCING ARRAY 
tenantWeights= convertToIntArray(newWeightList); 
//RECURSIVE TO NEXT ITERATION 
calculateVmsAllocation(capacity,tenantWeights); 
} 
} //end of function
6/9/2011 
36 
Tecnológico de Monterrey –DTC -2011 
Cloud Communication Layer 
•The Cloud Communicator Layercontains the components for monitoring and accessing the itesm-cloudprivate infrastructure through SOAP interfaces. 
•It uses jCloudslibrary which is a Java open source framework that implements portable abstractions to get connected to public clouds. 
//initialize credentials 
String accesskeyid= "..."; 
String secretkey= "..."; 
//connect to the Eucalyptus itesm-cloud 
Properties overrides = new Properties(); 
overrides.setProperty("eucalyptus.endpoint","http://itesm-cloud:8773/services/Eucalyptus"); 
ComputeServiceContextcontext = new ComputeServiceContextFactory().createContext("eucalyptus", accesskeyid,secretkey,ImmutableSet.<Module> of(new Log4JLoggingModule(), new JschSshClientModule()), overrides); 
//create a VM template with SaaS platform image and small VM type 
Template template= 
context.getComputeService().templateBuilder().hardwareId("m1.small").imageId("Eucalyptus/emi-9ACB1363").build(); 
//set security params 
template.getOptions().as(EC2TemplateOptions.class).securityGroups("default"); 
template.getOptions().as(EC2TemplateOptions.class).noKeyPair(); 
//creating N instances 
Set<? extends NodeMetadata> nodes = context.getComputeService().runNodesWithTag("saasplatform", N, template); 
... 
//or shutdown an instance by ID 
context.getComputeService().destroyNode("Eucalyptus/i-3FB706CB");
6/9/2011 
37 
Tecnológico de Monterrey –DTC -2011 
Tenant-based load balancing 
•Load balancing is an effective solution scheme which purpose is to make the clustered servers equalizing sharing the workload through mutual cooperation and work distribution. 
•Tenant-based load balancing is proposed to take advantage of isolated parallelism in Web applications, meaning that requests from users are totally independent each other.
6/9/2011 
38 
Tecnológico de Monterrey –DTC -2011 
Tenant-based load balancing 
•Tenant-based load balancer is part of the SaaS platform and it uses the Tenant Context Managercomponent to retrieve information about tenant statuses. 
•The tenant-based load balancer tries to allocate requests of the same tenant to an unique virtual machine, depending of the VM capacity. 
SaaSCore Web AppTenant-based Load BalancerServer PreparerCookie ManagerResponse Parser Request ProcessorTenant Request Scheduler Tenant Context ManagerWorkloadRequests Databases SaaSplatform(Tomcat instance) VMVM… SaaSplatform(Tomcat instance) VMSaaSplatform(Tomcat instance) VMCloud Communication Layeritesm-cloud
6/9/2011 
39 
Tecnológico de Monterrey –DTC -2011 
Tenant-based load balancing 
•Request Processorreceives requests from HTTP or HTTPS ports and interprets the request method (GET, POST, etc). 
•Server Preparerinstantiates a new HTTP client, set the request headers and establishes timeouts. 
•Cookie Managercopies cookie information into the request. 
•Response Parserreturns the server answer meta data to the client. 
•Tenant Request Schedulercommunicates with Tenant Context Manager component in order to determine to which VM dispatch the request.
6/9/2011 
40 
Tecnológico de Monterrey –DTC -2011 
Tenant-based load balancing 
private void readTenantInformation(long tenantID, Request schedRequest) { 
String VM_IP_ADDRESS = DEFAULT_IP_ADDRESS; 
TenantRequestSchedulertenantRequestScheduler= TenantRequestScheduler.getInstance(); TenantContextManagertenantContextManager= TenantContextManager.getInstance(); 
intactiveUsers= 0; //initialize users 
Map<Long, TenantContext> tenantContextsMap= tenantContextManager.getTenantContextMap(); 
TenantContexttenantContext= tenantContextsMap.get(tenantID); 
VM_IP_ADDRESS = tenantRequestScheduler.calculateVMIPAddress(tenantContext); 
activeUsers= tenantContext.getActiveUsers(); 
TenantHostInfotenantHostInfo= new TenantHostInfo(); 
tenantHostInfo.setTenantId(tenantContext.getTenantId()); 
tenantHostInfo.setActiveUsers(activeUsers+1); 
hostMap.put(VM_IP_ADDRESS, tenantHostInfo); 
// UPDATING THE LOAD INDEX 
loadIndex+= tenantHostInfo.getActiveUsers(); 
prepareServerRequest(schedRequest, VM_IP_ADDRESS) 
}
6/9/2011 41 
Tecnológico de Monterrey – DTC - 2011 
Solution measurements 
Cloud Communication Layer 
VM Factory VM Status Handler 
SaaSCore Web App 
Tenant-based Load Balancer 
Tenant Context Manager 
Requests 
Tenant-Based VM Calculator 
Databases 
SaaS platform 
(Tomcat instance) 
VM VM 
… 
SaaS platform 
(Tomcat instance) 
VM 
SaaS platform 
(Tomcat instance) 
VM 
itesm-cloud 
Eucalyptus API 
Tenant Context Interceptor 
After setting up the tenant-based components and deploying 
them over the test bed, all the simulations and tests were run 
again. Over and underutilization measurements where 
performed against workload tests (incremental and peak-based). 
itesm-cloud 
Databases 
Apache HTTP 
VM 
SaaS platform 
(Tomcat instance) 
VM VM 
… 
Workload Generation 
JMeter machines 
Requests 
Resource Consumption State 
(RCS) Monitor 
SaaS platform 
(Tomcat instance) 
VM 
SaaS platform 
(Tomcat instance) 
VM 
vs.
6/9/2011 
42 
Tecnológico de Monterrey –DTC -2011 
Result Analysisvs. 
Control group 
Experimental group
6/9/2011 
43 
Tecnológico de Monterrey –DTC -2011 
Result Analysis 
•t-student test allows to determine if two averages are significantly different. 
•(N1+N2-2) = (12 + 12 -2 ) = 22 degrees of freedom = 99.5 accuracy 
•t-student distribution table produces a value of t= 2.8188as base parameter. 
•If t >t, we can say with a 99.5%of certainty that one average (in Table 11.2) is statistically less than another column (in Table 11.1). 
12221212XXtSSNN   
6/9/2011 
44 
Tecnológico de Monterrey –DTC -2011 
Result Analysis 
Controlgroup 
ExperimentalGroup 
t-student value 
>2.8188 t parameter 
Incremental UU 
18.42% 
8.21% 
3.2437 
Yes 
Incremental OU 
13.26% 
13.25% 
1.0282 
No 
Peak-based UU 
29.12% 
8.77% 
4.7208 
Yes 
Peak-based OU 
12.22% 
9.9% 
0.7485 
No 
•Averages for underutilization before tenant-based components have been statistically improved. 
•On the other hand, both t-student values corresponding to overutilization (OU) are not higher than t, even if the averages were reduced.
6/9/2011 
45 
Tecnológico de Monterrey –DTC -2011 
Conclusions 
•It was designed and deployed a SaaS platform architecture and applications that run within a cloud computing environment. 
•It was defined the workload mechanisms and tools to generate request for the test beds. 
•It was established a formal measure for under and over provisioning of virtualized resources (CPU and Heap memory) in cloud infrastructures. 
•It was developed monitors for resource utilization (CPU and memory) within virtual machines. 
•It was defined, designed and developed a mechanism for tenant-level isolation in order separate execution and gather information about tenant' resource usage. 
•It was created the mechanisms and algorithms for virtual machine allocation based on tenant information and virtual machine capacity. 
•It was designed and implemented a load balancer in order to distribute requests based on virtual machine statuses and tenant workload distribution.
6/9/2011 
46 
Tecnológico de Monterrey –DTC -2011 
Conclusions 
•This doctoral thesis demonstrates that resource allocation models have important impact in how the virtualized resources are created and instantiated within cloud environments. 
•The stated hypothesis has been validated, it was reduced the over and underutilization of virtualized resources in order to obtain cost-effective scalability for Software-as-a-Service applications within a cloud computing pay-per-use infrastructure by implementing tenant-based resource allocation mechanisms such as isolation, virtual machine creation and load balancing.
6/9/2011 
47 
Tecnológico de Monterrey –DTC -2011 
Main contributions 
•Establishment of formal measurements for under and over provisioning of virtualized resources in cloud infrastructures. 
•Presentation of an architecture based on open source components for developing, deploying and managing SaaS applications. 
•This work provides a detailed deployment design about how to setup a cloud infrastructure over commodity facilities and the use of open technologies. 
•This thesis contributes to the resource allocation topic specifically in cloud computing infrastructures, through new mechanisms for distribute workload in virtualized environments and dynamic load balancing proposal based on global statuses of tenant information.
6/9/2011 
48 
Tecnológico de Monterrey –DTC -2011 
Future Work 
•Different software platforms 
•Measuring other resources 
•Database clustering 
•Multiple database in SaaS applications 
•Different workload generation 
•SaaS architecture and cloud platform 
•Analytical testing 
•Performance improvement
6/9/2011 
49 
Tecnológico de Monterrey –DTC -2011 
Thesis outcomes 
•2 conference papers. 
•2 journal papers. 
•Research internship at Microsoft Research with Cloud Computing Futures group. Redmond, WA. (2009). 
•Business incubation cell about Software-as-a- Service platforms and applications. (2010). 
•National conferences and collaborations.
6/9/2011 
50 
Tecnológico de Monterrey –DTC -2011 
Publications 
•Espadas, J.; Concha, D.; Molina, A. “Application Development over Software-as-a-Service Platforms” (2008). The Third International Conference on Software Engineering Advances ICSEA 2008 -Sliema, Malta. 
•Espadas, J.;Concha, D.; Romero, D.; Molina, A. (2010). "Open Architecture for Developing Multitenant Software-as-a-Service Applications“. The First International Conference on Cloud Computing, GRIDs, and Virtualization. Published by XPS. November 21-26, 2010 -Lisbon, Portugal. 
•Concha, D.; Espadas, J.; Romero, D. and Molina, A. (2010). "The e-HUB Evolution: From a Custom Software Architecture to a Software-as-a-Service Implementation" in Journal Computers in Industry, Volume 61, Issue 2, Elsevier, ISSN: 0166-3615, Impact Factor 2.014. 
•Javier Espadas,Arturo Molina, Guillermo Jiménez, Martín Molina, David Concha, Raúl Ramírez. “Tenant-based resource allocation model for scaling Software-as-a-Service applications over cloud computing infrastructures”. Journal of Future Generation Computer Systems, Special Issue on Clouds and Service Oriented Architectures. Impact Factor 2.229 (In review process with minor changes).
6/9/2011 
51 
Tecnológico de Monterrey –DTC -2011 
The end 
•Questions

More Related Content

What's hot

Cloud computing architecture
Cloud computing architectureCloud computing architecture
Cloud computing architecturemeenalkakkar
 
Comparison of Several IaaS Cloud Computing Platforms
Comparison of Several IaaS Cloud Computing PlatformsComparison of Several IaaS Cloud Computing Platforms
Comparison of Several IaaS Cloud Computing Platformsijsrd.com
 
Ibm cloud forum managing heterogenousclouds_final
Ibm cloud forum managing heterogenousclouds_finalIbm cloud forum managing heterogenousclouds_final
Ibm cloud forum managing heterogenousclouds_finalMauricio Godoy
 
Open Service Federation Framework
Open Service Federation FrameworkOpen Service Federation Framework
Open Service Federation FrameworkWSO2
 
Challenges and solutions in Cloud computing for the Future Internet
Challenges and solutions in Cloud computing for the Future InternetChallenges and solutions in Cloud computing for the Future Internet
Challenges and solutions in Cloud computing for the Future InternetSOFIProject
 
Multi-tenancy In the Cloud
Multi-tenancy In the CloudMulti-tenancy In the Cloud
Multi-tenancy In the Cloudsdevillers
 
Feet On The Ground Head In The Cloud
Feet On The Ground Head In The CloudFeet On The Ground Head In The Cloud
Feet On The Ground Head In The Clouddchmielewski
 
Cloud computing 2
Cloud computing 2Cloud computing 2
Cloud computing 2Shyam Kona
 
HP Cloud System Matrix Overview
HP Cloud System Matrix OverviewHP Cloud System Matrix Overview
HP Cloud System Matrix OverviewRien du Pre
 
market oriented cloud
market oriented cloudmarket oriented cloud
market oriented cloudACMBangalore
 
How to choose the right Database technology for your business?
How to choose the right Database technology for your business?How to choose the right Database technology for your business?
How to choose the right Database technology for your business?Ashnikbiz
 
Introduction to PaaS
Introduction to PaaSIntroduction to PaaS
Introduction to PaaSChris Haddad
 
A Breif On Cloud computing
A Breif On Cloud computingA Breif On Cloud computing
A Breif On Cloud computingRaja Raman
 
Cloud Computing & Cloud Brokers
Cloud Computing & Cloud Brokers Cloud Computing & Cloud Brokers
Cloud Computing & Cloud Brokers Vasan Ramadoss
 
Cloud proposition for banking
Cloud proposition for bankingCloud proposition for banking
Cloud proposition for bankingAjay Kumar Uppal
 

What's hot (20)

Microsoft Cloud Computing E-Book
Microsoft Cloud Computing E-BookMicrosoft Cloud Computing E-Book
Microsoft Cloud Computing E-Book
 
Cloud computing architecture
Cloud computing architectureCloud computing architecture
Cloud computing architecture
 
Comparison of Several IaaS Cloud Computing Platforms
Comparison of Several IaaS Cloud Computing PlatformsComparison of Several IaaS Cloud Computing Platforms
Comparison of Several IaaS Cloud Computing Platforms
 
Ibm cloud forum managing heterogenousclouds_final
Ibm cloud forum managing heterogenousclouds_finalIbm cloud forum managing heterogenousclouds_final
Ibm cloud forum managing heterogenousclouds_final
 
Unit 5
Unit  5Unit  5
Unit 5
 
Open Service Federation Framework
Open Service Federation FrameworkOpen Service Federation Framework
Open Service Federation Framework
 
Cloud computing
Cloud computing Cloud computing
Cloud computing
 
Challenges and solutions in Cloud computing for the Future Internet
Challenges and solutions in Cloud computing for the Future InternetChallenges and solutions in Cloud computing for the Future Internet
Challenges and solutions in Cloud computing for the Future Internet
 
Multi-tenancy In the Cloud
Multi-tenancy In the CloudMulti-tenancy In the Cloud
Multi-tenancy In the Cloud
 
Feet On The Ground Head In The Cloud
Feet On The Ground Head In The CloudFeet On The Ground Head In The Cloud
Feet On The Ground Head In The Cloud
 
Cloud computing 2
Cloud computing 2Cloud computing 2
Cloud computing 2
 
HP Cloud System Matrix Overview
HP Cloud System Matrix OverviewHP Cloud System Matrix Overview
HP Cloud System Matrix Overview
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
CA NOTES ON EMERGING TECHNOLOGIES
CA NOTES ON EMERGING TECHNOLOGIESCA NOTES ON EMERGING TECHNOLOGIES
CA NOTES ON EMERGING TECHNOLOGIES
 
market oriented cloud
market oriented cloudmarket oriented cloud
market oriented cloud
 
How to choose the right Database technology for your business?
How to choose the right Database technology for your business?How to choose the right Database technology for your business?
How to choose the right Database technology for your business?
 
Introduction to PaaS
Introduction to PaaSIntroduction to PaaS
Introduction to PaaS
 
A Breif On Cloud computing
A Breif On Cloud computingA Breif On Cloud computing
A Breif On Cloud computing
 
Cloud Computing & Cloud Brokers
Cloud Computing & Cloud Brokers Cloud Computing & Cloud Brokers
Cloud Computing & Cloud Brokers
 
Cloud proposition for banking
Cloud proposition for bankingCloud proposition for banking
Cloud proposition for banking
 

Viewers also liked

Software reliability growth model
Software reliability growth modelSoftware reliability growth model
Software reliability growth modelHimanshu
 
SQA Profiles
SQA ProfilesSQA Profiles
SQA Profiless-mueller
 
Predicting reliability of software systems under development
Predicting reliability of software systems under developmentPredicting reliability of software systems under development
Predicting reliability of software systems under developmentRAKESH RANA
 
Learning More About The Saa S Business Tuneup
Learning More About The Saa S Business TuneupLearning More About The Saa S Business Tuneup
Learning More About The Saa S Business TuneupAccenture
 
How to Leverage Business Partners Migration to SaaS / Cloud
How to Leverage Business Partners Migration to SaaS / CloudHow to Leverage Business Partners Migration to SaaS / Cloud
How to Leverage Business Partners Migration to SaaS / CloudClub Alliances
 
Revenue Recognition Accounting for Cloud Computing (SaaS)
Revenue Recognition Accounting for Cloud Computing (SaaS)Revenue Recognition Accounting for Cloud Computing (SaaS)
Revenue Recognition Accounting for Cloud Computing (SaaS)Tensoft, Inc.
 
IBM Cloud Point of View
IBM Cloud Point of ViewIBM Cloud Point of View
IBM Cloud Point of ViewAndrzej Osmak
 
Domestic Resource Mobilization - Mobilizing Finance for Development
Domestic Resource Mobilization - Mobilizing Finance for Development Domestic Resource Mobilization - Mobilizing Finance for Development
Domestic Resource Mobilization - Mobilizing Finance for Development Hillary Fernando
 
Intellect SaaS Paper Launch
Intellect SaaS Paper LaunchIntellect SaaS Paper Launch
Intellect SaaS Paper LaunchDavid Terrar
 
Advanced Concepts in Software as a Service / Service Oriented Architecture
Advanced Concepts in Software as a Service / Service Oriented ArchitectureAdvanced Concepts in Software as a Service / Service Oriented Architecture
Advanced Concepts in Software as a Service / Service Oriented ArchitectureDamon Carr
 
Aviation MRO IT: Emergence of SaaS and Convergence of BPO
Aviation MRO IT: Emergence of SaaS and Convergence of BPOAviation MRO IT: Emergence of SaaS and Convergence of BPO
Aviation MRO IT: Emergence of SaaS and Convergence of BPOguesta9496c4
 
Software reliability
Software reliabilitySoftware reliability
Software reliabilityAnand Kumar
 
The SaaS business model
The SaaS business modelThe SaaS business model
The SaaS business modelDavid Skok
 

Viewers also liked (16)

Software reliability growth model
Software reliability growth modelSoftware reliability growth model
Software reliability growth model
 
SQA Profiles
SQA ProfilesSQA Profiles
SQA Profiles
 
Predicting reliability of software systems under development
Predicting reliability of software systems under developmentPredicting reliability of software systems under development
Predicting reliability of software systems under development
 
Learning More About The Saa S Business Tuneup
Learning More About The Saa S Business TuneupLearning More About The Saa S Business Tuneup
Learning More About The Saa S Business Tuneup
 
Rayleigh model
Rayleigh modelRayleigh model
Rayleigh model
 
Rayleigh model
Rayleigh modelRayleigh model
Rayleigh model
 
How to Leverage Business Partners Migration to SaaS / Cloud
How to Leverage Business Partners Migration to SaaS / CloudHow to Leverage Business Partners Migration to SaaS / Cloud
How to Leverage Business Partners Migration to SaaS / Cloud
 
Revenue Recognition Accounting for Cloud Computing (SaaS)
Revenue Recognition Accounting for Cloud Computing (SaaS)Revenue Recognition Accounting for Cloud Computing (SaaS)
Revenue Recognition Accounting for Cloud Computing (SaaS)
 
Reliability growth models
Reliability growth modelsReliability growth models
Reliability growth models
 
IBM Cloud Point of View
IBM Cloud Point of ViewIBM Cloud Point of View
IBM Cloud Point of View
 
Domestic Resource Mobilization - Mobilizing Finance for Development
Domestic Resource Mobilization - Mobilizing Finance for Development Domestic Resource Mobilization - Mobilizing Finance for Development
Domestic Resource Mobilization - Mobilizing Finance for Development
 
Intellect SaaS Paper Launch
Intellect SaaS Paper LaunchIntellect SaaS Paper Launch
Intellect SaaS Paper Launch
 
Advanced Concepts in Software as a Service / Service Oriented Architecture
Advanced Concepts in Software as a Service / Service Oriented ArchitectureAdvanced Concepts in Software as a Service / Service Oriented Architecture
Advanced Concepts in Software as a Service / Service Oriented Architecture
 
Aviation MRO IT: Emergence of SaaS and Convergence of BPO
Aviation MRO IT: Emergence of SaaS and Convergence of BPOAviation MRO IT: Emergence of SaaS and Convergence of BPO
Aviation MRO IT: Emergence of SaaS and Convergence of BPO
 
Software reliability
Software reliabilitySoftware reliability
Software reliability
 
The SaaS business model
The SaaS business modelThe SaaS business model
The SaaS business model
 

Similar to Tenant-based resource allocation model for cost-effective scaling Software-as-a-Service applications over cloud computing infrastructure

Job Placement and Staffing VA
Job Placement and Staffing VAJob Placement and Staffing VA
Job Placement and Staffing VAIntellectualpoint
 
Cloud Computing – The Best Form of IT Delivery
Cloud Computing – The Best Form of IT DeliveryCloud Computing – The Best Form of IT Delivery
Cloud Computing – The Best Form of IT DeliverySoftweb Solutions
 
Cloud computing for java and dotnet
Cloud computing for java and dotnetCloud computing for java and dotnet
Cloud computing for java and dotnetredpel dot com
 
Cloud scalability considerations
Cloud scalability considerationsCloud scalability considerations
Cloud scalability considerationsIJCSES Journal
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentIJERD Editor
 
Fault Tolerance in AWS Distributed Cloud Computing
Fault Tolerance in AWS Distributed Cloud ComputingFault Tolerance in AWS Distributed Cloud Computing
Fault Tolerance in AWS Distributed Cloud ComputingCaner KAYA
 
Welcome to the Cloud!
Welcome to the Cloud!Welcome to the Cloud!
Welcome to the Cloud!imogokate
 
oracle-cloud-computing-wp-076373
oracle-cloud-computing-wp-076373oracle-cloud-computing-wp-076373
oracle-cloud-computing-wp-076373Prithvi Rajkumar
 
Cloud computing course and tutorials
Cloud computing course and tutorialsCloud computing course and tutorials
Cloud computing course and tutorialsUdara Sandaruwan
 
How Should I Prepare Your Enterprise For The Increased...
How Should I Prepare Your Enterprise For The Increased...How Should I Prepare Your Enterprise For The Increased...
How Should I Prepare Your Enterprise For The Increased...Claudia Brown
 
A revolution in information technology cloud computing.
A revolution in information technology   cloud computing.A revolution in information technology   cloud computing.
A revolution in information technology cloud computing.Minor33
 
Introduction to Cloud Computing and Cloud Infrastructure
Introduction to Cloud Computing and Cloud InfrastructureIntroduction to Cloud Computing and Cloud Infrastructure
Introduction to Cloud Computing and Cloud InfrastructureSANTHOSHKUMARKL1
 
02_Cloud-Intro.pdf cloud introduction introduction
02_Cloud-Intro.pdf cloud introduction introduction02_Cloud-Intro.pdf cloud introduction introduction
02_Cloud-Intro.pdf cloud introduction introductionAslamHossain30
 

Similar to Tenant-based resource allocation model for cost-effective scaling Software-as-a-Service applications over cloud computing infrastructure (20)

About clouds
About cloudsAbout clouds
About clouds
 
Job Placement and Staffing VA
Job Placement and Staffing VAJob Placement and Staffing VA
Job Placement and Staffing VA
 
Cloud Computing – The Best Form of IT Delivery
Cloud Computing – The Best Form of IT DeliveryCloud Computing – The Best Form of IT Delivery
Cloud Computing – The Best Form of IT Delivery
 
Cloud computing for java and dotnet
Cloud computing for java and dotnetCloud computing for java and dotnet
Cloud computing for java and dotnet
 
Cloud scalability considerations
Cloud scalability considerationsCloud scalability considerations
Cloud scalability considerations
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and Development
 
Fault Tolerance in AWS Distributed Cloud Computing
Fault Tolerance in AWS Distributed Cloud ComputingFault Tolerance in AWS Distributed Cloud Computing
Fault Tolerance in AWS Distributed Cloud Computing
 
Scheduling in CCE
Scheduling in CCEScheduling in CCE
Scheduling in CCE
 
Welcome to the Cloud!
Welcome to the Cloud!Welcome to the Cloud!
Welcome to the Cloud!
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
oracle-cloud-computing-wp-076373
oracle-cloud-computing-wp-076373oracle-cloud-computing-wp-076373
oracle-cloud-computing-wp-076373
 
Above theclouds
Above thecloudsAbove theclouds
Above theclouds
 
Cloud computing course and tutorials
Cloud computing course and tutorialsCloud computing course and tutorials
Cloud computing course and tutorials
 
Cloud
CloudCloud
Cloud
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Cloud
CloudCloud
Cloud
 
How Should I Prepare Your Enterprise For The Increased...
How Should I Prepare Your Enterprise For The Increased...How Should I Prepare Your Enterprise For The Increased...
How Should I Prepare Your Enterprise For The Increased...
 
A revolution in information technology cloud computing.
A revolution in information technology   cloud computing.A revolution in information technology   cloud computing.
A revolution in information technology cloud computing.
 
Introduction to Cloud Computing and Cloud Infrastructure
Introduction to Cloud Computing and Cloud InfrastructureIntroduction to Cloud Computing and Cloud Infrastructure
Introduction to Cloud Computing and Cloud Infrastructure
 
02_Cloud-Intro.pdf cloud introduction introduction
02_Cloud-Intro.pdf cloud introduction introduction02_Cloud-Intro.pdf cloud introduction introduction
02_Cloud-Intro.pdf cloud introduction introduction
 

Recently uploaded

AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekCzechDreamin
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutesconfluent
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Thierry Lestable
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backElena Simperl
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1DianaGray10
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomCzechDreamin
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Product School
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2DianaGray10
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Julian Hyde
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeCzechDreamin
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...Product School
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsPaul Groth
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...CzechDreamin
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...Sri Ambati
 

Recently uploaded (20)

AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 

Tenant-based resource allocation model for cost-effective scaling Software-as-a-Service applications over cloud computing infrastructure

  • 1. Tenant-based resource allocation model for cost-effective scaling Software-as-a- Service applications over cloud computing infrastructureDissertation DefensePh. D. in Information Technology and Communications Program Javier MijailEspadasPech Asesor: Dr. Arturo Molina
  • 2. 6/9/2011 2 Tecnológico de Monterrey –DTC -2011 Agenda •Concepts: Cloud computing, SaaS, multi-tenancy •Background •Premise, hypothesis and objectives •Research methodology •Problem measurement •Proposed solution •Results analysis •Conclusions, contributions and future work •Thesis’ outcomes
  • 3. 6/9/2011 3 Tecnológico de Monterrey – DTC - 2011 The Cloud
  • 4. 6/9/2011 4 Tecnológico de Monterrey –DTC -2011 Cloud Computing •Computing resources are being transformed into a model consisting of services that are commoditized and delivered in a similar way to traditional utilities such as water, electricity or gas. •One of the computing paradigms that have promised to deliver this utility computing vision is known as Cloud Computing. •Cloud Computing provides on-demand access to computational resources (commonly virtual machines) which together with pay-per-use business models, enables application providers seamlessly scaling their services.
  • 5. 6/9/2011 5 Tecnológico de Monterrey –DTC -2011 Cloud computing layers Applications (Software as a Service) Abstract Services (Platform as a Service) Flexible infrastructure (Infrastructure as a Service) Service Service Service Infrastructure Interface Development Deployment Data Storage Virtualization OS Hardware Cloud Actors Service Users Service Providers Cloud Layers Salesforce.com Microsoft Live Office Cisco Webex Google Apps Cloud Services Amazon S3 Microsoft Azure Google SDK Amazon Elastic Cloud Masso Hosting Cloud Virtualization OS Hardware Virtualization OS Hardware
  • 6. 6/9/2011 6 Tecnológico de Monterrey –DTC -2011 Software-as-a-Service •SaaS is a software delivery paradigm where the software is hosted off-premise, developed by service providers and delivered via Internet and the payment mode follows a subscription model. •IDC estimates customers spending on SaaS solutions to increase to $14.8 billion by 2011. •In order to achieve higher profit margin by leveraging the economics of scale, an important requirement for SaaS applications is the support of multiple tenants.
  • 7. 6/9/2011 7 Tecnológico de Monterrey –DTC -2011 SaaS multi-tenancy •A tenant is a customerthat uses or provides a SaaS application. •SaaS provider offers the same instance of a SaaS application to multiple tenants. •Multi-tenancy means that each tenant can interact with the application as if it were the unique owner of the application. •In particular a tenant cannot access or view the data of another tenant.
  • 8. 6/9/2011 8 Tecnológico de Monterrey –DTC -2011 Background: Large-scale •Applications deployed on the Internet (i.e. SaaS) are immediately accessible to a vast population of potential users. •They tend to experience fluctuating and unpredictable load, especially due to events such as breaking news (e.g., 9/11) and sudden popularity spikes (e.g., the "Slashdot Effect"). •Facebook dynamically generates more than two billion pages per day resulting in over 23,000 page views a second . •Image-processing Animoto web application experimented viral growth that caused to go from ten to more than 3500 servers in only three days. Worker servers on Amazon EC2
  • 9. 6/9/2011 9 Tecnológico de Monterrey –DTC -2011 Background: Resources •For Internet software providers, having the power to scale up or down an application to only consume and pay for the resources that are required at certain point in time is an attractive capability and if done correctly it will be less expensive than running on traditional hosting. •However, cost-effective scalability is not achieved just by deploying large-scale applications over pay-per-use cloud infrastructures, and idle processes and not used resources are wasted but charged to application providers.
  • 10. 6/9/2011 10 Tecnológico de Monterrey –DTC -2011 Background: Problem •Real elasticity in pay-per-use cloud models is not achieved yet. •Over provisioning effect happens due the resource underutilization: even if peak loads are successfully anticipated, resources are wasted (light gray areas). •Under provisioning occurs when potential revenue from customers (dark gray areas) is lost due poor performance (saturation). Pay-per-use resourcesReal demandExpected demandUnder provisioning (saturation) Over provisioning (underutilization)
  • 11. 6/9/2011 11 Tecnológico de Monterrey –DTC -2011 Premise •SaaS applications give an opportunity to tackle the former problem due their multi-tenancy architecture. •Due this multi-tenant nature of SaaS applications it is possible to create on-demand resources and distribute workload for each tenant within pay-per-use cloud infrastructures. •SaaS platforms can take advantage of tenant- aware parallelism and work distribution by using cloud computing platforms.
  • 12. 6/9/2011 12 Tecnológico de Monterrey –DTC -2011 Hypothesis •Is possible to reduce over and underutilization of virtualized resources in order to obtain cost-effective scalability for Software-as-a-Service applications within a cloud computing pay-per-use infrastructure by implementing tenant-based resource allocation mechanisms such as isolation, virtual machine creation and load balancing.
  • 13. 6/9/2011 13 Tecnológico de Monterrey –DTC -2011 Objectives •To design a resource allocation model for scaling SaaS platforms and their applications over cloud computing platforms in order to create cost-effective scalability. –Analyze SaaS and cloud architectures. –Define workload mechanisms. –Develop monitoring mechanisms. –Define mechanisms for tenant-level isolation. –Create algorithms for virtual machine allocation. –Design a load balancer. –Gather, consolidate and analyze results.
  • 14. 6/9/2011 14 Tecnológico de Monterrey –DTC -2011 Research Methodology •Action-Research (AR) to implement actions and learning cycles from previous results. •Two AR cycles, starting diagnosing the initial problem and finishing with the measuring of such problem within a test bed infrastructure for the first cycle. •Second cycle starts by designing the solution (resource allocation model) and it outcomes an evaluation of this solution against former results through a statistical analysis.
  • 15. 6/9/2011 15 Tecnológico de Monterrey –DTC -2011 Research Methodology DiagnosingAction PlanningAction TakingEvaluationAction PlanningAction TakingEvaluationLearningBackground (Chapter 1) Problem Statement (Chapter 1) Literature Review & State-of-art (Chapter 3) Over and Underutilization Measurements (Chapter 7) Cloud Resources: Concept & Measurement (Chapter 4) Proposed Model (Chapter 8)SaaS Platform: Design andImplementation (Chapter 5) Test Bed Architecture (Chapter 6) Tenant-based Isolation (Chapter 8) Tenant-based VM Allocation (Chapter 9) Tenant-based Load Balancing (Chapter 10) Result Analysis(Chapter 11) Conclusions and Future Work(Chapter 12) Phase 2Phase 1
  • 16. 6/9/2011 16 Tecnológico de Monterrey –DTC -2011 LiteratureReview Researcharea Section Review CloudComputing 3.2Cloudcomputing Conceptsaboutcloudcomputing,itslayersanddefinitions. Software-as-a-Service 3.3Software-as-a-Service Software-as-a-Service(SaaS),itsimpact,characteristicsandimplementations. SaaSplatformsfortestbed 3.4SaaSMulti-tenancy Howmulti-tenancyisimplementedcurrentlyandtheexistenttenant-basedpatterns. Cloudplatformsfortestbed 3.5EucalyptusCloudPlatform Eucalyptusplatformisanalyzedanddetailed. Virtualizationforcloudcomputing 3.6Virtualization 3.7VirtualizationModelsforCloudComputing Willbedetailedhowvirtualizationmodelsfitswithinacloudenvironment. Monitoringandmeasuringincloudcomputing 3.8.1Cloudresourcemonitoringandmeasuring Measuringtheproblemisanimportantstepintheresearchmethodology,thereforeisanalyzedrelatedworktomonitoringcloudenvironments. Isolationmodelsforcloudcomputing 3.8.2ToolkitforSaaSgranularityandisolation SaaSisolationestablishesthebasemechanismtoseparateexecutionfromtenants.Thissectionwillpresentarelatedworkonthisproblem. Virtualmachineallocationforcloudcomputing 3.8.3VirtualMachineAssignment Relevantresearchandworkistheallocationofvirtualmachinesasthesearebasicunitsforpay-per-useresource. Balancingandscaling 3.8.4Profile-basedjust-in-timescalability 3.8.5AutoScalingfromAmazonWebServices Finally,itispresentedinSection3.7relatedworkforjust-in- timescalabilityandprofile-basedworkloadbalancing.
  • 17. 6/9/2011 17 Tecnológico de Monterrey –DTC -2011 Problem measurement •How cloud computing resources are defined and measured? •What is under and over resource provisioning? •How they can be gathered and measured in virtualized environments such as cloud computing? •Diagnosing: is important to measure resources within virtual machines (CPU, Java heap memory). •Action planning: to deploy traditional scaling within cloud computing
  • 18. 6/9/2011 18 Tecnológico de Monterrey –DTC -2011 Traditional scaling: Load balancing •The higher level of granularity for cloud computing resources is the virtual machine. •Each virtual machine or cloud instance has its own capabilities (CPU, memory, storage, etc.). •When running parallel servers such as Apache Tomcat, a Web Server is required on top to distribute the workload over the underlying server instances.
  • 19. 6/9/2011 19 Tecnológico de Monterrey –DTC -2011 Traditional scaling in cloud computing •For the application server instances (Tomcat) is recommended to use large VM instances. VMTomcatDatabaseCloud Platform (IaaS) VMTomcatVMTomcatVMTomcatVM = Virtual MachineSaaSPlatform
  • 20. 6/9/2011 20 Tecnológico de Monterrey –DTC -2011 Distributed metering •JConsoleaccesses several core monitoring and management functionalities provided by the Java platform. •Java Management Extension (JMX) Remote framework connects to remote Tomcat processes and gather all related resource consumption information about them. •SIGAR (stands for System Information Gatherer And Reporter) API provides a portable interface for gathering system information.
  • 21. 6/9/2011 21 Tecnológico de Monterrey –DTC -2011 Distributed monitoring •Resource Consumption State (RCS) is composed by the metering of CPU and heap memory in different time periods, not only for individual application servers, instead the measuring represents the status of the whole deployed cluster. VMTomcatVMTomcatVMTomcatVMTomcatVMTomcatRCSMonitor
  • 22. 6/9/2011 22 Tecnológico de Monterrey – DTC - 2011 Overutilization (saturation) • For overutilization definition is used the term of point of exhaustion. • Point of exhaustion for cloud computing can be defined by the maximum useful work (throughput) that can be executed on a single virtual machine. • When resource utilization skyrockets, throughput generally declines. • throughput = (number of requests) / (total time) M1 M2 M3 Resource utilization Throughput T1 R1 R2 T2 T3 R3
  • 23. 6/9/2011 23 Tecnológico de Monterrey –DTC -2011 Underutilization (resource wasting) •The quantity of underutilized resources for a set of VMs is the number of virtual machines that can be released by allocating their resources within another VM. •Each VM is evaluated against the rest at certain point time. •In this dissertation, this number is obtained through a knapsack (bin packing) approach. •The knapsackfunction returns the maximum number of VMs that can be released because it maximizes resource availability and gives low weight to VMs with low usage. 40 % usedTotal VM1 memoryThreshold or maximum allowed (70%) 10 % usedTotal VM2 memory20 % usedTotal VM3 memory65 % usedTotal VM4 memory
  • 24. 6/9/2011 24 Tecnológico de Monterrey –DTC -2011 SaaS platform •Diagnosing: is important to measure resources within virtual machines (CPU, Java heap memory). •Action planning: to develop and deploy a SaaS platform with traditional scaling within cloud computing •(1) multitenant-supporting large number of tenants/subscribers. •(2) single version-single version per application and this one is available and shared among all the application users. •(3) logical data separation-with just one data domain for each tenant but all the data is stored in a single database. •SaaS platform enables a simple development, deployment and management of software applications delivered as services. SaaSPlatformSubscription ServiceMetering ServiceCommunications Service(Mail, SMS) Integrations Service(Google Apps) SaaSApplicationSaaSApplicationSaaS SDKSaaS TagLibsJava LibrariesXML Configuration FilesMulti-tentantSaaSDB SaaS Core Web App SaaSApplication Deployment Manager Infrastructure ManagementSOAAuth, Log, Account
  • 25. 6/9/2011 25 Tecnológico de Monterrey – DTC - 2011 Test bed architecture itesm-cloud Databases Apache HTTP VM SaaS platform (Tomcat instance) VM VM … Workload Generation JMeter machines Requests Resource Consumption State (RCS) Monitor SaaS platform (Tomcat instance) VM SaaS platform (Tomcat instance) VM itesm-cloud platform Databases Apache HTTP VM SaaS platform (Tomcat instance) VM VM … SaaS platform (Tomcat instance) VM SaaS platform (Tomcat instance) VM SaaS platform (Tomcat instance) VM VM = Virtual Machine instance
  • 26. 6/9/2011 26 Tecnológico de Monterrey – DTC - 2011 Generating workload • Apache JMeter tool was selected to create heavy workload to the Tomcat cluster installed in a cloud environment and where the SaaS platform is deployed. JMeter Site / Server JMeter JMeter JMeter Network Host 1 Host 2 1 2
  • 27. 6/9/2011 27 Tecnológico de Monterrey – DTC - 2011 Generating workload • Incremental. For each time period, workload starts from the peak of the previous time period and increases until to reach the maximum peak of established users at the end of current period (solid line). • Peak load. For each time period, workload starts from zero users and increments until to reach the maximum peak of users at the middle of the period. Then, the workload starts to decrease until zero at the end of the period (dotted line). 0 200 400 600 800 1000 1200 1400 1600 1800 1 2 3 4 5 6 7 8 9 10 11 12 Concurrent Users per Month Concurrent Users Each Tomcat server (VM) can handle 100 users as top
  • 28. 6/9/2011 28 Tecnológico de Monterrey –DTC -2011 Problem measurement: Results •% UU (Underutilization) = ( Combined UU / Measurements per hour) / Server-hours •% OU (Overutilization) = Combined OU / (Measurements per month * Number of virtual machines)
  • 29. 6/9/2011 29 Tecnológico de Monterrey –DTC -2011 Resource allocation model •Tenant-based isolation: creates tenant-level granularity and separates execution contexts for different tenants •Tenant-based VM allocation: implements mechanisms to calculate the number of VM instances needed, given a set of tenants. •Tenant-based load balancing: implements a distribution mechanism to process and dispatch workload requests concerning to each tenant. Cloud Communication LayerVM FactoryVM Status HandlerSaaSCore Web AppTenant-based Load BalancerTenant Context ManagerRequestsTenant-Based VM Calculator Databases SaaSplatform(Tomcat instance) VMVM… SaaSplatform(Tomcat instance) VMSaaSplatform(Tomcat instance) VMitesm-cloudEucalyptus APITenant Context Interceptor
  • 30. 6/9/2011 30 Tecnológico de Monterrey –DTC -2011 Tenant-based isolation •Each user belongs to one or more subscriber or tenant. Once the user has been authenticated through an email and password, SaaS platform links the user to its subscriber ID. •The tenant-based information is stored in the context session and the rest of the applications can access it through the aspect-oriented mechanisms. SaaSCore Web App Look for subscriberInternetGet subscriber (tenant) ID Set session cookieUserUserUserUser
  • 31. 6/9/2011 31 Tecnológico de Monterrey –DTC -2011 Tenant-based isolation •Excepting the login request, each subsequent request done to the platform has an associated subscriber / tenant. •This isolation mechanism has to be dependent of each request done and it represents the portion of the resources used by each subscriber. Tenant Context CPU, Memory, StorageCPU, Memory, StoragePersistence Layer# loaded objectsUser.subscriberId= 101Subscriber 101# logged users# apps usedSubscriber 102# logged users# apps usedApp Service 1App Service 2App Service 3User.subscriberId= 101User.subscriberId= 101User.subscriberId= 102User.subscriberId= 102# database connections# database connectionsPersistence Layer# loaded objects
  • 32. 6/9/2011 32 Tecnológico de Monterrey – DTC - 2011 Tenant-based isolation // TenantContextInterceptor.java public class TenantContextInterceptor extends AbstractInterceptor implements StrutsStatics { ... public String intercept(ActionInvocation invocation) throws Exception { ActionContext context = invocation.getInvocationContext (); HttpServletRequest request = (HttpServletRequest) context.get(HTTP_REQUEST); ... UserVO user = SidelAuth.getAuthenticatedUser(request); String username = user.getEmail(); long subscriberId = user.getSubscriberId(); TenantContextManager tenantContextManager = TenantContextManager.getInstance(); tenantContextManager.updateTenantContext(subscriberId,usern ame); ... return invocation.invoke (); } class Class Model TenantContextInterceptor + intercept(ActionInvocation) : String TenantContext - activeUsers: int - tenantId: long - users: List<String> TenantContextManager - contexts: Map<Long, TenantContext> + getInstance() : TenantContextManager + updateTenantContext(long, String) : void updates uses • TenantContextInterceptor class implements an AbstractInterceptor interface in order to catch the request invocation performed by the user. • When the request is intercepted, it is retrieved the TenantContextManager instance which implements a Singleton design pattern to have only one single instance of such class. • TenantContextManager holds a map where the TenantContext objects are stored.
  • 33. 6/9/2011 33 Tecnológico de Monterrey –DTC -2011 Tenant-based VM allocation •Virtual Machine Assignment Problem (VMAP): find an assignment which distributes the load on the VMs such that all have access to adequate resources and the number of servers used is minimized. •Thesis adaptation calculates the minimum number of virtual machine instances with specific and homogeneous capacity that need to be run when certain workload is received in the cluster.
  • 34. 6/9/2011 34 Tecnológico de Monterrey –DTC -2011 Tenant-based VM allocation •Tenant Context weight= Active users * ( heap size / maxThreads) •VM capacity= Heap size -( ( heap size / maxThreads) * platform threads)
  • 35. 6/9/2011 35 Tecnológico de Monterrey –DTC -2011 Tenant-based VM allocation intVMs = 0; public intcalculateVMs(intcapacity,int[]tenantWeights){ VMs = preProcessWeights(capacity, tenantWeights); //STEP_1 Initial VMs for overweight tenants tenantWeights= processWeightArray( capacity,tenantWeights); //STEP_2 Eliminate overweight values calculateVmsAllocation(capacity, tenantWeights); //STEP_3 Calculate VMs return VMs; }//end of function private void calculateVmsAllocation(intcapacity,int[]tenantWeights){ if (tenantWeights.length==0) return; else{ //EVERY ITERATION INCREMENTS VM INSTANCES NUMBER VMs++; //SOLVING KNAPSACK Knapsack KS = new Knapsack(capacity, tenantWeights, tenantWeights);KS.search(0,0,0); int[] take = KS.getBestSolution(); //FILTERING NOT-TAKEN ELEMENTS List<Integer> newWeightList= new ArrayList<Integer>(); for (intc=0;c<take.length;c++){ if (take[c]==0){ newWeightList.add(tenantWeights[c]); } //not taken } //REDUCING ARRAY tenantWeights= convertToIntArray(newWeightList); //RECURSIVE TO NEXT ITERATION calculateVmsAllocation(capacity,tenantWeights); } } //end of function
  • 36. 6/9/2011 36 Tecnológico de Monterrey –DTC -2011 Cloud Communication Layer •The Cloud Communicator Layercontains the components for monitoring and accessing the itesm-cloudprivate infrastructure through SOAP interfaces. •It uses jCloudslibrary which is a Java open source framework that implements portable abstractions to get connected to public clouds. //initialize credentials String accesskeyid= "..."; String secretkey= "..."; //connect to the Eucalyptus itesm-cloud Properties overrides = new Properties(); overrides.setProperty("eucalyptus.endpoint","http://itesm-cloud:8773/services/Eucalyptus"); ComputeServiceContextcontext = new ComputeServiceContextFactory().createContext("eucalyptus", accesskeyid,secretkey,ImmutableSet.<Module> of(new Log4JLoggingModule(), new JschSshClientModule()), overrides); //create a VM template with SaaS platform image and small VM type Template template= context.getComputeService().templateBuilder().hardwareId("m1.small").imageId("Eucalyptus/emi-9ACB1363").build(); //set security params template.getOptions().as(EC2TemplateOptions.class).securityGroups("default"); template.getOptions().as(EC2TemplateOptions.class).noKeyPair(); //creating N instances Set<? extends NodeMetadata> nodes = context.getComputeService().runNodesWithTag("saasplatform", N, template); ... //or shutdown an instance by ID context.getComputeService().destroyNode("Eucalyptus/i-3FB706CB");
  • 37. 6/9/2011 37 Tecnológico de Monterrey –DTC -2011 Tenant-based load balancing •Load balancing is an effective solution scheme which purpose is to make the clustered servers equalizing sharing the workload through mutual cooperation and work distribution. •Tenant-based load balancing is proposed to take advantage of isolated parallelism in Web applications, meaning that requests from users are totally independent each other.
  • 38. 6/9/2011 38 Tecnológico de Monterrey –DTC -2011 Tenant-based load balancing •Tenant-based load balancer is part of the SaaS platform and it uses the Tenant Context Managercomponent to retrieve information about tenant statuses. •The tenant-based load balancer tries to allocate requests of the same tenant to an unique virtual machine, depending of the VM capacity. SaaSCore Web AppTenant-based Load BalancerServer PreparerCookie ManagerResponse Parser Request ProcessorTenant Request Scheduler Tenant Context ManagerWorkloadRequests Databases SaaSplatform(Tomcat instance) VMVM… SaaSplatform(Tomcat instance) VMSaaSplatform(Tomcat instance) VMCloud Communication Layeritesm-cloud
  • 39. 6/9/2011 39 Tecnológico de Monterrey –DTC -2011 Tenant-based load balancing •Request Processorreceives requests from HTTP or HTTPS ports and interprets the request method (GET, POST, etc). •Server Preparerinstantiates a new HTTP client, set the request headers and establishes timeouts. •Cookie Managercopies cookie information into the request. •Response Parserreturns the server answer meta data to the client. •Tenant Request Schedulercommunicates with Tenant Context Manager component in order to determine to which VM dispatch the request.
  • 40. 6/9/2011 40 Tecnológico de Monterrey –DTC -2011 Tenant-based load balancing private void readTenantInformation(long tenantID, Request schedRequest) { String VM_IP_ADDRESS = DEFAULT_IP_ADDRESS; TenantRequestSchedulertenantRequestScheduler= TenantRequestScheduler.getInstance(); TenantContextManagertenantContextManager= TenantContextManager.getInstance(); intactiveUsers= 0; //initialize users Map<Long, TenantContext> tenantContextsMap= tenantContextManager.getTenantContextMap(); TenantContexttenantContext= tenantContextsMap.get(tenantID); VM_IP_ADDRESS = tenantRequestScheduler.calculateVMIPAddress(tenantContext); activeUsers= tenantContext.getActiveUsers(); TenantHostInfotenantHostInfo= new TenantHostInfo(); tenantHostInfo.setTenantId(tenantContext.getTenantId()); tenantHostInfo.setActiveUsers(activeUsers+1); hostMap.put(VM_IP_ADDRESS, tenantHostInfo); // UPDATING THE LOAD INDEX loadIndex+= tenantHostInfo.getActiveUsers(); prepareServerRequest(schedRequest, VM_IP_ADDRESS) }
  • 41. 6/9/2011 41 Tecnológico de Monterrey – DTC - 2011 Solution measurements Cloud Communication Layer VM Factory VM Status Handler SaaSCore Web App Tenant-based Load Balancer Tenant Context Manager Requests Tenant-Based VM Calculator Databases SaaS platform (Tomcat instance) VM VM … SaaS platform (Tomcat instance) VM SaaS platform (Tomcat instance) VM itesm-cloud Eucalyptus API Tenant Context Interceptor After setting up the tenant-based components and deploying them over the test bed, all the simulations and tests were run again. Over and underutilization measurements where performed against workload tests (incremental and peak-based). itesm-cloud Databases Apache HTTP VM SaaS platform (Tomcat instance) VM VM … Workload Generation JMeter machines Requests Resource Consumption State (RCS) Monitor SaaS platform (Tomcat instance) VM SaaS platform (Tomcat instance) VM vs.
  • 42. 6/9/2011 42 Tecnológico de Monterrey –DTC -2011 Result Analysisvs. Control group Experimental group
  • 43. 6/9/2011 43 Tecnológico de Monterrey –DTC -2011 Result Analysis •t-student test allows to determine if two averages are significantly different. •(N1+N2-2) = (12 + 12 -2 ) = 22 degrees of freedom = 99.5 accuracy •t-student distribution table produces a value of t= 2.8188as base parameter. •If t >t, we can say with a 99.5%of certainty that one average (in Table 11.2) is statistically less than another column (in Table 11.1). 12221212XXtSSNN   
  • 44. 6/9/2011 44 Tecnológico de Monterrey –DTC -2011 Result Analysis Controlgroup ExperimentalGroup t-student value >2.8188 t parameter Incremental UU 18.42% 8.21% 3.2437 Yes Incremental OU 13.26% 13.25% 1.0282 No Peak-based UU 29.12% 8.77% 4.7208 Yes Peak-based OU 12.22% 9.9% 0.7485 No •Averages for underutilization before tenant-based components have been statistically improved. •On the other hand, both t-student values corresponding to overutilization (OU) are not higher than t, even if the averages were reduced.
  • 45. 6/9/2011 45 Tecnológico de Monterrey –DTC -2011 Conclusions •It was designed and deployed a SaaS platform architecture and applications that run within a cloud computing environment. •It was defined the workload mechanisms and tools to generate request for the test beds. •It was established a formal measure for under and over provisioning of virtualized resources (CPU and Heap memory) in cloud infrastructures. •It was developed monitors for resource utilization (CPU and memory) within virtual machines. •It was defined, designed and developed a mechanism for tenant-level isolation in order separate execution and gather information about tenant' resource usage. •It was created the mechanisms and algorithms for virtual machine allocation based on tenant information and virtual machine capacity. •It was designed and implemented a load balancer in order to distribute requests based on virtual machine statuses and tenant workload distribution.
  • 46. 6/9/2011 46 Tecnológico de Monterrey –DTC -2011 Conclusions •This doctoral thesis demonstrates that resource allocation models have important impact in how the virtualized resources are created and instantiated within cloud environments. •The stated hypothesis has been validated, it was reduced the over and underutilization of virtualized resources in order to obtain cost-effective scalability for Software-as-a-Service applications within a cloud computing pay-per-use infrastructure by implementing tenant-based resource allocation mechanisms such as isolation, virtual machine creation and load balancing.
  • 47. 6/9/2011 47 Tecnológico de Monterrey –DTC -2011 Main contributions •Establishment of formal measurements for under and over provisioning of virtualized resources in cloud infrastructures. •Presentation of an architecture based on open source components for developing, deploying and managing SaaS applications. •This work provides a detailed deployment design about how to setup a cloud infrastructure over commodity facilities and the use of open technologies. •This thesis contributes to the resource allocation topic specifically in cloud computing infrastructures, through new mechanisms for distribute workload in virtualized environments and dynamic load balancing proposal based on global statuses of tenant information.
  • 48. 6/9/2011 48 Tecnológico de Monterrey –DTC -2011 Future Work •Different software platforms •Measuring other resources •Database clustering •Multiple database in SaaS applications •Different workload generation •SaaS architecture and cloud platform •Analytical testing •Performance improvement
  • 49. 6/9/2011 49 Tecnológico de Monterrey –DTC -2011 Thesis outcomes •2 conference papers. •2 journal papers. •Research internship at Microsoft Research with Cloud Computing Futures group. Redmond, WA. (2009). •Business incubation cell about Software-as-a- Service platforms and applications. (2010). •National conferences and collaborations.
  • 50. 6/9/2011 50 Tecnológico de Monterrey –DTC -2011 Publications •Espadas, J.; Concha, D.; Molina, A. “Application Development over Software-as-a-Service Platforms” (2008). The Third International Conference on Software Engineering Advances ICSEA 2008 -Sliema, Malta. •Espadas, J.;Concha, D.; Romero, D.; Molina, A. (2010). "Open Architecture for Developing Multitenant Software-as-a-Service Applications“. The First International Conference on Cloud Computing, GRIDs, and Virtualization. Published by XPS. November 21-26, 2010 -Lisbon, Portugal. •Concha, D.; Espadas, J.; Romero, D. and Molina, A. (2010). "The e-HUB Evolution: From a Custom Software Architecture to a Software-as-a-Service Implementation" in Journal Computers in Industry, Volume 61, Issue 2, Elsevier, ISSN: 0166-3615, Impact Factor 2.014. •Javier Espadas,Arturo Molina, Guillermo Jiménez, Martín Molina, David Concha, Raúl Ramírez. “Tenant-based resource allocation model for scaling Software-as-a-Service applications over cloud computing infrastructures”. Journal of Future Generation Computer Systems, Special Issue on Clouds and Service Oriented Architectures. Impact Factor 2.229 (In review process with minor changes).
  • 51. 6/9/2011 51 Tecnológico de Monterrey –DTC -2011 The end •Questions