@@ -130,12 +130,17 @@ projects and {+clusters+}:
130130Local {+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
140145Org and Project Hierarchies
141146~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -193,29 +198,39 @@ this hierarchy.
193198~~~~~~~~~~~~~~~~~~~~~
194199
195200To 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
248263In a dedicated deployment ({+cluster+} size ``M10``\+), {+service+}
249264allocates 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
251266clusters.
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
259269development 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
262272changing resource needs, performance requirements, workload
263273characteristics, 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