Giter Site home page Giter Site logo

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


PadoGrid

PadoGrid provides a distributed workspace environment 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 simply install and run. See the following links for details.


Announcements


Tips of the Day

  1. Hands on integration: Database-->Kafka-->Geode/GemFire-->Power BI. Over 20 endpoints! Debezium-ksqlDB-Confluent Geode Connector
  2. Try SnappyData on PadoGrid. You can readily run SnappyData clusters on your host machine or using SnappyData Docker images maintained by PadoGrid.
  3. Did you know PadoGrid Hazelcast Dashboards (PHD) can be automatically installed to Grafana instances running on Docker and Kuberntes?

Installation

You can install PadoGrid and the supported data grid products by running the interactive install_padogrid script. 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 that install_padogrid is part of PadoGrid. Once PadoGrid is installed, you can run install_padogrid at any time to upgrade or downgrade products.

Quick Start provides 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 in RELEASE_NOTES.md. You can download it from Releases or using install_padogrid.

PadoGrid Container

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

Downloads

PadoGrid binary downloads are available from the Releases page. If your host does not have access to the Internet and you are unable to run install_padogrid then 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 for data grid products to deliver out-of-the-box, shrink-wrapped solutions. It introduces the concept of distributed workspaces for 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

Building padogrid

Required Software

  • Maven 3.x
  • JDK 1.8+

Building padogrid Distribution

There are a number of ways to build a PadoGrid distribution. For building a standard distribution release, run the build_dist.sh script 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

Installing padogrid you have built

Released versions of PadoGrid are normally installed by running the install_padogrid command. 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 run install_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
docker exec -it padogrid /bin/bash

# Podman
poman exec -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, the padogrid/paadogrid:0.9.34-SNAPSHOT-2 image has the build number 2. The SNAPSHOT versions are for testing only and subject to removal without notice.

For additional details, see the Docker section 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/workspaces directory, 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
kubectl exec -it padogrid -- bash

# oc
oc exec -it padogrid -- bash

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

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

export NAMESPACE=<Kubernetes namespace/project>
export HAZELCAST_SERVICE=<Hazelcast Kubernetes service>
# Default cluster name is "dev".
export HAZELCAST_CLUSTER_NAME=<cluster name>
create_app
cd_app perf_test; cd bin_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


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

padogrid's Projects

bundle-geode-1-app-kryo_codegen icon bundle-geode-1-app-kryo_codegen

This bundle provides step-by-step instructions for generating and deploying Avro and KryoSerializer in Geode/GemFire. Using PadoGrid's code generator, you can on the fly generate and deploy Avro wrapper classes and the corresponding Kryo serializer.

bundle-geode-1-docker-debezium_hive_kafka icon bundle-geode-1-docker-debezium_hive_kafka

This bundle integrates Geode with Debezium and Apache Hive for ingesting initial data and CDC records from MySQL into a Geode cluster via a Kafka sink connector included in the padogrid distribution. It supports inserts, updates and deletes.

bundle-geode-1-docker-debezium_kafka icon bundle-geode-1-docker-debezium_kafka

This bundle integrates Geode/GemFire with Debezium for ingesting initial data and CDC records from MySQL into a Geode/GemFire cluster via a Kafka sink connector included in the padogrid distribution. It supports inserts, updates and deletes.

bundle-geode-1-docker-debezium_ksql_kafka icon bundle-geode-1-docker-debezium_ksql_kafka

This bundle integrates Geode with Debezium and Confluent KSQL for ingesting initial data and CDC records from MySQL into a Geode cluster via a Kafka sink connector included in the padogrid distribution. It supports inserts, updates and deletes.

bundle-geode-1-docker-debezium_ksqldb_confluent icon bundle-geode-1-docker-debezium_ksqldb_confluent

This bundle integrates Geode with Debezium and Confluent ksqlDB for ingesting initial data and CDC records from MySQL into Kafka and Geode via a Kafka sink connector included in the padogrid distribution.

bundle-hazelcast-3n4n5-app-pado icon bundle-hazelcast-3n4n5-app-pado

The pado app provides a Hazelcast Portable class generator and CSV file import tools for Hazelcast. This bundle includes step-by-step instructions for ingesting mock data and UCI Machine Learning datasets into Hazelcast. It also includes a Pado scheduler demo that automates scheduled job executions for exporting and importing data from databases.

bundle-hazelcast-3n4n5-app-pado_dbsched-perf_test_dbsched-docker-mysql icon bundle-hazelcast-3n4n5-app-pado_dbsched-perf_test_dbsched-docker-mysql

The dbsched bundle is preconfigured with the Pado scheduler to periodically execute jobs that dump database tables to CSV files from which it automatically extracts column information to generate the corresponding VersionedPortable classes. It then transforms the CSV records to objects using the generated classes before ingesting them into Hazelcast.

bundle-hazelcast-3n4n5-docker-dbsync_mysql icon bundle-hazelcast-3n4n5-docker-dbsync_mysql

This bundle is preconfigured to synchronize Hazelcast with MySQL running as a Docker container. It includes the db cluster app to read/write from/to Hazelcast and MySQL. It also includes instructions for replacing MySQL with another database.Hazelcast/DB sync demo

bundle-hazelcast-3n4n5-docker-debezium_hive_kafka icon bundle-hazelcast-3n4n5-docker-debezium_hive_kafka

This bundle integrates Hazelcast with Debezium and Apache Hive for ingesting initial data and CDC records from MySQL into a Hazelcast cluster via a Kafka sink connector included in the padogrid distribution. It supports inserts, updates and deletes.

bundle-hazelcast-3n4n5-docker-debezium_kafka icon bundle-hazelcast-3n4n5-docker-debezium_kafka

This bundle integrates Hazelcast with Debezium for ingesting initial data and CDC records from MySQL into a Hazelcast cluster via a Kafka sink connector included in the padogrid distribution. It supports inserts, updates and deletes.

bundle-hazelcast-3n4n5-docker-debezium_ksql_kafka icon bundle-hazelcast-3n4n5-docker-debezium_ksql_kafka

This bundle integrates Hazelcast with Debezium and Confluent KSQL and ksqlDB for ingesting initial data and CDC records from MySQL into a Hazelcast cluster via a Kafka sink connector included in the padogrid distribution. It supports inserts, updates and deletes.

bundle-hazelcast-3n4n5-k8s-oc_helm icon bundle-hazelcast-3n4n5-k8s-oc_helm

This bundle deploys Hazelcast using Helm Charts with Prometheus metrics enabled. It also includes the PadoGrid container for ingesting mock data into the Hazelcast cluster.

bundle-hazelcast-4-k8s-oc_operator icon bundle-hazelcast-4-k8s-oc_operator

This bundle contains OpenShift operator configuration files for deploying Hazelcast and PadoGrid. Hazelcast is deployed using the Hazelcast Operator downloaded from the hazelcast/hazelcast-operator repo.

bundle-hazelcast-4n5-app-kryo_codegen icon bundle-hazelcast-4n5-app-kryo_codegen

This bundle provides step-by-step instructions for generating and deploying Avro and KryoSerializer in Hazelcast. Using PadoGrid's code generator, you can on the fly generate and deploy Avro wrapper classes and the correspoinding Kryo serializer.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.