Enabling users to use the most powerful technologies by just pressing a number: Hadoop, Docker, Linux everything in one menu!!

Janhavi Jain
6 min readNov 9, 2020
All major technologies in one menu

To make technology reachable to the masses we must come up with ways in which the user has very little to no knowledge of the said technologies and is still able to use them as if they were at the tips of their fingers.

By making a python menu of multiple technologies including Docker, Hadoop and Linux which are some of the most powerful open-source technologies in the world today.

The technologies incorporated in this menu are:

  1. AWS
  2. Hadoop
  3. DevOps
  4. Docker
  5. Webserver (making and deploying)
  6. ML
  7. Linux (LVM)

To take it up a notch, I have added speech recognition to the project. Now there is no need to even type anything, just talk to your system and tell it which number on the menu you need to see done, and there you have it, it really is that user friendly. Let us see what exactly they are and where they are used:

  1. Docker
Docker architecture

Docker is an open source project that makes it easy to create containers and container-based apps. Originally built for Linux, Docker now runs on Windows and MacOS as well. To understand how Docker works, let’s take a look at some of the components you would use to create Docker-containerized applications. It can be used to install and run complete Operating systems in seconds, that’s how powerful docker is. To see more about it click at docker.com

2. Hadoop

Apache Hadoop project develops open-source software for reliable, scalable, distributed computing. The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models. It is designed to scale up from single servers to thousands of machines, each offering local computation and storage. Rather than rely on hardware to deliver high-availability, the library itself is designed to detect and handle failures at the application layer, so delivering a highly-available service on top of a cluster of computers, each of which may be prone to failures. For more click here hadoop.apache.org

3. AWS

AWS

Amazon Web Services is a subsidiary of Amazon providing on-demand cloud computing platforms and APIs to individuals, companies, and governments, on a metered pay-as-you-go basis.

Here, are Cloud Compute Services offered by Amazon:

  1. EC2(Elastic Compute Cloud) — EC2 is a virtual machine in the cloud on which you have OS level control. You can run this cloud server whenever you want.
  2. LightSail -This cloud computing tool automatically deploys and manages the computer, storage, and networking capabilities required to run your applications.
  3. Elastic Beanstalk — The tool offers automated deployment and provisioning of resources like a highly scalable production website.
  4. EKS (Elastic Container Service for Kubernetes) — The tool allows you to Kubernetes on Amazon cloud environment without installation.
  5. AWS Lambda — This AWS service allows you to run functions in the cloud. The tool is a big cost saver for you as you to pay only when your function execute.

The Application:

Login Terminal UI

The Terminal User Interface (TUI) starts by asking the user for the password. This is followed by asking the user whether they want to perform local or remote operation. The user must enter either R / r / remote / Remote, along with the IP address of the system to be accessed remotely and its password to perform remote function. L / l / Local / local can be entered to perform local functions.

local/ remote operation

This option is followed up by asking the user for his/ her input number as per the displayed menu of services.

Using the menu Locally:

Using AWS functions from the menu

choose a number from the menu

For instance, on choosing option 1 by giving the input 1, we get the submenu shown below:

AWS sub-menu

Again, choosing option 1 to install AWS CLI we get the following output:

Input: 1 (Installing AWS CLI)

Since the AWS CLI was already installed on my system, we get the following output requesting the user to press enter to continue:

press enter to continue

Logical Volume Management (LVM) using the menu:

On pressing 7 from the main menu, we select LVM as shown below:

Option 7: LVM

The sub-menu shown below is presented on pressing 7, for LVM and the dependencies are automatically downloaded and installed. LVM sub-menu looks like this:

LVM sub-menu

On pressing 12 to exit:

exit

Using Docker from the menu:

The submenu for docker shown to the user is as follows:

Docker sub-menu

This menu allows the user to do almost anything by just typing the number. From creating a container to launching an OS image, networking, using EBS volume, pulling and pushing images (of entire operating systems) from docker hub. And the all this without any technical know-hows.

starting docker services

On pressing 1, the user is asked to choose a name for the image, and an example is provided to help guide the user. Then the user is asked to select the OS to be launched. Lastly, the user must press enter to continue.

Listing of the containers running by pressing 3 is shown below:

Option 3, listing all the running containers

Using the menu remotely:

The menu asks the user to enter the IP address, username and password of the system to be accessed remotely.

Remote login

The rest of the functions from the menu work the same for remote and local usage.

Exit screen of the system the TUI is:

Exiting the python menu

Project made by: Janhavi Jain, Kodgire Ashutosh, Akshit Modi, Gursimar Singh and Sourav Pattnaik, under the guidance of Mr. Vimal Daga.

Hope it was informative and useful for you. Thanks for reading!

--

--

Janhavi Jain

Hi there! I write about many technologies like Docker and Hadoop in an easy to understand language. My LinkedIn: https://www.linkedin.com/in/janhavi-jain