Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

Resource Monitoring in Cloud Computing

Akshay Mehta
Institute of Technology (ITNU)
Nirma University
Ahmedabad, India
17bce061@nirmauni.ac.in

Abstract—Cloud computing is emerging evolutionary tech- down when user don’t need.Cloud also keep backup of
nology.In cloud computing,user have to pay-per-usage of ser- data and user can backup many times as user wish.
vices.Resource monitoring plays major role in cloud comput- 4) Elastic and customizable: Cloud have infinite pool of
ing.Any cloud computing company’s faith depends on how
it manages and monitoring resources which are allocated to resources.User expects cloud to provide resources at
their users.Resources should be divided in three parts stor- any time.It is expected that additional resources should
age,computing and networking.Resource monitoring is used for be provisioned automatically when load increases and
billing purpose,auto scaling purpose,task management purpose released when load decreases.On cloud,different config-
etc. uration resources available which can used to make user
Keywords—cloud computing,resource monitoring,resource
monitoring metrics resource customize as user want.
5) Self service: For using cloud services,user have to re-
I. I NTRODUCTION quest resources which will allocated to them dynami-
cally and without human interventions.
In this paper we will see various resource monitoring
techniques and different metrics which are used for resource There are mainly three layers of cloud
monitoring.The rest of the paper is organized as follows. • Representation: Different learning methods may adopt
Section 2 provides an overview of cloud computing and it’s different representation formalism for the data and knowl-
benefits.Various types of clouds are also discussed in this edge (functions) to be learned. In some learning method,
section.Resource monitoring and metrics which are currently the target function is not explicitly defined [5].
used in cloud computing are discussed in section 3 and • Characteristics of learning process: Learning can be su-
4.Finally in Section 5, we conclude the paper with remarks pervised or unsupervised. Different methods may have
on future work. different inductive bias, different search strategies, differ-
II. OVERVIEW OF C LOUD C OMPUTING ent guiding factors in search, and different needs regard-
ing the availability of a domain theory. For a target func-
Cloud is group of connected servers which pro- tion, its generalization can be eager (at learning stage) or
vides on-demand storage services,on-demand computer lazy (at classification stage), and its approximation can
power,application services and more other resources on in- be obtained either locally or globally with regard to a set
ternet.There various benefits of cloud computing which are of training cases. Learning can result in either knowledge
enumerated below: augmentation or knowledge (re)compilation. Depending
1) Cost Efficiency: Recently a study done by Rackspace on the interaction between a learner and its environment,
surveyed that 80 percent of cloud users experienced there are query learning and reinforcement learning [5].
cost savings and 56 percent users noted an increase • Properties of training data and domain theories: Data
in profit.Hardware cost reduces,labour cost reduces and gathered for the learning process can be small or large in
maintenance cost becomes to zero because cloud ser- quantity, and noisy or accurate in terms of random errors.
vices are available over internet.Cloud services are avail- Data can have different valuations. Different learning
able in pay-per-usage model.So it also decreases capital methods can have different criteria regarding training
investment and increases productivity. data, with some methods requiring large amount of data,
2) Highly Reliability and availability: As day-by-day cloud others being very sensitive to the quality of data, and
users are increasing,the services and resources provided yet another needing both training data and a domain
by cloud is highly available and reliable.One illusions theory. On the other hand, the quality of domain theories
about cloud is that it has infinite pool of resources (correctness, completeness) will have direct impact on the
which means that resources are always available.The outcome of analytical learning methods. Finally, based on
applications running on cloud are easily transferred to the way in which training data are generated and provided
other servers if a server fails. to a learner, there are batch learning and on-line learning.
3) Storage capacity: Cloud computing has no bound- • Target function output: Depending on the output, learning
aries.User can increase storage when needed and trim problems can be categorized as binary classification,
multi-value classification and regression [5]. req. on system functions(FR), compatibility, performance effi-
• Theoretical underpinnings and practical considerations: ciency, security, maintainability etc [3]. If there is a word like
Underpinning learning methods are different justifica- utilization, capacity in a sentence then this sentence labeled
tions: statistical, probabilistic, or logical. What are the as performance efficiency. If there is a word like authenticity,
frameworks for analyzing learning algorithms? How can confidentiality in a sentence then this sentence labeled as
we evaluate the performance of a generated function, and security. To classify data machine learning methods like the
determine the convergence issue? What types of practical k-nearest neighbor, the Naive Bayesian method is used [3].
problems do we have to come to grips with [5]?
B. Product Cost estimation
III. M ACHINE L EARNING A LGORITHMS
In software engineering, major issues are cost estimation
Machine learning deals with the issue of how to build
and effort allocation. With the help of a software cost estima-
computer programs that improve their performance at some
tion model, project managers perfectly utilize their resources.
task through experience. Machine learning algorithms have
For cost estimation, we have to take many things into consid-
been utilized in:
eration. The growth of software depends upon software cost
1) Data mining problems where large databases may con- and effort calculation. Software cost estimation is done by two
tain valuable implicit regularities that can be discovered methods: algorithmic and non-algorithmic.
automatically In non-algorithmic methods, the human brain is used. It
2) Poorly understood domains where humans might not includes expert judgment method, estimating by analogy,
have the knowledge needed to develop effective algo- bottom-up estimating model, etc. Expert judgment the method
rithms uses an expert or group of experts to decide the estimated cost
3) Domains where programs must dynamically adapt to of the product. The analogy technique compares the proposed
changing conditions. product with a similar product build earlier and makes cost
Learning a target function from training data involves many estimation. In bottom-up, the product is divided into segments
issues (function representation, how and when to generate the and their estimated cost added to make a final estimation of
function, with what given input, how to evaluate the perfor- the proposed product.
mance of generated function, and so forth). Major types of Algorithmic methods are based on formulas. The variables
learning include: concept learning (CL), decision trees (DT), in these formulas are code size,effort,estimated duration etc.
artificial neural networks (ANN), Bayesian belief networks There are several machine learning algorithm is also used
(BBN), reinforcement learning (RL), genetic algorithms (GA) to estimate the cost of the project [1]. Case-based reasoning
and genetic programming (GP), instance-based learning (IBL), used to collect and store the cost results of previous project
inductive logic programming (ILP), and analytical learning functionalities with effort and used language. We compare
(AL). Not surprisingly, machine learning methods can be the proposed product with the past one and estimate cost.
(and some have already been) used in developing better tools If any new functionalities found then it will recollect the
or software products. Our preliminary study identifies the functionalities. A decision tree is widely used to estimate the
software development and maintenance tasks in the following cost of the product. By extracting attributes, use the most
areas to be appropriate for machine learning applications: informative attributes to create a tree and split attributes where
requirement engineering (knowledge elicitation, prototyping); it is needed. By providing input variables, we can easily
software reuse (application generators); testing and validation; estimate cost from traveling root to leaf [1].
maintenance (software understanding); project management
(cost, effort, or defect prediction or estimation)
IV. A PPLYING M ACHINE L EARNING TO S OFTWARE
E NGINEERING TASKS
A. Quality Requirement analysis
For any software creation, SRS is created and each detail of
software listed in SRS documents. Quality Requirements are
the major parts of software engineering. Software requirement Fig. 1. Productivity based on software complexity distribution
specifications should be met. In SRS documents requirements
are listed with there class. The SRS is written in natural One most simple method which is used to predict cost is
language(English), we can here use NLP and machine learning shown in Fig. 1. Here, software complexity is distributed in
techniques to detect and classify quality requirements state- low, average, high and very high. If complexity is low or
ments. average then a line of code generated by a person per hour is
To classify requirements statements, we are mining sen- between 30 to 60. If complexity is high or very high then if
tences from SRS and based on written words, fetch keywords team size less than 5 then productivity per team per hour is
from sentences and based on keywords label the sentences between 60 to 80 lines of code and if team size is greater than
based on req. on user interface(FR),req. on database(FR), productivity per team per hour between 80 to 120 lines of code.
There are other factors also affect the cost like development V. C ONCLUSION
language, the platform used for development, etc. In this paper, we show how Machine learning can be used
for solving software engineering problems and not only can
C. Software Reusability prediction machine learning be used to build tools for software develop-
ment and maintenance tasks, but can also be implemented into
While developing new software, we can use previously built software products to make them reliable and self-configuring.
software or we can partially modify it for a new system. This The software engineering discipline will definitely be able to
method is a cost-effective, reliable and speedy development benefit from the usefulness of machine learning.
for new systems. Here we are measuring reusability level(low, We can also clearly see that proper implementation of
medium, high) of function-based software components [2]. machine learning in software engineering is not only beneficial
The main benefit of reusability is that they provide error- but also a field worth pursuing.
free codes because they are previously tested. There is a
problem also associated with reusability like maintenance cost, ACKNOWLEDGMENT
support tool, etc. There are mainly two ways to develop We would like to thank Prof. Vivek Prasad for giving us
functionality. One from scratch and another from extracting the opportunity to dwell into the fascinating world of Cloud
needed functionality which was built earlier. Software reuse Computing and helping us realize how well cloud computing
also reduces project risk, time to market. change the tech world. We would also like to thank our parents
In this model, various metrics are used to predict the without whom none of this would have been possible to begin
reusability level. The metrics used are cyclomatic complexity, with.
Halstead volume, reuse frequency, Maintainability index [2].
Cyclomatic complexity gives values of decision nodes in code R EFERENCES
like if-else, for, while, etc. Halstead volume shows the volume [1] Mahmood Mohd Al Asheeri and Mustafa Hammad. Machine learning
of source code with respect to the operator and operands. models for software cost estimation. In 2019 International Conference on
Innovation and Intelligence for Informatics, Computing, and Technologies
Reuse frequency calculates the ratio of static calls to the (3ICT), pages 1–6. IEEE, 2019.
total call of the component. The maintainability index shows [2] Surbhi Maggo and Chetna Gupta. A machine learning based efficient
how code easily supported and changed. Maintainability index software reusability prediction model for java based object oriented
software. International Journal of Information Technology and Computer
takes variables such as cyclomatic complexity, line of code Science (IJITCS), 6(1):1–12, 2014.
and volume of code. Based on code, these metrics are calcu- [3] Tetsuo Tamai and Taichi Anzai. Quality requirements analysis with
lated. These metrics also have some influences on reusability machine learning. In ENASE, pages 241–248, 2018.
[4] Du Zhang. Applying machine learning algorithms in software devel-
attributes like commonality of functions, ease of modification, opment. In Proceedings of the 2000 Monterey workshop on modeling
performance with respect to time and space, cost, etc. Based software system structures in a fastly moving scenario, volume 26, pages
on these metrics,KNN machine learning algorithm is used to 275–291, 2000.
[5] Du Zhang and Jeffrey JP Tsai. Machine learning applications in software
classify code into reusability levels [2]. Here computed metrics engineering, volume 16. World Scientific, 2005.
are used to find the distance.
To predict more precisely we have to take each reusability
metric into consideration because some metrics influencing
commonality of functions, some influencing testability, some
influencing cost. The given components are analyzed based
on metrics value. Based on metrics value, each component
assigned re-usability level for every metrics and based on this
finally component classify.

D. Software Testing
There are several test cases that require repetitive actions to
be performed by a human tester. Machine learning can learn
these actions and automate the actions without a programmer
having to write scripts to execute those actions.
Machine learning can also find out outliers or corner cases
that are likely to break the production deployment in a cloud
based distributed application [4]. When there are several
interdependent micro services being deployed in containers
in a clustered environment, it’s very hard to imagine a rare
combination of circumstances that can lead to a race condition.
Outlier analysis on logs can flag out these special circum-
stances [4].

You might also like