Frequently Asked Questions - On-Premise DeploymentEstimated reading time: 16 minutes
- What is Mesibo on-premise?
- Why do I need On-Premise?
- On-Premise vs Cloud offering, Which one is better?
- Do we need to pay extra for on-premise?
- What is the cost for on-premise and how billing is changed compared to Mesibo Cloud solution?
- Can I run Mesibo on a cloud service provider?
- Can we run it along with our Web server or Do we need additional hardware?
- Do I need to change or recompile my apps to run with Mesibo On-Premise ?
- I am currently using Mesibo Cloud services. If I enable on-premise how long will it take to switch connection to my server?
- Can I switch from Mesibo On-Premise hosted on my service back to Mesibo Cloud Service?
- What happens when we have issues in our datacenter?
- Can I keep my database behind a firewall and run Mesibo?
- What is Auto fallback to cloud option ?
- What is 'do not perform network check' option ?
- How can I configure my TLS/SSL setting ?
- What happens if I have enabled on premise and my server is not running?
- What happens if I am connected to my server and disable On-Premise from console?
- How do I ensure that my clients connect directly to my server and not through mesibo servers?
- Does on-premise requires internet?
- Will the backend API URL change when I use on-premise?
- How can we keep our On-premise deployment updated with latest features and technology?
- If I need to run multiple apps, then should I spawn multiple docker containers?
- How to orechestrate mesibo docker containers on Kubernetes
- What is loadable modules and scripting?
- How does a mesibo module work?
- What can I build with Mesibo Modules?
- Do I need to sign-up with mesibo to use mesibo on-premise server?
- I am getting MySQL Connection Failed error.
- I have created a user using the backend API. However, I can not find that user in the on-premise database.
- Can you set up on-premise for us on our server?
- Can I use AWS lambda to run mesibo on-premise
- Can I use mesibo on-premise with MongoDB instead of MySQL?
- Can I use database tables created by mesibo on-premise?
- Are there any limitations on using on-premise for free users?
What is Mesibo on-premise?
mesibo On-Premise solution allows you to run the entire mesibo real-time platform in your own premise OR private cloud. All the messages and calls go through your own data center and stay in your own database. All you have to do is download Mesibo On-Premise and run it in your own data center. That’s it!
Why do I need On-Premise?
Security & Data Privacy is becoming a growing concern. As recent as last week, the US has launched an anti-trust probe on some tech giants for data privacy. Mesibo On-Premise solution gives you complete ownership and control of your user data. It also ensures conformance to stringent data compliance and privacy requirements (GDPR, HIPAA, etc.). Besides, On-Premise offers many additional features compared to the Cloud.
On-Premise vs Cloud offering, Which one is better?
You can’t go wrong with either model. Although our cloud services let you start immediately, there are several reasons why you need On-Premise, and one of the key reasons is to have ultimate control over your data. More than ever before, it has become imperative to protect your data and be more sensitive towards your user data, be it personal data, financial data, medical records, GDPR, HIPPA, unauthorized harvesting of your data, companies selling, misusing your data for advertisement, to name a few.
Mesibo On-premise offering puts you in complete control of your data since everything runs on your own servers. If you do not wish to host Mesibo on your own server infrastructure, you have the option of using the Cloud offering by Mesibo. Also, even when running On-Premise, you can always use Mesibo cloud as a backup, which gives you the best of both worlds.
Do we need to pay extra for on-premise?
Absolutely not! You don’t have to pay anything extra to use the Mesibo On-Premise solution, our pricing for on-premise and cloud solutions is the same. In fact, the Mesibo On-Premise solution turns out more economical as you don’t have to pay for bandwidth and storage charges. This alone makes it On-Premise an attractive proposition.
What is the cost for on-premise and how billing is changed compared to Mesibo Cloud solution?
It comes to you at no additional cost - you only pay for the number of active users per month! No monthly commitment, no bandwidth charges, no storage charges, or any other hidden charges. This makes On-premise even more economical and attractive than our Cloud offering.
Can I run Mesibo on a cloud service provider?
Absolutely. All the major cloud service providers support running docker containers. Please refer to respective documentation for different providers such as AWS, Azure, Google Cloud, etc.
Can we run it along with our Web server or Do we need additional hardware?
Indeed, you can run Mesibo On-Premise along with your existing web server without investing in additional hardware. Unlike other solutions that require heavy runtime like Java, Mesibo is entirely written in C++ which makes it a very lightweight (similar to other industry-standard software like Nginx, etc.), and it can easily co-exist with your web-server.
Do I need to change or recompile my apps to run with Mesibo On-Premise ?
Absolutely not! There are NO changes to the way you deploy your application or use our APIs.
Mesibo APIs support both cloud and on-premise. By default, it connects to the cloud. However, if the app is configured to be on-premise, the mesibo cloud will refuse to serve and will ask the client to connect to an on-premise server, and will disconnect. Then onward, the client will directly connect to the on-premise server and then all the messages and calls will route to your mesibo on-premise server.
In case your data center having issues, you can always have the option of falling back to Mesibo Cloud Services, with just the click of a button.
I am currently using Mesibo Cloud services. If I enable on-premise how long will it take to switch connection to my server?
As soon as you enable On-Premise in the console, your users will start getting connected to your mesibo On-Premise server. You will see logs on the mesibo on-premise console. Additionally, you can use
netstat or similar utilities to view the client connections.
Please ensure that you have made the necessary configuration in the console and the Running Status in the console displays your hostname before you enable On-Premise.
Can I switch from Mesibo On-Premise hosted on my service back to Mesibo Cloud Service?
Yes, if you would like your users to switch from the On-Premise server to the Mesibo cloud server, first disable On-Premise in the console and then stop your docker container which is running mesibo. Your users will now get connected to Mesibo Cloud. Note that, the mesibo cloud does not have access to your database, and hence all the messages sent to your on-premise server will not be delivered when your users move to the mesibo cloud.
What happens when we have issues in our datacenter?
You can anytime switch to our Cloud services with minimal or no interruption to your services, at a click of a button from the Mesibo Console. Our Cloud services will serve your users till you fix issues in your data-center, and once you resolve them, you can again switch back your On-Premise deployment.
Can I keep my database behind a firewall and run Mesibo?
Absolutely. We do not need to access your database, and hence, you may keep it behind the firewall. You only need to ensure that your database is accessible to the Mesibo on-premise server. Refer On-Premise documentation for more details.
What is Auto fallback to cloud option ?
In the Mesibo console, if you enable auto fallback in the on-premise settings, Mesibo will automatically connect to cloud service if your data center is having an issue. Note that, some of the offline messages will not be delivered in fallback mode since the Mesibo cloud has no access to your database.
What is 'do not perform network check' option ?
If you enable do not perform network check, Mesibo console will not perform any checks for the correctness of hostname, or any network connectivity. Select this if you are running Mesibo On-Premise in your private network/intranet setup.
How can I configure my TLS/SSL setting ?
You can use any existing certificate that you may be using with your web server, OR purchase it from any provider of your choice, OR use Letsencrypt which is a free service to get a secure certificate. Note, while Letsencrypt is a great service, the certificate issued is only valid for 90 days. So if you prefer to install on-premise and forget, we recommend using a certificate having a long expiry, 1 year and above.
To configure TLS/SSL certificate, refer on-premise documentation.
What happens if I have enabled on premise and my server is not running?
There are two possibilities -
- If Auto Fallback is not enabled and your server is not running and you have enabled On-Premise, your users will not be able to connect and hence will fail to get your service.
- If Auto Fallback is enabled and your server is not running and you have enabled On-Premise, your users will switch to Mesibo cloud after a few retries
What happens if I am connected to my server and disable On-Premise from console?
If your server is running, your users will continue to connect to your On-Premise server since they do not know about your disabling On-Premise server.
However, if you also stop your docker container running Mesibo, your users will be redirected to Mesibo cloud after a few retries and will connect there since you have disabled On-Premise.
How do I ensure that my clients connect directly to my server and not through mesibo servers?
When you use mesibo on-premise, none of your real-time data (messages/calls/files) passes through the mesibo servers since your client connects directly to your servers. You can verify this by running
netstat -anp | grep ESTA command, OR by running a packet sniffer on your server where you have hosted mesibo on-premise. You will see that all the connection IP address matches your clients, and not even a single request is coming from mesibo servers.
Does on-premise requires internet?
On-premise requires minimal internet access only for authenticating with the mesibo server and the billing purpose (notifying MAU). Since the internet is only used for licensing and informing mesibo about the MAU, the internet usage is extremely minimal.
You should ensure that the on-premise server is able to connect to onp-auth.mesibo.com
Will the backend API URL change when I use on-premise?
mesibo on-premise comes with backend APIs and hence you can host the backend to your server and change the URL. However, it is not mandatory and you can also still use the cloud backend API URL for user creation. When running on-premise, you only need to use backend APIs for creating users. For everything else, you can use real-time APIs. Refer to on-premise documentation for more details.
How can we keep our On-premise deployment updated with latest features and technology?
With just one command, your entire deployment will be updated to the latest Mesibo version. Refer to the On-Premise Guide for the details.
If I need to run multiple apps, then should I spawn multiple docker containers?
Yes, you can run the mesibo docker container for each of your applications by configuring the respective app token. You can use a separate or the same database for all your applications.
How to orechestrate mesibo docker containers on Kubernetes
Mesibo docker container is similar to other docker images. Refer to Kubernetes documentation.
What is loadable modules and scripting?
Mesibo On-Premise is designed by developers for developers. Its dynamically loadable module architecture lets you load your own code for deeper integration with your infrastructure, enabling you for unlimited creative possibilities.
With Mesibo Modules you can build powerful chatbots, filters, remotely communicate with hardware for IoT and robotics, integrate with Machine learning and Scientific computing backend such as Tensorflow, Dialogflow, Matlab, etc and much more, all the way keeping your data secure and private in your premises or private cloud.
How does a mesibo module work?
Mesibo Module is essentially a message processor that allows you to intercept each message and decide whether to pass the message as it is to the destination, drop it, or process it before sending it to the destination. For example,
- A profanity filter module can drop messages containing profanity
- A translation module can translate each message before sending it to destination
- A chatbot module can analyze messages using various AI and machine learning tools like Tensorflow, Dialogflow, etc. and send an automatic reply.
A Mesibo module is built as a shared library (.so file) which can be loaded at runtime by the Mesibo server. Mesibo then invokes various callback functions that you have defined in the shared library whenever it receives messages or message status from your users
What can I build with Mesibo Modules?
The functionality of each module is programmed by you and its capability is limited only by your imagination. Mesibo modules make Mesibo a powerful communication platform.
With Mesibo Modules you can build interesting applications such as chatbot, translation service, profanity filter and much more!
Do I need to sign-up with mesibo to use mesibo on-premise server?
Yes, you are required to sign-up with mesibo to use the mesibo on-premise server. You will require to obtain a token from the mesibo to run mesibo on-premise and hence the sign-up is required. This token will be verified by the mesibo on-premise server at the time of running.
I am getting MySQL Connection Failed error.
You need to ensure that your MySQL server is accessible from the docker image. If you are configuring 127.0.0.1 or localhost for MySQL host, it is likely to fail since your MySQL server is outside your docker image and hence you need a real IP address other than the localhost.
The mesibo docker image logs the IP address and samples MySQL commands, try using them.
I have created a user using the backend API. However, I can not find that user in the on-premise database.
If you are using the mesibo hosted backend APIs, the mesibo on-premise synchronizes user information only when a user tries to log in for the first time. On-premise does this to optimize bandwidth and database access (imagine you have millions of users). Once the user logs in for the first time, you will find user information in the database.
However, you can host mesibo backend APIs on your on-premise. In this case, the user will be instantly visible in your database. Refer to the on-premise documentation to learn how to host mesibo backend APIs.
Can you set up on-premise for us on our server?
If you are a paid user with more than $2000 paid credits (excluding any free credits), we can one-time set it up on your Linux server. You need to ensure that your Linux server meets the requirement mentioned in the documentation, the MySQL server is running and configured, and valid SSL certificates are ready to use. You also need to provide a superuser account for us to set it up. If you do not have $2000 paid credits in your mesibo account, we charge $750 to set it up one time.
Can I use AWS lambda to run mesibo on-premise
Although, it can be possible to run docker inside AWS Lambda with a hack and configuring a custom VPC, it is not recommended to setup mesibo this way.
Instead, you can easily setup mesibo on-premise on an AWS EC2 instance following the the setup instructions provided in the on-premise doc .
Can I use mesibo on-premise with MongoDB instead of MySQL?
Mesibo On-Premise operates as a MySQL client. You may use
mongosqld to act as a proxy between mesibo on-premise and MongoDB. The most straightforward way is to use the C authentication plugin. However, this does not support MySQL versions greater than 8. Therefore, the latest version of on-premise is incompatible with this plugin.
Refer to https://docs.mongodb.com/bi-connector/current/connect/mysql/#connect-from-mysql-with-authentication for more details.
Can I use database tables created by mesibo on-premise?
All the database tables created by mesibo on-premise and the data in it are accessible to you. However, you can only use data from the
calls table. All other tables are for mesibo on-premise use only and can be modified or deleted without notice.
Are there any limitations on using on-premise for free users?
If you are a free user, the on-premise server will disconnect after running it for a few hours every day. This is to prevent commercial deployment during the evaluation by free users. You can update to a paid plan to remove this limitation.