All Blog Posts

Designing a CLI: 11 Principles from the MongoDB Realm Design Team

Don Norman saw this coming. Back in 2007 , Norman, one of the giants of user-centered design, predicted that the next UI breakthrough in the design world would be the command-line interface (CLI). Noting the limitations of graphical user interfaces and the capabilities of command-line language in search functions, Norman staked this bold claim: “Command line interfaces are back again, hiding under the name of search. Now you see them, now you don't. Now you see them again. And they will get better and better with time: Mark my words, that is my prediction for the future of interfaces.” In 2020, the return of the CLI is, perhaps, debatable. In the world of software development, CLI's still dominate with software professionals , due to their wide availability, high capacity for automation, and cultural fit with the developer ethos. But in the design world, “user experience” is still largely associated with modern web and mobile interfaces — clean whites, curved borders, and gradient buttons. Design interventions of the CLI are often left to the wayside. Here at MongoDB, our designers understand the importance of the CLI to our users. Through internal discussion and collaboration with our product and engineering teams, we are working hard to match the user experience of the CLI to our user’s needs. As such, the MongoDB Realm team has been working on a revamp of our Realm CLI to be released by the end of Q4. In order to improve the experience of using the CLI, our UX research and Realm design teams have conducted primary and secondary research, attempting to figure out how our CLI is used, and how developers commonly interact with CLIs writ large. Based on our findings, we created a list of 11 CLI UX principles for the Realm CLI . We call this our CLI Design Cheat Sheet. Modeled off Nielson-Norman’s Usability Heuristics , this set of principles has allowed us to inform and streamline our CLI design process, and to foster a user-centered approach across our product’s operations. It’s my hope that presenting these principles will help others design better CLIs, too. We’ll provide some CLI illustrations that are not representative of the new Realm CLI, but can help show these principles visually. 1. Allow users to create and clone Realm applications and assets via the CLI Develop short and easy-to-understand commands for app creation and cloning. Consider dividing this command into an object and an action: For example, the command may read realm app clone , where “app” is the object, and “clone” is the action. 2. Use accessible language to bridge the CLI and the real world The system should speak the users' language, with words, phrases, and concepts familiar to the user, rather than system-oriented terms. When creating CLI commands and prompts, use questions or phrases that resemble sentences. Avoid positional arguments, where the order matters. These types of arguments can be confusing. Use flags instead of args. Although they require a little more typing, flags better prevent input errors (e.g., realm fork --from sourceapp --to destapp ) compared to args (e.g., realm fork -sourceapp ) When collecting user information, use questions to make the CLI more conversational. For example, when initializing, the CLI can ask the user questions such as, “What’s your project name?” when determining the user’s framework. 3. Simplify CLI outputs to increase user control Complicated and messy outputs reduce user control and diffuse action. CLI users expect high-level outputs following a command. Make outputs simple so that users don’t need to scroll through multiple lines of text to find what they need. The MongoDB CLI provides a good example of human-friendly CLI output: Human-friendly MongoDB CLI output. Additionally, the CLI should allow for both human-friendly (plaintext) output, and machine-friendly (JSON) output. A user should be able to define which output they’d like to see. For example, the MongoDB CLI has the following functionalities that allow users to define their output as plaintext or JSON: Illustration: Allowing users to choose between different output formats. 4. Make terminologies consistent Try to use the same terminology consistently across your product’s system. In the case of Realm, the product’s CLI should use the same terminology as its GUI, as well as other CLI’s across the MongoDB platform. Additionally, try to draw from the user’s context with terminologies from the tools and CLIs that are already familiar to your users. 5. Prevent errors As mentioned before, the use of flags -- as opposed to args -- is one way to accomplish this. Another consideration is to have clear warnings and retype commands. These can better prevent destructive mistakes. For instance, instead of using a “Y/N” prompt, consider having the user re-type their input, and prefacing with a warning that it may result in drastic changes to their program. Illustration: Providing a warning and a retype command to prevent destructive errors. 6. Maximize user recognition by combining commands or prompting input Make the CLI experience more efficient and easy-to-use by easing the user’s memory load. One way to do that is by giving users a single command to perform a task, which doesn’t require them to remember certain inputs. For MongoDB Realm, this principle can be mobilized to improve our authentication experience. A single command can be called to automatically generate CLI credentials from the Realm CLI for Atlas. If it isn’t possible or ideal to combine several commands, then consider a prompt showing users a choice of complicated options in the CLI. Rather than asking users to type and remember an input, the CLI can show them a series of options. Illustration: A prompt suggesting complicated inputs that are hard to remember 7. Make the CLI more flexible by allowing users to easily set and change configuration options Understood generally, this principle is meant to highlight user freedom and customization capability. The CLI should provide straightforward commands that can allow users to easily set and change things as they wish. In the case of Realm, we are looking to make MongoDB auth configuration file creation automatic upon Realm initialization, with the access token stored in the user’s home folder. This makes configuration more efficient. Additionally, we are considering allowing users to change their config file directly in the CLI to increase user flexibility. 8. Implementing aesthetics and interactions There are different visual considerations that can improve CLI interactions and experiences. Here are a few examples: Adding better color support (e.g., Yellow or green = good; red = wrong) Adding visual hierarchy for tables (e.g., making headers stand out through highlighting) Adding spinners, progress bars, and/or step count to show long-running tasks Illustrations: Different ways to show task runtime. 9. Help users recognize, diagnose, and recover from errors Error messages should be expressed in plain language (no codes), precisely indicate the problem, and constructively suggest a solution. They should be informative and should indicate next steps. Consider providing or linking to a troubleshooting guide or links to documentation as part of your error messages. 10. Help and documentation For users that decide not to go through the CLI docs, the help command is vital. We recommend writing a small description of the CLI’s purpose in the --help command. Also, consider providing links to documentation when necessary (i.e. as part of an error message). An example of an effective --help output is seen in the MongoDB CLI: The MongoDB CLI's --help output is both descriptive and concise. 11. Maintain user control and freedom by allowing users to opt-out of data collection Allow users to control data collection settings from their config in the CLI. This functionality can be provided with a command. In the case of realm, this may look like: --realm telemetry-disable . We hope these principles provide a solid foundation for designers and developers looking to create effective, user-centered CLIs. Be on the lookout for a new version of our Realm CLI by the end of Q4! Interested in trying MongoDB Realm ? Start building your app today! Start Free

October 21, 2020

Introducing Multi-Cloud Clusters on MongoDB Atlas

One of the core pillars of MongoDB is the freedom to run anywhere. Since 2017, organizations have been able to use MongoDB Atlas , our fully managed global cloud database, across 70+ regions on the cloud provider of their choice: AWS, Azure, or Google Cloud. We’re increasingly seeing customers run independent workloads on different clouds — a common practice among enterprises with different applications and business units. However, we believe the real power of multi-cloud applications is yet to be realized in our industry. So today, I’m proud to announce that multi-cloud clusters are generally available on MongoDB Atlas! With this groundbreaking capability, customers can distribute their data in a single cluster across multiple public clouds simultaneously, or move workloads seamlessly between them. Data — traditionally the hardest piece of an application stack to move — is now the easiest. A New Multi-Cloud Paradigm More organizations are moving towards a multi-cloud model , and they want the freedom and flexibility to use the best of each cloud provider for any and every application. The question is how engineering teams can do this efficiently and deliberately while dealing with challenges such as incompatible operations and the effects of data gravity . Read our eBook, Why the World is Going Multi-Cloud , for a high-level guide to today's fast-emerging cloud architecture. Download Now With multi-cloud clusters on MongoDB Atlas, customers can realize the benefits of a multi-cloud strategy with true data portability and a simplified management experience. Developers no longer have to deal with manual data replication, and businesses can focus their technical resources on building differentiated software. This opens up a whole new set of possibilities that were previously difficult ― if not impossible ― to achieve, from being able to use best-of-breed services across multiple platforms to data mobility and cross-cloud resiliency. Use best-in-class technology across multiple clouds in parallel Developer productivity is critical to a company’s success, and CTOs know that enabling their teams to choose the best technology available is a major contributing factor. With MongoDB Atlas, developers get more freedom in deciding what building blocks to use, regardless of which cloud is storing application data. Some examples of popular cloud services that our customers like to use include AWS Lambda , Google Cloud AI Platform , and Azure Cognitive Services. With multi-cloud clusters, developers can now run operational and analytical workloads using different cloud tools on the same dataset, with no manual data replication required. Migrate workloads across cloud environments seamlessly Data mobility is another reason companies want a multi-cloud strategy. The world is constantly changing, and businesses never know if, or how, their cloud requirements are going to change. They may face mergers and acquisitions, be subject to new regulatory controls for data portability, find themselves in direct competition with a cloud provider, or find significant cost savings on another platform. With MongoDB Atlas, organizations can future-proof their applications and have the option to move them from one cloud to another if needed, without undergoing a costly data migration. Our built-in automation seamlessly handles cross-cloud data replication on a rolling basis so applications stay online and available to end-users. Improve high availability with cross-cloud redundancy Any business with a mission-critical or user-facing application knows that downtime is unacceptable. Cloud disruptions vary in severity, from temporary capacity constraints to full-blown outages, and organizations need to mitigate as much risk as possible. By distributing data across multiple clouds, they can improve high availability and application resiliency without sacrificing latency. MongoDB Atlas extends the number of locations available by allowing users to choose from any of the nearly 80 regions available (with more coming) across AWS, Azure, and Google Cloud — the widest selection of any cloud database on the market. This is particularly relevant for businesses that must comply with data sovereignty requirements , but have limited deployment options due to sparse regional coverage on their primary cloud provider. In some cases, only one in-country region is available, leaving users especially vulnerable to disruptions in cloud service. For example, AWS and Google Cloud each offer only one region in Canada. With multi-cloud clusters, organizations can take advantage of both regions, and add additional nodes in the Azure Toronto and Quebec City regions for extra fault tolerance. With MongoDB Atlas, customers no longer need to make a trade-off between availability and compliance. Reach more users with flexible deployment options In order to deliver a world-class application experience, organizations must at a minimum meet end-user requirements for their products and services. For SaaS providers and B2C businesses, this may include cloud provider preferences or regional availability. While each of the cloud providers offer a large and growing list of regions globally, their data centers are still heavily concentrated in the USA, Europe, and eastern Asia. If multinational enterprises want to reach local users in other areas, they may not always find coverage on a single cloud. For example, AWS is the only provider to offer a cloud region in Bahrain, Azure Oslo is the only option in Norway, and only Google Cloud has data centers in Indonesia. To capture more global market share, companies may need a multi-cloud strategy to meet customers where they are. An Integrated, More Secure Cloud Data Platform MongoDB has consistently delivered innovations in the data management experience, including automated data tiering with Atlas Online Archive , integrated full-text search with Atlas Search , and Client-Side Field Level Encryption (FLE) for some of the strongest levels of data privacy available today. Client-Side FLE currently works with AWS Key Management Service (KMS), and will soon offer beta support for Azure Key Vault and Google Cloud KMS. With this expansion, it will be easier for organizations to further enhance the privacy and security of sensitive and regulated workloads across all major public cloud platforms. Read our guide to learn more about how Client-Side Field Level Encryption protects data in MongoDB. Download Now Multi-Cloud Data Management Made Easy Multi-cloud distribution can be enabled for both new and existing clusters starting today via the Atlas UI. Multi-cloud clusters come with all the features that our customers know and love, including built-in security defaults , fully managed backup and restores , automated patches and upgrades , intelligent performance advice , and more. While multi-cloud clusters are generally available, we are planning on releasing more capabilities in the coming months to deliver even more value to you. Whether you’re a startup just getting off the ground or a global enterprise in the midst of a multi-year cloud transformation initiative, our multi-cloud database solution abstracts away the toughest roadblock to unlocking your multi-cloud strategy. When your data can travel across clouds, there’s no limit to what you can build. Let us know where multi-cloud clusters on MongoDB Atlas take you - or tell us what you need to get there .

October 20, 2020

Using MongoDB CLI to Get Atlas Performance Advice From Your Terminal

MongoDB CLI brings the power of your MongoDB cloud (MongoDB Atlas, MongoDB Cloud Manager, and MongoDB Ops Manager) to your terminal, helping you write advanced scripts and automate different workflows for your MongoDB cloud infrastructure. We released MongoDB CLI's first stable version back in June. So far we've seen more than 100 clusters deployed with the tool, as well as with many other operations such as getting metrics for these clusters or managing backups. Meanwhile, we've been busy adding new features and listening to your feedback as to what we should add next. With the latest release of mongocli , we have added the ability to get Atlas performance recommendations. Let's see how they work. $ mongocli atlas clusters create slowQueriesDemo \ --region EASTERN_US \ --members 3 \ --tier M30 \ --provider GCP \ --mdbVersion 4.4 \ --diskSizeGB 30 This command deploys a three-member replica named slowQueriesDemo, with GCP as the backing cloud provider. You can always use mongocli atlas clusters create --help to review all available options when creating a cluster. Getting your new cluster ready can take some time. Use mongocli to be notified when your changes are available with a watch : $ mongocli atlas clusters watch slowQueriesDemo Performance Advisor works by scanning your Atlas Cluster logs and finding any slow operations that could be affecting the performance of your queries. For this example, I loaded my demo Atlas cluster with some dummy data. I executed a series on MongoDB commands where I expect to see the Performance Advisor recommend new indexes to improve my queries. If you're not seeing any suggestions, please check our docs . The performance advisor command requires a process identifier. To check for the processes available to our project: $ mongocli atlas processes ls ID REPLICA SET NAME SHARD NAME VERSION atlas-00-00.gcp.mongodb.net:27017 atlas-fjszq1-shard-0 4.4.1 atlas-00-01.gcp.mongodb.net:27017 atlas-fjszq1-shard-0 4.4.1 atlas-00-02.gcp.mongodb.net:27017 atlas-fjszq1-shard-0 4.4.1 We want to pick one process ID related to our cluster, and then use it with the performance advisor: $ mongocli atlas performanceAdvisor suggestedIndexes ls --processName atlas-00-01.gcp.mongodb.net:27017 ID NAMESPACE SUGGESTED INDEX 5f75c6d38788f14f816f80ee loadTest.saildrone { timeUTC: 1 } 5f75c6d38788f14f816f80ef loadTest.saildrone { id: 1, arrayOperation: 1, decimal: 1, nested.field: 1, quotedReservedWordField: 1, date: 1, binary: 1, embeddedArrayDocument: 1, embeddedDocument: 1, embeddedArray: 1, embeddedDocumentArray: 1, nullValue: 1, coordinates.latitude: 1 } 5f75c6d38788f14f816f80f0 loadTest.saildrone { RH_MEAN: 1 } When running this command, you'll get all recommended indexes for the given process, along with the related namespace. You can use this information to make a decision on creating new indexes that could improve different operations over your database. To automate this process, we can write a small script to create all recommended indexes. This script will leverage the existing mongocli command to create rolling indexes. Then we’ll rerun our index recommendations and transform that into arguments to the create index command.: mongocli atlas performanceAdvisor suggestedIndexes ls \ --processName atlas-00-01.gcp.mongodb.net:27017 \ | awk 'BEGIN{ORS=" ";}{if (NR!=1){split($2,a,"."); print a[1]; print a[2]; for(i=4;i<=NF-1;++i)printf $i} printf"\n"}' \ | xargs -n3 sh -c 'echo "Creating index db: $1 collection: $2 index: $3"; mongocli atlas clusters indexes create --clusterName slowQueriesDemo --db $1 --collection $2 --key $3' sh This more advanced example shows how to combine or pipe different commands and automate different workflows, in this case saying goodbye to any slow queries. This is just one of the many things you can do with mongocli. We are constantly adding new features, so let us know what you would like to see next . Ready to see for yourself? Try MongoDB Atlas today! Sign up now Get MongoDB CLI! Download

October 19, 2020

Meet Nicholas Cottrell: How My Experience Using MongoDB Inspired My First Book

I sat down with Nicholas (Nic) Cottrell, Technical Services Program Manager, to talk about his career progression at MongoDB and the exciting news of his recent book release, MongoDB Topology Design : Scalability, Security, and Compliance on a Global Scale. Ashley Perez: Prior to joining MongoDB, you already were familiar with our products. How did you learn about us, and why did you decide to join the team? Nic Cottrell: I've always been interested in natural language technologies and was, at the time, building a multilingual version of WordNet to facilitate machine translation of websites. I had experimented with object databases and tried to scale with systems built on top of SQL. I couldn’t find anything that would scale until I stumbled upon MongoDB around 2011. I remember being at a MongoDB event in Paris where they presented replication and sharding. I was blown away by both the implementation and the potential for scaling. I ended up using MongoDB for consulting clients and personal projects. I transitioned from customer to employee when I had completed several large consulting projects in Sweden. In spring of 2017, I had moved to France for my wife's work, and it seemed like the perfect time to seek new challenges. I wanted to leverage my experience with MongoDB, so joining MongoDB as a Consulting Engineer that October seemed like an excellent way to complement those existing skills. AP: Wow. You’ve been working with our technologies for quite some time. So, you started as a Consulting Engineer but continued to progress your career in other ways? NC: Correct. While I loved the consulting role, the amount of travel made it hard to spend time with my kids (aged one and three at the time). MongoDB is very supportive of work/life balance, so we found that a move into a technical services role would be a good solution. This remote position is much more flexible and means I can pick up the kids from school and make them dinner. I catch up on cases and email in the calm of the evening to round out the day. AP: What does the Technical Services team do? NC: The Technical Services team assists our customers with applications and databases already in deployment. We help recover systems when an unexpected event has occurred (hardware failure, for example). We can diagnose changes in performance and track it back to things such as new network misconfigurations, app features, or changes in user patterns. Being a Technical Services Engineer (TSE) sometimes feels like playing Dr. House. We have to diagnose complex systems with partial information, and success means working with customers to perform the right tests and collect the right information to identify a root cause(s). In other cases, it’s like playing Inspector Poirot. We can see that part of the system misbehaved, but the obvious suspect is seldom the real perpetrator. Customers can provide a set of diagnostic information including internal metrics from the member nodes, information about the automation of cluster components from our Ops Manager tool , and details of the host and operating system configuration. We have tools that let us visualize and zoom in to one-second intervals to piece together the timeline of events and solve the mystery. By working in pairs with our engineering colleagues, we solve these issues more quickly and also transfer knowledge and skills to our growing team. AP: Interesting way to describe it. Sounds as if the Technical Services team is perfect for curious minds who like a good puzzle. You've recently made another career move, right? Can you tell me about your new role? NC: In August 2020, I moved into a program management role within the same team. I am working on several initiatives, including expanding our knowledge management systems and our premium services offering such as Named TSE . I am now working with a larger group within MongoDB globally and am involved in the entire life cycle of the technical services experience from the customers' perspective. AP: How has MongoDB supported your career growth? NC: MongoDB has very clear and well-defined corporate values. Unlike most places I've worked, people internalize these, and I experience them every day in what we do. In particular, our culture of taking responsibility as a group improves both the product and our service delivery. As an engineer, I was encouraged to share ideas for changes, propose solutions, and follow through with getting them implemented. I feel as if the entrepreneurial spirit is alive and well despite our huge growth. AP: I hear the Technical Services team is encouraged to work on side projects. I’m sure that helps accelerate career growth too. Can you tell me a bit about that? NC: Absolutely. We are encouraged to spend about four hours a week on other projects. For some, this can mean self-education and preparing for accreditations such as AWS professional-level exams. For me, due to my development background, I focused on improving our tooling. This let me learn a new programming language ( Go ) and test out our new drivers in the process. The tool I built has become a core component in our case assignment workflow globally. It’'s been great to see it have so much positive impact. Our staff engineers get to spend even more time on other projects, including guiding junior engineers, and also delving deeper into special use cases, writing tools, and knowledge base articles. All these projects can have a multiplier effect on our capacity as a team to solve customer issues quickly and efficiently. AP: Very cool. How else do you feel MongoDB sets itself apart from other companies as a place to work? NC: I love the responsiveness and approachability of our management, from individual product managers to top-level executives. It's a very flat organization, and we make use of modern techniques such as 1:1 skip meetings so we keep two-way communication open across the company. Most things move very quickly, and now that our product catalog has grown, there's a lot of news to catch up on.There are always exciting announcements around the corner. As an employee, my contributions are appreciated and actioned, and I directly benefit from the financial success of the company. AP: Thanks for sharing your experience. Now, are you ready to share your exciting news? Congrats on your recent book release! I’d love to hear more about it. NC: Thank you. My book, MongoDB Topology Design : Scalability, Security, and Compliance on a Global Scale , released in September 2020. It was inspired by questions and concerns raised during my consulting engagements, as well as my participation in our Ask the Experts booths and trainings at various MongoDB.local and World events . The book is intended to assist large enterprises managing MongoDB themselves on-premises or in cloud instances. These customers tend to have very specific security and data protection requirements and a low tolerance for any negative production impact. I wanted to create something that both management and engineers could read to get up to speed on how MongoDB works and the issues to consider when scaling out a large deployment. There are several small things that can make it much easier to scale out globally later. AP: That sounds like an amazing resource for our customers. How did members of MongoDB support you during your writing process? NC: MongoDB itself was very supportive, and I was encouraged to reach out internally to our developers to ensure complete accuracy. My manager even helped proofread my draft copies. While MongoDB Atlas is definitely the future for MongoDB production deployments, I wanted to make sure organizations that are still required to manage their own infrastructure have a single reference while industries prepare themselves for a fully cloud, SaaS world. Interested in pursuing a career at MongoDB? We have several open roles on our teams across the globe , and would love for you to build your career with us!

October 16, 2020

1Data - PeerIslands Data Sync Accelerator

Today’s enterprises are in the midst of digital transformation, but they’re hampered by monolithic, on-prem legacy applications that don’t have the speed, agility, and responsiveness required for digital applications. To make the transition, enterprises are migrating to the cloud. MongoDB has partnered with PeerIslands to develop 1Data, a reference architecture and solution accelerator that helps users with their cloud modernization. This post details the challenges enterprises face with legacy systems and walks through how working with 1Data helps organizations expedite cloud adoption. Modernization Trends As legacy systems become unwieldy, enterprises are breaking them down into microservices and adopting cloud native application development. Monolith-to-microservices migration is complex, but provides value across multiple dimensions. These include: Development velocity Scalability Cost-of-change reduction Ability to build multiple microservice databases concurrently One common approach for teams adopting and building out microservices is to use domain driven design to break down the overall business domain into bounded contexts first. They also often use the Strangler Fig pattern to reduce the overall risk, migrate incrementally, and then decommission the monolith once all required functionality is migrated. While most teams find this approach works well for the application code, it’s particularly challenging to break down monolithic databases into databases that meet the specific needs of each microservice. There are several factors to consider during transition: Duration. How long will the transition to microservices take? Data synchronization. How much and what types of data need to be synchronized between monolith and microservice databases? Data translation in a heterogeneous schema environment. How are the same data elements processed and stored differently? Synchronization cadence. How much data needs syncing, and how often (real-time, nightly, etc.)? Data anti-corruption layer. How do you ensure the integrity of transaction data, and prevent the new data from corrupting the old? Simplifying Migration to the Cloud Created by PeerIslands and MongoDB, 1Data helps enterprises address the challenges detailed above. Migrate and synchronize your data with confidence with 1Data Schema migration tool. Convert legacy DB schema and related components automatically to your target MongoDB instance. Use the GUI-based data mapper to track errors. Real-time data sync pipeline. Sync data between monolith and microservice databases nearly in real time with enterprise grade components. Conditional data sync. Define how to slice the data you’re planning to sync. Data cleansing. Translate data as it’s moved. DSLs for data transformation. Apply domain-specific business rules for the MongoDB documents you want to create from your various aggregated source system tables. This layer also acts as an anti-corruption layer. Data auditing. Independently verify data sync between your source and target systems. Go beyond the database. Synchronize data from APIs, Webhooks & Events. Bidirectional data sync. Replicate key microservice database updates back to the monolithic database as needed. Get Started with Real-Time Data Synchronization With the initial version of 1Data, PeerIslands addresses the core functionality of real-time data sync between source and target systems. Here’s a view of the logical architecture: Source System. The source system can be a relational database like Oracle, where we’ll rely on CDC, or other sources like Events, API, or Webhooks. **Data Capture & Streaming.**Captures the required data from the source system and converts them into data streams using either off-the-shelf DB connectors or custom connectors, depending on the source type. 1Data implements data sharding and throttling, which enable data synchronization at scale, in this phase. Data Transformation. The core of the accelerator, when we convert the source data streams into target MongoDB document schemas. We use LISP-based Domain Specific Language to enable simple, rule-based data transformation, including user-defined rules. Data Sink & Streaming. Captures the data streams that need to be updated into the MongoDB database through stream consumers. The actual update into the target DB is done through sink connectors. Target system. The MDB database used by the microservices. Auditing. Most data that gets migrated is enterprise-critical; 1Data audits the entire data synchronization process for missed data and incorrect updates. Two-way sync. The logical architecture enables data synchronization from the MongoDB database back to the source database. We used MongoDB, Confluent Kafka and Debezium to implement this initial version of 1Data: The technical architecture is cloud agnostic, and can be deployed on-prem as well. We’ll be customizing it for key cloud platforms as well as fleshing out specific architectures to adopt for common data sync scenarios. Conclusion The 1Data solution accelerator lends itself to multiple use cases, from single view to legacy modernization. Please reach out to us for technical details and implementation assistance, and watch this space as we develop the 1Data accelerator further.

October 15, 2020

Meet Marissa Jasso: My Experience as a Mexican/Native American Woman in Tech

In honor of National Hispanic/Latinx Heritage Month, I sat down with Marissa Jasso to learn more about her career at MongoDB, her family's history, her experience as a Latina woman, and how she empowers herself to reach for more. Marissa is a Product Marketing Manager for our MongoDB Atlas product. Take a look at her story. Ashley Perez: Thank you so much for sitting down with me and sharing your experience. Can you start by telling me a bit about your career and how you got into the tech industry? Marissa Jasso: My first internship during freshman year of college was as a content strategist at Autodesk. Seeing firsthand the positive impacts Autodesk software made in different industries inspired me to follow a path into the tech industry. Computer-aided design is just a chip off the tip of the tech iceberg. What intrigued me was the ability to use software to express creativity in meaningful outlets that create impact. My experience at Autodesk propelled me to study computer science in addition to English, but what I truly pursued was the intersection of technology and art. From there, I interned at Flickr. Then I worked at Twitter as a technical writer, where I created internal documentation guidelines for engineers for projects on their open source site. Upon graduating, I worked at YouTube building knowledge bases, and that’s when I came across MongoDB. The opportunity to work within the tech sector and focus on something as interesting and technical as databases clicked for me. It was something I couldn’t walk away from. AP: That’s quite an impressive resume, with a lot of top companies so early in your career. Can you tell me about your role at MongoDB? MJ: I’m currently a Product Marketing Manager (PMM) for Atlas — MongoDB’s fully managed global cloud database. I create the messaging, positioning and go-to-market (GTM) strategy for the newest Atlas features. My focus is working with the Cloud Automation and the Cloud Insights and Telemetry teams. By working closely with product managers from ideation through development to execution, I’m able to deliver the best GTM strategy for internal stakeholders and external users. A few of my favorite feature releases include MongoDB Ops Manager containerization , which allows for a simplified Ops Manager management experience, and Schema Suggestions in MongoDB Atlas, which provide custom recommendations on how to optimize your data model. When I initially joined MongoDB in 2019, I was doing content marketing and transitioned to product marketing midway through the year. When the opportunity arose to try something new in a different domain, I seized it. I think my technical internships played a role in determining my fit for working as a PMM on an overtly technical product like Atlas. AP: It’s amazing to see all of your career growth at MongoDB in a short period of time. In light of Hispanic/Latinx Heritage Month, why don’t we talk about your family? MJ: I’m both Mexican and Native American. My parents are first-generation college graduates and high school sweethearts. They met in El Paso, Texas, and moved together to California for college. My dad attended Stanford University, became an immigration attorney, and opened a private family-run practice. My mom attended Santa Clara University, studied psychology, and became a teacher. She came to realize she was pretty amazing at her job, so my brother and I were homeschooled while she simultaneously managed my father’s practice until just two years ago when he became a federal judge. She now makes good use of her psychology degree by providing me with free therapy and enduring the mental combat of raising my teenage sister. Owning a business where you fight for the rights of immigrants who typically can’t get a half-decent paying job because of their immigration status wasn’t incredibly lucrative. The older my siblings and I got, the more we began to understand that. I can only imagine how torn my parents must have felt by their desire to boundlessly provide for their children and pursue such a purpose-driven mission. As a daughter, the endeavour of my parents will always be something I’m most proud of. They brought families together, gave people opportunity, and constantly did the work for only the price that people could spare. That sort of bountiful generosity, positivity, and drive — even when it means giving more than you’re getting — despite the overwhelming amount of work there is to do, are just a few virtues my parents have lived and instilled in me by example. I also consider these attributes an embodiment of my culture, because both Mexican and Native American communities have historically and still are consistently advocating for belonging, for preservation of identity, and against oppression. AP: Thank you so much for sharing that. It’s clear there’s plenty to be proud of when it comes to your family, and I’m sure those they’ve helped are eternally grateful. Now, can you tell me a little bit more about you and your experiences? MJ: Being a young Latina has never been a cake walk. I’ve felt it as both a curse and blessing, sometimes all at once. My Latina heritage has been central to my upbringing, from the way I speak to the way I dress. I’ve never really had an eye for fashion, but I’ve always had a respect for tradition. Like many other Latinas, I had my ears pierced right after I was born. Since then, my abuelita made darn sure I never left the house without appropriate earrings. Eventually, I grew into my gold hoops — a rite of passage and a staple of Mexican culture. Recently, it’s been interesting watching hoops adapt to a signature Instagram look in mainstream media when the Latinas who gave them life value them so much differently. Traditions aside, as a Latina, I’ve faced plenty of adversity throughout my life. I’ve been looked at every which way for simply walking into a room, been repeatedly sexually harassed when taking my dog for walks on the streets of New York (the hypersexualization of Latinas in the media isn’t helping), and been consistently told (and felt) that my identity isn’t even worth the time it takes to pronounce my name correctly (Mah-dee-sah). Despite the nuances of safely navigating a brown body in the United States, I’m utterly grateful because I wear my experiences as a suit of armor against the accusations and stereotypes placed upon my culture. And with that, I take the time to educate myself on matters of race, politics, and history. On days when I find it particularly difficult to simply be, I’ll read a bit more and dive a little deeper. The past few months I’ve completed Me and White Supremacy by Layla Saad, The Periodic Table of Feminism by Marisa Bate, Why I’m No Longer Talking to White People About Race by Reni Eddo-Lodge, and I’m currently tackling Why Are All the Black Kids Sitting Together in the Cafeteria? by Beverly Daniel Tatum. I’d highly recommend all of these! I’ve spent my life being passive and sitting silently in discomfort too many times, because there is nothing I hate more than being a feather ruffler. But the recent political climate has proved that I have to put my personal preferences aside, because being actively anti-racist may involve feather ruffling, and I’m obligated to speak up. AP: What’s something you wish to share about your story that job candidates and readers can learn from or relate to? MJ: Latinas hold only 2 percent of STEM jobs, and that’s a huge issue. That statistic has mirrored my experience within tech. I’ve rarely worked with people who share a similar background, and every mentor I’ve ever had within tech has been a white man. Although I’m incredibly grateful to have such empowered mentors and advocates, it can feel unsettling to never see people who look like you in positions of power within the tech sector. But when I begin to wonder why, I consider my own path. I never had access to a computer science class until college, which I paid for on my own. I took many classes at my local community college during high school so I could save money by graduating early. During my time at university, I always worked three jobs to not only keep afloat, but also to make consistent student loan payments (and I still graduated with a lot of debt). I think it’s a privilege to use college as an opportunity to “find yourself,” because for many others, it is one of the few pathways — if not the only direct one — for achievement, wealth, and success. Many people attend college with a blank slate, but when you’re a person of color, it can feel as if your background continues to define you. I think it’s important to remember that isn’t a bad thing. Sure, I didn’t have the luxury of making mistakes while studying abroad in Spain, but I found immense joy where I was. I was lucky enough to apply for and land jobs that fulfilled my passion, I found a love for nature, and I found an even deeper love for the guy who brought it into my life. It’s important to try to appreciate and dwell in the present, even if you consider it a stepping stone. AP: You’ve faced a lot of adversity in your life. Has MongoDB done its part to make you feel as if you belong? MJ: I joined MongoDB because I want to work at a company that truly operates by its values. I want to work at a company with big ambitions and limitless potential in its product and impact. MongoDB fits the bill, which was what originally intrigued me. A large part of why I feel so comfortable here is that I’m able to truly express myself. My greater team is distributed, making them incredibly diverse, and I am so grateful to work with people of all backgrounds. Our MongoDB affinity group, TUPOC (The Underrepresented People of Color), has always supported my ideas, and because of that community, I know I always have a safe place to go. Since working at MongoDB, I’ve felt as if I could leave my cultural and racial insecurities at home, and that’s one less thing I have to worry about. I get to focus on working, and that hasn’t always been the case at other companies. AP: I’m glad that’s been your experience, and I know MongoDB is working to continue to create opportunities for inclusion for all our employees. Any other closing thoughts? MJ: My little sister just started her freshman year of high school. When considering how my actions could potentially create a better world for my culture, for this generation, and for the generations to come, she is at the forefront of my motivation. I hope, like my parents did for me, to lead by example and show that we can be and do anything — even if the playing field isn’t and was never equal. As a Latina, she’ll undergo an unprecedented amount of adversity, and as an empowered Latina, she’ll probably face even more adversity because of it. But I hope she, like myself, owns it, because our culture in itself is bold, beautiful, and something to be proud of! Interested in pursuing a career at MongoDB? We have several open roles on our teams across the globe , and would love for you to build your career with us!

October 15, 2020

Announcing Azure Private Link Integration for MongoDB Atlas

We’re excited to announce the general availability of Azure Private Link as a new network access management option in MongoDB Atlas . MongoDB Atlas is built to be secure by default . All dedicated Azure clusters on Atlas are deployed in their own VNET. For network security controls, you already have the options of an IP Access List and VNET Peering . The IP Access List in Atlas offers a straightforward and secure connection mechanism, and all traffic is encrypted with end-to-end TLS. But it requires that you provide static public IPs for your application servers to connect to Atlas, and to list all such IPs in the Access List. And if your applications don’t have static public IPs or if you have strict requirements on outbound database access via public IPs, this won’t work for you. The existing solution to this is VNET Peering, with which you configure a secure peering connection between your Atlas cluster’s VNET and your own VNET(s). This is easy, but the connections are two way. While Atlas never has to initiate connections to your environment, some customers perceive VNET peering as extending the perceived network trust boundary anyway. Although Access Control Lists (ACLs) and security groups can control this access, they require additional configuration. MongoDB Atlas and Azure Private Link Now, you can use Azure Private Link to connect a VNET to MongoDB Atlas. This brings two major advantages: Unidirectional: connections via Private Link use a private IP within the customer’s VNET, and are unidirectional such that the Atlas VNET cannot initiate connections back to the customer's VNET. Hence, there is no extension of the network trust boundary. Transitive: connections to the Private Link private IPs within the customer’s VNET can come transitively from another VNET peered to the Private Link-enabled VNET, or from an on-prem data center connected with ExpressRoute to the Private Link-enabled VNET. This means that customers can connect directly from their on-prem data centers to Atlas without using public IP Access Lists. Azure PrivateLink offers a one-way network peering service between an Azure VNET and a MongoDB Atlas VNET Meeting Security Requirements with Atlas on Azure Azure Private Link adds to the security capabilities that are already available in MongoDB Atlas, like Client Side Field-Level Encryption , database auditing , BYO key encryption with Azure Key Vault integration , federated identity , and more. MongoDB Atlas undergoes independent verification of security and compliance controls , so you can be confident in using Atlas on Azure for your most critical workloads. Ready to try it out? Get started with MongoDB Atlas today! Sign up now

October 15, 2020

Meet Alejandro Torrealba: How My Willingness to Learn and Embrace Different Cultures Has Grown My Career

In honor of National Hispanic/Latinx Heritage Month, I sat down with Alejandro Torrealba to learn more about his career at MongoDB, how moving around the world has allowed him to embrace his passion for other cultures, and how he honors his Venezuelan roots. Alejandro is a Technical Program Manager at MongoDB. Take a look at his story. Ashley Perez: It sounds as if you’ve had an exciting start to your career, especially in terms of all the places you’ve lived. Can you tell me a bit more about that? Alejandro Torrealba: I always like to learn new things, relate to new and different people, and apply logical and mathematical thinking to solve problems. As I finished my computer engineering degree, I had a technical internship supporting Microsoft Venezuela’s marketing department. After working a few years, I decided I wanted to interact with different cultures and professional spaces, so I went to England to get my master’s in computer science and worked at a London startup, first as head of development and later as a product manager. After five years in London, I left the startup to work as a product owner at a much bigger European corporation in Edinburgh. Eventually, I was promoted to the role of an agile program manager there. In 2018, I moved to New York for personal reasons. When considering job opportunities, I wanted to work for a growing, innovative organization with modern products that had a diverse and inclusive team, high working standards, and strong branding. With those criteria, I applied to MongoDB and officially joined the team in May 2019 as a technical program manager. AP: As a travel lover myself, I’m a little envious of all the amazing places you’ve lived. Very cool! And it sounds as if MongoDB benefited from your move to New York. Can you tell me about your role? AT: On the Technical Program Management team, we focus on managing and supporting the processes to ensure lean and timely software delivery. That requires a technical understanding of what we want to build, knowledge of the “team’s personality,” cross-team communication, planning, and follow-ups. Each technical program manager works with a defined number of teams, managing cross-team initiatives and performing process improvement and automation projects. Outside of the projects we manage, we usually have regular program manager team meetings to coordinate, share ideas, support each other, and generally catch up. AP: Before COVID-19, you worked in our New York headquarters. What was that like? AT: New York City is one of the greatest cities and cultural centers in the world. The diversity there brings people together from all continents, religions, gender preferences, and professions, providing infinite choices for different relationships, work opportunities, technologies, entertainment, arts, dance, food, and social events. MongoDB’s NYC office reflects this variety too . There is significant diversity of personal and professional backgrounds, and every person is well-acknowledged and respected. As there is space for everyone in NYC, there is space for excellent employees at MongoDB. You just have to make sure you do a great job! AP: Speaking of diversity, let’s talk about Hispanic/Latinx Heritage Month. What does it mean to you? AT: It is a time to commemorate and celebrate the Latino American people's continuous contributions in building the United States’ modern society. For me, that celebration is a welcoming message to all the Latino American people willing to work and continue contributing. There is so much of the Latino American culture found in NYC, including food, music, dance, sports, people, arts, and more. Even during the pandemic, there are plenty of options for experiencing the culture. I am sure there are great taco and arepa places that can deliver you a taste of that, and good online events for you to see salsa dancing! MongoDB is a place where you can be and express who you are. One of our core values literally embraces the “power of differences,” and this has shaped our company culture. That is something many of us may take for granted, but in reality, the MongoDB culture has been designed to be inclusive, and we invest to make it better in that way. This is why we’re able to celebrate things like Hispanic/Latinx Heritage Month. And we will continue to celebrate other aspects of the diversity we have here as well. AP: Is there anything you’d like to share about your culture that’s a huge part of who you are? AT: Kindness, sharing, and being family-oriented were always big parts of the Venezuelan culture, as I know it has been part of Latino American culture in general. As Venezuelans, my family always emphasized these values, as well as learning, working, and having some fun and celebration to connect with family and friends. I like to keep these values no matter where I live. My culture has also taught me to be kind to others, conserve the books I read so that others can read them later, and not to ever waste food. AP: How do you keep your culture alive as you move around? AT: I have great friends from Venezuela who live in New York, and we see each other frequently. Apart from that, I enjoy specific Latin food places and never get tired of inviting friends and coworkers to share that food with me. I also try to enjoy other cultures, especially by spending time with friends I’ve made in the United Nations systems and other international organizations. After living and working in a few places, I truly believe that most people are naturally willing to relate to others in a safe way, so it’s been interesting to share our cultures with one another. AP: That’s a great way to look at it. Backtracking a bit, I’d love to learn more about why you chose MongoDB and what makes you stay. AT: Once I arrived in New York, I was looking for a growing technology company that was a leader in its industry and financially stable, with an excellent reputation as an employer. I found all of that in MongoDB. I have worked with teams from Venezuela, Colombia, Mexico, England, Scotland, the Netherlands, Belgium, Poland, India, and different places from the United States during my career. From that experience, I can affirm our standard for professionalism and excellence here is very high, generating the best products quickly. I believe it represents an attractive challenge for anyone in the technology industry. I can say all the great reviews I read on Glassdoor while applying to MongoDB are totally true. AP: Any parting thoughts for why someone would want to join your team? AT: At MongoDB, you’ll have the freedom to do your job in the best way possible while responding to high, transparent, and fair expectations. We discuss, agree, do our work, check results, look for improvement, and support each other as needed. It’s a great environment to grow your career and genuinely an amazing place to work. Interested in pursuing a career at MongoDB? We have several open roles on our teams across the globe , and would love for you to build your career with us!

October 15, 2020