Distributed Scalable Server Configuration Management

yompmulligrubsInternet και Εφαρμογές Web

31 Οκτ 2013 (πριν από 3 χρόνια και 9 μήνες)

67 εμφανίσεις

Distributed Scalable
Server

Configuration Management

Masters Project Proposal

by

Chris Shuster

University of Colorado at Colorado Springs

Colorado Springs, CO

cshuster@uccs.edu

1

Overview

This section will give a brief overview of the complexities of
servers and server software as well as a
discussion on the necessity of configuration management for server systems.

1.1

Servers & Server Software

Servers and server software
are

a critical and often overlooked portion of an IT system. Servers and the
softwar
e that runs on them
come

in extremely wide and varied forms. Server
s

come from almost all
major system manufactures and are based
on
many different architectures from x86 to SPARC to MIPS
running a range of operating systems that
are

equally as diverse.
Furthermore the servers and their
operating systems host an almost unimaginable variety of server software

that is
anything from a web
server to a chat server to a game server. A
s
of
an example
of
just
how

immense
the
variety of server
software available
is,
a non
-
all inclusive list of web server software
,

which is
also known as an HTTPD
,

list
s

upwards of 50 different products

[1]
.

The importance and complexity of s
ervers and sever software is only going to increase. This is due to
the industry’s push towards

cloud computing.

Cloud computing is the result of a trend towards hosting
computing resources
on
a cluster of servers
that
are

usually
access by a relatively
dumb client, often a
web browser

[2]
.
This push stems from
users’ desire to have all information available to them all of the
time regardless of where they are and

if they are using a desktop computer or a smart phone.

Along
those lines virtualization has become an extremely important and powerful tool to meeting the
flexibility demands placed on modern systems. Virtualization however introduces further complexity

into already complex server systems.

1.2

Configuration Management

With the
ever

inc
reasing complexity of server systems managing those systems becomes equally as
complex. Managing servers one at a time would require a multitude of system administrators and
w
ould be slow to react to changes in an environment that varies from one minute to the next.

It is for
this reason it’s often critical to have a configuration management system. Configuration management
systems allow for centralized management of often ge
ographical distributed server clusters.
Furthermore configuration management systems are often highly automated leaving the system
administration staff able to focus on critical tasks while leaving minor administrative tasks to be handled
automatically.
Configuration management systems come in a wide variety that allows for anything from
the server’s hardware to its operating system to the server software being ran on the server to be
managed. Additionally equally diverse is how the configuration managem
ent system manages severs
systems, which can be anything from simply monitoring the server to adjusting settings in real time.

2

Related Research

This section will give an overview of several relevant research papers and give a discussion on the
deficiencies

of the proposed solutions in the papers.

2.1

Overview

Very little research on server configuration management focuses on the problem as a
whole
. Almost all
relevant research instead focuses
narrowly on a specific aspect and/or
problem of configuration
manage
ment.
The remainder of this subsection will discuss a few examples of related research.


A Smart Hill

Climbing Algorithm for Application Server Configuration


[3]

and “
Strider: a black
-
box,
state
-
based approach to change and configuration management and support

[4]

both propose
automated methodologies for handling configuration. Smart Hill Climbing
[3]

proposes a learning
algorithm to handle the complex task of configuring a
n application server based on the demands place
on it by an application, while Strider
[4]

proposes a state based system to simplify analysis of
configuration probl
ems.


Managing Energy and Server Resources in Hosting Centers


[5]

and “
System Management Framework
and Tools for Beowulf Cluster


[6]

both propose
methodologies for managing server resources. Hosting
Centers
[5]

focuses on automatica
lly provisioning servers in order to redu
ce energy costs, w
hereas
System Management Framework
[6]

proposes methodologies for managing the nodes in a Beowulf
cluste
r.


Distributed Configuration Management via Java and the World Wide Web


[7]

and “
Dynamic Cluster
Con
fig
uration and Management using JavaSpaces


[8]

both propose configuration management systems
that utilizing Java. Each proposes configuration management of different types of systems.
Distributed
Configur
ation Management

[7]

proposes a revision control system while
Dynamic Cluster Configuration
and Management

[8]

proposes a system to managed clustered nodes. The difference between these
two and other related research already discussed is that they both utilizing Java as a platform to develop
their solutions. This is because
both see Java as being ideal for allowing the systems to be more flexible
due

to Java being platform independent.

2.2

Deficiencies

The related research discussed in the previous subsection has several issues.
One of the key issues is
that
none
of the research

address
es

the issue of managing a server platform as a whole. They all
narrowly focus on configuring specific aspects, for example Smart Hill Climbing
[3]

only fo
cuses on
configuring an application server. While each proposed solution may work well for configuring the
specific item it does mean that multiple systems would be required to manage the configuration of an
entire server platform.

Furthermore
,

with the
exception of
Distributed Configuration Management

[7]

and
Dynamic Cluster Configuration and Management

[8]
, none of the proposed systems even suggest
the use of flexible and platform independent technologies to allow the sy
stems to address broader
issues, thus making the proposed solutions fairly un
-
maintainable.

3

Existing
Systems

This section will give an overview of a few of the more well known existing configuration management
systems and then detail their deficiencies
.

3.1

Systems

These subsections will briefly overview a few well known configuration management systems.

While
there is far more configuration management systems th
a
n listed here
,

this subsection is limited to three
as the intention is to provide understanding into the capabilities of currently available configuration
management systems.

3.1.1

Microsoft
System Ce
nter Configuration Manager

Microsoft
System Center Configuration Manager

is an enterprise level system configuration
management system.

Configuration Manager is capable of providing Windows based server and
workstation configuration management. Configura
tion Manager is capable of both configuring system
settings, such as security settings and power management settings and as well as managing software
updates

[9]
.

3.1.2

Canonical Landscape

Canonical Landscape provides centralized system management for Ubuntu Linux based servers and
workstations.

Landscape allows for centralized management of user accounts, package installs and
system monitoring

[10]
.

Landscape’s is web based
hosted on Canonical
servers with the option for large
enterprises to host a local dedicated
copy of Landscape
[11]
.

3.1.3

Webmin

Webmin is a web base UNIX system administration interface

[12]
. Webmin is only capable of

administrating the system it is directly installed on. Webmin however allows both the operating system
and all install server software on the server to be managed from a central location. Webmin supports
several distributions of Linux and UNIX as well a
s limited Windows support in recent versions.

3.2

Deficiencies of Existing Systems

While the aforementioned configuration management

systems

are very capable they each have
significant

limitations.

One of the major limitations

of most
common and well known
co
nfiguration
management systems
is that they are
proprietary, which is the case for both
Microsoft
System Ce
nter
Configuration Manager

and

Canonical Landscape
.

Configuration Manager only supports Windows
systems and then within that limitation only supports non end of life versions. Similarly, despite the
inherent open nature of
Linux, Landscape only supports Ubuntu distributions.

The proprietary nature of
most configuration management systems makes it nearly impossible to support a mixed environment
with a single configuration management system.

Free and open source software (F
OSS) like Webmin
generally don’t incur the same proprietary limitations that pay solutions have but instead are limited in
other ways. For example in the case of Webmin while it does support a much wider variety of platforms
it is only capable of handling

the configuration of the server it is installed on.

Another significant limitation of most configuration management systems is they are typically designed
to either manage the server’s operating system or the installed server software but rarely both.
Co
nfiguration Manager for example is primarily for managing the operating system with limited support
for managing Microsoft server software.

Similarly Landscape is capable of installing and updating
different software packages but more exotic software that

Canonical doesn’t support isn’
t supported in
Landscape. Again FOSS solutions like Webmin are more flexible but are limited in other ways as
mentioned previously.

4

Proposed System

With the previous discussion of the need for configuration management syste
m
s

as well as the
discussion of currently available configuration management systems and their deficiencies in mind

a
new

configuration management system
is proposed in order
to address the
se

needs and deficiencies.

The following subsections will detail a

high level overview of proposed solution and technologies.

4.1

Overview

The proposed system is a web based scalable pluggable server configuration management system.
The
goal of the system is to be flexible and allow virtually any server operating system and

server software
to be managed. Furthermore the system will leverage currently available technologies where possible
in
order
to simplify development and maintenance of the system.

4.2

Key Technologies

The following subsections will briefly discuss key techno
logies to be leveraged for this system

4.2.1

Java

Java is an object orientated C style programming language that is designed to allow software to be
written once and run on almost any platform. Java code is not compiled to native instructions like C or
C++ but
instead compiles to byte codes that run in an interpreter know as a Java Virtual Machine (JVM).
Java however unlike strictly interpreted languages like Perl runs at nearly native speeds. This is due to
the JVM being equipped with a Just in Time (JIT) com
piler that compiles the Java byte code to native
instructions just before the application is executed. Beyond the flexibility of being able to run a Java
application on any platform with an appropriate JVM, Java is also equipped with an extensive
applicat
ion programmer interface (API) that simplifies development by removing the need for the
developer to implement common tasks.

4.2.1.1

Java Enterprise Edition

Java Enterprise Edition (Java EE) is an extension to the standard Java API that provides advanced
enterprise and web application capabilities. This includes Servlet and Java Server Page (JSP) which
provide the ability to create dynamic web applications.
Additionally Java Persistence Architecture (JPA)
allows for direct
database

table to object mapping abstracting away specific details on interaction with
the database.

4.2.2

Glassfish Application Server

Java EE is only a specification with no accompanying implem
entation. Glassfish Application Server
provides the implementation of the Java EE specification as well as provides a complete enterprise and
web application server. While Glassfish is not the only application server that implements the Java EE
specifica
tion
,

it is the reference implementation and as such is updated nearly in unison with the
specification.

4.3

High Level Design


Figure
1

High Level System
Design

The system will consist of several key
components. The first and most critical is the Glassfish application
server running the custom built configuration management enterprise application. The Glassfish servers
will be clustered together to provide both redundancy and scalability to the confi
guration management
application. Glassfish has built in support for server clustering and is capable of replicating a session
across multiple servers in order to provide uninterrupted service. Furthermore the individual Glassfish
application servers that

are part of the cluster do not have to be geographically located near each other
which allow the closest server to handle requests.

Each Glassfish application server will run a copy of a custom coded configuration management
application. This application

will handle the communication with other configuration management
servers in the cluster, communication with the user and communication with the managed servers. The
communication with managed servers will utilize standard Hyper Text Transfer Protocol (H
TTP) to send
Extensible Markup Language (XML)

commands and configurations to the managed servers as well as use
HTTP and Hyper Text Markup Language (HTML) to communicate with the users.

The next component in the system is the servers that will be managed b
y
the

configuration
management system. Each managed server will be running a custom coded client.
The client

is
responsi
ble for communicating with the configuration management
servers
and carrying out any
commands
and configuration changes
issues to it.

The client will have elevated access to the system in
order to carry out any configuration changes.

Additionally the client will be written in Java to allow it be
platform independent.

The client with communicate utilizing protocols and formats as speci
fied earlier
in this section.

Both the management server and the management client running on the managed servers will support
virtually any type of server operating system and server software. With one key limitation however, the
platform must have a sta
ndard
s

compliant and up
-
to
-
date Java Virtual Machine (JVM).

The use of Java
to implement both the client and server components of this system as discussed in an earlier section
allow this system to take advantage of Java’s write once run everywhere concep
t. Furthermore Java is
supported on almost every major platform currently available. In addition to Java utilizing open and
widely supported web standards and protocols such as HTTP, SSL, XML and HTML allows for a greater
degree of flexibility as well as

greatly simplifying future maintenance of this system.

In addition to using widely support technologies as discussed in the previous section the proposed
system will support a pluggable architecture. The base proposed system will only have a limited supp
ort
for different server operating systems and server software. The proposed system will instead rely on
plug
-
ins to achieve the desired functionality. The use of plug
-
ins allows the system to have a greater
flexibility that is well beyond attempting to
build in support for every type of configuration available,
which is simply not possible. Furthermore by only loading the plug
-
ins needed the overhead of the
proposed system is greatly reduced.

There are already available robust and flexible solutions for

both the database and gateway servers
needed to create this system. As such there is no need for a custom solution. T
he database and
gateway servers will either be commercial of the shelf software (COT
S) and/or free open source
software (FOSS).

Finally
in order to ensure the security of both the configuration management servers and the servers
they manage
username and password authentication will be used. This will prevent unauthorized
modification to the systems. Additionally Secure Socket Layer certi
ficates will be used to ensure mutual
authentication between the configuration management servers the servers they manage. Furthermore
to mitigate the risk of internal attack role based access control will be utilized to the scope of a user’s
abilities
.
Finally to ensure the integrity and secrecy of communications all communications will be
secured using SSL/TLS.

5

Project Plan
&

Schedule

1.

Analysis

& Planning

(
1/18/11


2/26/11
)



A
scertain
the problem.



Evaluate the problem domain, including evaluations of
existing research and existing
systems.



Evaluate possible solutions. I
ncluding technologies need to ascertain the possible
solutions.



Create a project proposal.



Present the proposed project.

2.

Design

(2/27/11


3/12/11)



Design the high level architecture, i
ncluding the communications between various
components of the system. As well as the clustering of the application servers.



Design the data store.



Design the enterprise application to run on the management cluster.



Design the thick client application to
run on the managed servers.



Design the web based user interface.

3.

Implementation

(
3
/13/11


4/9/11
)



Implement the initial prototype.



Create the test bed.

4.

Test

(
4/10/11



4/23/11
)



Perform s
ystem test

on

the prototype
utilizing
the test bed.

5.

Closure

(4/24/11


5/14/11)



Create the project report.



Present the project.

6

Deliverables

1.

Project Proposal



The proposal document that details the need for a new solution to server configuration
management over existing solutions and research as well as an overview of the
pr
oposed solution.

2.

Project Report



The document that details the proposed system, its design and the results of the
prototype system.

3.

Prototype



The prototype implementation of the proposed system.

4.

Prototype Test Bed



A test bed with the
setup necessary to test

prototype of the system. This will include all
components needed, as depicted in
Figure
1
, to functionally test the proposed system.

7

References

[1]

Wikipedia, the free
encyclopedia
. 2010.

Web server software

http://en.wikipedia.org/wiki/Category:Web_server_software

[2]

How

Stuff

Works
. 2010.

How Cloud Computing Works

http://communication.howstuffworks.com/cloud
-
computing.htm

[3]

Bowei Xi, Zhen Liu, Mukund Raghavachari, Cathy H. Xia, and Li Zhang. 2004. A smart hill
-
climbing
algorithm for application s
erver configuration. In Proceedings of the 13th international
conference on World Wide Web (WWW '04). AC
M, New York, NY, USA,

287
-
296.
DOI=10.1145/988672.988711
http://doi.acm.org/10.1145/988672.988
711

[4]

Yi
-
Min Wang, Chad Verbowski, John Dunagan, Yu Chen, Helen J. Wang, Chun Yuan, and Zheng
Zhang. 2003. STRIDER: A Black
-
box, State
-
based Approach to Change and Configurati
on
Management and Support. In

Proceedings of the 17th USENIX conference on System
administration (LISA '03). USENIX
Association, Berkeley, CA, USA,

159
-
172.

[5]

Jeffrey S. Chase, Darrell C. Anderson, Prachi N. Thakar, Amin M. Vahdat, and Ronald P. Doyle.
2001. Managing energy and server resources in hosting centers. In Proceedings of the
ei
ghteenth ACM symposium on Operating systems principles (SOSP '01). ACM, New York, NY,
USA, 103
-
116. DOI=10.1145/502034.502045
http://doi.acm.org/10.1145/502034.502045

[6]

Putchong Uthayopas, Surachai Pai
sitbenchapol, Thara Angskun, and Jullawadee Maneesilp.
2000. System Management Framework and Tools for Beowulf Cluster. In
Proceedings of the
Fourth International Conference on High
-
Performance Computing in the Asia
-
Pacific Region
-
Volume 2
-

Volume 2 (HPC

'00), Vol. 2. IEEE Computer

Society, Washington, DC, USA,
935.

[7]

James J. Hunt, Frank Lamers, Jürgen Reuter, and Walter F. Tichy. 1997. Distributed Configuration
Management via Java and the World Wide Web. In Proceedings of the SCM
-
7 Workshop on
System Conf
iguration Management (ICSE '97), Reidar Conradi (Ed.). Springer
-
Verlag, London, UK,
161
-
174.

[8]

Hawick, K.A.; James, H.A.; , "Dynamic cluster configuration and management using JavaSpaces,"
Cluster Computing, 2001. Proceedings. 2001 IEEE International Confere
nce on , vol., no., pp.145
-
148, 2001

DOI
: 10.1109/CLUSTR.2001.959966

http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=959966&isnumber=20737

[9]

Microsoft Corpo
ration
. 2010.

Configuration Manager: Overview

http://www.microsoft.com/systemcenter/en/us/configuration
-
manager/cm
-
overview.aspx

[10]
Canonical
. 2010.

Systems
M
an
agement

http://www.canonical.com/enterprise
-
services/ubuntu
-
advantage/landscape/systems
-
management

[11]
Canonical
. 2010.

Landscape Dedicated Server

http://www.canonical.com/enterprise
-
services/ubuntu
-
advantage/landscape/dedicated
-
edition

[12]
Webmin
.
2011
.

Webmin

http://www.webmin.com/