@@ -130,12 +130,17 @@ projects and {+clusters+}:
130
130
Local {+service+} Deployments
131
131
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
132
132
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>`.
139
144
140
145
Org and Project Hierarchies
141
146
~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -193,29 +198,39 @@ this hierarchy.
193
198
~~~~~~~~~~~~~~~~~~~~~
194
199
195
200
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`.
198
208
199
209
.. figure:: /includes/images/deployment-hierarchy.svg
200
210
:alt: An image showing one deployment per project in each organization.
201
211
:align: center
202
212
:lightbox:
203
213
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.
211
224
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.
213
226
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
215
230
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 .
219
234
220
235
.. figure:: /includes/images/alt-deployment-by-environment.svg
221
236
:alt: An image showing deployments grouped by environment.
@@ -247,42 +262,39 @@ To learn more about parsing billing data using tags, see
247
262
248
263
In a dedicated deployment ({+cluster+} size ``M10``\+), {+service+}
249
264
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
251
266
clusters.
252
267
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
259
269
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
262
272
changing resource needs, performance requirements, workload
263
273
characteristics, and growth expectations.
264
274
265
275
.. important::
266
276
267
277
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.
271
280
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:
274
282
275
283
- **Total Storage Required**: 50% of the
276
284
total raw data size
277
285
- **Total RAM Required**: 10% of the total raw data size
278
286
- **Total CPU Cores Required**: expected peak read/write database
279
287
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
281
289
second (min IOPS = 5%, max IOPS = 95%)
282
290
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
+
283
295
.. list-table::
284
296
:header-rows: 1
285
- :widths: 10 10 20 20 10 10 10 20
297
+ :widths: 10 10 20 20 10 10 10 10
286
298
287
299
* - T-Shirt Size
288
300
- Cluster Tier
@@ -291,7 +303,7 @@ the {+cluster+} resources required by using your organization's approximate data
291
303
- CPUs (#)
292
304
- Default RAM
293
305
- Default IOPS
294
- - Recommended For
306
+ - Suitable For
295
307
296
308
* - Small
297
309
- ``M10`` [1]_
0 commit comments