 Hi everybody, we're back. This is Dave Vellante with Jeff Kelley and this is theCUBE, SiliconANGLE's production of MongoDB Days. We're here at the Marriott Marquis in the Big Apple. Now the world is not ending, despite the fact that the economy's getting better even though the market tank the last two days looks like things are stabilizing a little bit. We'll see. Still early, it's only 1250. But we're here. We're covering MongoDB Days wall to wall. Eugene Vorkin's here. He is a coding architect at WebMD, a practitioner of MongoDB. Eugene, welcome to theCUBE. Thank you. I appreciate you taking your time out. We're talking to a lot of practitioners today. We all know WebMD, right? Anytime we have something wrong with us, we go to WebMD, we kick it off the site because we think we're going to die tomorrow, but it's a great resource though. It's awesome how much information is in there. It's really changed. It used to have to wait weeks to actually get any kind of insight. You've really empowered individuals to take action on their own. And so thank you for that. But talk a little bit about your role at WebMD and then we'll get into it. Yeah, my role is architecture and application. So currently I'm working on applications that use MongoDB and we also work on personalization. So we're tracking data, click stream data and do real-time decision. What's advertisement? Should people see what's contents will be most relevant? So I want to come back and ask you more about that individualization, that personalization. Before we do that, talk a little bit about when you could take us back to when you brought MongoDB in. What was the environment like before and what were you trying to accomplish? What was the driver to bring MongoDB in? Yeah, traditionally people use Oracle or any SQL databases. Why would you use MongoDB? Because of its scalability and performance characteristics, especially sharding. So we know we can grow as more data we catch, as more velocity of data increase, we can get it covered by using MongoDB. Explain what you mean by sharding. A lot of people use that term. Many may not know what you mean. Traditionally, scalability in database, it's vertical scalability. You just purchase bigger and bigger machine. Scale up. Scale up. But at some point, it's become very expensive or impossible to find a server that's supported you need. What's MongoDB and some of NoSQL server provided horizontal scalability? As you grow, you just purchase commodity server and add it to your cluster of machines. So you grow horizontally, almost indefinitely. Yeah, now the challenge of course of that becomes managing and balancing. Can you talk about how the industry generally and how you specifically solve that balancing problem? The good thing, we don't have a supplication architect working for enterprises. We don't have to solve this problem and solve by vendor. So for example, MongoDB, they have the solution with MongoS and all this configuration. So it's come with product. So Tengen has taken care of that. That's the value that Tengen adds on top of MongoDB. MongoDB, it's open source and the Tengen comes in and says, okay, we can make this even better. And that's how they make money. They provide a service around it. It's built into product. So you don't have to, you have to know how it works but you don't design the things. Because before, in order to do sharding, you do it inside your own application and take all this complexity, you do it yourself. Now, vendor does it for you. So that had to be one of the drivers too of bringing in MongoDB or it's the lore of its simplicity. Is that fair? All right, it's very developer friendly. So it's much easier to code against MongoDBs and say relational databases. Okay, so I want to come back to that too. But again, I was asking you to take us back. So it sounds like you were an Oracle shop and maybe still are. Yes. Okay, it's great. So you were using Oracle for a lot of the back end on WebMD and then what? You had all this influx of new types of data, massive increase in data volumes. A lot of it's, most of it's unstructured. So you're looking for a platform that's had greater affinity to that type of data. Is that right? That's absolutely correct. We have unstructured data, for example, events. When user clicks something, like on Facebook, Twitter, we capture all this event. It's mostly unstructured and we want to do some use of that. But it's like big data. We get a lot of data and sometimes we don't even know what's to do with that at this point. But next week we come with new ideas how to utilize that data. So that's why unstructured data, that storage that can take unstructured data in a big volume is very, very valuable. So you're keeping the data. You're not throwing it away. Right, right, right. With no throwing, no deletes, no updates. Just inserting and keeping. So how does it work? So you have SQL and then you bring in the NoSQL via MongoDB. It depends. It's for example, for analytical purpose and we have investment, company made investment in Vertica database which is SQL kind of database and data warehouse. So for that purposes we move data from Mongo into data warehouse. Because for reporting and other purposes it's, and plus, existing investment. It's much easier to work with structured database like Oracle or Vertica. Okay, so you got SQL, you got Mongo and you also got Storm, right? Yeah, that's more like a real time engine to move data around, to do real time computation. Storm is similar to Hadoop, but for real time, real time computations. And that ties back to the decisions you're making about serving up ads and individualizing ads which you want to come back to. But Jeff, you want to jump in here. Yeah, so I wonder if we could tie all that together and talk about some of the applications you've built and how they interact between Storm, Mongo and then the SQL technology. Do you kind of paint as a picture of the applications or do you build on top of those systems and kind of how those three interact? And I imagine there's a mobile angle here as well. But why don't we dig into one or two of the applications you've built and that you're kind of most proud of? Yeah, right now we have two applications in process. One is we call it communication platform. Basically it's serving ad based on real time user events. Events that user generates. And that's utilize the rule engine. So marketing people can specify on which rule based on marketing scenarios they have to execute in real time. And based on execution of this rule, marketing campaign get assigned to particular users. So that's, and to make it fast, we use MongoDB because of its excellent scalability and query support. MongoDB very good with indexes and other queries. And for analytics purposes, so let's say now we got all that stuff working and business BI people, they want to do analytics for customers, for internal customers. And that's where Storm come in. So we can on the fly in almost in real time transfer data from MongoDB into Vertica. Vertica is our analytical database, but it's similar to like data warehousing. Yeah, we're actually, we're very familiar with Vertica and those guys over there and the work they're doing based out in Cambridge, Massachusetts, where we're at. So that's a really interesting environment. So you're really serving up the capabilities via the ads to the end user. Again, via Storm and or Storm is kind of, it sounds like really making those, making those enabling you to make those decisions in real time kind of as the data streams in. Mongo helps serve those up. And then you move the data into the Vertica environment where you're doing more analytics to understand how those ads are, how effective they are, things like that. Okay, very interesting. So from your infrastructure perspective, what has been the impact of bringing in technology, you know, open source technology like Mongo, like Storm. At WebMD is that, do you kind of embrace all those technologies? Was there, you know, thinking about ahead of time like might be a little bit reluctant because of the open source nature? What was the impact on your kind of, your infrastructure and your processes of bringing in this technology when you've got, you know, obviously the traditional, where everyone knows the Oracle world and those two worlds kind of colliding a little bit? Well, I don't think they colliding, they can coexist. It just, you know, puts some pressure on bringing that technology in-house. So people have to learn and how to operate them. But if business requires and there is no other way of doing that, I think that's a good thing. And as a company, we're trying to embrace more and more open source technologies. So another thing you mentioned earlier was, and we've heard this from other developers, is that, you know, MongoDB is very developer friendly. So we hear that a lot, but can you put some color around that? What does that really mean, translate that? Is it, well, I'll just let you answer. What does that mean? Are there the tools to simply, more user friendly, more intuitive, explain that to us? In general, it's less code. If you look at traditional, how we build application with, let's say, relational database, and we build it on object-oriented, with object-oriented languages. This so-called impendence mismatch, object, it's hard to translate to relational database. It's like one-to-many relation, represent, pack and child, relational and object. So framework like Hadoop, like Hibernate, in Java word, they're trying to fill that gap. But still it's a massive knowledge to use that framework. It's a big chunk of work need to be done inside application to transfer this. With Mongo, they store document as object, natively, as based on object. So developers don't have to use or hibernate this transformation from object-oriented language into what storage requires. So whatever you have object, you save it as it is. Which simplifies, it's like removing the whole layer of complexity, that's why it's friendly. So, but even among those SQL technologies, Mongo has this reputation of being a very developer friendly. Is there a, kind of put Mongo into context of some of the other NoSQL databases out there, and why you guys went with Mongo specifically? Because for people who come, it depends, of course, on user case. And document structure of MongoDB fit well with like object-oriented word, especially for people who come from a relational world. So it's fit very nicely, and it has very rich query capabilities. For example, Redis, for example, it's key value store, but it's hard to search to index on some specific values that's sitting inside your values, but not in a key. So as Mongo as possible, it has a very rich data structure and indexable and searchable. I wonder if we could talk a little bit more about mobile and how that's changing your world as a developer, and many, many more people must be obviously using mobile. We just heard Jerry Cuomo from IBM talking about how they think about mobile first now. We were at O'Reilly Velocity this week, and one of our guests said, in two years you're not going to talk about mobile. It's just going to be. I wonder if you could share your thoughts on mobile and how it's affecting the developer angle and where you see it all going. I see, I completely agree that mobile first and more and more traffic come from mobile devices, especially in our area. I'm working for professional services inside WebMD. We have a website Metscape with doctors and nurses use, and of course for them using mobile devices is very important. So we're releasing a lot of mobile application currently. Go ahead, sorry. Yeah, and I think that's more and more traffic we will see from mobile applications. So one of the things that we heard from the developer community at O'Reilly's Velocity was the challenges that mobile brings. It adds complexity. The user experience is harder to make perform. It's harder to diagnose where the problems are. Much of the code gets distributed. It's sometimes harder to keep updated. I wonder if you could share your perspectives on some of those challenges and how you're addressing them. Oh, well, I think it's, we're addressing is we try to do as much testing as we can. We try to use continuous integration, the latest like build and build automation techniques. So to make sure we automate code and automate our delivery process and testing. So I think to deliver quality application, testing is a key. And in mobile it's challenge much more because you have to test for different operating system version, different devices. So automation for testing, that's what's affected. We have to spend a lot of time on doing that. So talk a little bit more about that testing. How do you know what to test? What do you test? How does the user play into that testing? Are the tools robust enough for you as a developer? I wonder if we could just wrap on that a little bit. Well, tools become better and better. So we keep an eye on it and rely on tools of course. And there's a lot of those tools open source, some tools we purchasing. And also there's a lot of manual testing because sometimes you just have to make sure something like you didn't consider but human can do this type of test. So how about testing as a service? Is that something that you see coming? Yes, yes I see some, especially in performance space. Testing as service in a cloud. I think it's very fitting. So I think of an application as a software machine and it's got all these components. And when you're doing things like testing, one of those components could fail, could break. And then there's relationships with other components. Is that a valid, first of all, is that a valid metaphor? And how do you think about risk of failure in that type of system? Yeah, it's valid, you just have to make sure you first of all, there should be no single point of failure and you have to test from different angles. So how do you deal with that no single point of failure? You put in redundancies, but redundancies add complexity and increase the chance of failure. That's true, but you have a tough job in that sense. Things are moving so fast that we talk about mobile. Right, it's correct, it's a challenging job and I enjoy it. You like the hard problems. All right, you have to solve problems every day. It's like a game playing, but it's good. So, yeah, you add complexity, definitely, but you get redundancy because end goal is to serve your customers and they have to be like, system has to be online. Eugene, what can 10 Gen do to make your life easier? What's on their to-do list from your standpoint as a customer? I think they can do a great job. I like how they build community in New York City. They have these meetups, they promote, not product, but they promote knowledge and they're very consistent in that and I see it's MongoDB as a database, very popular in New York City and I think their effort pays off because they care about developers, they care about community. What's the one thing they could do to make your life better? That was your chance. I don't know. No? You're happy? Yeah. Yeah, they're doing what they need to do for you to get your job done. Yes, they're very responsive. If there's a problem, I can get engineer at 10 Gen. They have event like today, which helps a lot and they're in a city, so they have office hours, which is cool. You can just pop up an office and ask somebody and we did a couple times on occasion. Really, and they're available. Yes, they just want and help us out. Awesome. All right, Eugene, Vorkan, thanks very much for coming on theCUBE and sharing your insights with us. Good luck with your hard problems. Thank you very much. All right, Jeff Kelly and I will be back right after this word, this is theCUBE. Thank you.