Download The proposed system is a web based scalable pluggable server

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Distributed Scalable Server
Configuration Management
Masters Project Proposal
by
Chris Shuster
University of Colorado at Colorado Springs
Colorado Springs, CO
[email protected]
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
software that runs on them come in extremely wide and varied forms. Servers 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. As 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,
lists upwards of 50 different products [1].
The importance and complexity of servers 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 increasing 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
would 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 geographical 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 management 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
management. 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 an 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 problems.
“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 automatically provisioning servers in order to reduce energy costs, whereas
System Management Framework [6] proposes methodologies for managing the nodes in a Beowulf
cluster.
“Distributed Configuration Management via Java and the World Wide Web” [7] and “Dynamic Cluster
Configuration and Management using JavaSpaces” [8] both propose configuration management systems
that utilizing Java. Each proposes configuration management of different types of systems. Distributed
Configuration 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 addresses 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 focuses 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 systems 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 than 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 Center 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. Configuration 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 as 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 configuration
management systems is that they are proprietary, which is the case for both Microsoft System Center
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 (FOSS) 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.
Configuration 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 systems 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 these 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 technologies 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) compiler 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
application 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 implementation. 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
specification, it is the reference implementation and as such is updated nearly in unison with the
specification.
4.3 High Level Design
Database Servers
Cluster
Workstation Running a
Web Browser
Glassfish Application Server
Glassfish Application Server
Glassfish Application Server
Administrator
Gateway Servers
Managed Server
Managed Server
Managed Server
Managed Server
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 configuration 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 (HTTP) 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 by the configuration
management system. Each managed server will be running a custom coded client. The client is
responsible 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 specified 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 standards 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 concept. 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 support
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. The database and
gateway servers will either be commercial of the shelf software (COTS) 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 certificates 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)


2.
3.
4.
5.
Ascertain the problem.
Evaluate the problem domain, including evaluations of existing research and existing
systems.
 Evaluate possible solutions. Including technologies need to ascertain the possible
solutions.
 Create a project proposal.
 Present the proposed project.
Design (2/27/11 – 3/12/11)
 Design the high level architecture, including 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.
Implementation (3/13/11 – 4/9/11)
 Implement the initial prototype.
 Create the test bed.
Test (4/10/11 – 4/23/11)
 Perform system test on the prototype utilizing the test bed.
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
proposed 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 server configuration. In Proceedings of the 13th international
conference on World Wide Web (WWW '04). ACM, New York, NY, USA, 287-296.
DOI=10.1145/988672.988711 http://doi.acm.org/10.1145/988672.988711
[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 Configuration
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
eighteenth 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 Paisitbenchapol, 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 RegionVolume 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 Configuration 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 Conference on , vol., no., pp.145148, 2001 DOI: 10.1109/CLUSTR.2001.959966
http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=959966&isnumber=20737
[9] Microsoft Corporation. 2010.
Configuration Manager: Overview
http://www.microsoft.com/systemcenter/en/us/configuration-manager/cm-overview.aspx
[10]Canonical. 2010.
Systems Management
http://www.canonical.com/enterprise-services/ubuntu-advantage/landscape/systemsmanagement
[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/