Less than 60 days ago I joined Amplience as Director of Innovation and Solutions. Having followed Amplience’s growth throughout the years whilst working at Oracle, and having worked with other Amplience team members before, I wanted to get involved.
From the get-go I wanted to kick things into gear, so set myself the challenge of automating Amplience’s demo environments, ultimately wanting to create an Amplience Reference Storefront whereby a sample instance of a commerce storefront could be spun up quickly and easily, each instance tailored to a prospective business and their specific needs.
Turning up the automation dial
In looking to achieve this, the first step was to define all of the tasks I’d need to automate. There was media that needed to be imported into Amplience’s Digital Asset Management (DAM) solution, content schemas and content types, webhook configurations, search indexes and configuring and deploying to Vercel.
Once everything was defined, the scale of the task in front of me, my first port of call was automating an initial demo instance from scratch. This involved working with command line interface (CLI) tools to automate all those different parts of the process that had been initially outlined, basically covering various aspects of the demo provisioning.
Importantly, every aspect of the demo provisioning process is configured in a single YAML file, with all schemas, types, webhooks, etc. automatically generated from Handlebar templates. This means that by changing a few things in that YAML file, you can easily implement mass change, such as updating all visualization URLs, or connecting to a different commercetools instance and reconfiguring all UI extensions automatically.
Bringing it all to life
Next up was the task of fully automating the creation of a brand new demo environment, involving thousands of products, different content elements, as well as bringing in localization features and new front-end features such as themes for easily customizing colors and typography within Dynamic Content. In order to achieve this new tools need to be created so we could automate different parts of the demo, including integrating with Amplience’s digital asset management solution, Content Hub. In streamlining this process between the image repository in Content Hub and Dynamic Content we could automate not only the loading of imagery, specifically large volumes of product imagery, but also the subsequent content creation therein in Dynamic Content.
CLIs… they’re back
So CLIs are a bit of an “old school” tech trend. But they’ve returned, thanks to the rise of MACH-based platforms like Amplience, commercetools and Algolia.
A CLI provides barebones, no-frills command line access to cloud-based APIs that provide developers with instant access to APIs without the need for a Graphical User Interface (GUI). So with the proliferation of cloud-based APIs, and led by cloud providers such as AWS, Google, GitHub and others, a whole new generation of developers are learning to code the way many did back in the days on our Linux boxes.
Besides bringing some retro nostalgia, these CLIs help the modern developer automate and orchestrate developer tasks such as configuration, builds and deployments. They can easily be accessed in the terminal/command lines that are embedded in modern integrated development environments (IDEs) such as Visual Studio.
Why does all of this matter?
Well, by using CLIs in combination with other scripting languages such as YAML & Gulp, you can automate entire configuration and deployment tasks. This means the amount of time and effort it takes for developers to do mundane tasks is vastly reduced, and it can reduce the risk of human error/typos when configuring systems too.
So, using the Amplience Reference Storefront as an example, now through the CLI tools that have been created, we can easily package developments and automate migration from one environment to another, i.e. a development environment to pre-production, ultimately streamlining the time it takes to get demonstrations and customers up and running. These tools could also be wrapped in some web interfaces, providing a very simple user interface to request and provision a new demo environment with multiple options, such as choosing the catalog vertical (fashion, luxury, grocery, etc.), and the integrations we want to showcase, or start from a clean environment.
With the rise of solutions such as Vercel and Netlify, automation has now moved to the build and deploy process as well. All you need to do is connect your code repositories from BitBucket or GitHub to these systems and they take care of building and deploying them to the web. These platforms listen for any changes in your underlying repo and once you’ve made a commit, a build will run - making it very easy to develop, build, deploy, test and rollout. You can configure these solutions to automatically create preview deployments when making a commit to a branch, or create a production deployment when making a commit to the master/main branch. Pretty neat!
Additionally, you can notify these systems via external messaging services such as webhooks to trigger a build. Amplience has customers that leverage our webhook service to notify these systems of either a newly published piece of content, a new static build or even to invalidate cache.
So what does this all add up to? Well the return of the CLI and increased automation is bringing with it an ability for us to rapidly prototype customer demos and proof-of-concepts. It’s increased efficiency. It’s increased speed to react to the needs of customers. And importantly, it’s the chance to fully showcase the power of MACH-based platforms.