MongoDB (with Eliot Horowitz)

Episode 203 · Tue, 23 Jul 2019 14:00:00 +0200 · 16:25 · SRT · archive.org · all Tanzu Talk

0:00

Welcome to the latest episode of the Cloud Native in 15 Minutes podcast. The goal of this podcast is simple, to explain complex but increasingly important and even strategic technologies in about the time it takes for a coffee break. We're all busy, but that's not an excuse to not understand, at least at a high level, some of the fundamental technologies that will be powering your company for the next decade. I'm Derek Harris from Pivotal, and our topic today is MongoDB. Joining me to explain is Elliot Horowitz, the creator, co-founder, and CTO of MongoDB. Among other things, Elliot explains what MongoDB is and how it compares to other types of databases, mostly relational, and the importance of developers in choosing enterprise technologies. He also goes into detail on why cloud-based database services are so popular and why most open source users don't need to worry about the company's latest licensing changes. And without further ado, here is Elliot Horowitz. Okay, Elliot, so let's get started. In 30 seconds, can you describe to listeners what is MongoDB? Sure. So MongoDB is a document database, and it's a document database that's really based around three core principles that make users really like it. The first is obviously that it stores data in documents rather than tables, rows, and columns, which means people can store data in a very natural, easy-to-consume way, but still get great advantages like indexes and query language. The second is how we use distributed systems for high availability, scale-out, and putting data distributed around the world. And the third is that you can use it on any device because it's open, so on any cloud, on your laptop, on a mainframe, wherever you want. In terms of how popular it is, so we've had over 70 million downloads at this point. We've had over a million people register for MongoDB University, which is our free online course to learn about MongoDB. We have more than 14,000 customers who are paying customers. More than half the Fortune 100 are paying customers. And so there's a huge amount of adoption, both of the open source version of Mongo and our cloud service and our enterprise edition as well.

2:02

Okay, and just to be clear, how do you distinguish a document database from a more familiar relational database or other types of databases? So it really comes down to two things. One is how you're storing the data, right? So storing it in MongoDB and JSON-like documents versus tables and rows. And what does that really mean? It means, one, you've got hierarchy in your document. So as you've got complex documents, you can have hierarchy and polymorphic hierarchy. So if you have a product in a product catalog, so like an e-commerce store, like a digital camera, you can store that. You can have a sub-document of attributes and put arbitrary things inside of those attributes. So like megapixels, color, zoom, optical zoom, digital zoom, whatever you want, but still be able to index it, still be able to query it. And you can, of course, also have arrays inside of your document. So you can have an array of attributes or an array of addresses associated with the user, sort of whatever kind of flexibility you need to store the data. But at the same time, you still have a very powerful query language that natively understands documents. So you can still query, you can still index, you can still aggregate, you can still update in the kind of ways you're used to just in a document form. Okay. And then MongoDB kind of came about, you know, kind of, I think, became known as one of the poster children of the NoSQL movement. Now, God, I pushed it a decade ago, right? How has it evolved as a technology since then? Sure. So when we started MongoDB, you know, the goal really was to figure out if people were excited about a document database with distributed systems underneath. And building a database is hard. And so we built the database to sort of see if people were interested, to see what it would be like to have a database like that. And people got incredibly excited about it. And so we spent, you know, the last 12 years both really investigating what it means to be a document database, what users really care about from distributed systems, and then making MongoDB as robust as any other database on the planet. So people can use it for mission-critical applications where, you know, people lose money

4:02

or worse if the database goes down and really be able to handle absolutely any kind of workload. And if you look at sort of how the database markets evolved, a lot of other databases are trying to take features from MongoDB and put them into other databases. But it's always not quite as nice as actually using a database built from the ground up to handle documents, to handle distributed systems, and really to be built for modern applications. All right. And where does MongoDB, where does the user base typically come from in terms of, you know, I think MongoDB came about as, you know, a lot of developers, right? It was really developer-friendly. A lot of developers picked it up. Is that still the case? Is it? I mean, that seems like an important factor in at least getting adoption off the bat. It's still the case, right? At the end of the day, developers are typically the one making database choices today. Even in big enterprises where we go in, the typical pattern we see is a developer tries to bring it in, but they use it for a small project, then it gets sort of the official executive approval, and then it goes on a menu. And once it's on a menu of something developers can choose from, at the end of the day, it's still a developer making a choice on any given project, what database they want to use. So developers are still our target audience. Developers are who we are always making sure are incredibly happy, and that they have the absolute best experience using MongoDB compared to any other database on the planet. Okay. And how does MongoDB fit into, I mean, I don't know that the pitch ever was like replace Oracle with MongoDB, right? But to the extent that there was talk about that, I mean, is that still the same today, or has stuff kind of shifted? You mentioned kind of how the database market has evolved. How has stuff shifted? I mean, in some ways it's the same. I think, you know, I think it comes down to a few things. One is there's a lot of places where, you know, the data model for an application just doesn't fit into a relational data model. And then MongoDB is sort of a no-brainer. There are cases where none of the relational databases scale to the kinds of volumes people need. I mean, that's a great use case for MongoDB. There are cases where certain features, like being able to put data spread around the world in a single cluster,

6:06

are a critical feature, whether, you know, either for compliance reasons or latency reasons. And you want to keep data in different countries and close to users. And that's something where only something like MongoDB could really satisfy it. It's not really people who are saying, oh, I've got an Oracle database. Let me just swap it out with Mongo just for fun, right? It's a lot of work. And so it really comes down to some business problem, some real problem, saying I've got a problem here. My answer is doing every architecture inside of Oracle and figuring out a totally different way to use Oracle or moving to MongoDB and making my life, you know, my developers' lives a lot easier. Okay. And are there specific use cases or applications that you see within customers that are particularly well-suited? I mean, are things you see kind of over and over again? I mean, there are some. You know, anything where there's sort of content, like content management systems, customer relations management systems, people are combining different data sets. But the reality is there aren't really terribly sort of specific areas. Mongo is really incredibly general purpose. There's, you know, anywhere from, you know, financial applications where people are actually moving money inside of MongoDB to being able to use an IoT to games. It's really incredibly broad. There is not really a handful of use cases that are dominant. It's really across the entire board. And if I'm an IT exec, right, and I'm tasked with balancing, like, any number of various paradigm shifts, right, or big trends that are happening at any given moment, like, how does MongoDB tie into some of these other initiatives, whether it's, like, cloud native or microservices or IoT or even, like, big data, right, which I think, you know, MongoDB is probably part of that discussion at some point. Yeah, so obviously a lot of those things are pretty buzzwordy. But if we take some of them apart, it's like microservices, right? MongoDB tends to be used in a lot of microservices use case because it fits very well to the paradigm of, you know, hey, I've got this application. This application or this service is going to use this kind of a data model and, you know, have a very tight mapping.

8:07

It's very easy to have lots of, you know, MongoDB instances that can scale with a service and, therefore, it works well. A lot of companies we see take these big monolithic applications built on Oracle and their way off of this monolithic environment is to, you know, peel off services one at a time. And as they do that, they tend to often move them to MongoDB as well, right? So take this, you know, 100 different applications using the same database, start pulling off services. As they pull off a service, they also move the data to MongoDB. That's pretty common. You know, we are, you know, cloud native in every way except for the fact that we are also open source and also not run by one of the big public cloud companies. But, you know, if you use our Atlas service, it is as cloud-friendly as anything else on the planet. So people love that you can go to Atlas, you can just spin up a cluster in a matter of minutes, you can scale it whenever you want to, it's fully elastic. It's completely a consumption pay model where you can just pay for what you use. There's no, there's nothing complicated. You can go into the credit card and not talk to a salesperson, incredibly developer-friendly. And then you also have the freedom to move cloud or move clouds or to get off the public cloud if you want to. We're used in a lot of big data cases and a lot of IoT cases, you know, where people are putting in a ton of sensor data, streaming data, whether it's, you know, sensors or financial data. So it works well in that paradigm largely because it scales very effectively. And because of the data model, again, because you can put arbitrary data in there. So as your sensors change, as the world around you changes, the database doesn't have to change with it. It just sort of naturally evolves with you. We also have our new product, Atlas Data Lake, which lets you go after the big data market in a very different way because you just have the ability to store data on S3 in any format that you want. And then still query it using the standard Mongo query language so you can actually have a very cost-effective way to have, you know, massive amounts of data. Okay.

10:07

And when you say cloud native, I mean, I think the one area, I mean, there's definitely like the cloud part of that running in the cloud, right? And then there's also, I think, you know, cloud native tends to be considered, you know, Kubernetes-centric or something at some point, right? Is there a connection? Do you see MongoDB as part of a lot of, you know, re-architectures around Kubernetes or other, you know, various platforms? Yeah, we see a lot of people. I mean, certainly off the public cloud, we see almost everyone moving towards a Kubernetes environment. We see someone in the public cloud as well. So we see a lot of that. I think of it more as a thing that you can control all via APIs, all fully automated, where you don't have to think about sort of a lot of the operational aspects. You just say, hey, I want a MongoDB cluster of this size and, you know, help me scale it so I know what I need to scale and what I need to do. All right. Yeah, that makes sense. And you talked about Atlas, the cloud service. And I think you got to some of that reason. But what is it? Because cloud databases are, MongoDB seems popular. They're just popular, right? What do you think it is that makes them, like a cloud database, such a popular service? I mean, the simplest answer is running databases is a pain. And no one wants to manage their own database. So if you have a service that lets you run your database and take all the operational overhead off of you, it's going to make your life easier. Right? Just things like, you know, patch upgrades, you know, rolling upgrades when a new version comes out, monitoring, backup, all the security checks you need to do, being able to automate restores, being able to automate authentication and all the security sort of integrations you want to have. Integrating BI, like there's just a lot of work into maintaining a database, no matter what database it is. And if you can just hand all that off to a third party, it's just going to make your life that much easier. All right. And you don't need to worry about all that benchmarking on custom hardware and the whole nine yards, right? Yeah, look, if you've got a specific use case where you know there's some custom hardware or some hardware vendor that you're super excited about, like, that's great.

12:09

You know, that's great. You should do that. And that's one of the great things about Mongo, as opposed to sort of a database that's locked into a cloud vendor, is that if you start off on Atlas and it's working well, but then at some point, for some reason, you want to use some very specialized hardware, you just run that same database. You don't have to sort of re-platform or re-architect, you just move the data. That's very easy. Your application doesn't have to change under the covers. Okay. Makes sense. And you mentioned lock-in, right, and kind of cloud vendors. I wanted to ask, like, MongoDB is one of a handful of companies that recently revised its open source license. I think in part is a response to some of the stuff that some competition from cloud providers. Like, if I'm a customer, is that something I need to worry about? I mean, I'm just curious, like, the nuances of open source licensing, if that's, like, how big of a deal that is if I'm a customer. Yeah, so just to be clear, we didn't change our license because of sort of anything sort of like the major public clouds we're doing. We changed it largely for sort of smaller vendors and international reasons. And the reality is, in Mongo's case, it really doesn't change much at all. The original license for MongoDB, the AGPL, had pretty strict requirements around what someone would have to do if they want to run MongoDB as a service. And the SSPL that we changed it to just clarifies what we've always said. So if you're a regular Mongo user, meaning you're not trying to run it as a third-party service, there are absolutely zero changes whatsoever to what you have to do with it. It's just as free, just as open source, all the sources there. You don't have to do anything. You can run it. There's no requirements whatsoever. And nothing changes. Okay. Okay, cool. And speaking of open source, like, what's the difference between open source or upstream MongoDB and the enterprise version? It's really pretty limited. It comes down to a few very specialized security features. So, for example, Kerberos integration. Kerberos integration is something that only a handful of sort of big enterprises care about.

14:10

That's something that goes in there. Auditing. Being able to actually have auditing at a very fine level is in there. Encryption at rest, sort of the fancy version is in there. You know, you can already do an encryption at rest on, you know, on EC2 just by running on top of an encrypted EBS file system. But if you want sort of a fancier, higher-performance version of encryption at rest, that's an enterprise. There's nothing that developers are developing against or using on a daily basis. It's just, really, it just ends up being security features. Okay. And then finally, and given that, like, is there a common point? I mean, I'm curious, what is the point or size or use case or whatever it is where MongoDB users become MongoDB customers? So, it's really two very different tangents, different branches of why someone becomes a customer. The first and the more common one these days is they want to use Atlas, right? They just want to use MongoDB as a service and they don't want to run it themselves. That is where, sort of, from a numbers standpoint, most of our customers are just because people want to consume it that way. And that is, like, any, you know, frankly, in my mind, everyone should want to do it that way because who wants to run their own database? On the enterprise side, where if you are on-prem, it tends to be either around security features or some of the other products we have that are sort of part of that bundle or you just want support or consulting or something of that nature. All right, great. And our 15 minutes are up, Elliot. Thank you. Great, no problem. That was great chatting. There you have it. I hope you learned something about MongoDB. For more information about MongoDB, you can check it out at mongodb.com. Simple enough. For more information on our broad suite of products and services for building and managing cloud-native applications, as well as transforming how you build software, check out pivotal.io. And if you like this podcast and want to keep up with all things cloud-native, digital transformation, whatever you call it, without the vendor spin, including some real thoughtful pieces from folks who've been in the field and done this stuff before, some guides on things like Kubernetes and streaming data and all sorts of other stuff, you can check out our executive-level blog called Intersect.

16:18

And that is at pivotal.io.io. Talk again soon.

Tanzu Talk · 🍕 Get more pizza.