Expand my Community achievements bar.

SOLVED

AEM Scalability

Avatar

Level 7

Hi all,

Kindly suggest how Scalability could be increased for AEM.

I am aware of MongoMK architecture, that enables horizontal scalability.

I also looked in to AEM Scalability Issues  forum post that directs to Common product issues .

Here also I did not get much on this subject.

I highly appreciate all your support.

Thanks,

Rama.

1 Accepted Solution

Avatar

Correct answer by
Level 10

The application design/code should not be a constraint to support scalability.

I'll take a best practices example here - The app should not have hardcoded absolute paths that would cease to work on another server. Similar approach goes for environment variables, shared content storage, session based use cases etc.

View solution in original post

11 Replies

Avatar

Level 10

What kind of scalability (in/out) are you looking for? Could you elaborate on it?

Does this help - Recommended Deployments ?

Avatar

Level 7

Hi Gaurav,

Thanks for responding.

I guess that Scalability-In is for cutting down on usage volume and Scalability-Out is for increasing usage volume.

I am concerned about increasing usage volume.

I  have been through that URL already and concluded that Mongo MK supports horizontal scaling.

This is indeed a great input.

Are there any other inputs you could offer on Scaling please?

Thanks,

Rama.

Avatar

Level 10

What is your use case/context here? You may need to understand the concept before concluding how scaling works. E.g. TarMK Farm is also an example of scaling (read-only since its not clustered). Whatever setup you currently have, if you are able to more nodes without breaking your app etc., that would be termed as a scalable system.

Below are the definitions that might help for the concept:

scale horizontally (or scale out/in) means to add more nodes to (or remove nodes from) a system, such as adding a new computer to a distributed software application.

scale vertically (or scale up/down) means to add resources to (or remove resources from) a single node in a system, typically involving the addition of CPUs or memory to a single computer

source: Scalability - Wikipedia

Autoscaling - Wikipedia

Avatar

Level 7

Hi Scott, I already have gone through this whitepaper.

Hi Gaurav, I understood these concepts.

With Vertical scaling, we increase HW resources of a single computer system and with Horizontal, we add extra computer systems.

Apart from these concepts, is there a measure taken from HW point of view or SW point of view, for enhancing AEM Scaling?

Appreciate your support.

Thanks,

Rama.

Avatar

Level 10

These are general concepts/guiding principles to achieve what you want to do. The implementation of these principles might have a range with specifics tasks based on a lot of factors e.g. if you are on Cloud vs on-premise etc.

If you've any specific questions, please share your requirements and details about your existing setup. Alternatively, you could open a ticket with DayCare and ask for specific recommendations regarding your use case.

Avatar

Level 7

Hi Gaurav,

It is an on-premise installation with MongoMK.

From HW point of view or SW point of view, what all else shall I do for enhancing AEM Scaling?

Is Scaling got anything to do with SW? I can not imagine.

Thanks,

Rama.

Avatar

Level 10

When you say SW, do you mean AEM (as software) or your custom application code (as software)?

What if you add a new node for horizontal scaling but your custom application code can't even support it because of various reasons? Would that still count as a scalable system? Hope you can connect the dots and see the big picture.

Avatar

Level 7

Hi Gaurav,

When I say SW,I mean custom application code on AEM.

If I add a new node for horizontal scaling but my custom application code can't even support it because of various reasons. I would not count it as a scalable system.

Do I need to take care of Scaling in custom application code on AEM also?

Thanks,

Rama.

Avatar

Correct answer by
Level 10

The application design/code should not be a constraint to support scalability.

I'll take a best practices example here - The app should not have hardcoded absolute paths that would cease to work on another server. Similar approach goes for environment variables, shared content storage, session based use cases etc.