Architecture

A typical AEM setup consists of an author and a publish environment. These environments have different requirements regarding the underlying hardware size and system configuration. Detailed considerations for both environments are described in the author environment and publish environment sections.

In a typical project setup, you have several environments on which to stage project phases:

  • Development environment
    To develop new features or make significant changes. Best practice is to work using a development environment per developer (local installations on their personal systems).

  • Author test environment
    To verify changes. The number of test environments can vary depending on the project requirements (for example, separate for QA, integration testing, or user acceptance testing).

  • Publish test environment
    Primarily for testing social collaboration use cases and/or the interaction between author and multiple publishing instances.

  • Author production environment
    For authors to edit content.

  • Publish production environment
    To serve published content.

Also, the environments may vary, ranging from a single-server system running AEM and an application server, through to a highly scaled set of multi-server, multi-CPU clustered instances. Adobe recommends that you use a separate computer for each production system and that you do not run other applications on these computers.

Generic hardware sizing considerations

The sections below provide guidance on how to calculate hardware requirements, taking various considerations into account. For large systems, Adobe suggests that you perform a simple set of in-house benchmark tests on a reference configuration.

Performance optimization is a fundamental task that needs to be performed before any benchmarking for a specific project can be done. Make sure to apply the advice provided in the Performance Optimization documentation before performing any benchmark tests and using their results for any hardware sizing calculations.

Hardware sizing requirements for advanced use cases need to be based on a detailed performance assessment of the project. Characteristics of advanced use cases requiring exceptional hardware resources include combinations of:

  • high content payload / throughput
  • extensive use of customized code, custom workflows or third-party software libraries
  • integration with unsupported external systems

Disk Space/ Hard Drive

The disk space required depends heavily on both the volume and type of your web application. The calculations should account for the following:

  • the quantity and size of pages, assets, and other repository-stored entities such as workflows, profiles, and so on.
  • the estimated frequency of content changes and therefore the creation of content versions
  • the volume of DAM asset renditions that will be generated
  • the overall growth of content over time

Disk space is continuously monitored during Online, and Offline, Revision Cleanup. Should the available disk space drop below a critical value, the process is canceled. The critical value is 25% of the current disk footprint of the repository and it is not configurable. Adobe recommends sizing the disk at least two or three times larger than the repository size including the estimated growth.

Virtualization

AEM runs well in virtualized environments, but there can be factors such as CPU or I/O that cannot be directly equated to physical hardware. A recommendation is to choose a higher I/O speed (in general) as this is a critical factor, usually. Benchmarking your environment is necessary to get a precise understanding of what resources are required.

Parallelization of AEM Instances

Fail Safeness

A fail-safe website is deployed on at least two separate systems. If one system breaks down, another system can take over and thus compensate the system failure.

System resources scalability

While all systems are running, an increased computational performance is available. That additional performance is not necessarily linear with the number of cluster nodes as the relationship is highly dependent on the technical environment. See Cluster documentation for more information.

The estimation of how many cluster nodes are necessary is based on the basic requirements and specific use-cases of the particular web project:

  • From the perspective of fail-safeness, it is necessary to determine, for all environments, how critical failure is and the failure compensation time based on how long it takes for a cluster node to recover.
  • For the aspect of scalability, the number of write operations is basically the most important factor. Load balancing can be established for operations that access the system solely to process read operations; see Dispatcher for details.