The MBaaS (Mobile Backend As A Service) for the RHMAP self managed deployment on OpenShift is made up of 2 different templates
The 1 node template creates a single mongodb persistent pod and one replica of each of the components that make up the mbaas, i.e fh-mbaas, fh-messaging, fh-metrics, fh-statsd. The nagios pod is used to monitor the resource usage.
As mentioned the 3 node mbaas is strongly recommended for production type environments, it makes use of 3 mongodb pods that get deployed on labeled nodes (this is to ensure that the mongodb pods are not deployed on the same nodes), and 3 replicas of fh-mbaas, fh-messaging and fh-metrics with fh-statsd and nagios set for only one replica.
A simple example on labeling the nodes
oc label node mbaas-1 type=mbaas
oc label node mbaas-2 type=mbaas
oc label node mbaas-3 type=mbaas
oc label node mbaas-1 mbaas_id=mbaas1
oc label node mbaas-2 mbaas_id=mbaas2
oc label node mbaas-3 mbaas_id=mbaas3
RHMAP 1-Node MBaaS for OpenShift will require the following resources outlined in the table below at a minimum:
Prerequisites
Description | Parameter name | Default value | Fail/warning/recommended |
---|---|---|---|
Min number of CPUs | min_required_vCPUS |
2 | fail only in strict_mode |
Min system memory per node (in MB) | required_mem_mb_threshold |
7000 | fail only in strict_mode |
Min total free memory of all nodes (in KB) | warning_kb_value |
4000000 | warning |
Number of PVs with 50 GB storage | required_50_pv |
0 | warning |
Number of PVs with 25 GB storage | required_25_pv |
1 | warning |
Number of PVs with 5 GB storage | required_5_pv |
0 | warning |
Number of PVs with 1 GB storage | required_1_pv |
1 | warning |
To deploy the MBaaS on OpenShift execute the following command
cd /directory-to-fh-openshift-templates
# first execute the config map creation
oc new-app -f rhmap-mbaas-config.json
# create the 1 node mbaas
oc new-app -f fh-mbaas-template-1node.json
--> Deploying template "1node-mbaas/fh-mbaas" for "fh-mbaas-template-1node.json" to project 1node-mbaas
fh-mbaas
---------
Red Hat Mobile Backend as a Service template
Monitor the deploy on OpenShift
oc get pods
NAME READY STATUS RESTARTS AGE
fh-mbaas-1-vrzfm 1/1 Running 4 7m
fh-messaging-1-brldn 1/1 Running 3 6m
fh-metrics-1-bxnwk 1/1 Running 4 7m
fh-statsd-1-wx4ck 1/1 Running 0 6m
mongodb-1-1-ff6vp 1/1 Running 0 5m
nagios-1-704pp 1/1 Running 0 6m
Check Nagios for all health endpoints
or execute the follwoing command
echo "https://$(oc env dc/nagios --list|grep NAGIOS_USER | awk -F'=' '{print $2}'):$(oc env dc/nagios --list|grep NAGIOS_PASSWORD | awk -F'=' '{print $2}')@$(oc get route nagios --template "{{.spec.host}}")"
RHMAP 3-Node MBaaS for OpenShift will require the following resources outlined in the table below at a minimum:
Prerequisites
mbaas
group.mbaas_id=mbaas-1,mbaas_id=mbaas-2 and mbaas-id=mbaas-3
respectively - refer to the OpenShift documentation for labeling nodesDescription | Parameter name | Default value | Fail/warning/recommended |
---|---|---|---|
Min number of CPUs | min_required_vCPUS |
2 | fail only in strict_mode |
Min system memory per node (in MB) | required_mem_mb_threshold |
7000 | fail only in strict_mode |
Min total free memory of all nodes (in KB) | warning_kb_value |
4000000 | warning |
Number of PVs with 50 GB storage | required_50_pv |
3 | warning |
Number of PVs with 25 GB storage | required_25_pv |
0 | warning |
Number of PVs with 5 GB storage | required_5_pv |
0 | warning |
Number of PVs with 1 GB storage | required_1_pv |
1 | warning |
To deploy the 3 node MBaaS on OpenShift execute the following command
cd /directory-to-fh-openshift-templates
# first execute the config map creation
oc new-app -f rhmap-mbaas-config.json -p MONGODB_REPLICA_NAME=rs0
# create the 3 node mbaas
oc new-app -f fh-mbaas-template-3node.json
--> Deploying template "3node-mbaas/fh-mbaas" for "fh-mbaas-template-3node.json" to project 3node-mbaas
fh-mbaas
---------
Red Hat Mobile Backend as a Service template
Monitor the deploy on OpenShift
oc get pods
NAME READY STATUS RESTARTS AGE
fh-mbaas-3-7pc82 1/1 Running 1 12m
fh-mbaas-3-7wfrb 1/1 Running 1 12m
fh-mbaas-3-qzqf2 1/1 Running 1 12m
fh-messaging-1-2f7v3 1/1 Running 3 31m
fh-messaging-1-t1wc7 1/1 Running 0 21m
fh-messaging-1-vx319 1/1 Running 0 21m
fh-metrics-1-2l9vw 1/1 Running 3 31m
fh-metrics-1-9xgb7 1/1 Running 0 21m
fh-metrics-1-rjtk0 1/1 Running 0 21m
fh-statsd-1-dtmsn 1/1 Running 0 31m
mongodb-1-1-jtz12 1/1 Running 0 33m
mongodb-2-1-hzkjr 1/1 Running 0 31m
mongodb-3-1-mpm43 1/1 Running 0 21m
nagios-1-pk9sm 1/1 Running 0 21m
Check Nagios for all health endpoints
or execute the following command
echo "https://$(oc env dc/nagios --list|grep NAGIOS_USER | awk -F'=' '{print $2}'):$(oc env dc/nagios --list|grep NAGIOS_PASSWORD | awk -F'=' '{print $2}')@$(oc get route nagios --template "{{.spec.host}}")"