Skip to content

Commit fb63ffa

Browse files
authored
Merge pull request #137 from mongodb/release
Release
2 parents 0bea483 + 3c18994 commit fb63ffa

File tree

9 files changed

+193
-155
lines changed

9 files changed

+193
-155
lines changed

snooty.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ atlas-go-to = "Atlas Goto"
4848
atlas-sp = "Atlas Stream Processing"
4949
atlas-ui = "Atlas UI"
5050
aws = ":abbr:`AWS (Amazon Web Services)`"
51+
aws-cdk = ":abbr:`AWS (Amazon Web Services)` :abbr:`CDK (Cloud Development Kit)`"
52+
aws-cf = ":abbr:`AWS (Amazon Web Services)` CloudFormation"
5153
avs = "Atlas Vector Search"
5254
aws-pl = "AWS PrivateLink"
5355
asql = "Atlas SQL"
@@ -173,6 +175,7 @@ vnet = "VNet"
173175
waf = "`Well-Architected Framework <https://www.mongodb.com/resources/products/capabilities/well-architected-framework>`__"
174176
wif = "Workforce Identity Federation"
175177
workload = "Workload Identity Federation"
178+
iac = ":abbr:`IaC (Infrastructure as Code)`"
176179

177180
[substitutions]
178181
service-register = ":mdbacct:`MongoDB Atlas registration page </register?tck=docs_atlas>`"

source/automation.txt

Lines changed: 45 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -19,27 +19,35 @@ Guidance for {+service+} Automated Infrastructure Provisioning
1919
:depth: 3
2020
:class: onecol
2121

22-
|service-fullname| provides an easy way to host and manage your data in
23-
the cloud. It includes tools that enable programmatic management of the
24-
deployment, scaling, and maintenance of your {+service+} {+clusters+} to
25-
streamline operations, reduce manual interventions, and ensure
26-
consistent, policy-compliant deployments. These tools offer you the
27-
flexibility to work with {+service+} through direct scripting (such as
28-
scripts that use the GoSDK Client or call the {+atlas-admin-api+}
29-
directly), or Infrastructure as Code (IaC) tooling that uses declarative
30-
configuration, like our Kubernetes Operator, Terraform, Cloud Formation
31-
or AWS CDK.
22+
|service-fullname| provides tools that enable programmatic management of the deployment,
23+
scaling, and maintenance of your Atlas {+clusters+}.
24+
{+service+} provides the flexibility to implement Infrastructure as Code (IaC) using either imperative or declarative programming.
25+
For example, developers can write imperative scripts that call functions from our {+atlas-go-sdk+} client,
26+
or manage {+service+} resources using declarative {+iac+} tools like the {+ak8so+}, Terraform, {+aws-cf+}, or the {+aws-cdk+}.
27+
28+
{+service+}'s {+iac+} tools are especially useful at the enterprise scale.
29+
We recommend that our enterprise customers use {+iac+} tools for the following benefits:
30+
31+
- **Consistency**: {+iac+} tools enable repeatability across environments, so that deployments
32+
generate consistent results.
33+
- **Scalability**: {+iac+} tools enable :ref:`auto-scaling <arch-center-scalability>` to automatically adjust
34+
the tier or storage capacity of {+clusters+} in response to real-time use.
35+
- **Reduced Human Error**: {+iac+} tools automate operational overhead, reducing manual interventions
36+
that produce common human errors.
37+
- **Faster Development**: {+iac+} tools streamline operations to promote more efficient development.
38+
- **Improved Change Management**: {+iac+} tools support reviews and standardization of infrastructure,
39+
allowing for better change management practices and compliance.
3240

3341
Features for Atlas Automation
3442
-----------------------------
3543

36-
You can automate the management, provisioning, and configuration of
37-
|service| building blocks like database users and roles, |service|
38-
{+clusters+}, projects and organizations. Additionally, you can automate
39-
setting up and managing additional {+clusters+} resources, including
44+
You can automate the configuration, provisioning, and management of
45+
|service| building blocks like database users and roles, and |service|
46+
{+clusters+}, projects, and organizations. You can also automate
47+
various configuration and management tasks for {+cluster+} resources, including
4048
enabling auto-scaling compute and storage, creating and updating
4149
multi-cloud {+clusters+}, monitoring {+cluster+} performance and health,
42-
automating backups and restores, defining backup policies, and many more.
50+
automating backups and restores, defining backup policies, and more.
4351

4452
You can align your choice of tools with your preferred workflow to
4553
ensure seamless integration of |service-fullname| into your existing
@@ -58,6 +66,22 @@ programming language or bash script.
5866

5967
To learn more, see :ref:`atlas-admin-api-access`.
6068

69+
{+atlas-cli+}
70+
~~~~~~~~~~~~~
71+
72+
Enables you to manually or programmatically create, manage, and automate
73+
tasks related to |service| resources from a unified command line tool.
74+
75+
To learn more, see the following resources:
76+
77+
- :ref:`Atlas CLI <atlascli>`
78+
- :ref:`Quick Start <atlas-cli-quick-start>`
79+
- :ref:`atlas-cli-ephemeral-cluster`
80+
81+
You can also use the {+atlas-cli+}
82+
examples in the {+atlas-arch-center+} such as the :ref:`Org, Project,
83+
and Cluster<arch-center-hierarchy>` examples to get started.
84+
6185
.. _arch-center-iac:
6286

6387
HashiCorp Terraform MongoDB Atlas Provider
@@ -79,10 +103,10 @@ Cluster<arch-center-hierarchy>` examples to get started.
79103

80104
.. include:: /includes/complete-examples.rst
81105

82-
GoSDK Client
83-
````````````
106+
{+atlas-go-sdk+} Client
107+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
84108

85-
The {+service+} Go SDK client simplifies interaction with the
109+
The {+atlas-go-sdk+} client simplifies interaction with the
86110
{+atlas-admin-api+} by providing pre-built functions and full |api|
87111
endpoint coverage. The SDK provides platform-specific and GoLang
88112
language-specific tools, libraries, and documentation to help build
@@ -104,22 +128,6 @@ Resources to manage |service| include:
104128
JavaScript, TypeScript, Python, Java, C#, and Go.
105129

106130
To learn more, see `Deploy MongoDB Atlas with AWS CloudFormation <https://www.mongodb.com/developer/products/atlas/deploy-mongodb-atlas-aws-cloudformation/>`__.
107-
108-
{+atlas-cli+}
109-
~~~~~~~~~~~~~
110-
111-
Enables you to manually or programmatically create, manage, and automate
112-
tasks related to |service| resources from a unified command line tool.
113-
114-
To learn more, see the following resources:
115-
116-
- :ref:`Atlas CLI <atlascli>`
117-
- :ref:`Quick Start <atlas-cli-quick-start>`
118-
- :ref:`atlas-cli-ephemeral-cluster`
119-
120-
You can also use the {+atlas-cli+}
121-
examples in the {+atlas-arch-center+} such as the :ref:`Org, Project,
122-
and Cluster<arch-center-hierarchy>` examples to get started.
123131

124132
|ak8so|
125133
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -148,9 +156,9 @@ development workflow, we recommend an :ref:`IaC tool <arch-center-iac>`
148156
because they provide more robust options for infrastructure provisioning
149157
and state management.
150158

151-
You can also use a combination of multiple tools. For example, use IaC
152-
tool for provisioning and state management, and leverage the
153-
{+atlas-admin-api+}, GoSDK, and {+atlas-cli+} for quick administrative
159+
You can also use a combination of multiple tools. For example, use {+iac+}
160+
tools for provisioning and state management, and leverage the
161+
{+atlas-admin-api+}, {+atlas-go-sdk+}, and {+atlas-cli+} for quick administrative
154162
tasks that are ephemeral in nature. The {+atlas-cli+} is great for
155163
local development as well as integration into a suite of tests as part
156164
of your CI/CD pipeline for application development because it improves

source/hierarchy.txt

Lines changed: 49 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -130,12 +130,17 @@ projects and {+clusters+}:
130130
Local {+service+} Deployments
131131
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
132132

133-
For your dev and test environments, you can also develop {+service+}
134-
{+clusters+} locally with the {+atlas-cli+}. This can enable developers
135-
to work locally from their machine and cut down on costs for
136-
development and test environments. To learn more, see
137-
:atlascli:`Create a Local {+service+} Deployment
138-
</atlas-cli-deploy-local>`.
133+
For development and testing purposes, developers can use the {+atlas-cli+} to
134+
:atlascli:`create a local {+service+} deployment</atlas-cli-deploy-local>`.
135+
By working locally from their machines, developers can cut down on costs
136+
for external development and testing environments.
137+
138+
Developers can also :atlascli:`run {+atlas-cli+} commands with Docker </atlas-cli-docker>`
139+
to build, run, and manage local {+service+} deployments using containers.
140+
Containers are standardized units that contain all of the software
141+
needed to run an application. Containerization allows developers to build
142+
local {+service+} deployments in secure, reliable, and portable test
143+
environments. To learn more, see :atlascli:`Create a Local {+service+} Deployment with Docker </atlas-cli-deploy-docker>`.
139144

140145
Org and Project Hierarchies
141146
~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -193,29 +198,39 @@ this hierarchy.
193198
~~~~~~~~~~~~~~~~~~~~~
194199

195200
To maintain isolation between environments, we recommend that you deploy
196-
{+cluster+}s that belong to the same application and are administered
197-
by the same team in the same project, as shown in the following diagram:
201+
each cluster within its own project, as shown in the following diagram.
202+
This allows administrators to maintain different project configurations between environments
203+
and uphold the principle of least privilege, which states that users should
204+
only be granted the least level of access necessary for their role.
205+
206+
However, this hierarchy may make it more complicated to share project-level configurations such as private endpoints and |cmk|\s across clusters.
207+
To learn more, see :ref:`hierarchy-multiple-clusters`.
198208

199209
.. figure:: /includes/images/deployment-hierarchy.svg
200210
:alt: An image showing one deployment per project in each organization.
201211
:align: center
202212
:lightbox:
203213

204-
Grouping multiple {+clusters+} and therefore applications into one
205-
project by environment as shown in the following diagram simplifies
206-
administration when the same team is responsible for multiple
207-
applications across environments. This eases the setup cost for
208-
features such as private endpoints and customer-managed keys, since
209-
all {+clusters+} in the same project share this configuration. However,
210-
this {+cluster+} hierarchy may violate the least-privilege rule.
214+
.. _hierarchy-multiple-clusters:
215+
216+
When to Consider Multiple {+Clusters+} Per Project
217+
``````````````````````````````````````````````````
218+
219+
The following diagram shows an organization whose projects each contain multiple {+service+} {+clusters+}, grouped by environment.
220+
Deploying multiple {+clusters+} within the same project simplifies administration when one application uses multiple backing clusters, or
221+
the same team is responsible for multiple applications across environments.
222+
This eases the setup cost for features such as private endpoints and customer-managed keys,
223+
because all {+clusters+} in the same project share the same project configuration.
211224

212-
You should use this hierarchy only if both of the following are true:
225+
However, this {+cluster+} hierarchy may violate the principle of least privilege.
213226

214-
- Every team member with access to the project is working on all other
227+
Deploy multiple {+clusters+} within the same project only if both of the following are true:
228+
229+
- Each team member with access to the project is working on all other
215230
applications and {+clusters+} in the project.
216-
- You are creating {+clusters+} for lower environments. Production
217-
{+clusters+} should belong to the same application and be administered
218-
by the same team in the same project.
231+
- You are creating {+clusters+} for development and testing environments.
232+
In staging and production environments, we recommend that {+clusters+} in the same project
233+
should belong to the same application and be administered by the same team.
219234

220235
.. figure:: /includes/images/alt-deployment-by-environment.svg
221236
:alt: An image showing deployments grouped by environment.
@@ -247,42 +262,39 @@ To learn more about parsing billing data using tags, see
247262

248263
In a dedicated deployment ({+cluster+} size ``M10``\+), {+service+}
249264
allocates resources exclusively. We recommend dedicated deployments
250-
because they provide higher security and performance than shared
265+
for production use cases because they provide higher security and performance than shared
251266
clusters.
252267

253-
Use the following {+cluster+} size guide to select a {+cluster+} tier that ensures performance without over-provisioning. The {+cluster+} size guide also provides recommendations on which {+cluster+} tiers
254-
are suitable for development and testing environments, and which are
255-
suitable for staging and production environments.
256-
257-
The {+cluster+}
258-
size guide uses "t-shirt sizing," a common analogy used in software
268+
The following {+cluster+} size guide uses "t-shirt sizing," a common analogy used in software
259269
development and infrastructure to describe capacity planning in a
260-
simplified manner. You should consider t-shirt sizes as approximate
261-
starting points. Sizing a {+cluster+} is an iterative process based on
270+
simplified manner. Use t-shirt sizing recommendations only as approximate
271+
starting points in your sizing analysis. Sizing a {+cluster+} is an iterative process based on
262272
changing resource needs, performance requirements, workload
263273
characteristics, and growth expectations.
264274

265275
.. important::
266276

267277
This guidance excludes mission-critical applications, high-memory
268-
workloads, and high-CPU workloads. For mission-critical
269-
applications, high-memory workloads, and high-CPU workloads, contact
270-
|mdb-support| for customized guidance.
278+
workloads, and high-CPU workloads. For these use cases,
279+
contact |mdb-support| for customized guidance.
271280

272-
You can estimate
273-
the {+cluster+} resources required by using your organization's approximate data size and workload:
281+
You can estimate the {+cluster+} resources that your deployment requires by using your organization's approximate data size and workload:
274282

275283
- **Total Storage Required**: 50% of the
276284
total raw data size
277285
- **Total RAM Required**: 10% of the total raw data size
278286
- **Total CPU Cores Required**: expected peak read/write database
279287
operations per second ÷ 4000
280-
- **Total Storage IOPS Required**: expected peak database writes per
288+
- **Total Storage IOPS Required**: expected peak read/write database operations per
281289
second (min IOPS = 5%, max IOPS = 95%)
282290

291+
Use the following {+cluster+} size guide to select a {+cluster+} tier that ensures performance without over-provisioning.
292+
This table displays the default storage and performance capabilities for each {+cluster+} tier, as well as
293+
whether or not the {+cluster+} tier is suitable for staging and production environments.
294+
283295
.. list-table::
284296
:header-rows: 1
285-
:widths: 10 10 20 20 10 10 10 20
297+
:widths: 10 10 20 20 10 10 10 10
286298

287299
* - T-Shirt Size
288300
- Cluster Tier
@@ -291,7 +303,7 @@ the {+cluster+} resources required by using your organization's approximate data
291303
- CPUs (#)
292304
- Default RAM
293305
- Default IOPS
294-
- Recommended For
306+
- Suitable For
295307

296308
* - Small
297309
- ``M10`` [1]_

0 commit comments

Comments
 (0)