Sisense is an agile Business Intelligence solution that provides innovative tools to manage and support business data with analytics and reporting. Sisense offers numerous deployment options, including cloud, on-premises, and hybrid.
This guide shows how to deploy Cloud-Native Sisense on a three virtual machine (VM) cluster on Oracle Cloud Infrastructure (OCI). The cluster is set up in a private subnet and can be accessed through a bastion host. We explore how to apply Oracle Linux, Oracle File Storage service, and OCI networking components to achieve this.
To install Sisense on OCI, you need sufficient access to manage OCI network and File Storage. The common policies used are available from the policies documentation and the API signing key can be generated from the documentation.
Before deploying the Sisense tools, we need to prepare the network to deploy the VMs on OCI.
Create the following specs in OCI:
A VCN on OCI with one public and one private subnet.
Two route tables, one with internet gateway rule for the public subnet and one with NAT gateway rule for private subnet
Two security lists; ensure that the required ports by Sisense application are open
Deploy three OCI virtual machines in the private subnet
One bastion host (another OCI virtual machine) in the public subnet
The virtual machines must follow the Sisense application specifications. Shapes need at least eight cores and a boot volume at least 200 GB, plus twice the amount of data. We recommend reviewing the requirements for Sisense implementation details from Sisense’s documentation.
We used the VM.Standard2.8 shape and increased the boot volume size to 200 GB to have the required free space for this deployment. The image of the nodes and bastion must be Ubuntu or CentOS 7. Use the same image on the bastion as you did on the nodes.
To build an instance with an image from the OCID, select Image OCID from the “Create Instance” form and enter the OCID of the image.
Before you install the Sisense application, you must prepare the instances after they’re up and running. You can use the cloud-init script when you provision the instances, or you can connect to each instance through SSH and manually run the commands.
If you’re manually running the commands, ensure that your user has administrator privileges (sudo). Because the Sisense application uses opc/ubuntu user to use the Ansible playbooks, apply the argument --user to the pip commands to install the packages at the user level.
On CentOS 7, run the following commands as a part of cloud-init on the bastion host:
yum install -y python3 rust cargo python3-devel openssl-devel libselinux-python3 pip3 install --upgrade pip pip3 install setuptools_rust yq ipaddr netaddr jmespath ansible==2.9.14
On Ubuntu run the following commands as a part of cloud-init on bastion:
iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -F
OCI File Storage is a fully managed elastic file system that accommodates growing application storage needs. Create a file system with a mount target in the private subnet using OCI File Storage service. An export option in the public subnet is provided to mount the file system on the bastion.
After you complete the prerequisites, contact the Sisense team to get the most recent Linux archive file. To configure Sisense installation, use the cluster config.yaml file from the given archive. We update the k8s_nodes, remote_installation, linux_user, ssh_key, storage_type, nfs_server and nfs_path fields obtained from the OCI Console.
Linux_user and ssh_key:
Nfs_server and nfs_path:
Copy the archive to the bastion host and change the permissions on sisense.sh file to 755 using chmod command.
chmod 755 ~/sisense-L220.127.116.113/sisense.sh
Also, copy the private key to the bastion host and nodes on the path that you specified in the cluster_config.yaml. If you’re using CentOS 7 with Sisense versions before v8.2, change the Python version to python3 in the sisense.sh file.
sed -i 's/python -m pip install --user virtualenv/python3 -m pip install --user virtualenv/g' ~/sisense-L18.104.22.1683/sisense.sh sed -i 's/python -m virtualenv sisense-installer/python3 -m virtualenv sisense-installer/g' ~/sisense-L22.214.171.1243/sisense.sh sed -i 's/sudo -H pip install/sudo -H pip3 install/g' ~/sisense-L126.96.36.1993/sisense.sh
Run the sisense.sh script with cluster_config.yaml to install the Sisense application.
After the installation, we can see the following output to access the Sisense application.
In this post, we have seen how to deploy the Sisense application on the Oracle Cloud. In the next blog, we explore how to access the Sisense application, Kubernetes, and Grafana dashboards.
To learn more, explore our Architecture Center to quickly deploy solutions on Oracle Cloud Infrastructure using Terraform.