Why docker does not help you with AEM | Community
Skip to main content
joerghoh
Adobe Employee
Adobe Employee
June 26, 2017

Why docker does not help you with AEM

  • June 26, 2017
  • 4 replies
  • 20421 views

In my blog post I explain why docker rarely brings benefit in AEM environments. The single usecase I see as of today is for running short-lived test instances, where you validate feature-branches. But anything beyond DEV environment it does not bring any value.

AEM and docker – a question of state | Things on a content management system

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.

4 replies

kautuk_sahni
Community Manager
Community Manager
June 27, 2017

Thanks for sharing this with the community but it is a hard pill to swallow for team working on testing side of AEM.

~kautuk

Kautuk Sahni
MaxBarrass
Level 3
June 29, 2017

I would not worry about it mate, its just a discussion.

OlivBur
Level 2
June 27, 2017

Totally agree, it is a conceptual issue here.

MaxBarrass
Level 3
June 29, 2017

Thanks for sharing mate. I can show you how to do AEM in Docker properly so that it work as it meant to, in all scenarios especially Prod. From your experience point of view I would have to say that Volumes should be the least of your concerns, if a concern at all.

joerghoh
Adobe Employee
joerghohAdobe EmployeeAuthor
Adobe Employee
June 29, 2017

Hi,

ok, challenge accepted. Imagine this case:

* You golive with AEM on docker and your application version 1.

* Your editors start to add and modify content

* After some weeks you want to deploy application version 1.1

How do you implement this 3rd step of the deployment of application version 1.1? How can docker help you there?

MaxBarrass
Level 3
June 30, 2017

The actual challange if any that I propose to you is to understand this notion:

"What is good enough in Prod good Enough in Dev"

And its fundemental impact though practices on efficiency and how DevOps space closing the loops on all the old ways of solving problems that do not need to be solved. After all its 2017 not 1999 oldshcool thinking don't cut it anymore. This would be worthwhile endevour to explore. This does go to the core of developer mindset, whereby a developer thinks "hey I can do X in dev and its cool, but they do Y in prod", usualy Prod is not their problem so anything goes on Dev side. And if you accepts this challange though the journey you will be able to counter argue your own ideas you pose now.

Back to your questions

How do you implement this 3rd step of the deployment of application version 1.1?

- You just deploy the new package to running container using Package Manager, package are not part of your Docker Image so nothing to worry about here.

How can docker help you there?

- its hosts your running AEM instance, you can replicate exact (not same, actually exact) instance in another environment and test installation of your new App Package and see if it works.

I think these questions come from place of understanding of how Docker should be used and how you are using Docker and practices that should be used with it. I think you might be thinking about baking you Application Package into Docker image... is this what you mean?

As far as Docker concerned I would need to point out that Docker on its own does not do anything, but provide an opportunity to change the way things are done. Typically Docker would be part of a suite of tools that will bring an unparallel benefit to all practices for managing Prod and other envrionments. The list of benefits would by far out weigh any percived gaps.

Saying all this here is a very very high level DevOps practice around managing an application in Prod.

1. So you should be writing Docker images specific for particular version of AEM, chain a couple of images with diffrent concerns.

2. Then once you have started the container and tested everything is good, your provision Packages you belive you need as a Provision step.

3. Then once you have tested that package you installed are good, you install your Application Verison, and do a test again.

4. Then using best DevOps practice (not manual hacks) you deploy specific tested version of your Applciation to that Container using package manager.

5. Then you open floodgates of users at it.

All of this is not posible with Docker alone but there is no point saying Docker without meaning DevOps these days, as its basically means that lots of stuff is still manual and that probably cause to work on.

Let me know what you think.

Level 2
February 1, 2018

Hi,

Thanks for this article and also for all the useful comments. What do you all think about the new feature of oak, composite node store? Can this new feature make AEM prod deployments more "Docker friendly"?

joerghoh
Adobe Employee
joerghohAdobe EmployeeAuthor
Adobe Employee
February 1, 2018

The composite node store will definitly be a game changer regarding the use of AEM in containers.

Jörg