0% found this document useful (0 votes)
347 views30 pages

Internship Presentation

This document discusses two projects related to cloud computing and testing on Microsoft Azure: 1) An AzureNodeMgr library that allows simulating machine up/down scenarios and managing Azure infrastructure programmatically. It exposes APIs to inflate/deflate clusters and gracefully/abruptly bring nodes down. 2) A CTH Scheduler that runs exclusive test instances on Cloud Test Host (CTH) to avoid interference. It introduces exclusive test tagging, prioritizes exclusive tests, and extends the existing scheduling pattern to handle exclusive test instance assignment.

Uploaded by

Ashish Prasad
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPTX, PDF or read online on Scribd
Download as pptx or pdf
0% found this document useful (0 votes)
347 views30 pages

Internship Presentation

This document discusses two projects related to cloud computing and testing on Microsoft Azure: 1) An AzureNodeMgr library that allows simulating machine up/down scenarios and managing Azure infrastructure programmatically. It exposes APIs to inflate/deflate clusters and gracefully/abruptly bring nodes down. 2) A CTH Scheduler that runs exclusive test instances on Cloud Test Host (CTH) to avoid interference. It introduces exclusive test tagging, prioritizes exclusive tests, and extends the existing scheduling pattern to handle exclusive test instance assignment.

Uploaded by

Ashish Prasad
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPTX, PDF or read online on Scribd
Download as pptx or pdf
Download as pptx or pdf
You are on page 1/ 30

Content

0 Cloud Computing

0 Azure Management Library


0 Cloud Test Host (CTH) Scheduler

What is the cloud?


An approach to computing thats about internet scale and connecting to a variety of devices and endpoints

Cloud Services

IaaS
Infrastructure-as-a-Service

PaaS
Platform-as-a-Service

SaaS
Software-as-a-Service

host

build

consume

Cloud Services

Typical IT Management
Allocated IT-capacities Not Enough Power Load Forecast

IT CAPACITY

Too Much Power

Actual Load

TIME

The Azure Advantage


No screaming customers
Capacity on Demand

Load Forecast

IT CAPACITY

No capital laying idle

Knob goes up... And... down

Lower Capex Actual Load

TIME

Windows Azure
0 Windows Azure is a foundation of Microsofts

Cloud Platform for Developers 0 Operating System for the Cloud


0 0 0 0

Runs applications in the cloud Provides Storage Application Management Developer SDK

0 Windows Azure ideal for applications needing


0 Scalability 0 Availability 0 Fault Tolerance

Windows Azure Platform

Project 1: AzureNodeMgr Library


0 Azure Infrastructure management 0 Inflate-deflate the product cluster. 0 Bringing node down gracefully/abruptly like in Windows Update scenario on Azure.

0 Built on the top of Azure Service Management REST

API.

Need of the Library


0 To simulate scenarios of machine up-down and

upgrade of the client deployment.

0 To provide a library for carrying out the required

functionalities from the application rather than using the azure portal.

Interface: IAzureServiceManager
Properties Functions

Implementation
0 AzureServiceMgr exposes the APIs to the user of the

library.

0 A separate thread handles all the pending list

requests.

Use of Library

Callbacks

Learning
0 Azure Infrastructure

0 REST API
0 Asynchronous Functions with Callbacks

Questions?

Project 2: CTH Scheduler


0 Contract: 0 Running Exclusive Test Instances in CTH. 0 No existing test should break with new change.

Cloud Test Host


0 A test infrastructure that allows us to run performance, stress and scale tests

from WA. 0 Ability to run current stress (endurance) and scale tests. Users can set:
0 0 0 0 0

Duration Tests to run Target threads to run per test Threads per process Delay between starting each process

0 Users can monitor:

0 0 0 0 0

Runs can be stopped at any time Tests can run against any environment SDK and test binaries can be updated without redeploying test infrastructure Display a history of the results of tests that we had run User interacts with the system through a Web Site, with some level of security

0 Current pass rate % 0 Any counter that tests specify, e.g. messages sent, messages received, etc. 0 Test logs

Motivation
0 Latency Check: An exclusive test running in some VM may

monitor the latency of the other tests running in other VMs. 0 Management of VMs: An exclusive test running in some VM can carry out node up-down or rolling upgrade of other VMs. 0 Test Specific: Some tests may require to be running in exclusive mode and will fail when some other test instance gets scheduled and run in its VM. 0 Stress Testing: We may have a better interpretation of the stress test when the test is running in exclusive mode.

Changes Required
0 The design requires three changes: 0 Changes in the core scheduling part of the CTH. 0 Introduction of the tags in the ste file so that test writer can configure the test to be exclusive. 0 Preference to the exclusive threads to be read first and scheduler to assign worker role first. 0 Project wise 0 CTH_Common 0 CTH_WebRole 0 CTH_WorkerRole

CTH_Common
0 First, we introduce IsAvailable flag to the worker node

in the class WorkerRoleInfo.cs

[DataMember] public bool IsAvailable { get; set; }

0 Secondly, we introduce an IsExclusive flag with every

AutoScheduleItem in the AutoScheduleItem.cs


[DataMember] public bool IsExclusive { get; set; }

CTH_WebRole
0 Core Scheduling Change

0 Changes covered in the design doc.

CTH_WorkerRole
0 In the file TestRunnerServices.cs, introduce the following property for determining whether

the given worker role is available for scheduling or not. private bool isAvailable = true;

0 Again in the public void GetInfo(object source, System.Timers.ElapsedEventArgs e), have the

IsAvailable property updated, this.workerRoleInfo.IsAvailable = this.GetIsAvailable();

0 Whenever a caseSetId is added to the workerRole for scheduling, mark it as available or

unavailable as per the exclusiveness of the test instance to be run. this.SetIsAvailable(test); workerRole to be available. this.SetIsAvailableOnStopOrPurgeOrException();

0 Whenever an exception is thrown or the caseSetId is stopped or is purged, then mark the

Recovery and CaseSetResults Table


0 Currently, all the instances of the tests that are to be scheduled

are inserted in the CaseSetResult Table and the instances that are being scheduled are inserted in the Recovery Table.
0 Periodically, after every 3 min the web role scans the Recovery

Table and picks up all the CaseSetResultId which are not in the RunningCaseSets of the worker roles for scheduling if it is not yet scheduled or deletes the entry if it has already been scheduled and completed.
0 The new design extends the existing pattern and adds to the

Recovery table all those instances for which a worker role could not be assigned.

IsExclusive TAG IN THE STE FILE


0 Syntax:
<AutoScheduleItem> <Name>Test1.test</Name> <TargetInstances>5</TargetInstances> <IsExclusive>true/false</IsExclusive> </AutoScheduleItem>

0 Note:
0 The new tag in .ste file is not mandatory and if no tag is specified then

value is taken as false /Non-exclusive.


0 Irrespective of the order in which tests are specified, exclusive test

instances get scheduled first.

Test Scenarios
0 The table below lists the test scenarios along with their priority:
Serial No
1 2 3

Priority

Worker Roles
8 8 8

# of Exclusive Test Instances


0 8 7

# of NonExclusive Test Instances


20 0 3

Behavior

P0 P0 P0

Existing Behavior. Unique machine for each test instance. Unique machines for the 7 exclusive tests and the remaining 3 test instances in a single machine. Each of the exclusive test instance gets a unique machine while the 16 non-exclusive test instances get scheduled in the remaining four machines. Similar to the above scenario.

P0

16

P0

18

P1

12

First all the machines are uniquely allotted to exclusive instances. Once the instances get completed, non-exclusive instances get scheduled.
First all the machines are engaged to the 8 exclusive instances. Once they are done, machines are available for the remaining test instances.

P1

10

10

Questions ???

Thank You.

You might also like