Skip to content

A comprehensive addon tool for managing data grid environments by distributed workspaces and online use case bundles

License

Notifications You must be signed in to change notification settings

padogrid/padogrid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Repository files navigation

PadoGridPadoGrid|Catalogs|Manual|FAQ|Releases|Templates|Pods|Kubernetes|Docker|Apps|Quick Start


PadoGrid

PadoGrid provides adistributed workspaceenvironment for easily deploying and managing out-of-the-box turnkey solutions to cluster architecture use cases. The solutions come in the form of bundles which you simplyinstall and run.See the following links for details.


Announcements


Tips of the Day

  1. Need Hazelcast Managment Center dashboards in Granana? Check outPadoGrid Hazelcast Dashboards (PHD).

  2. Did you know PadoGrid can quickly spawn multiple clusters of different products on your laptop without resorting to containers? Check outNon-Conflicting Clusters Example.


Installation

You can install PadoGrid and the supported data grid products by running the interactiveinstall_padogridscript. Copy and paste the following commands into your terminal.

curl -O -fsSL https://raw.githubusercontent.com/padogrid/padogrid/develop/padogrid-deployment/src/main/resources/common/bin_sh/install_padogrid
chmod 755 install_padogrid
./install_padogrid

✏️Note thatinstall_padogridis part of PadoGrid. Once PadoGrid is installed, you can runinstall_padogridat any time to upgrade or downgrade products.

Quick Startprovides detailed instructions.

✏️The latest PadoGrid snapshot release is available if you cannot wait till the next release. It is automatically built when there were changes made inRELEASE_NOTES.md.You can download it fromReleasesor usinginstall_padogrid.

PadoGrid Container

To run PadoGrid as a container, please follow the instructions in the links below.

Downloads

PadoGrid binary downloads are available from theReleasespage. If your host does not have access to the Internet and you are unable to runinstall_padogridthen you can download a version from this link and install it manually.

PadoGrid Releases/Downloads

Download links to all the supported data grids are also provided in the following page:

Supported Data Grid Downloads

Online use case bundles:

Bundle (Use Case) Catalogs

PadoGrid Brief

PadoGrid is a collection of add-on components and tools specifically designed fordata grid productsto deliver out-of-the-box, shrink-wrapped solutions. It introduces the concept ofdistributed workspacesfor creating DevOps environments in which use cases can be quickly developed, tested, deployed and shared.

A workspace provides a sandbox environment completely isolated from other workspaces and can host a wide range of software components from a simple app to a highly complex ecosystem with many data grid clusters, apps, VMs, and Docker/Kubernetes containers. You can, for example, create a workspace that federates multiple data grid clusters serving inventory and sales data, a workspace that streams database CDC records via Kafka, a workspace that handles streamed data into the federated clusters via one or more Apache Spark or Hazelcast Jet clusters, and yet another workspace that integrates data analytics tools for performing AI/ML operations and creating reports. PadoGrid consolidates your workspaces into a single operations center.

Distributed Workspace

A workspace snapshot can be taken at any time in the form of a bundle that can be quickly deployed and run on another workspace created by another user on another platform. Because of their portability, bundles provide the means to shrink-wrap fully operational use cases. PadoGrid includes bundle catalogs from which you can search your use cases.

PadoGrid Features

Buildingpadogrid

Required Software

  • Maven 3.x
  • JDK 1.8+

BuildingpadogridDistribution

There are a number of ways to build a PadoGrid distribution. For building a standard distribution release, run thebuild_dist.shscript as follows.

#Include all products and their man pages (standard distribution)
./build_dist.sh -all

You can also build distributions that are tailored to your needs as described in the following link.

Building PadoGrid

Installingpadogridyou have built

Released versions of PadoGrid are normally installed by running theinstall_padogridcommand. For those that you have built, however, must be installed manually as describe in this section.

Upon successful build, the following distribution files will be generated.

padogrid-deployment/target/assembly/padogrid_<version>.tar.gz
padogrid-deployment/target/assembly/padogrid_<version>.zip

Inflate one of the distribution files in your file system. For example,

mkdir -p~/Padogrid/products
tar -C~/Padogrid/products/ -xzf padogrid_0.9.34-SNAPSHOT.tar.gz
cd~/Padogrid/products
tree -L 1 padogrid_0.9.34-SNAPSHOT

Output:

padogrid_0.9.34-SNAPSHOT
├── LICENSE
├── NOTICE
├── README.md
├── RELEASE_NOTES.md
├── apps
├── bin_sh
├── coherence
├── etc
├── geode
├── hadoop
├── hazelcast
├── kafka
├── lib
├── mosquitto
├── none
├── pods
├── redis
├── snappydata
├── spark
└── workspace

Initializing PadoGrid

✏️ If you have runinstall_padogrid,then you have already initialized PadoGrid and you can skip this section.

To use PadoGrid, you must first create an RWE (Root Workspace Environment) by running the interactive command,create_rwe,to specify the workspaces directory and the product installation paths.

~/Padogrid/products/padogrid_0.9.34-SNAPSHOT/bin_sh/create_rwe

Running PadoGrid using Docker and Podman

To save your workspaces created in the container, it is recommended that you mount a data volume along with ports exposed as follows.

#Docker
docker run --name padogrid -h padogrid -d \
--mount type=volume,source=padogrid,target=/opt/padogrid \
-p 8888:8888 -p 1883:1883 -p 1884:1883 -p 1885:1883 \
-p 8080:8080 -p 5701:5701 -p 5702:5702 -p 5703:5703 \
-p 9401:9401 -p 9402:9402 -p 9403:9403 \
-p 3000:3000 -p 9090:9090 -p 5006:5006 \
-e PADOGRID_HTTPS_ENABLED=true padogrid/padogrid

#Podman
podman run --name padogrid -h padogrid -d \
--mount type=volume,source=padogrid,target=/opt/padogrid \
-p 8888:8888 -p 1883:1883 -p 1884:1883 -p 1885:1883 \
-p 8080:8080 -p 5701:5701 -p 5702:5702 -p 5703:5703 \
-p 9401:9401 -p 9402:9402 -p 9403:9403 \
-p 3000:3000 -p 9090:9090 -p 5006:5006 \
-e PADOGRID_HTTPS_ENABLED=true padogrid/padogrid

Once the PadoGrid container is started, you can access the container as follows.

Login from browser:

Login from shell:

#Docker
dockerexec-it padogrid /bin/bash

#Podman
pomanexec-it padogrid /bin/bash

✏️ PadoGrid Docker containers follow the same version conventions as the build except for the SNAPSHOT versions which also include a build number starting from 1. For example, thepadogrid/paadogrid:0.9.34-SNAPSHOT-2image has the build number 2. The SNAPSHOT versions are for testing only and subject to removal without notice.

For additional details, see theDockersection of the manual.

Running PadoGrid on Kubernetes

You can run PadoGrid on Kubernetes as shown below. The PadoGrid container stores workspaces in the/opt/padogrid/workspacesdirectory, which you can mount to a persistent volume as needed.

#kubectl
kubectl run padogrid --image=docker.io/padogrid/padogrid

#oc
oc run padogrid --image=docker.io/padogrid/padogrid

To login to the PadoGrid pod, make sure to specify the command,bash,as follows.

#kubectl
kubectlexec-it padogrid -- bash

#oc
ocexec-it padogrid -- bash

If you have a Hazelcast cluster running in the same namespace (project) as PadoGrid, then you can run theperf_testapp immediately without any manking changes.

If they are running in different namespaces, then set the PadoGrid container environment variables as follows before running the theperf_testapp.

exportNAMESPACE=<Kubernetes namespace/project>
exportHAZELCAST_SERVICE=<Hazelcast Kubernetes service>
#Default cluster name is "dev".
exportHAZELCAST_CLUSTER_NAME=<cluster name>
create_app
cd_app perf_test;cdbin_sh
./test_ingestion -run

To delete the PadoGrid pod:

#kubectl
kubectl delete pod paodgrid

#oc
oc delete pod padogrid

You may encounter a random userid assigned by Kubernetes and OpenShift instead of the required fixed userid,padogrid,especially when you deploy the PadoGrid container. The following link provides further details on running PadoGrid with the fixed userid when deployed in OpenShift.

Deploying PadoGrid in OpenShift

Data Grid Products

PadoGrid natively supports the following data grid, messaging, and analytics products.


Apache Geode VMware GemFire

Hazelcast IMDG Hazelcast Jet

ComputeDB SnappyData

Oracle Coherence Spark

Hadoop Kafka

Mosquitto Redis


Where To Go From Here

PadoGrid Manual

The PadoGrid Manual describes product concepts and provides complete instructions for configuring and operating PadoGrid. It also includes many tutorials and working examples that you can quickly try out on your laptop.

PadoGrid Manual

Bundle (Use Case) Catalogs

PadoGrid has been built with use cases in mind. It aims to deliver out-of-the-box turnkey solutions on top of data grid products. The bundle catalogs provide compiled lists of readily available solutions. Just install and run.

Bundle (Use Case) Catalogs

Creating Your Own Bundles

You can also create online bundles hosted by your repos. The following link provides how-to instructions.

Understanding Bundles

Bundle Templates

Creating your own online bundles is made easy by using the bundle templates. The following link povides template links.

Using Bundle Templates

FAQ

The FAQ link aims to provide a comprensive collection of PadoGrid Q&As including a series of topics on how to build distributed systems using PadoGrid.

FAQ


PadoGridPadoGrid|Catalogs|Manual|FAQ|Releases|Templates|Pods|Kubernetes|Docker|Apps|Quick Start