We love to work with Adobe Experience Manager (among others) and create new infrastructure environments for our clients. Usually, manual deployment of the AEM stack and adjacent software is required to provide a proper service. The growing demand pushed us to rethink our delivery process, all with the goal of delivering the same quality in a shorter period of time.
Since 2017, Netcentric has been working on the infrastructure as a code to ease and improve our delivery times for our clients. We based our efforts on Amazon CloudFormation with support for Puppet to deploy all the software, tools, security policies, updates, etc.
When you initially look at the code it can be overwhelming, but we assure you that it’s not difficult at all. Actually, everything has a purpose and everything is documented so you’ll never get stuck.
The framework we have created is very useful for organizations who want to host the Adobe Experience Manager stack on Amazon Web Services (AWS) and avoid potential headaches during the implementation (including all the VPCs, Security Groups to create, Load Balancers, EC2 Instance, etc.). Our framework can even create a direct VPN connection with your organization.
It also offers a certain amount of flexibility. For example, your organization has started with a 1:2:2 setup and wants to upgrade to a 1:3:4 setup? If you have used our framework, you only need to add a few lines of code to the root stack and update the current CloudFormation Stack — it’s that easy. A little heads up, if a configuration management tool is required, such as Puppet or Ansible, you’ll have to use it to deploy the AEM and all the necessary tools/software to the newly provisioned instances (our config management by choice is Puppet under which all functionality is supported).
To get started you’ll have to create the main file (you can create multiple, for separate settings for each environment) where you declare all the resources directly or by referencing stacks provided by the framework. When you consider that all the resources are declared, you just need to deploy the main file via the command line.
Out of the box our framework has, amongst others, the following features:
Take a look at the high-level diagram above. From a big picture perspective, this shows you how the infrastructure is created and how it’s interacting with its components. In the end, all AWS infrastructure components can be customized based on your requirements and needs, such as adding a CDN or the service of your definition.