Ways to Integrate MongoDB Atlas in Your DevOps Processes
MongoDB Atlas
- the industry-leading developer data platform integrates all of the data services you need to build modern applications in a unified developer experience. We want to meet you where you are and offer various ways to begin with Atlas and make the most of its features. Starting with the Atlas User Interface is a good initial step. Now what if your requirement is to automate the deployment of Atlas clusters at scale, and by leveraging tools that are already integral to your application ecosystem? Through this blog, we will address this question.
We will discuss the programmatic methods for starting with Atlas and deploying Atlas resources and infrastructure according to your specific needs. The tools we provide cover most of the control plane management ( easily deploy, manage, scale) Atlas clusters. Thereby, enabling you to create the building blocks of Atlas such as clusters, database users, projects, Atlas Search indexes, backups, alerts, and more. You can interact directly with the data plane through the command line or programmatically using tools like
MongoDB Shell
,
Compass
,
language drivers
, etc., to work with data and perform CRUD operations.
1. Atlas Administration API: Leveraging your choice of client
No matter what your choice of client: be it cURL commands, Postman, Insomnia etc. You can use a client of your choice to directly interact with Atlas through the
Atlas Administration API
. The Atlas Administration API gives you a RESTful interface to interact with Atlas resources and perform various actions within MongoDB Atlas. Each endpoint represents a specific resource in Atlas ( e.g. cluster). You can programmatically deploy and manage all of the Atlas resources from an administrative standpoint such as creating a cluster, database user, projects, advanced clusters, backups, monitoring etc.
All of the tools that we will cover below are built on top of the Atlas Administration API and abstract away the complexities of using the Atlas Atlas Administration API directly.
2. GoSDK Client: A simplified way to get started with the Atlas Admin API
One of the mechanisms that simplify the interaction with the API is the availability of SDK (Software Development Kit). If you are a Go developer, the
GoSDK client
gives you a much simpler experience of getting started with the Atlas Administration API. It also has full endpoint coverage of the Administration API and improves the speed of getting started with the Atlas Administration API. Getting started with the Admin API through the Go SDK client only takes a few lines of code since the SDK includes pre-built functions, structs, and methods that encapsulate the complexity of HTTP requests, authentication, error handling, versioning, and other low-level details. We will be adding SDK support for more languages in the future. Feel free to
add feedback
on what other languages you would like to see supported.
3. MongoDB Atlas CLI: Simple command-line tool to easily deploy Atlas resources
If you prefer to manage your Atlas resources using simple commands in the terminal, the MongoDB Atlas Command-Line Interface (CLI) is your answer. With the Atlas CLI, you can seamlessly manage your clusters, automate database user creation, control network access, and perform various other administrative tasks, all from the command line. You can also script these actions out with the CLI for even easier repeatability. It is available for multiple operating systems, including Windows, Linux, and macOS. It is often used in conjunction with other command-line tools to automate workflows and integrate with CI/CD pipelines. An easy way to get started with the
Atlas CLI
is through the
quickstart
.
4. Infrastructure as Code (IaC) integrations: Automating deployment of Atlas using Infrastructure as Code tools
There are several advantages of using Infrastructure as Code ( IaC) tools to provision application infrastructure. By treating your infrastructure code similar to your application code, IaC tools offer benefits such as version control, scalability, security, repeatability etc. What if you could easily deploy your Atlas resources using your preferred IaC tools? MongoDB Atlas gives you that flexibility. Whether you're an AWS CloudFormation or a HashiCorp Terraform enthusiast, you can provision and manage Atlas resources using these tools with ease through the integrations we offer:
AWS CloudFormation integration: MongoDB Atlas supports three ways to provision resources using
AWS CloudFormation
The first is by leveraging Atlas resources directly from the
CloudFormation Public Registry
. We have 33+ resources available today. The configurations are defined in JSON/ YAML and can be executed using the AWS CLI/ AWS management console.
If you want a faster way to get started, you can explore our
AWS Partner Solutions
( formerly known as quickstarts), which have pre-built Cloudformation templates to help you provision a group of Atlas resources for specific use cases instead of deploying them one by one.
And if you are passionate about using languages you are comfortable with such as JavaScript/TypeScript, Python, Java, C#, and Go instead of learning YAML/JSON, you can leverage the
AWS Cloud Development Kit (CDK)
to deploy Atlas resources. Under the hood, when your AWS CDK applications are run, they translate your code to CloudFormation templates which use the CloudFormation service for provisioning.
HashiCorp Terraform integration: If you are already using Terraform as your IaC tool of choice, we have
integrations with Hashicorp Terraform
as well. There are two easy ways to get started with Hashicorp Terraform
By directly provisioning Atlas resources on AWS, Azure, and Google Cloud using the
Terraform MongoDB Atlas provider
.
If you prefer to use your favorite language, e.g. Typescript, Python, C#, Java, Go, you can use
CDKTF (Cloud Development Kit for Terraform)
, which will allow you to deploy Atlas using Terraform under the hood without knowing the specifics of Terraform’s configuration language
5. Atlas Kubernetes Operator: Use your existing Kubernetes tooling to manage Atlas resources
For organizations leveraging Kubernetes for container orchestration, the
Atlas Kubernetes Operator
provides seamless integration between Kubernetes and MongoDB Atlas. This operator allows you to deploy and manage Atlas resources using your existing Kubernetes tooling, streamlining the process of spinning up and scaling databases alongside your applications. You can manage Atlas in exactly the same way you manage your applications running in Kubernetes. This is done by managing Atlas directly via custom resources in Kubernetes. These custom resources can be created, managed, and stored as the source of truth in your repository. You can then leverage a Continuous Deployment tool of your choice such as ArgoCD to apply them into Kubernetes.
Whether you prefer working with the command line, a RESTful API, Kubernetes, or IaC tools, MongoDB Atlas provides a diverse set of tools to help you achieve your automation goals. By embracing these methods, you can streamline your operations, improve efficiency, and pave the way for a more agile and responsive development process.
Learn more from our
Atlas Programmatic Access
documentation page
October 11, 2023