One of the thing we have been working in last few months is to generalize and modularize the Deployer extension such as to remove dependencies on Tridion as much as possible (the concept can be applied to a Storage Extension as well).
The main intentions and advantages of this are as below:
- Removing dependencies on Tridion developer for any custom changes pre/post/during the publishing process. (Custom changes like: clearing a cache, indexing to a search engine, sending notifications etc.)
- Making upgrade less painful as pulling out the custom logic from custom deployer module
- In case of SDL Cloud deployment, lesser or no dependency on SDL Support
- Improved go-to market timeline
The Solution we did is utilized the Serverless architecture in MS Azure briefly described as below:
Part – I
- The deployer extension was written in a generic way to fetch all information like component presentation, metadata information etc. and convert it into a json format.
- The deployer extension then interact with an Azure Service Bus Message queue asynchronously and pass all the information in json format to the Azure Service Bus Message queue to process
Part – II
- On Azure portal; a Service Bus Message Queue is configured to invoked from the deployer extension and accept content in JSON format
- An azure function is being written which listen to the Service Message Bus queue mentioned in Step (1) above and accepts the published content in json format
- This azure function then applies all business logic and manipulate JSON to extract necessary information for processing and send it another specific Service us Message Queue
- For every custom functionality, there would be a Service Bus Message Queue and each of these Service Bus Message Queue will be listen by specific azure function implementing the specific functionality consuming the publish content sent in JSON format to the Service Message Bus Queue
- These azure function then take care of all the individual functionalities and offloading the deployer extension for any real logic in it.
A detailed pictorial representation of this implementation and advantages we gain out of this implementation will be described in next blog in the series.
Leave a Reply