There are many advanced configurations available within Alteryx depending on the size and scale of the implementation. One important option for scaling, fault tolerance, and disaster recovery is user-managed MongoDB. For companies with small environments, user-managed MongoDB is probably overkill, but for those using Alteryx in a large, mission-critical environment, user-managed MongoDB is a best practice. Here’s an overview from MongoDB: https://www.mongodb.com/nosql-explained/nosql-vs-sql
This article will be a reference for those looking to understand if User-Managed MongoDB is right for their Alteryx implementation.
Many clients ask us:
- What is User-Managed MongoDB for Alteryx?
- How is User-Managed MongoDB different than the default installation of Alteryx Server?
- When should clients use User-Managed MongoDB with Alteryx?
- What are the benefits of using User-Defined MongoDB with Alteryx?
MongoDB is one of the leading database providers for application developers. Unlike a traditional RDBMS (SQL Server, Oracle, DB2), MongoDB uses a NoSQL, document-based approach. While the SQL vs. NoSQL comparison is out of the scope of this article, a quick Google search will give you access to hundreds of articles and videos comparing the two.
Alteryx selected MongoDB as the back-end database for Alteryx Server. MongoDB will store nearly every object, configuration, and usage detail of the Alteryx Server. Workflows, schedules, user rights, server configurations, run logs, and many other items are stored within MongoDB. The MongoDB database is the backbone of Alteryx Server being queried by each Alteryx Service every time a user logs in, a user clicks on something in Gallery, a workflow schedule executes, workflows fail/succeed, etc. Like all database-backed applications, there should be little to no delay between the service requests and the database responses.
When installing Alteryx Server, users select a “Database Type” for the configuration (Figure 1). The default “MongoDB” selection will use a “free” and “embedded” version of MongoDB with limited functionality. As with most applications, embedded databases are great because they are included with your application license and work great for basic environments.
This brings us to our questions:
What is User-Managed MongoDB for Alteryx?
User-Managed MongoDB is an option that configures Alteryx Server to utilize a MongoDB environment that is installed, configured, managed, and maintained by the Alteryx client.
For clients with MongoDB expertise or with environments that need to scale beyond the capabilities of the “embedded” MongoDB capabilities, User-Managed MongoDB unlocks the enterprise capabilities of MongoDB.
How is User-Managed MongoDB different than the default installation of Alteryx Server?
The default Alteryx installation includes an “embedded” MongoDB license with limited functionality. While this license is “free” or “included” with Alteryx Server, it has limited functionality.
User-Managed MongoDB includes advanced options for scaling across multiple servers, fault tolerance, and advanced disaster recovery options. Because User-Managed MongoDB requires the full version of MongoDB, clients will have access to all of the GUI tools, reporting, logging, etc. standard with the MongoDB platform.
While User-Managed MongoDB might be great for some, there are also some considerations that make it a poor choice for others.
- MongoDB costs money: To enable User-Managed MongoDB, a license for MongoDB must be procured and renewed.
- MongoDB requires expertise: MongoDB is an enterprise database and requires the proper skillsets to manage and maintain the environments.
- Alteryx support for User-Managed MongoDB is limited: Once a client takes control of the MongoDB environment, Alteryx support can no longer be on the hook for the configuration, maintenance, or other administration items that are fully automated when using the “embedded” license.
When should clients use User-managed MongoDB with Alteryx?
With most technology decisions, it’s best to employ tools and advanced options when the situation requires them. Alteryx Server’s “embedded” MongoDB works great for the majority of environments. Some clients find that MongoDB becomes a bottleneck on their Alteryx environment and that the database can become difficult to manage with the limited tools available with the “embedded” license. We typically consider User-Managed MongoDB when environments have:
- Thousands of workflows, schedules, versions, users, etc.
- 75+ concurrent users within Gallery, regularly.
- The requirement of high availability, especially if downtime has been a problem.
- Special security or administration requirements.
Adding the complexity of User-Managed MongoDB is not recommended unless there are scaling, fault tolerance, backup/recovery, or complex security requirements causing a need for the advanced features available within the full MongoDB platform.
What are the benefits of using User-Defined MongoDB with Alteryx?
The key pieces of functionality that make User-Managed MongoDB a requirement for some clients include:
- Replica Sets: These allow MongoDB to create replicas of the database that are used for failover and as a dedicated reading database to reduce the load of reporting queries on the primary database.
- Sharding: This is a way for MongoDB to distribute data across multiple servers. This horizontal scaling mechanism increases the complexity of the MongoDB environment but creates an option for Alteryx environments with large workloads and high user concurrency when vertical scaling is no longer an option.
- Enhanced Security: MongoDB has many advanced security options through different layers of encryption for data at rest or data being transferred between servers.
- Enhanced Administration: MongoDB has enterprise-class monitoring, reporting, and back-up options available that are not included with the “embedded” license provided by Alteryx.
As applications like Alteryx become more and more critical to the operation of a company, new tactics are required to meet user demands. Alteryx understands that most organizations prefer an application that is easy to install, support, and maintain so the default installation includes an embedded version of MongoDB. For clients who need more control and have more IT expertise available, Alteryx has provided the ability to fully manage the MongoDB database using the user-managed installation option.
At Capitalize we always guide clients toward the minimum complexity needed to support the business. When clients begin to stress the Alteryx architecture, we look at dozens of metrics and options to figure out the best solution to meet the needs of the business. When User-Managed MongoDB for Alteryx can help clients scale their environments, we are here to help install, configure, and support the new environment. As with all our projects, we are also excited to train your internal team on the ins and outs of handling a User-Managed MongoDB installation!
If you feel like you’ve outgrown your Alteryx architecture, please contact us to help diagnose your issues. We can perform a health check and create a custom plan to scale your Alteryx Server environment!