Skip to content

Commit 0ca1b60

Browse files
authored
(DOCSP-47820) [Atlas Architecture] Make follow-up edits from the Orgs, Projects, and Clusters page (#129)
* (DOCSP-47820) Atlas CLI Docker addition. * (DOCSP-47820) Docker edits. * (DOCSP-47820) Add Multiple Clusters Per Project Section. * (DOCSP-47820) Add average workload table and example. * (DOCSP-47820) Combine tables and rework example. * (DOCSP-47820) Combine tables and rework example. * (DOCSP-47820) Edits. * (DOCSP-47820) Edits. * (DOCSP-47820) Revert footnote. * (DOCSP-47820) @JuliaMongo review changes. * (DOCSP-47820) Clarify 'peak' IOPS * (DOCSP-47820) Chris Shum review changes, remove example IOPS numbers and reference multiple clusters section. * (DOCSP-47820) Plural fix. * (DOCSP-47820) Review change.
1 parent 77249ab commit 0ca1b60

File tree

1 file changed

+49
-37
lines changed

1 file changed

+49
-37
lines changed

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)