Вы находитесь на странице: 1из 6


Internship Report

Ashish Prasad


Following projects were allocated to me during the course of the summer internship: 1. Azure Node Management Infrastructure. 2. Adding machine level scheduling to Cloud Test Host.

AZURE NODE MANAGEMENT INFRASTRUCTURE: Windows Azure and SQL Azure help developers build, host and scale applications through Microsoft datacenters. It is an Operating System for the Cloud: it runs Cloud Applications, provides online Storage/backup of data, Application Management and Developer SDK to integrate the applications with Azure. Till the time of my internship, the only a way for the developer/customer to manage his applications was to do it manually through the Microsoft Azure Portal. My task was to create a dynamic link library(dll) for the developers to access their application from the Azure SDK. This dll would also have been of great use to the Microsoft SDETs and SDEVs who can manipulate the various functionalities offered by the dll to simulate and test scenarios of inflating/deflating the product clusters as well as running Windows Update on the product clusters by gracefully/ abruptly bringing down the node. 1


Internship Report

Ashish Prasad


Cloud Test Host Scheduler is a test infrastructure that allows running performance, stress and scale tests on Azure. It has ability to run current stress (endurance) and scale tests. Its basic infrastructure consists of a Web Role, few Worker Roles and User. Web Role is the communicating link between the User and Worker Roles. The User specifies the Web Role the tests to be run, the duration for the individual tests, the number of target threads per test, the number of threads per process and the delay between starting each process. The Web Role then schedules the tests to the worker nodes randomly and closely monitors the progress of the tests running on these machines. The Web Role provides options to Users to monitor current pass rate %, any counter that tests specify, e.g. messages sent, messages received, etc., Test logs, display a history of the results of tests that user had run. The Cloud Test Host enables runs to be stopped at any time and tests to run against any environment using Azure SDK. It also enables auto update of test binaries without redeploying test infrastructure. However, there was no option available for the users to ensure machine level scheduling. This requirement emerges in cases where some test needs to run in exclusive and non-exclusive mode. What it means that whichever test is specified to be exclusive should run on the worker role on which nothing else should be running. And for the non-exclusive they can get scheduled as per the availability of the CPU on the worker roles.

Task Sub-Tasks Description
Days Start Date End Date Comments

Azure Infrastructure management

Understanding the design.

Go over the library design and clarify any doubts from Arun.

12 May


Internship Report

Ashish Prasad

1>Inflate-deflate the product cluster. 2>Bringing node down gracefully/abruptly like in Windows Update scenario on Azure.


Create a sample API exposing one functionality; say rebooting an instance.

This includes learning REST APIs, bit about C#, creating instances in Azure, validating APIs.

Coding service library.

Create all remaining functionality

This means code complete and sending for review.

Creating Testing plan.

Create test cases to test service library and review with Arun and me.

Executing test cases.

Run the above identified cases.

Demo to team.

Prepare an informational mail and schedule demo to V team.

2 June

Modifying Cloud Test host scheduler to incorporate machine level scheduling

Understanding CTH.

Installing CTH, running tests on CTH. 4 6 June

Understanding CTH scheduling Algorithm.

Go over the CTH code to understand scheduling algo and how web role interacts with worker roles.

Understanding the existing

Review the existing

design doc and improvising it.

Internship Report
design doc.

Ashish Prasad

Creating a proto-type.

Validate the design by creating a prototype on CTH.

Submit the design for fresh review to V team as well as to CTH team.

Implement the design.

Implement and send for review and incorporate feedbacks.

Create test plan to check new functionality as well as regressions.

Create test cases to validate that no new regressions has been introduced as well as to validate new functionality.

Execute test cases.

Demo to team

15 Jul


Internship Report

Ashish Prasad


List each goal/objective determined at the beginning of your internship. Goals should be listed in priority order.

Capture the specific success measurements and metrics your Manager will use to determine whether the results you deliver meet expectations.

Execution Plan:
Identify how you will achieve your commitments, by stating the actionable items and significant milestones that you plan to deliver during your Internship.

Self assessment
Intern to go through each objective and do a self assessment

Managers Assessment

(to be filled by Manager)

(to be filled by Intern)

(to be filled by Intern)

(to be filled by Manager)

Deliver Azure Environment service library 1> Implementing 100% of agreed upon functionality in library. 0 P0 design altering bug. P0 bugs getting resolved as fixed < 50 % of total bugs. Slip from timeline of each task should be < 30 % of total time allocated for the task. Understanding the design of the Azure Service Management REST API. Creating the prototype for functionality. Creating all remaining functionality. Sending the code for review. Implementing the suggested features. Creating test cases to test service library. Identifying the bugs and fixing them. Demonstrating the service library functionalities to the team. Implemented the AzureNodeMgr library as per the agreed design. Tested the library against all P0 test cases and debugged all the known P0 issues. Resolved all the comments in the CodeFlow reviews. Gave demo to the team about the use of the library. Ramped up on Azure quickly especially around debugging. Learned REST based APIs and understood the design for the library. Initially worked on the proposed design as it is but later gave suggestions to improve the design. Could have done better here. Created the initial test plan which had holes but incorporated the feedback to improvise the test plan. Overall, did fine job. Studied the existing proposed design as well as CTH scheduler code. While prototyping, hit multiple issues around synchronization and consistency, came up with solutions in all such cases and improvised the design. Collaborated with Redmond

2> 3>


Modifying Cloud Test host scheduler to incorporate machine level scheduling 1> Implementing 100 % of design requirements. No existing test should break with new change. 0 P0 Code defect in CTH scheduling algorithm due to this change. Slip from timeline of each task should be < 30 % of total time allocated for the task. Understanding CTH fundamentals. Running tests on CTH and becoming aware of the CTH scheduling Algorithm. Exploring the existing design doc and improving upon the design. Validating the design by creating a proto-type on CTH. Implementing the design and sending it for review. Creating test cases to Went over the CTH scheduler design. Modified the design doc for the new CTH Scheduler. Implemented the required changes. Validated the new scheduler by running reliability test. Resolved all the comment s and suggestions in the CodeFlow





Internship Report
identify unresolved issues and fixing the same. Demonstrating the modified Cloud Test Host Scheduler to the team. reviews. Gave demo to the team about the new scheduler.

Ashish Prasad
based CTH team on code review. Although much to be desired from test plan and he needs to utilize his learning of the system.to have stronger test plan. Implemented and executed the reliability run over the week for various scenarios. Overall did impressive job in terms of designing, coding and testing.

Interns overall comments The internship was an enriching experience. I got an opportunity to work on various technologies like Azure, Cloud Test Host, Code Review and Visual Studio. I also had a first-hand experience in drafting designs and building libraries for the projects allocated to me. The projects were both challenging and fun to work on. The mentor and manger encouraged me to learn more and as well as innovate on the existing design documents. I also had a chance to work with other team members in Hyderabad and Redmond. I got to know about the work ethics of the company and improved my coding skills during my stay at MSIDC. Managers overall comments Ashish showed remarkable ease in understanding new technologies like Azure, Cloud Test Host (Test harness for Azure testing) , collaborated with various team members as well as Redmond based team successfully. His coding skill especially during the second part was very good; he not only took care of new design but fixed existing bugs in the code which span across the azure roles. He takes the feedbacks positively and works on them and at the same time questions the feedbacks. His confidence was visible during the demo when he took questions/feedback and answered/accepted them. Initially he was less proactive in suggesting design alternatives and optimizations but in second part of internship he took the feedback and actively suggested design alternatives. His first draft of test cases was not up to the mark for both sub-problems but he took feedback and improvised on those and in implemented and executed a successful week long reliability run.