Implementation is the most important phase in software development. It is a realization of technical specification or algorithm as a program, software component through programming and deployment. Implementation is referenced by the work done in SRS and system design. This helps to categorize the modules, efficient pseudo codes are written to get effective user interface.

Implementation - Openstack Cloud Computing

The purpose of implementation is:

  • To define the organization of the code, in terms of implementation subsystems organized in layers
  • To implement classes and objects in terms of component (source files, binaries, executables, and others)
  • To test the developed components as units
  • To integrate the results produced by individual implementers (or terms), into an executable system

USER INTERFACES: The OpenStack dashboard provides administrators and users a graphical interface to access, provision and automate cloud-based resources, but the part of project we did does not contain any user interface, everything is done in linux terminal.

DATABASE: MYSQL is world’s second most widely used open-source relational database management system. Here I have used MYSQL for building extension of Keystone.

PROGRAMMING LANGUAGE: The automated installation of OpenStack is done by using automation tool chef, which uses Ruby language, Keystone extension building is done using python and Logstash functionalities are developed using Chef with Ruby code itself.

PSEUDO CODES

PSUDEO CODE FOR AUTOMATED INSTALLATION OF OPENSTACK

BEGIN

Install Git

Set Git Timout

Set Proxy variables

Set Git global variables

Create folder for Openstack installation

Initialize Git within the folder created

Clone Devstack of stable/juno version from Git hub

Change permissions and owner of the directory

Retrieve passwords from encrypted data bags and store in localrc file

Add the owner to sudoers file

Change protocol name in stackrc file from Git to https

END

PSUEDO CODE FOR BUILDING EXTENSIONS:

BEGIN

Define OS_Controller

Write connection command pattern using controller

Create an array ‘Extension data’ which contains details of extension /* name, ip etc */

Receive data entered in particular pattern by user

If command pattern is correct

Retrieve Project id

Else

Display error message

End

If user is admin

Call get_project_users method

If user is member

Display error message

get_project_users method

Assign list of all user id’s to a variable

For each user id in varaiable

If user id belongs to the given project id add it to a variable Users_project

Display Users_project

END

PSEUDO CODE FOR LOGSTASH FUNCTIONALITIES:

Pseudo code for Logstash version Upgrade:

BEGIN

Retrieve list of Nodes of OpenStack

For each node in nodes

If Logstash is installed in node

If the current version of Logstash in the node is not new version

Take backup of logs from the node

Kill currently running Logstash and install new

Reload the backup

End

End

END

Pseudo code for Logs archiving:

BEGIN

Assign the location of Logstash to be archived to a variable

For log files in specified location

Find the index of log file

Find the date and time of log file till particular index /* in seconds */

Assign system date and time to a variable

Convert system date and time into seconds

If log file time is less than or equal to system time

Add the log file to archives

End

End

END

Pseudo code for Logs cleanup:

 

BEGIN

Assign number of days for logs cleanup to be done to a variable

Assign the location of Logstash archives to be cleared

For each archived files

Find the timestamp of Archived files

If the timestamp of archived files is less than or equal to specified number of days

Delete the archive file

End

End

Assign the time interval in which cache is to be cleared

Assign location of cache to a variable

Command to clear the cache periodically in specified interval

END

Download implementation report:

download

Download project report:

🔥153 Views

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.