infrastructure as a service for mobile testing as a service

28
Infrastructure as a Sevice for MTaas Group 13 Saurabh Jinturkar <[email protected]> Richa Agrawal <[email protected]> Archana Taparia<[email protected]> Akanksha Jain<[email protected]>

Upload: saurabh-jinturkar

Post on 14-Apr-2017

360 views

Category:

Software


1 download

TRANSCRIPT

Infrastructure as a Sevice forMTaas

Group 13Saurabh Jinturkar <[email protected]>Richa Agrawal <[email protected]>Archana Taparia<[email protected]>Akanksha Jain<[email protected]>

MIaasMobile Infrastructure as a Service

Why Mobile Application Testing?In Mobile world , diversity is a problem- Hardware diversity- OS diversity- Screen size diversity Why to Buy when you can rent itProviding Mobile Device / Emulator as a Service can solve this issue

Features of MIaaS

Scalability Billing and Metering service Various OS versions Various hardware configurations such as RAM Support multiple screen sizes

Technologies

Components

Dashboard-Horizon Resource Allocation Resource provisioning Billing

Dashboard Why Horizon?

Built Dashboard Using Django framework

Community support

Benefits of Django over other web application framework:

Scalability

Reusability of code

Flexibility

MVC Architecture

Largest python based web framework

Rest API used for communication between Components

Customization of Horizon

Dashboard

Instances Mobile instances

OpenstackDashboards

Billing Dashboard

Bills Billeditems

Payment method

New Addition

Functionality of Dashboard

Mobile instance Billing• User can launch Mobile

Instance• User can get information

of mobile instance

• Add new Payment method

• View Existing method• View billed items• Delete payment method

Resource allocation

Resources allocation based on Best-fit algorithm On demand self service Exposing RestAPI to resources such as create

emulator , delete emulator, get details about emulator .

Resource Allocation Algorithm1GB

Emulator Request

Resource Allocation 1GB

Emulator Request

AndriodVirtual device

AndriodSDK

AVD Manager

(RPC Server)

AndriodEmulator

<RPC Call>Emulator request

Nova Ubuntu instance

RestAPI

Deployment Diagram

Pexpect Script AVD Manager

Customizable Propertieshw.ramSizehw.touchScreenhw.trackBallhw.keyboardhw.dPadhw.gsmModemhw.camerahw.camera.maxHorizontalPixelshw.camera.maxVerticalPixelshw.gpshw.batteryhw.accelerometerhw.audioInputhw.audioOutputhw.sdCarddisk.cachePartitiondisk.cachePartition.sizehw.lcd.density

Emulator API

Method Operation Description

POST /os-emulators/ Create emulator

GET /os-emulators Get emulators for tenant

DELETE /os-emulators/{id} Delete emulator

Billling

Following SOA (Service Oriented Architecture) Exposing RestAPI to resources such as bill ,

payment method, policy, payment. Admin can define cost matrix for billing. Instances can be charged against these cost

policies. Ceilometer provides samples.

Supported APIsMethod URI OperationGET bill/([0-9a-f]{32}) Get bill for tenantGET bill/([0-9]+ Get bill for idGET bill/([0-9a-f]{32})/([0-9]{2})/([0-

9]{4})Get bill for tenant_ for month and year

POST payment_method/ Create payment method

GET payment_method/([0-9a-f]{32}) Get payment method for tenant

POST payment_method/([0-9a-f]{32})/([0-9]+)

Make payment

GET payment/([0-9a-f]{32} Get Payments fortenant id

GET Policy/ Get policiesPOST Policy/ Create Policy

Usage MetricUsage Metric NameMetric DescriptionOpenstack Service NameEntity Name

CurrencyNameShortFormSymbolConversion Rate

PolicyUsage MetricCurrencyUnit Usage Currency Ratio

Billing policy

Learning/Gain

Learnt python, Django, openstack, android sdk Communication using REST APIs

Developed extensible code that can be contributed to horizon dashboard project

AVD Creation script and RPC server can be contributed to Nova project

Thank you!