MongoDB.live 2020 Keynote

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
- And then the iOS developer says, what are our next steps? - Awful! - That's so bad. - Hey, wait! Check out my new background. - Ohh, nice. - Very good. - Yeah, I got one too. - Oh, you got one too. - Hang on. - Nice, Dan's got the document. - Very nice. - Okay, everyone. You all look great. So let's all get ready to go then, right? Yes? - (All agree) We're good. - All right then. Let's do it. Virtual high-five, everyone. - Hello. I'm Dev Ittycheria, President and CEO of MongoDB. Welcome to MongoDB Live. We are thrilled to have you join us today and can't wait to share what we've been working on. Before we start, I want to take a moment to acknowledge all those who have been deeply affected by COVID-19. Being headquartered in New York City, we have seen first-hand the devastation inflicted by this virus in our community and the broader economy. My thoughts and best wishes go out to you and your loved ones during this difficult time. Working through this pandemic has not been easy but I'm so proud of our 2000-plus employees all around the world for the dedication, perseverance, and adaptability to continue serving our customers under clearly trying circumstances. Our employees are also finding ways to combat the coronavirus directly. For example, our developer advocacy team has built an open data resource in Atlas for developers to query a critical COVID-19 data set from Johns Hopkins University for free. Furthermore, we're offering free credits on Atlas for anyone building apps to detect, understand, and stop the spread of COVID-19. So if you're working on a project to help combat Coronavirus, we hope you find these initiatives helpful. I also want to acknowledge all the employees that worked tirelessly to bring together this conference, MongoDB Live. We essentially shrunk the work of twelve months into twelve weeks, but I'm really pleased to say the hard work and long hours have had the desired result. The content is outstanding. And I feel quite confident that you will leave this conference with new, innovative ideas on how you can use MongoDB to drive your organization and your business. What's more, we have repurposed this entire conference to be completely virtual and designed it for a global audience. There are over 100 sessions focused on deep dives and new products, updates to existing products, tutorials, sessions with engineers who actually wrote the code, and sessions with customers using MongoDB in unique ways to transform their business. I should note that live sessions are being offered at different times for attendees in nearly every time zone, and every session will be recorded with subtitles for key sessions in nine different languages. So no matter where you are, all the content provided at this conference will be incredibly useful and is available on demand. At MongoDB, our mission is to free the genius within everyone by making data stunningly easy to work with. It's clear that the future of every business, large or small, will be powered by software. Every company must engage with their customers, partners, suppliers, through modern, high quality digital applications, built on a highly flexible scalable and cost-effective architecture. As a result, our focus in solving developers' data problems increases in relevance every day. We've been fortunate to have a very large community of developers who love MongoDB, due to the way MongoDB's document model and query language make it so easy to work with data. Our community server has been downloaded over 100 million times. To put this number in perspective, there are approximately 25 million developers in the world today, and Stack Overflow's comprehensive worldwide developer survey recognized MongoDB as the most wanted database by developers on a worldwide basis three years in a row. We also now have more than 18,000 customers, from the largest companies in the world to cutting edge startups, in more than 100 countries across nearly every vertical industry, using MongoDB for almost every conceivable use case. We've also seen customers embrace Atlas, our global cloud database, which is the most widely available cloud database, as it's available on the three largest cloud providers: AWS, Azure and GCP. Today we have over 2 million free tier accounts on Atlas, and Atlas is the fastest growing part of our business. We are truly humbled by how popular MongoDB has become, and how large the MongoDB community is today. While we're pleased with how far we've come, our appetite to do more has only increased. Applications of the future will dramatically expand in their functionality and scope. Future applications will enable continuous engagement and access to massive amounts of real-time data among key constituents, be it users, customers, partners, or suppliers. The availability of instantaneous operational data, along with the insight of that data, will increasingly drive business decisions. This means that traditional operational workloads will need to incorporate new functionality, such as real time analytics. In addition, as data on the edge continues to explode due to the increasing use of mobile and IoT, future applications will require the ability to effortlessly synchronize data between the edge and the core. So what you'll hear over the next 90 minutes will show you how MongoDB evolved from a database company to a data platform company to address these needs. To lead this discussion, I'm pleased to introduce Sahir Azam, our Chief Product Officer, along with members of our engineering team to showcase what we have built. Sahir? - Hey Dev. - Are you ready to tell everyone about what we're announcing today? - We can't wait, Dev. - Great! I hope you enjoy the conference and all the content we have for you, and that you are as excited as we are about the future that we can build together. - Thanks, Dev, and thank you all for joining us. like Dev said, our mission is to make data stunningly easy to work with. Why? Because data is the foundation of every application. It was the ability to harness data that powered many of the technology revolutions of the past decade. But, as the prevalence of data-driven applications has grown, so have the challenges to leveraging all that data. Eleven years ago, our founders saw that the biggest issue facing developers was the database. The databases of the time were a poor fit for this new breed of applications, which needed to deal with enormous amounts of data in many formats from disparate sources and adapt quickly to compete in an increasingly demanding marketplace. Traditional relational offerings were rigid, fragile, and couldn't scale horizontally, making them slow to develop on and expensive to maintain. They set out to build a new, open source, general purpose database built on three core pillars. First, the document model. The document model makes working with data easy, because it's flexible, suited to a broad set of use cases, and maps well to the way developers work in modern, object-oriented programming languages. Second, distributed systems. Horizontal scale, redundancy and workload isolation should be table stakes for databases. So a distributed architecture was necessary. And finally, the ability to run anywhere. So you can start developing on your laptop, run it in your corporate data center, or manage it in a public cloud. Of course, traditional databases did offer capabilities vital to mission critical applications. We made sure to incorporate those, like transactional guarantees, secondary indexing, powerful aggregation capabilities, and security and management tooling. The combination of these capabilities now allows MongoDB the ability to power any application at any scale. And it's why MongoDB is now the database of choice from millions of developers and tens of thousands of businesses across the world. Modern applications also require modern infrastructure, so we built MongoDB Atlas, an elastic MongoDB cloud service that runs in over 70 regions across every major cloud provider. MongoDB Atlas gets you up and running in minutes, seamlessly self-manages scale, and keeps itself up to date. Atlas is programmable, integrates with popular infrastructure management tooling, monitors your usage, and advises you of performance issues. Atlas offers entirely unique capabilities like global clusters, which allow you to scale worldwide with the flip of a switch, and client-side, field-level encryption, giving you fine-grained control over your most sensitive data. Today we're going to show you that MongoDB Atlas isn't just a cloud database. We'll show you how, along with some astounding new features we're announcing today, MongoDB Atlas is the data foundation for modern applications. But first, we have to talk about something that's been troubling us more and more these past few years. You see, we're seeing the same pain of working with data making its way into every part of the modern tech stack, and we're tracing that pain to the same causes that our founders set up to eliminate when they started MongoDB. Let's look at a typical modern application. It starts with cloud infrastructure, which means flexibility, pay as you go pricing, quick startup, and low operational overhead. That's a huge step up from where the industry was a decade ago. The heart of any application is an online transactional database. Things like log data get archived to cheap storage or a data lake, and in order to study that data, there are analytic systems or data warehouses, which require ETL processes to load. Search is now a basic necessity for any modern application requiring its own specialized database. Let's call all of that together "the data tier." There's a middle tier for business logic, generally composed of micro services that are managed by independent teams backed by independent databases. Explicitly coordinating these would be a mess, so event streaming technologies give this service as a way to obtain and supply the data they work with. A set of APIs and web services go along with each microservice to operate and scale them. There's a lot of data movement in the middle tier, but that's not where it begins its life. The ever-rising tide of data originates from the front end, meaning web-based or mobile client applications, and increasingly, sensors in the world of IoT. Integrating front-end data is the last mile problem of the modern application, currently requiring clients to coordinate independently with the many back-end services they need. And since the benefit you offer users generally means getting data to them, this is a bi-directional challenge. Finally, a modern application handles visualization using a dedicated business intelligence system. Now, this provides a lot more flexibility in scale than the monolithic apps of the 2000s, but there's actually a ton of pain in these architectures. Each one of these components represents code you have to write and maintain, and none of it is what you really want to spend your resources on. It's all basically plumbing to get data from place to place and format to format. The data architecture of a generic cloud application looks a lot like the legacy data architecture, only the ease of spinning up new services and integrations ultimately creates a snowball of complexity that's hard to reason about, with conflicting representations of the same data and a large surface area to secure. These are familiar problems to MongoDB. It's obvious to us that this complexity is the result of the same old data challenges masquerading as best practices in cloud application architecture, creating cognitive overhead, wasting money, and slowing down your ability to build amazing differentiated apps. And what do we do at MongoDB? We make data stunningly easy to work with. We're fixing this data architecture problem. We're giving developers a new holistic data platform for building applications that relieves them of unnecessary plumbing. It's called MongoDB Cloud, and its architecture seamlessly spans the data core, the middle tier, and all the way to the front end. Data in the MongoDB Cloud platform goes where it needs to go, automatically and securely, and it doesn't make you work to groom it for specialized systems. MongoDB Cloud is open and provides seamless integration point to the critical services you need to build your applications. MongoDB Cloud consists of three components. MongoDB Atlas, our global cloud database, gives developers a single consistent data foundation to build on. Atlas clusters handle operational and real-time analytics tasks on the same data, while global clusters keep data close to the users it belongs to, automatically. Atlas search applies the power of Lucene's full text search to the same data seamlessly, and archival storage and advanced analytics is alive again through Atlas Data Lake. You use the power and expressiveness of MQL, the MongoDB query language, for all of it. Search and Data Lake were introduced last year, and today you'll see how they, together with some incredible new components, form a powerful integrated data foundation for your application. MongoDB Charts is document native data visualization, connected directly to your Atlas data, and available anywhere it's needed. Whether that's in a dashboard for business intelligence needs, embedded publicly in a blog post, or built directly into an application and securely showing users personalized data, MongoDB Charts makes it easy to build live, responsive charts that look beautiful and bring insight from your data. I can't wait to show you how the latest updates to Charts, including an even better way to embed the power of MongoDB Charts into your applications. MongoDB Realm automates and simplifies the way you leverage data across all the layers of an application. It combines the Realm mobile database and sync capabilities, which we acquired last year, with the server list platform formerly known as MongoDB Stitch, to create an entirely new way of building applications, without the tedious work of getting data where it needs to be. MongoDB Realm makes it trivial to regulate access to data, synchronize it between devices, act on it in real time, and integrate it into all the services you build into the rest of your application, minimizing the need to translate it from format to format. We announced our road map to unify MongoDB Realm a year ago, and today we're going to amaze you with what it can do. Atlas, Charts and Realm, the three components of MongoDB Cloud. Today we're going to show you exactly how to use this unified data platform to build applications without the tedium of shuttling data anywhere in your stack. We'll also preview some of the great new features coming up in the next release of MongoDB, and the latest updates with operations and new integrations. At MongoDB, we love to demonstrate what we've built in our key notes, but the release of a whole new way to build applications requires something a little more substantial than just a handful of demos. This year we decided to build a complete, working reference application that shows exactly how MongoDB Cloud can be used to build applications that focus entirely on their differentiating value, without getting bogged down in tedious plumbing. But we couldn't build something that was essentially a feature checklist, only an application that solves a real-world problem can really prove our claims. And since we have to solve a real-world problem, we thought it was best to solve one that has global impact. WildAid is a great champion of conservation efforts and the marine division is fiercely committed to protecting Earth's largest most important habitat, the ocean. We're incredibly proud to be involved in their effort, and I'd love to welcome the head of the program, Meagan Brosnan to tell you about it. - Thanks, Sahir, it's great to be here. We believe the world deserves abundant, healthy oceans, where wildlife is safe from poaching, and where coastal communities thrive. To achieve this, we are building the world's most effective and well enforced marine protected areas, or MPAs. My team created a video to tell you more and I'd love to show it to you. - I'd love to see it. - [Music] "50 years ago, we thought the ocean was indestructible. Today, we have lost half of the world's marine life, thousands of miles of coastal ecosystems have been destroyed, and climate change has triggered a vast die-off of coral reefs. The ocean can recover, but we need to protect it, now. Like national parks, marine protected areas, or MPAs, are one of the best conservation tools we have for our oceans. Although more and more MPAs are being created, nearly 60% of them are not well-protected, meaning they're little more than lines on a map, or paper parks that lack the resources and capacity to provide real and lasting protection for marine wildlife. WildAid Marine is working to change this. Using our comprehensive blueprint for MPA success, WildAid works with local partners, guiding them to the best solutions. WildAid Marine's experience in creating effective enforcement is unparalleled, and we are now working with partners all over the world to implement our model, creating regional centers of excellence globally. With your help, we can reach our ambitious goal of strengthening enforcement in 250 MPAs in the next five years. Together, we can deliver the protection our ocean needs." - Meagan, we love what WildAid is doing. - Thanks. It's a true privilege to support the people who are on the water protecting our oceans every day, and in order to accomplish that mission, it's important that they have tools that are easy to use and reliable. Those partners are facing some challenges with... let me see if I get this right... digital transformation? - Yeah, there's some industry-speak. - Great! So a couple of members of my team, Bob and Karima, are going to explain why that transformation has been so challenging. Bob is a former Fisheries Enforcement Officer and currently an Enforcement Consultant for WildAid, and Karima is a Project Manager for WildAid. - The job of a fishery's officer is challenging. We literally jump from one boat to another and we don't always know what will happen when we get on a fishing boat. Safety is a big concern for us. After boarding, I collect information to make sure they're operating by the rules. As I collect all the information on things like proper licensing, verifying the catch, I usually have to write things down on a piece of paper. I might even make notes on the back of my hand. - Once all these forms and wet scraps of paper get back to the headquarters, we have to decipher the smudges and messy handwriting, and put it into some sort of usable format. This can be very difficult, and it takes a lot of time. We'd rather spend our time making an impact, not doing data entry. - Officers don't have access to that information, or if we do, it's months later. It would really be helpful if we could know how dangerous boarding a vessel will be before we board it. Most of the existing digital tools we have tried are focused on compiling the data back at the office. We want to give the officers information they need in real time. - Digital record keeping allows us to have metrics on what's effective, and we can visualize it and draw conclusions. We can identify areas that have a lot of activity and send officers there, instead of wasting fuel looking for vessels that aren't there. - We've looked into some existing applications, but we have specific needs that are not met by them. We wanted an app that solves all of our needs. - And of course, we need all our requirements met on a not-for-profit budget. We have a goal of protecting 250 Marine Protected Areas by 2025; that's a scale of almost five times more than we do now in only five years. We can't scale like that if we have to pay for multiple software licenses. We need the funding from our donors to be allocated to making a greater impact. The flexibility of the MongoDB Cloud platform is going to let us comply more easily with the regulations of all the countries we work in. Also, a lot of the areas where we work, simply don't have robust technological resources, so our tools have to be simple and easy to deploy. By any name, digital transformation is exactly what WildAid is pursuing for MPA enforcement agencies. But it's immediately clear that this is a tall order. You're probably imagining all the components already; offline capable mobile applications for use in the field, some way to sync that data with the back end and all the other mobile apps, and a back office to report on and visualize it, for starters. The data model has to be flexible enough to handle a variety of areas, and the infrastructure needs to be as simple and cheap to manage as possible. This is the perfect proving ground for MongoDB Cloud. For the past few months, we've been using it to develop a solution for WildAid, and now we're going to pull it apart and show you how it works. MongoDB Realm simplifies the challenges of working with data across your application. Declarative access control rules regulate access to data. Mobile Sync moves data between devices and an Atlas cluster, handling offline access without complex networking and conflict resolution code. You can act on it in real time with Serverless Functions, where you can integrate with all the services you need to build an application. And GraphQL gives developers a single endpoint to access exactly the data they need, nothing more, nothing less. Alexander, as a founder of Realm, can you give us a quick review of how it fits into MongoDB Cloud? - Absolutely. So much of today's data problems are, as you said, just around getting the data to where it needs to be. MongoDB Cloud makes this easy. Realm allows you to have an actual database on mobile devices, which seamlessly synchronize with the data in your Atlas cluster. This makes cross-platform development so much simpler, while opening up for powerful new capabilities. Having the data on the device makes everything fast, allowing local access with zero latency, and it ensures that your app works even when offline or when there's bad connectivity, which happens all the time for mobile apps. And since sync happens transparently in the background, you're saving yourself from writing tons of error-prone networking code. Also since the Realm database is a real object database, it fits right into all the existing mobile frameworks, accelerating your development and removing the need for all the boilerplate code you would otherwise have to write. On top of that, Realm now includes all the functionality formerly available in MongoDB Stitch, so you also get authentication, serverless functions, triggers, and everything else you need for a fully serverless experience. - MongoDB Realm extends the reach of the Atlas data foundation all the way across the application stack. For the enforcement agents WildAid is helping, we could quickly build highly performant cross platform mobile apps that sync in real time and work even when offline. - Let's get a look at the basic functionality, recording the outcomes of vessel inspections, and syncing that data to Atlas. Bob and Karima are going to show this off now, right? - Yep, ready when you are. - And Aaron, you'll chime in to show us how everything is built, right? - Gladly. - When we're out on patrol, we'll select the vessel for possible inspection. With the app on my iPhone, I can search for previous boardings by me or any of the other officers. What I'm looking at now, I can find the most recent boardings are here, but I'm looking for a boat called "Predator," which isn't here. Looks like it was boarded about a month ago, let's see the details. Looks like they have no fishing license, now I know what I'm getting into. Now I jump on the boat. The app was built to match the officer's workflow. As I go through my inspection filling out the details about the vessel and crew, the activities they're engaged in, I can add details about the catch they have on board, and also note if they had any violations or if there was a seizure. I can also add an assessment of their risk level. There were no violations, so I'm going to keep this as green. As I inspect everything, I can also make notes. I'm going to write "the crew was friendly." I can also take pictures if I see anything worth photographing. When I'm done, I submit my report and the app saves all the information. If there was a problem with the boarding, like a safety or fisheries' violation, the next officer will know before they get on that boat. - I'm looking for the record on my Android tablet and it's not there. - Oh right. When I'm in an area with no service, I put my phone in airplane mode. Then it will avoid searching for a network and draining my battery. The app allows it to submit records even when we're out at sea and offline. - Oh, got it. That makes sense. - Okay. Let me leave this boat and come back in range. - Hey, here it is! - And if I run this query, we can see the record is in Atlas, too. - This is fantastic! Instead of a backlog of paper that needs to be inputted, we have the officers' reports before they even return to shore. - Love to see it! Aaron, that must have been really hard, right? Maybe a few hundred lines of code? - Actually it's super easy, barely an inconvenience. - Oh, really? - Well, it used to be really complex. I have to code multi-tenant, offline-online sync, with conflict resolution. But with Realm, it amounts to--in fact, let me show you the code. These lines here, that's all. That's sync. It's almost as if the app's code is devoted to, you know, the app's code. - Three simple lines of code to implement bi-directional sync between a mobile device and MongoDB data in an Atlas cluster. It's amazing. If you build synchronization logic without Realm, you have to build something like you see in this diagram. And that really doesn't even cover the intricate networking code we need to write. We replaced this complex architecture with MongoDB Realm. Realm Sync is now generally available, and this one feature powers a lot of capabilities in an application. Like backup, cross-device and cross-platform sync, and offline capabilities that allow you to continue using an app even when not connected, and automatically merge any changes back to Atlas once you're back online. And if you develop for both Android and iOS, you know that it's not easy to sync data between the two. Because of how hard it is, a lot of apps, even if they're available in iOS and Android, don't have a way to sync data across platforms. Unfortunately, that can lead to bad user experience. If a user wants to switch from one platform to another, they'll have to face losing all of their data. MongoDB Realm turns this into a non-issue, because syncing data across platforms is trivial. That means happier users for you. - You just saw how easy it is to extend the reach of your data platform to mobile devices and forget about writing a bunch of data sync code. Aaron showed how nearly every line of the code for an app is devoted purely to implementing user-facing features. That was the warmup, now it's time to see what it really means to have a unified data platform, taking data routing and manipulation responsibilities off of your hands. I told you how these responsibilities are hiding there in plain sight, right? So let's look more deeply at one of the features in our app that you probably didn't spend a ton of time thinking about when we first showed it to you. Bob, what do you take pictures of during inspections? -We take pictures of the vessel so we can identify it the next time we board it, and we take pictures of the captain or crew, and whenever we need evidence. The app allows us to attach pictures to almost every field. The more pictures we have, the better informed we can be. - Makes sense. So you take plenty of pictures, but most of the time when you need to see those images, they're coming from inspections that you didn't do yourself, right? - That's correct. When I'm preparing to board a boat, I might want to review images from inspections that the other officers conducted. - Ingesting images and making them available to client-side applications has really been a table stakes feature for a lot of applications for decades, and it's a great example of a seemingly simple feature that has to move data through a bunch of different layers. Exactly the kind of plumbing MongoDB Realm is built to automate, Alexander, take us through this, okay? - You got it. So, getting images from users, storing them, and then serving them back at a variety of sizes from thumbnail to full resolution is about as common of feature as an application can have. And back before the cloud took over, that was a thing everyone had to deal with themselves. Although a content delivery network could take some of the sting out of it, you still have to write the code that stored, resized, and served images. - I mean, this is the epitome of comodo code. It's a thin logic wrapper or an image processing library, with an API for talking to it. - These days you'd never dream of writing your own infrastructure for something like that. For one thing, storing and serving image files is a job that cloud optic storage is perfect for. Only, as you'll see in a moment, using cloud infrastructure and optic storage in 2020 looks barely different to a developer than writing an image server and using a CDN looked back in 2000. - This is an example of architecture using cloud infrastructure and object storage for ingesting images. We have a few calls in API, the image metadata goes to database, and there's an image processing job that needs to be coordinated, and afterwards the image is stored in cloud storage, and the database entry for it needs to be updated. Once the full-res image is stored in S3, if only to delete it, and only keep a thumbnail on a reference density object, yet another process. All the while your image service needs to make sure it's only taking legitimate requests, so you must be mindful of security concerns and ensure the uploads are only coming from legitimate users. So this is a complex, multi-step process involving the issuance of temporary credentials. - The crazy thing about this is that it's a whole system of this application we have to write and maintain. And whether it's image servers or image service, it's still added complexity. Fundamentally this is just another data prompting responsibility pretending to be a feature of an application. And now, Aaron's going to show you what's basically a magic trick, because using the power of MongoDB Cloud, he's going to make all that complexity disappear. - So the app's diagram stays the same, but most of the other server stuff is going to be replaced with Realm, which will also handle moving the image to S3, and all the other housekeeping. We still have the phone that takes the photo and stores it in the imbedded Realm database. This works, whether we have internet connection or not. WildAid's boats are often operating miles offshore, and so officers can't rely on having a stable connection. Once the device does have an internet connection, Realm Sync takes care of getting the photo from the device to Atlas. We're not planning on letting it stay there, though, as you'll see in a minute. Once the image is in Atlas, the next step is to move it to S3. This process is easy to automate, by adding an Atlas trigger to detect when a new photo is inserted. Let me show you the code. This is a trigger. Whenever a new photo appears in Atlas, it calls a function, "uploadImageToS3," which stores the image in S3. Once that function returns with the URL of the image from S3, it adds the URL to the Atlas document and deletes the binary image in the document. The Atlas document automatically syncs back to the mobile device, freeing up storage space. And this is the Realm function the trigger called. MongoDB Realm has built in integration with AWS services, like S3, and so the function to put the image in the S3 bucket is pretty short. Overall, it's really not a lot. - We've been able to work with the images natively on the mobile platforms, relying on Realm Mobile Sync with its built-in authentication and access control to get the image data into Atlas without needing to implement sync and deal with offline edge cases. Realm's triggers let us react the instant new images appeared in Atlas, and serverless functions, which now have the ability to include library code with dependents in resolution, gave us an integration point to move the images to Amazon S3. The flexibility of the document model lets us replace binary image data with S3 URL references in the same document, which means that Realm Mobile Sync also took care of purging the unnecessary binary data from the mobile devices, while keeping the client code drop dead simple. - One more thing, if I want to use an MPM package inside one of these functions, that's easily possible with dependencies for Atlas functions. I just upload it here, and use it in my function. - Very cool. So we've extended the reach of our data foundation to the mobile environment. But the picture isn't complete until we've done the same for web applications and figured out how to easily expose data to external consumers. For something like that, MongoDB Realm incudes a GraphQL service. This makes it easy to get up and running with GraphQL, the groundbreaking API query language that gives developers a single end point to access exactly the data they need. Nothing more, nothing less. - Lucky for us, Realm allows us to automatically set up a GraphQL API close-expose the data we want to share. Here I've created a second Realm app and pointed it at the same cluster. Over here, I can generate a schema, and in the GraphQL section, I can dial in the schema from my application. And I can even test out my GraphQL interface in this explorer. And just like that, see, I can access the data. And because it's all in Realm, I can rest assured knowing the Realm rules I have in place will control data authorization. Nobody will see any data they're not authorized to. - Just like the Realm Mobile Database and Mobile Sync gives the mobile developers the best way to work with data on a mobile device, GraphQL gives web developers the best way to work with data in a web application. On a last note, there's a lot more that has happened on the Realm Mobile Database site. We've really doubled down on improving the database itself, with the release of an all-new storage engine, improved query capabilities, and Raspberry Pi release for IoT use cases, open sourcing the sync client, and much more. So check it out. What do you think about that, Sahir? - That was great! Thank you to the team that has been working and will continue to work on the WildAid app. Thank you also to our partners at WildAid for giving us the opportunity to work on this really special mission with them. It's been a pleasure working with you. - It has, indeed. By the way, if you want to program for good, and learn about how to build apps as well, then you should join us and contribute. The app is open source and available in GitHub. Join us in saving our oceans with WildAid and get to know a whole new way to develop applications with MongoDB Realm. - And thank you so much for joining us in protecting our oceans. The combination of this open source application and the MongoDB Cloud platform means we can use the resources of our generous donors to make a much bigger impact. Furthermore. there are over 15,000 MPAs in the world, and honestly WildAid will never be able to support all of them. But by making this application open source, we are making the tool available to every single enforcement agency that needs it. Turtles and sharks don't care about the borders we've drawn on maps. Coastal fishing communities don't care if we have an existing project in their country. The better the enforcement, the safer our seas. - Thanks so much for joining us, Meagan, Karima and Bob. We're looking forward to getting this app into 250 plus Marine Protected Areas by 2025. - So are we. - MongoDB Atlas, our global cloud database service, has come a long way since its launch in 2016. Walking every step of that journey has been our EVP of Cloud Engineering, Cailin Nelson. - Hi, Sahir! - Hi, Cailin. We couldn't be more excited about the present and future of Atlas, and there's nobody better to tell us about it than you. And Senior Developer Advocate, Adrienne Tacke, will show you some of our latest improvements in action. - Thanks, Sahir. I'd say I can't believe it's been four years, but honestly, so much has changed. As much as we care about scale, we care even more about offering the most frictionless development experience of any database. How do we take all the manual work out of running MongoDB? This has been a core goal of Atlas since its inception, and we're continuing to build on those foundations. For starters, Atlas completely automates minor version upgrades, so you never have to think about bug fixes and security patches. Second, we thought databases grow by default and storage is pretty cheap, you shouldn't have to think about keeping up with the size of your data on disk, so that's automatic too. Finally, anyone who's worked with a growing data set knows that performance is always changing, and you shouldn't have to dig through your logs to figure out how to tune your system performance. That's why we built the Performance Advisor. We continually analyze query performance, suggest indexes, and make it push button easy to add them. In fact, can we show the recent improvements we've made to index suggestions? - Hi, Cailin. I'd be glad to help out and show this. Our friends at WildAid connected us with another organization called Saildrone, whose fleet of drones are equipped with atmospheric and oceanographic sensors. Saildrone's mission is to create the highest resolution ocean data set in the world and use it to make global processes, such as weather forecasting, carbon cycling, global fishing and climate change, more predictable, visible, and actionable. They've been kind enough to share their sensor data with us. We uploaded the data and started to run some ad hoc queries. After several rounds of testing we, found the queries we want to use, and now we want to know what indexes we should create for them. Performance Advisor analyzes the existing workload on the data, and surfaces suggestions based on the workload. Index suggestions are now displayed and ranked by anticipated impact. Our top index suggestion advises us to create an index on the time UTC field, which would have an impact of over 9%. The metrics shown help explain why performance advisor thinks in index is valuable. Knowing the indexes that are already on the collection helps us decide if this index should replace an existing index, or if the field could be added to an existing index. Here's some examples of the queries that triggered this suggestion, so we know exactly which queries will be helped by the index. If you need to change the query, instead of adding an index, this sample will help you pinpoint it. I think it would be a good idea to make an index on the time UTC field. We can inspect the actual "create index" command that will be sent to the servers before issuing the command. We can even build it right here with no downtime using a rolling index build. And there we go. The index is being created, all with just a few clicks right in the UI. - We think the updated Atlas Performance Advisor is going to be a really big help in getting the most from your MongoDB experience, but we're just getting started. If we could automate storage resources and we can automate cluster management, then why not automate scaling entirely? With the general availability of compute autoscaling, Atlas can monitor workload performance and automatically scale cluster resources up or down to match changes in demand. No more having to watch the dashboards and decide when to resize, and you can rest easy knowing that your cluster will scale back down, too, so you're not wasting money just to handle your peak load. - Let's go into the cluster configuration settings. Storage auto scaling? Check. Cluster tier auto scaling? Let's turn it on. Notice you can manually set upper and lower limits. If this is turned on, the default minimum cluster size is an M10 and I will allow my M20 to go as low as an M10. On the higher end, I will limit the cluster to go only as high as an M40. That should be enough to cover even high loads. Atlas is intentionally much more conservative with downscaling. We don't want your cluster shrinking due to a temporary lull in traffic, which could cause a bottleneck if load picks back up. And that's it. - We built MongoDB to make building with data easier, faster, and frankly, more fun. We've been overwhelmed by this positive response. For three years running, developers have voted MongoDB "the most wanted database," according to Stack Overflow's annual survey, and more people are trying out MongoDB for the first time today than ever before. Most people coming to MongoDB are used to the "rows and columns" mindset, and for them it's easy to skip past schema design. And anyone who scaled MongoDB before will tell you that your schema is just as important in a document database, even though it's intentionally flexible. That's why we have one more feature to show you: Automated Schema Suggestions, available in Atlas today. Let's take a look. - In the format we got it in, the Saildrone data is flat, and we wanted a richer experience. In this collection, we modified the data so that each document represents the data from one drone. One document represents all the sensor data collected by one drone, The drone's identifier is the field called "trajectory," but it's actually just a label, not where sensor or GPS data goes. Each drone sensor data is stored in a data array. This record has a few items in the data array. Now that we have our new collection, Atlas may suggest ways to make our collection better. The Performance Advisor, which we used earlier to get index suggestions, also has a Schema Suggestions tab. Yikes, looks like the scheme advisor says we have some really large arrays. In fact, we have some arrays with more than 10,000 entries. That's not good, let's see what's going on with our data. Oh, I can see that this document has lots of array records. We grouped the flat data on a per drone basis, but that's led to over 10,000 array entries. Let's head back to our schema suggestions in Atlas. Atlas not only brings issues like these to our attention, it also helps us fix them, so to fix this particular issue, we'll have to think about adjusting our data model for our Saildrone data. Now I have a great start in the right direction. I'll have to think about how to group this data differently, so that there's a more reasonable number of array entries. - Whether you're just starting out, just reaching large scale, or already an expert looking to improve, Schema Suggestions helps optimize the structure of your data for optimal performance and usability. - In MongoDB Atlas, we've worked on a lot of amazing features, as well as improvements regarding performance, resilience and reliability. Of course, our global cloud database is built on the world's best modern general-purpose database, MongoDB. The power of the document model and the MongoDB query language led to the inception of the post-relational movement. It drove massive worldwide adoption to MongoDB and spawned a field of imitators. Just like Cailin, EVP of Core Engineering, Dan Pasette, has been part of that entire journey. - That's true, so here MongoDB Server is reaching version 4.4 this summer. The beta is available for evaluation now. - We developed version 4.4 with a laser focus on the things you've been asking for; easier scaling, faster performance, and more flexibility to solve even more use cases. Let's start with scaling. The minimum production ready cluster you can deploy in MongoDB Atlas has his three nodes. Over time, your cluster might grow, especially if your business is going well. - As your workload grows, there are some important choices you have to make. Essentially, you need to decideabout the scaling model of the distributed system for your database. - With MongoDB Atlas, we aim to make all of this easy for you. You can move between cloud providers, seamlessly scale your clusters, and use global clusters to distribute your load geographically, in order to keep data close to your users and prevent it from leaving the region if necessary. All of this is great, but there's one thing we have to talk about at the server level. - Sharding, the best way of scaling data. MongoDB gives you flexibility to choose exactly how you want to scale. This means that you might need to make some choices, and the most important choice is choosing the right shard key. Let me quickly recap what a shard key is. A shard key determines the distribution of the collections documents among the cluster shards. In MongoDB, the shard key is an indexed field or group of fields. The ideal shard key allows MongoDB to distribute documents evenly throughout the cluster. Let's say your data has a customer ID field. You may, for example, choose to split your data onto different shards based on that customer ID. Say you have two shards, and you randomly allocate a number between one and 10,000 as your customer ID. Behind the scenes, different ranges of customer IDs will be allocated to each shard, and this might work just fine as you get started. There's a lot of pressure to get the selection of shard key exactly right, and not just right for your current use case and workload, but also right for for the future, regardless of how much you may scale or how your data or workload may change. Let's return to our example with the shard key "customer ID." Now it could happen that as you grow, some customers amass a lot of data, which would have to be stored all on the same shard, meaning we cannot split their data over more shards. This can lead to uneven load, putting more pressure on just a single shard. Now, there was a way to fix this beforehand, but it required quite a bit of effort. You probably guessed where I'm going with this. Yes, we've solved this problem for you. You can now refine your shard key at any time, allowing you to adapt data distribution across cluster as your database grows and your application evolves. You still need to think about your shard key, but you don't need to plan for all possible future needs up front. With refinable shard keys, you have the flexibility to evolve data distribution as your requirements change, all without downtime. Now, getting back to our example with the customer ID shard key. You can now add the order ID as a second part of the shard key. This allows the big chunks of data, that each belong to a single customer, to be split and moved to other shards, leading to a more even load across the cluster. So far, so good. We may still have a problem with this, though. Let's say the order IDs are in monotonically increasing order. Maybe there's a customer that is a big online retailer, that places orders with the platform as they come into that retailer. If a lot of orders come in for a big customer, they will all go to the same shard, causing uneven workload. The answer here is hashing the order ID. You could do this in the application before, but now the database can also handle it for you with support for compound hashed shard keys. This will ensure a more evenly distributed load across your shards. - Sharding can improve the end user experience but mainly, these improvements focus on making scaling easier for you. The next improvements are all about ensuring your users' experience is stable and performant. - If a user performs an action in your application, the response should be as quick as possible, and that's where we've driven some real innovation in 4.4. Up until version 4.2, if a query was sent to MongoDB, one node would be responsible for sending the answer. However, if this node was busy with something else, maybe a hardware issue or disk slow down, the user could see higher latency. In 4.4, we minimize P-95 and P-99 long tail latency by dispatching queries to multiple members of a replica set where possible, and returning the result from the quickest responding node. We also worked on resilience. This is to reduce user impact due to replica set elections after a node goes down, whether due to planned maintenance or unplanned failures. We do that with the help of mirrored reads. Mirrored reads keep the caches of electable secondaries warm by continuously mirroring a subset of reads to them. Now if the primary then goes down, the secondary that takes over as the new primary will already have a warmed-up cache, reducing the impact of the failover on your customers. - These are exciting changes that will make MongoDB even more performant, resilient and reliable. Let's look at the query language now. As you know, MongoDB allows for natural and flexible data modeling. With MongoDB 4.4, you have even more flexibility in how you query your data as well. Dan, take it away. - Thanks, Sahir. MongoDB is awesome as a unified data platform and unity is all about bringing things together in the same place. We've done that inside MongoDB as well. For example, we added the $union aggregation pipeline stage. Union allows you to blend data from multiple collections and pipelines, giving you more ways to explore and query data. Rather than just stuffing all your data you want to work with into one giant collection, you can keep data in separate collections that make sense, and bring them together at query time. Union is another way of pushing much more work to the database instead of doing it in your own application. Something else we've done that allows you to push more work to your database, is allowing you to embed custom JavaScript functions right inside your aggregation pipelines. This was something that was allowed in the past, but with limitations. MongoDB's new custom aggregation expressions are much more robust, and give you the flexibility to do more work in the place that gives you the best performance. This is especially great for any calculations that you are currently doing in your application, by pulling in potentially large amounts of data. My words aren't going to do this justice. Adrienne, can you show us an example? - Of course, Dan. One really neat thing we're introducing in MongoDB 4.4 is the new $function operator, which you can use with custom aggregation expressions. Most things I need to do with data are covered by the existing MongoDB operators, but not everything. Let's say I want to get a crew roster for the last three days. That is, every vessel boarded in the last three days, and a list of their crew, in alphabetical order. In our record, "crew" is an array of subdocuments with lots of information, but all we need is the name. And then we need to sort the array by name. Trying to do this in MongoDB means we would have a lengthy and confusing aggregation. Using the $function operator makes this simple. With it, I can create a function right inside my custom aggregation expression that returns the list of vessels and crew members. I can do this complex query with just a few simple lines of JavaScript. Add in a match for the past three days at the top, and a projection for the fields I want at the bottom, and then I run the query. And here you see the results. Here's the list of vessels and their crew members from the last three days. Crew members are in alphabetical order, and I only had to use a fairly simple aggregation. - Thank you, Adrienne. With custom aggregation expressions you can do more processing server side, delivering higher performance to your users, and you can precisely customize MongoDB to your specific needs. There's a ton more that's new with the query language, letting you rely more on MongoDB to handle your work for you. We support MongoDB drivers for all of the most popular languages, and we are really excited to add some new drivers as well. The latest additions to the club are the MongoDB Rust driver, as well as the MongoDB Swift driver. Both are generally available after having been in beta for a few months. So, if you use Rust or Swift, it's now even easier to work with MongoDB. - Thanks, Dan. MongoDB 4.4 packs in the features and improvements most demanded by you; an ever-richer query language, the flexibility to refine your data distribution at any time, with the most sophisticated latency and security controls anywhere. Now that we've looked over the improvements coming in MongoDB 4.4, can you tell everyone about the last piece in the Atlas data foundation? - We want you to love using MongoDB Atlas, and when it comes to management, the best database is the one that you don't have to think about. Another thing that we've learned from our community is that MongoDB and search go hand in hand. Today's search is an integral part of nearly every application experience we touch. Netflix, YouTube, Twitter, Instagram, LinkedIn, GitHub, Stack Overflow, you name it. True search capability is more than just running queries against a live database. It's about full-text indexing, intelligent recall, and relevance-based ranking. Given that search is such a fundamental expectation for modern user experiences, and that search is all about data, it just makes sense for us to take the problem on. Search isn't easy. Another technology to install, maintain and scale, another data format, another query language for accessing it, another process for shuffling data from database to search engine. We set out to make searching your data as simple as querying it, right in Atlas, and super simple to use. First, we wanted Atlas Search to scale transparently with your database. No second service to manage to add configuration. Second, we wanted a single unified query language and data model. Third, we wanted to offer you the full power of Lucene, the premier open source search engine and the industry standard. If you attended MongoDB World 2019, you saw a limited beta version of Atlas full-text search. Today we're thrilled to announce the general availability of Atlas Search. It now has support for more data types, not just text. You can index data in more languages. You can now use filters and facets to offer advanced search interfaces. We've even added type-ahead, autocomplete, fuzzy search, and dozens of new operators and options for building advanced search queries. The reporting back end we built into the WildAid application is a typical example of the need for diverse and rich search functionality. - To give the WildAid staff a way to visualize boarding activity data, pull reports, and inspect or correct specific records, we built an app for the web using MongoDB Cloud and React. Let's say I want to find a record in the web app. I remember that either the name of the vessel or the captain was Mya Jane. Autocomplete helps me find results even before I'm finished typing, and I find the Mya Jane, even though I spelled "Mya" wrong. Fuzzy matching took care of that for me. I want to see all the boardings. Notice how on every page the data that matched my search string is highlighted. Now I'm seeing only boardings matching "Mya," but I'm looking for a specific record, one where a citation was issued, which means I want to filter on risk level "red." Now I have two records, and get more information on both to figure out exactly which was the record I was thinking of. That's a lot of functionality in one search. Let's have a look under the hood. Atlas Search uses a special full-text index which you can find in the search tab. As you can see here, we've created a search index for our boarding reports collection. The index has the default settings dynamically mapping every field in the collection, so that when we do a full-text search, we can do it across all our fields. Right now, the default search index works just fine for our current application because we only have a few thousand records. For a larger application, or when specific sets of fields are used more than others, mapping to these specific fields is beneficial. Now that we've seen the full-text index that powers our application, let's see how to use it. Let's look at the code for the web page search. To use Atlas Search, there's a new stage in aggregation expressions. This stage used to be called "search beta, " but now it's just $search. Here, we query the search term against the vessel names, the crew names, and the captain name, and violation codes and descriptions. The fuzzy option tells Atlas Search to look for the text that matches within one character. The highlight option is used to indicate which texts match the search string. In the production stage, we returned not just the fields, but the highlights. That's why "Mya" was highlighted in our boarding results. When we filtered on the risk level on "red, " we were using "faceted search" in Atlas Search. Numbers, dates and geolocation data can be used to filter results and influence the relevant score. With Atlas Search I can have the robust, fine-grained search functionality that everyone expects, and I can add it in my application in an afternoon, no third-party system needed. - We think you're going to love working with Atlas Search. One more piece of the data development puzzle snapping into place, and we want you to use it. That means no limits, no extra cost, and an integrated set of tools to bring powerful search experiences to every application. Atlas may be four years old, but we are just getting started. We see a future in which working with data is delightfully easy, from online transaction processing, to advanced analytics, to real-time distribution, to search, and beyond. - MongoDB Atlas now provides a unified data infrastructure for transactional, real-time analytical and search workloads, with fully autonomous scaling and even more intelligent performance optimization. We created Atlas for all of you. We can't wait to see what you build next. We have invested in transforming organizationally, and we set the bar high when it comes to security and compliance at MongoDB, so that you can be sure that we are completely worthy of your trust. To that end, our CSO works relentlessly to give us and you the security we need. Lena? - Hey, Sahir. - Can you give everyone an overview of what security looks like at MongoDB now, and what we've done recently to give our customers even more confidence in us managing their data? - Sure, Sahir. So we were involved in the earliest stages of the systems development life cycle at MongoDB, and we work hand-in-hand with engineering to produce, maintain, and enhance all our security-based offerings. Strong security is often considered to be at odds with ease of use. But the truth is, baroque, onerous security requirements will lead to surprisingly insecure consequences. At MongoDB, we understand a complete security design has to put the developer at the center. The strongest encryption in the world is useless if developers can't figure out how to turn it on correctly. Client-side field level encryption, a feature we added to MongoDB last year with the 4.2 release, is a perfect example of this developer-centric approach to security, especially in the context of cloud database services like MongoDB Atlas. There's some data that's so sensitive that you want to encrypt it before it even leaves your network. Take this basic document with a user's social security number, for example. This data is so sensitive that the typical mechanisms that secure data in the cloud are inadequate. You could encrypt the entire document on the client side, but then the database wouldn't operate usefully on any of the less sensitive data. MongoDB's client-side field level encryption lets you specify which fields are sensitive and who can see them. So developers work with data the same way they always do, but that sensitive document now looks like this before it even leaves the client application. This feature has been generally available since December last year, and since then, we have added more drivers supporting Javascript, Node.js, Python, Java, Java Reactive Streams, Scala, C#, .NET, and Go drivers. More are going through testing and will be available soon. Secrets management is another area where security best practices and developer ease of use are complimentary. HashiCorp Vault is a centralized system for storing and controlling access to secrets, such as passwords, certificates, and encryption keys for all the services and applications. It allows compliance and security teams to set policy, and gives developers a single, unified way to work with the secrets for their cloud services and platforms. And HashiCorp Vault runs on any major public cloud. Now naturally, we want your dev-ops teams to be able to make use of the most effective tools to manage your Atlas cluster secrets, so we built MongoDB Atlas Secrets Engine for HashiCorp Vault. The Atlas Secrets Engine makes it easy to manage and control access for database users, while reducing security risks, and increasing developer productivity. On the other hand, if your infrastructure is concentrated in AWS, you're definitely using AWS identity and access management to manage those services, and access to MongoDB Atlas is an outlier in your security responsibilities. So today, we're announcing AWS-IAM Database Authentication in MongoDB Atlas. Using IAM, you can now allow applications, containers, and serverless functions to authenticate to Atlas clusters using temporary AWS-IAM credentials, in the same way your application would authenticate to other AWS services. This means that developers do not have to switch context for authentication between their applications, any AWS services, or MongoDB Atlas clusters. If you're in dev-ops, it means that you have fewer secrets to manage, and you can apply consistent policies across the secrets used by the application. Using AWS-IAM authentication works across Atlas, so you can use the permissions you define there to control access to clusters deployed in Microsoft Azure, and GCP as well. With this, your authentication mechanism across AWS and MongoDB Atlas clusters can also be unified, paving the way to faster application development, and less operational overhead for dev-ops. We've spoken about cluster secret management as well as authentication, which are important building blocks to secure applications. While all traffic from users in applications to MongoDB Atlas is always encrypted in transit with TLS, enterprises can require this traffic to use private network connectivity made available by cloud providers. This is where Atlas Private Endpoints, powered by AWS PrivateLink, come in. If you're using AWS PrivateLink for private network peering, you can now also connect Atlas to your AWS applications to ensure private connectivity between your clusters and all your AWS services and accounts. With this in place, your operations teams no longer need to update or maintain a separate set of access controls and security protocols for MongoDB Atlas. Another win for compliance, and a valuable aid in maintaining those very important access controls. Atlas Secret Engines for HashiCorp Vault, Identity and Access Management Database Authentication, and AWS PrivateLink all help to make your applications more secure by simplifying your system and providing integrations with services and tools you know and trust. This year, our main focus was to simplify data security in the cloud for MongoDB Atlas. We've integrated with leading identity and access management technologies, and secrets management providers to make your lives easier. - Thank you, Lena. Rock solid security is only one of the foundations of a modern application. Some others are orchestration, programmatic automation and the ability to revert backups when needed. If you tuned in last year, you heard about our backup re-architecture project. We're happy to announce that we now support all the most commonly requested backup features. We speed up all your backup processes and allow you to restore to any point in time. We introduced the MongoDB Enterprise Operator for Kubernetes last year. It allows you to deploy and manage MongoDB clusters from the Kubernetes API and use OPS Manager, the management platform for MongoDB, for the database automation, monitoring and backup. This year we made things even easier. The Enterprise Operator can now deploy OPS Manager in containers. This will dramatically simplify running containerized MongoDB deployments from your Kubernetes Control Plane. But what if you're just getting started with databases in containers? Don't worry, we've got you covered. The new Kubernetes Community Operator is open source and can deploy replica sets of MongoDB community. If you're using Atlas, there are also some great new integrations allowing you to leverage configuration as code to automate cloud data infrastructure deployment. Historically, our cloud products have had two ways to interact with them; a GUI for people, and a REST API for programmatic integrations. The new CLI for MongoDB Cloud is for those that don't want to work in GUIs but want something that's more approachable, interactive, and easily scriptable than REST APIs. As such, the CLI is an ideal middle ground. A simple interface that allows for both ad hoc task execution and easy script ability for a current operation. With the new MongoDB CLI, you can also easily switch between managing your Atlas environments and self-hosted clusters in OPS Manager or Cloud Manager. If you're using HashiCorp Terraform to manage your infrastructure, the updated Atlas provider automates your data infrastructure deployments by making it easy to provision, manage, and control Atlas configurations as code. And we continue to expand the Atlas features supported. Beyond just provisioning clusters, you can now automate additional tasks like creating projects and managing database users. Last but not least, we also got something for you if you're building data pipelines with Kafka. The MongoDB Connector for Apache Kafka enables you to easily integrate MongoDB with Apache Kafka so you can build powerful real-time data pipelines. We've worked very closely with our partner, Confluent, and are pleased to announce the preview availability of MongoDB Connector on Confluent Cloud. Now your Kafka and MongoDB experience can be entirely managed in the cloud, no spare parts for you to operate yourself. We're excited to have worked with these partners to make sure the MongoDB Cloud platform easily integrates into the rest of your infrastructure and processes. MongoDB Cloud provides an integrated data foundation for creating and growing the most advanced, demanding, and powerful applications. One truth we hear over and over is that whatever you're building, once you have data, you're going to want to understand it. If you're using an off the shelf business intelligence tool, our BI connector makes it easy to connect directly to MongoDB. But we want you to be able to get all of your data work done in one place. That's why we built the fully integrated MongoDB Charts. Charts allows you to visualize data right where it lives, no transformation required. - Charts works directly on your Atlas cluster data, and it understands your data's content and structure. - Here's a dashboard that shows the most important information for WildAid. At the top are the critical stats at a glance. Next, we have an interactive map that shows boardings. I can zoom in to see boardings near the Galapagos Islands. - Charts aren't just about making it easy for you to analyze your own data, they're also a great tool for visualizing data in user facing applications. You could always roll your own, but we make it easy to embed live updating charts directly into web application interface with just an iframe. - All I need to do is copy this imbed code. I have a simple website with information about threats to the Galapagos Islands here, so I'll paste the embed code in my web page and save it. Now, when I refresh my web page, I can see my chart. Pretty simple, right? Without Charts I'd probably have to refresh my D3 skills or learn something else to visualize this data. Not what I want to do with my time right now. Because I'm embedding a chart, I don't even have to be the one to create or edit the chart. The data visualization team can easily create the visualization in Charts without me. That's a win for everyone. - Thanks, Lauren. We love embedded charts but there's one thing you've been asking for for a while; JavaScript rendering. The new MongoDB Charts embedding SDK is exactly that. Bob and Karima from WildAid are here to show you how we use the new embedded SDK in the WildAid App we created together. - Hi Cailin. - So, what do you want to see in your app? - A good indication of the effectiveness of our enforcement is compliance rate. We also want to see our boardings on a map, looking at which zones are potentially more dangerous, and be able to drill down into the details of the boardings. The map will help us make decisions on where to focus our patrols to be more effective, and target our efforts so that we can optimize our time and fuel. - Building that with the embedding SDK was easy. The SDK lets me control the size, theme, filters, and refresh behavior, as well as the integration with auth tokens directly in the app. Bob, can you see if it works? - Sure. Seems to be working. Earlier you showed me how we can zoom in and move the map, so let me try that. I'll zoom in on the coast of Ecuador. Ah, so here we can see where we've been patrolling, and a big spot we may need to focus on more. Very good work. - We're really excited to see how you can use embedded charts to bring live data into your own applications. When you need to really dig into your data though, you're going to want to use the full power of Charts and Dashboards. - Here's a dashboard. Bob, can you explain what we're seeing? - Yeah, this looks like data from Saildrone. The chart on the left shows the water temperature at different times. Sailfish can be targeted by illegal longliners. The ideal temperature for sailfish is somewhere between 23.5 and 25.8 degrees Celsius. By using the chart on the right, we can see temperature plumes that help us figure out where the sailfish might be. The points in blue are in the ideal water temperature range for sailfish. And the points in green are not. So we now have a visual aid to protect the sailfish from the illegal longliners. - What I'd really like to be able to do is map where the ideal sailfish temperatures are so we can plan our patrols to optimize our efforts. - MongoDB Charts on Atlas now supports dashboard level filters, allowing you to quickly change the context of an entire dashboard to get actionable insights faster. - Let me build that for you. I'm going to apply the filter for our water temperature. I'll set the min to 23.5, and the max to 25.8. Now the chart on the left is only showing the blue points that show the ideal sailfish temperature, because the filter is being applied. Karima, what would you like the default to be in terms of how recent the data is? - The last week would be great! - Okay, give me a moment. Now that we have the data, let's zoom out so we can see where we are. Here you go. - Wow, perfect! Now we know exactly where to send our patrols. - Exactly. You can visualize subsets of data across the entire dashboard, and anyone else who has access can do the same, making collaboration very easy. - MongoDB Charts is always evolving. Take a look at our newest features, including the new Charts Embedding SDK, Dashboard Filtering, and Public Link Sharing. Charts lets you visualize your document data with an intuitive drag and drop interface, allowing anyone to build and share powerful dashboards internally and externally, and developers to code them into your apps, without having to waste time pushing pixels. - Charts allowed the team to seamlessly start analyzing data without any custom transformations or integrations. Data is rich and heterogeneous. You should be able to visualize it with a tool that understands its structure natively, and with Charts it's never been easier to enrich your applications with live visualizations. The database for modern applications needs equally modern tooling, because you want to move fast and solve problems for your users. We want to make sure that engineers who develop their solutions on MongoDB platform have a seamless and integrated experience. - That's right, Sahir. And that's why we have placed a special focus on improving the user experience around using MongoDB. So we were looking into what developers love most. Exactly! Fancy keyboards! And that led us to thinking about the way we type instructions. If MongoDB makes it easy to work with data, the MongoDB Shell makes it easy to work with MongoDB. The MongoDB Shell is the most used tool to connect to our database, run queries, and manage clusters. To improve the user experience, there were a few things we wanted to do. So let me introduce you to the new MongoDB Shell. The new MongoDB Shell gives you a speed boost with autocomplete, and improved readability with syntax highlighting. On top of that the new Shell makes it easier to get back on track when you encounter errors, with more descriptive error messages. And last, but not least, you can now get help directly in the Shell. The MongoDB Shell is wherever you need it, whether that's on your favorite terminal or in Compass, the graphical user interface for MongoDB. The MongoDB Shell will be integrated into Compass to give you the same simple, fast and powerful experience. Previously, IDE users couldn't use our shell seamlessly in their workflow. This somewhat defeats the integrated part of using an IDE. In the new Shell, this is changing. When you're coding database queries, you often want to validate your work against your sandbox database. If you previously used to switch between terminal and IDE, you no longer have to. We've built an integration for Visual Studio Code. Using it you can navigate your databases and collections, try out queries and aggregations, and integrate them quickly in your code. - But Grace, I use IntelliJ. Can I have a shell integration, too? - Grace, I use Webstorm, can I get shell integration too? - What about me, I use PyCharm? - I use Golang. - I use Datagrid. - I use PHPStorm. - I use Appcode. - Okay, okay, chillax folks. We've got it covered. We've been working closely with JetBrains, the maker of these tools. You'll get the same power you have with the MongoDB Shell directly in those IDEs. - And there was much rejoicing. MongoDB Shell is the best shell for modern applications development with MongoDB. You'll be able to get to your commands faster, wherever you need them. You can get the new Shell from our downloads center or with your favorite package manager. The integrations are available as extension managers of your IDEs. Aside from improving your experience using MongoDB, we've also been hard at work making our learning resources better for both beginners and advanced learners. MongoDB University is our online learning program, which has 1.5 million-plus registrations in 196 countries since its launch. The completion rate is five times the industry average, which shows just how valuable our students are finding these resources. All technical MongoDB employees go through the MongoDB University courses as part of onboarding. We want the best for our employees' education and for your education as well. But I also know that self-guided learning can be daunting. Depending on whether you're a developer or a database admin, you also need different learning materials. You've been asking for more directed guidance to help people find the appropriate learning tracks through our online courses. We're thrilled to show you what we've done to provide it. We've introduced MongoDB University Learning Paths to provide people learning MongoDB guidance on what courses to take or to start, and what path to follow that suits their role and needs. So now you're able to follow a prescribed path and see how you're progressing. Please try it out and let us know how you like it. You can get started at university.mongodb.com. As great as academic material is, working developers also need real world resources that stay up to date with the latest developments. Our recently launched Developer Hub is a great resource for developers who tackle real-world MongoDB development challenges across a wide range of development languages with code examples, step-by-step guides, and tutorials. We've got weekly Twitch streams you can join and ask us questions, along with podcasts and YouTube content. Check it out for yourself on developer.mongodb.com, and we welcome you to contribute sample code and best practices on the site as well. And a cool side fact; the Developer Hub uses our own technologies, Atlas and Realm Server, as part of our static publishing engine. If you have any questions, suggestions, or just want to chat with other MongoDB users, you can start a discussion on our community forum. Community experts and MongoDB employees from our product and other technical teams all over the world are actively engaged on that site. There have already been more than 1000 discussions since we launched the forums three months ago. We are also now hosting virtual meetups around the globe, and would love to see you at our offline MongoDB user group meetings when those happen again. Overall I just want to say we're deeply committed to helping you, our community, succeed in developing applications with MongoDB. To that end we want to make our tools as flexible and frictionless to work with as a database itself. We're excited to hear what you think about the new Shell and MongoDB University Learning Path, and we look forward to hearing from you on our community forum. - Thank you, Grace. I look forward to continuing our investment in making our developer experience stunningly easy, and I can't wait to meet more of you on our community forum. Today's digital reality is that there is more data and more formats available to us than we even know what to do with. MongoDB and the document model provided consistent and unified experience for working with all types of data. MongoDB Atlas Data Lake enables you to bring disparate systems and services together in one simple consistent interface for finding, analyzing, and manipulating data, no matter where or how it's stored. Data fragmentation doesn't only occur when trying to work with data from different sources. You may be working with fragmented data because you're optimizing for price and performance. As usage of an application grows, some data is naturally used more frequently than other data. To optimize storage cost, you want to hold only frequently accessed data in the database. To achieve this you traditionally had to either delete data from your cluster, or manually archive the data by moving it out of the cluster to an alternate, cheaper storage location. - That's right, and what ends up happening is that in order to reduce costs we end up making some data less accessible, or even completely inaccessible. The reason we keep all this historical data around is that we know it has some intrinsic value, even if we rarely use it. Having all data accessible also improves user experience, either because users expect older data to remain accessible, or because you can provide a better service with all of the data easily accessible. Essentially, if you're moving data you solve for one problem by replacing it with another. It doesn't have to be that way. Today we are very pleased to announce the beta of Atlas Online Archive, allowing your archive data to remain online and queryable. Atlas Online Archive allows you to seamlessly archive live data from your MongoDB Atlas clusters into fully managed cloud object storage. All you need to do is specify the rules for archiving, and from then on, it's all automatic and transparent. Karen, can you give me a hand here? - Hey, Cailin. - Let's show everyone how easy it is to enable Atlas Online Archive for a running Atlas cluster. - Sure, Cailin. We're going to use Saildrone's sensor data again to show Online Archive in action. Right now, the data is all in a Saildrone collection and there are nearly 500,000 documents in there. I'm going to use the new MongoDB Shell that Grace talked about to query the data. I'm going to do an aggregation that gives me the average water temperature grouped by month. We've got thousands of records per month, dating back to January 2019. Most of our queries only care about the recent data, but if we just archived older data to save money, we lose the ability to query it easily. Online Archive literally gives you the best of both worlds. So let me set this up to archive all records older than six months. We can configure an online archive here in the new Online Archive tab on the clusters page. I'm going to create a time-based rule to determine which documents get archived and which stay here in Atlas. Our namespace is our database name plus our collection, "Ocean Watch Saildrone," and will use the time UTC field as the date field to archive on. The field we choose needs to have an index on it, and luckily for me Adrienne already added an index on the time UTC field earlier. And the archiving threshold, six months or 180 days, this auto-generated query will show us which documents will be archived. Let's see, more than 300,000, that's a lot of records. That sounds great, and it's the right data, so let's move on. To get the best performance, we enter the most commonly queried fields, which will partition our archive data. In our workload, our query patterns often concern the average barometric pressure, and the average water temperature. And that's it. Let's begin archiving. MongoDB will automatically archive our data. There is no need to run his periodically, and since we're migrating so many records, this will take some time. So while that happens, I'll just be here hanging out. - Thanks, Karen. What makes Atlas Online Archive so exciting is that it allows you to save on transactional database storage costs without compromising on having that data available and queryable. - Now our archive is active. And our Atlas Data Explorer shows that we now only have 150,000 records sitting in our cluster, not the nearly 500, 000 we started with. However as Cailin said, all of our data is still queryable using a single connection string. In the Online Archive tab, we have the option to either connect to cluster, Atlas data, or connect to cluster and Online Archive. This is that magical connection string. We can tell the difference because it has "Atlas Online Archive" in the name. Anyway, let me run the same query here, just to prove it works. See? And even though not all the data is in the Atlas cluster, it's still there in Online Archive and it's still queryable. I didn't even have to change the query, just the connection string. - Hold on a second. Did you catch that? - "But if we just archived older data to save money, we lose the ability to query it easily. Online Archive literally gives you the best of both worlds." - I want to let that really sink in. Before Online Archive, you had two choices for your data. You could keep it in the database, high cost, high accessibility, or you could put it in cloud object storage, low-cost, low accessibility. Online Archive adds a middle ground. You can store your data at low cost, but retain the same easy accessibility you get from your database without any code changes. - "And our Atlas Data Explorer shows that we now only have 150, 000 records sitting in our cluster, not the nearly 500, 000 we started with." "In the Online Archive tab, we have the option to either connect to cluster, Atlas data, or connect to cluster and Online Archive." - Imagine what you'd have to do to get this functionality without a feature like Atlas Online Archive. We've turned that into a single configuration parameter and a single branch statement that chooses between the online only and the full data connection strings. Okay, back to the show. - "I didn't even have to change the query, just the connection string." - Great, but we're not done. Industrywide we have a growing volume of rich, multi structured data being generated. Connecting the right data at the right time in the right place is harder than it should be. Atlas Online Archive allows you to tier and access historic data. But what could your application do with even more data? Data from other systems, other applications, from other parts of the company, other partners? This is, of course, already possible and people improve the application experience users have by pulling in more data. They generally do this by either connecting to different data sources and processing data in the application layer, or by moving data around, maybe transforming it. The point is it's not as straightforward as it could be. Bringing external data into real-time applications adds complexity, when fundamentally it's a data problem. This is what we want to help you with. Last year, we announced Atlas Data Lake, a service that allows you to query data in AWS S3, as though it was in Atlas cluster. This year we have taken Data Lake to the next level. We are very pleased to announce that Atlas Data Lake is now GA, and supports federated queries. Federated queries allow you to run queries against your live cluster data as well as against data you have in cloud object storage at the same time. - Here, let me show you. This is my S3 bucket, named "S3 WildAid" with CSV and parquet files in an Atlas. We already have a Data Lake connecting with those files. My Data Lake connection strings are found here, but I've already connected in Compass, and we could see our S3 collections from Compass. Data Lake doesn't import any data it looks at it where it lives, so here these collections are really files in S3. Atlas has never stored that data. In order to query both Atlas and my S3 bucket, I need to configure the Data Lake to use both. Right now you could see that there's only one data store set provided by S3. The S3 WildAid bucket and the data store has been given the name "S3 WilsAid." The name field is what we will use later in the configuration file to refer to the S3 data source. At the top we have a list of databases, and this database name "S3 WildAid" is the name of the S3 bucket we connected to our Data Lake. The collections in this database, BoardingRecords, BoardingReports, and Crew, are all listed here as well. This was automatically configured by Data Lake. Now this last collection is a wild card, and it creates collections for everything in that bucket's path. So now we want to add our Atlas data to this configuration, so we first go to the array "stores, " and add the Atlas data store. The provider is "Atlas," my cluster name is "OceanWatchData,", and this is my Atlas project ID. Finally, I name it "ATLASwildaid." Now we can use this data store to define a database in our Data Lake. the data source is coming from Atlas data store which we just defined as ATLASwildaid. This collection is coming from a regular Atlas database, and we use the existing BoardingReports collection. So this should now show up in the Data Lake as a database named "wildaid-new-data." Let's check this in Compass. So this is great, now Data Lake has our S3 data and our Atlas data. But we need to query them together, that's the whole point of federated queries after all, so let's set that up now. Let's change the collection that we just made to combine data from both Atlas and S3. So let's add another data source, the S3 data, to this new Atlas WildAid. In our Data Lake configuration, we add two more data sources from the S3 WildAid store, "BoardingReports.CSV, " and then the parquet file with the "BoardingRecords." To reflect that this is now WildAid data together, I'm going to change the database name to "wildaidAll." In the Atlas data, we have rich documents with nested arrays and embedded objects, but CSV and parquet files, that's flat data. So now we run a federated query that combines both. So back in the MongoDB Shell, we'll use the database "wildaidAll" and do an aggregation to check for compliance records on this new, modified collection. And here we have the results. We ran this aggregation to get the number of compliant records for every year and month, and I'd like to store the results later. In normal aggregations you can use $out to save results to a MongoDB collection, now you can use $out to save a JSON or a BSON file to your S3 bucket right from inside Atlas Data Lake. So now I run the same aggregation with $out stage appended to the pipeline. This should create an "allcompliance" file to our S3 bucket. So now let's look again at our S3 bucket. Ta-dah! And as we can see the "allcompliance". JSON file that we just wrote from our Data Lake. I'm really excited about how easy it is to query all of our data in the Data Lake alongside my Atlas data. I could go on forever. I haven't even shown you some of the other cool new features, like how to define a view in Atlas Data Lake, and SQL support. And Data Lake now supports the aggregation stage currentOP, which shows you information about currently running operations. But even though we don't have time for that, I honestly hope I've blown your mind a little bit with what I've shown you, and you'll be able to learn all about those other things in sessions today and tomorrow. - With these changes, Atlas Data Lake helps you bring cloud object storage data together with your MongoDB data, while keeping it in place in its native format, without data movement or transformation. - With Atlas Data Lake and Atlas Online Archive, you can have a consistent and unified experience for working with all types in tiers of data, providing easy access to all of your data wherever in the cloud it lives. We think Online Archives and Atlas Data Lake are going to revolutionize how you tier and use your data, and we're excited to explore this future with you. Today, along with our partners at WildAid, we've shown you the incredible capabilities of the new MongoDB Cloud Data platform, and how it lets you build modern applications with the seamless data architecture, spanning every layer of the stack. You've seen how MongoDB Realm makes it trivial to write cross platform mobile applications that sync to the cloud bi-directionally with barely any code, respond to changes in real time, and integrate easily with services you need to build your back end. In MongoDB Atlas we improve performance advisor, introduce full compute and storage autoscaling, and show schema suggestions that help everyone get started with MongoDB Atlas in the best possible way. And Atlas Search, now generally available, searches your Atlas data with the flip of a button. MongoDB Atlas is the modern data foundation to build on. MongoDB 4.4 will deliver the features and enhancements you've asked for the most, including refinable shard keys, compound hash shard keys, as well as hedged reads and mirrored reads. 4.4 will also feature additions to the query language in the form of unions and custom aggregation expressions. We simplified data security for MongoDB Atlas with Atlas Private Endpoints, powered by AWS PrivateLink, integrated with AWS-IAM for database authentication, and added support for HashiCorp Vault with the Atlas Secrets Engine. With Ops & Integrations, we talked about the Kubernetes Community Operator, the backup re-architecture, the CLI for MongoDB Cloud, the Terraform Atlas Provider, and the MongoDB Connector for Apache Kafka. MongoDB Charts; document native visualization has added dashboard filtering as well as an embeddable SDK to integrate directly with your applications. You saw some great new tools for developers like our new MongoDB Shell and its integrations into VS code and JetBrain's IDEs, and some great learning resources like MongoDB University Learning Paths, and the new Developer Hub. And finally, you saw the general availability of Atlas Data Lake in new industry redefining data tiering capabilities and Atlas Online Archive and federated queries. Dev, I think we showed off some amazing stuff today, and hopefully gave everyone a sense of how we can simplify the data architecture for modern applications. - Sahir, I couldn't be more proud of all the great things we just talked about. As I said at the beginning of this presentation, every business' future will be powered by software. Everything we do stems from our desire to take the friction and hassle out of working with data, so developers can focus on what really matters. We are incredibly excited about what we are building at MongoDB. And I hope over these next two days you'll find that information helpful, as you think about what you want to build for your organization. Whatever your needs and wherever you are in the world, we hope you recognize that MongoDB is the modern, general purpose data platform that lets you build for the future. Thank you to all the members of our community, our customers, our partners and our employees, and thank you for joining us today, and I truly hope the next time we meet is in person. Until then, from all of us, stay safe, stay healthy and now, please enjoy the conference. Bye. - Thanks. - Bye. - Thank you, bye. - Thank you everyone. - Bye. - How do I...? Oh man, the button always changes... uhhhh. Aw, forget it.
Info
Channel: MongoDB
Views: 8,708
Rating: undefined out of 5
Keywords: coding, database as a service, dbaas, serverless, code, cloud database, virtual event, software, cloud, mongodb, engineering, conference, software engineer, mongodb on google cloud, engineer, developer, mongodb on aws, data, MDB, stem, technology, database, mongodb.live, tech, nosql, MongoDB cloud, mongodb atlas, mongodb on azure, free cloud database
Id: ETawbyIxygQ
Channel Id: undefined
Length: 98min 21sec (5901 seconds)
Published: Wed Jun 10 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.