What is our primary use case?
I have done a variety of things with MongoDB that started with the adoption of this solution at one company. I was involved in setting up the cluster and then the monitoring, alerting, and backup process. Once all of the set up was complete, I was involved in writing some of the components that were responsible for fetching data from MongoDB.
We are now responsible for running the platform, so whoever wants to run MongoDB comes to us and we explain how we can deploy the cluster for their applications. At this point, we build a cluster in the servers under a UNIX account. The number of nodes in the cluster depends on the requirements of the application side.
Some of the use cases we have configured MongoDB for are desk-tooling and a payment card profiling project. We are currently working on a data exchange platform. We also have a couple of use cases in the pipeline for potential MongoDB clients who also need the MongoDB Ops Manager.
What is most valuable?
The most valuable feature is that we don't need a schema to store the data.
The security is very good. Cybersecurity, authentication, authorization, and server certifications are all valuable features. We can define security rules at the database level or the cluster level to grant or deny access to particular users.
This is a highly available architecture. If you are using a three-node cluster and one of these goes down then either of the secondary nodes will become a priority to eliminate downtime from the application's perspective.
What needs improvement?
The documentation for MongoDB is not very good and should be improved. Some of the documents are referring to legacy versions. MongoDB 4.2 has been released, but there are training documents and other documentation that still refers to versions 3.6 and 3.4, which is not good. They should definitely update the documentation as new software is released.
Data encryption is possible using third-party tools but they should have their own encryption capability built-in to this solution.
Information about upcoming and recently released features should be made available so that we are aware of the latest features, and how we can manage the issues that will accompany them.
For how long have I used the solution?
I have been working with MongoDB for the last three years.
What do I think about the stability of the solution?
We have not had any issues with stability.
How are customer service and technical support?
We have a support portal where we can log tickets and fix issues. We contact them directly and we can set up a call whenever we need help from them.
For some issues, I would rate technical support a nine out of ten, or a ten out of ten. However, at other times, I would rate them a seven out of ten. It depends on who is dealing with the ticket. There are times where they respond to tickets very quickly and things get resolved in a timely manner. At other times, it takes ages to resolve the problem.
Which solution did I use previously and why did I switch?
We did not use a different NoSQL solution prior to MongoDB.
We continue to use Microsoft SQL Server for other types of database implementations that require SQL, which I also have expertise in.
How was the initial setup?
The initial setup is not very complex. We used the MongoDB resources to understand how to set it up on a Linux server, and after that, we prepared our own document that explains how to install it. Now it is quite straightforward, although if you are going with a more granular level of configuration, such as enabling other parameters on the cluster, then it would be different. I would say that set up would be a little more difficult, but not much. It's very simple using the MongoDB Ops Manager.
What about the implementation team?
We offer three types of services on the MongoDB platform. First is the ODS service, second is the MongoDB SQL, and third is MongoDB standalone. For standalone, we are providing services on the tenant. With respect to shared services, we have the infrastructure but we have to set up their database on the shared servers. This will be useful for some use cases. The standalone configuration takes approximately 15 to 20 days to set up. It is sometimes less but it takes the time to create and configure the UNIX account because we have a third-party dependency for that.
The ODS solution will be better for enterprise data such as those involving payments, accounts, and customers.
What other advice do I have?
MongoDB is a solution that I can recommend because we have realized good benefits from it. We are in the process of setting up the ODS project, which should help the organization from a cost perspective. Then we will be moving the mainframe data to ODS, and we can use the MongoDB API to fetch data from there and provide real-time solutions to the customer.
At this time, I cannot judge the benefit of MongoDB in isolation, but as time goes on, perhaps by the end of the year, I will have a better idea.
I would rate this solution an eight out of ten.
Disclosure: My company has a business relationship with this vendor other than being a customer: Partner