This blog is a revised version of an article first published in February 2020.
There are various factors to consider when developing an innovative chat app, not least of which is where you will run your application and store data. Hosting requirements vary tremendously depending on the number of users you anticipate for your app, the geographical location of your user base, whether your industry requires certain compliance regulations, and what stage you’re at in app development. But choosing the right hosting environment remains critical as it can affect the growth, performance, and security of your application.
In this article we provide a detailed overview for choosing the best hosting set-up. First we outline three distinct hosting environments and describe 5 key factors to consider when evaluating these different infrastructures. Then we provide an 8-step guide to help you pick a chat hosting provider that meets you all the way and supports your unique business requirements.
To start, it is useful to have a general understanding of distinct hosting environments. These can be primarily categorized as shared, dedicated, and on-premises.
A shared hosting environment is a single hosting environment used by multiple tenants, each of whom access the resources and computing power of the hosting environment. The cloud hosting infrastructure, including hardware and software, is owned and maintained by another party and a standard set of available cloud services are available for quick setup. Customers share access to the software and computing resources such as CPU, memory, and storage, while their data is segmented and invisible to others. This is an ideal set-up for those starting out, looking to test a POC, or are on a limited budget. It’s a great way to develop and trial a new chat app without investing a great deal of financial resources.
Find out more about: On Premise vs Cloud Hosting: Frequently Asked Questions
With a dedicated instance set up, you are still utilizing space from a cloud provider but your single organization enjoys exclusive access to the communication software and computing resources within your own dedicated cloud account. This grants your organization significant advantages. Notably, single-tenant cloud hosting usually means improved performance over multi-tenant hosting precisely because you’re not sharing resources. And because you have a dedicated instance of the software in your own cloud account you have greater flexibility for customization, security, scalability, and other enhancements, including specifying maintenance schedules with your providers while benefiting from a managed service.
An on-premises infrastructure (also known as self-hosted), offers the highest level of security for your chat application. In this hosting model, software is deployed on dedicated servers and/or a private cloud owned and maintained by your organization and located within your own data center. This set-up has fixed costs as customers need both the physical hardware and DevOps team who are responsible for server management. However, for large corporations, particularly financial institutions and government agencies, business operations may require a private network with high security with minimal or no access to the cloud. Increasingly on-premises deployment is used alongside cloud hosting in hybrid deployment models.
Find out more about: Quickblox Hosting: Shared Server, Enterprise Cloud Hosted, and On Premises
When choosing the most suitable hosting environment for your application there are several factors you need to consider:
Do you have particular chat compliance requirements? For example, if you have a healthcare app you may need to demonstrate that you are HIPAA compliant. Or are you required by law to store customer data within your own country? For example, since the European court of Justice ruled the EU-US privacy shield as incompatible with GDPR, developers of German healthcare applications are now prohibited by law from storing data pertaining to German citizens outside the EU. Since a multi-tenant (shared) environment relies on the hosting provider to ensure services are GDPR and HIPAA compliant, this is not always the safest option. Be clear about what regulatory compliance issues affect your business so that you can ensure your hosting infrastructure meets your requirements.
Find out more about: Compliant Cloud Hosting for German Digital Health Applications (DiGAs)
Your hosting service will also partially determine the available level of data security. Although cloud hosting is generally considered to be secure, there are nonetheless important differences you need to be aware of.
If you set up an account directly with the cloud provider, your organization enjoys greater control and access to all your data. With most CPaaS providers, however, you will be obliged to host your application within the CPasS provider’s cloud account (usually set up with Amazon Web Services), which means they (and not you) have a direct relationship with their public cloud service and in this regard ultimately still exercise ‘control’ of data within their account. For this reason, a dedicated cloud account is better suited for enterprises needing root control over their data.
It is also worth pointing out that if data security is a major concern you have more options to include security enhancements with a dedicated instance.
Hosting dedicated software and customer data on your dedicated cloud account offers a high level of security — especially in comparison to a multi-tenant environment– but ultimately, on premises hosting offers the highest level of all. Many finance institutions and government agencies prefer to host data on their own physical servers to remove third parties from having access to their chat and user data.
There are several factors around the hosting of software that can affect the performance and availability of your app. Geographic location, usage and server load can impact upon the speed and availability of services. When selecting a server configuration these items should be considered. Let’s break this down. Location of the servers or VM can impact response time. The closer the server or VM is to your target audience, the better user experience and response time your customers are going to have. Cloud providers offer different availability zones, so pay attention. For example, if you are creating a chat app for a predominantly Chinese audience then you may wish to consider a hosting provider with a strong presence in this market, such as AlibabaCloud, to avoid performance issues with local firewalls. Or if services are global you may want to distribute your infrastructure across different availability zones of cloud providers so you can serve customers around the world. You don’t want to be offering communication for your customers in the US from India.
The same considerations come into play when thinking about server load and usage. Is the service ‘peaky’ in that you expect higher volumes of users at certain times of the day or around certain events? Or is load evenly distributed? Is your app going to be heavily marketed or featured in an app store? These factors can impact your user experience and create delays in the ability to connect. What happens if usage grows rapidly and you see large volumes in growth of traffic – are you or your communications provider ready for your success?
If using a shared cloud with the same hosting resources, other traffic can potentially impact individual services. Shared hosting provides cost savings and there are times when 24/7 high performance doesn’t matter as much as cost. For a bootstrapped start-up with a limited number of users, hosting on a shared cloud makes sense.
If however, you are a mature company with experience of these factors then you will understand the value of a dedicated hosting environment. For instance, if communication is a key component you will want SLAs and uptime guarantees. Healthcare companies often depend on seamless communication between doctors and their patients via chat app, with minimal downtime, SLA, and HIPAA compliance – optimally they should consider a dedicated infrastructure to host their app.
Find out more about: Advantages of Enterprise Hosting for Secure Chat
If you have significant requirements for Disaster Recovery (DR) and around data retention, backup, and storage of data, then shared hosting may not be the best option. To keep costs down on their shared / multi-tenant clouds, many CPaaS providers enforce strict usage on data retention, traffic, memory, and data storage limits. Some apps will generate an enormous amount of highly confidential customer data. You want to choose a hosting solution that will store this data securely and to back it up for your business continuity. In these cases choosing a cloud environment that supports high availability / disaster recovery (HA/DR) is a must.
Budgetary constraints will also play a role in determining which cloud hosting infrastructure you choose for your chat application. We all want our applications to run with optimum performance and security, but depending on the options chosen for set up – this impacts the overall solution cost.
Hosting costs for CPaaS providers are often bundled into monthly subscription charges and this means it might not always be clear exactly what you are paying for. If you set up a dedicated account with a cloud provider, you have more transparency over exactly what fees are for CPaaS services and what are your hosting costs, and you have more flexibility over which additional services you add (note many CPaaS providers require the use of their hosting environment). Also each CPaaS cloud provider offers their own pricing models, some charging per chat, per video or voice call minute, per month, or based on usage which can result in bill shock. Find a pricing model that suits your particular needs, budget, and usage requirements.
Find out more about: Quickblox Hosting Options for Enterprises
Now that you have done all the homework necessary for picking the best chat hosting environment, here are the steps to follow to make the choice:
Step 1: Understand the Needs of Your Application
Naturally, the first course of action is to prepare a list of expectations and categorize them as non-negotiable needs and negotiable nice-to-haves. The previous segment offers a detailed breakdown of all your considerations to bear in mind while populating this list; use it as a reference to get started.
Step 2: Scout the Market for a Suitable Chat Hosting Service Provider
Once you have a list of requirements ready, check out the various chat hosting options available in the market. You can start this search online, collect recommendations, or check out forums and platforms to prepare a comprehensive list of options.
Step 3: Shortlist the Suitable Ones Based on Multiple Parameters
Once you have a list of all the prospects, you can start weeding it out to retain the relevant ones and filter out the excess. The best way to go about it is to prepare a pointer system that allows you to assess how well a solution ticks all your boxes and shortlist the ones that meet a prescribed benchmark.
Find out more about: On-Premises or Cloud Hosting for Banking and Finance
Step 4: Ask the Right Questions
Since you will already have clarity on the features, tools, and traits of the chat hosting provider as well as the shortlisted service providers, you may approach them to go over a few of your questions regarding their services. You may question them on:
And more.
Step 5: Request for Quotes
After the preliminary communications, you may have a more concrete idea about how well the chat hosting environment may gel with your app. But budget could be a make or break factor that could undo all the progress you might have made in clinching your preferred chat hosting provider. As such, before formalizing anything, you should request quotes and analyze how they align with your budget. You could even consider negotiating the terms of payment at this stage in lieu of longer commitments.
Step 6: Sign up for a Demo
At this stage, you might have already made up your mind on the solution that best fits your requirement. But signing up for a product demonstration or a trial period can cement whether or not your choice is practically viable as opposed to mere assumptions. You can even opt for a freemium model to test how the host handles your chat applications while you measure metrics such as speed, responsiveness, uptime, etc., of your app.
Step 7: Check out Customer Support
While performance metrics are crucial in choosing the perfect chat host, customer support is the unsung hero that gains little to no credit during the initial days. The fact remains that despite availing of world-class facilities, you are bound to experience technical difficulties at some point. And at this juncture, customer support will swoop in and come to your rescue. As such, you might want to check out the responsiveness, query handling capacity, and knowledge of the customer support teams to assess your overall experience.
Step 8: Always Be Looking
Just because you have found a host that is working for you does not mean that you are married to them. In fact, it is an excellent practice to continue checking out the markets to find someone who can offer more value, be it technology-wise or on the cost-efficiency front. Keep a vigilant eye on the available options and consider migrating to other chat hosting options if you come across a vendor who can go the distance in making your chat app the best there is!
Clearly there’s much to consider when determining the best hosting option for your chat application. QuickBlox works to provide our customers with a variety of options to meet their needs rather than a generalizing solution. QuickBlox chat SDK and chat API software can be utilized via a range of hosting environments.
To ensure the optimal performance of your chat application speak to one of our integration engineers. We would be happy to discuss your specific business requirements around hosting needs. Contact us now.