The recommended MarkLogic automation is via Gradle.
I wonder where there should a dedicated single VM to run those Gradle tasks to control the configuration and deployment to different Prod / UAT / Test / Dev ML cluster enviroments.
Is my below understanding correct?
One single dedicated VM should be specifically included in the overall design to hande ML configuration deployment for different ML enviroments.
- Gradle is not required in each ML hosts. Gradle should be only used in that ML management depot.
- In each gradle properties, the load balancer IP for each ML enviroment cluster should be used.
https://i.imgur.com/AtNQZi6.png
Scope of that [ML Management Depot] VM
- ML XQuery Git deployment pipeline
- Any post deployment tasks like postman script execution or additional xquery execution
- MLCP tasks
(a) Data Sync Prod → UAT → Test → Dev
(b) Documents ingestion (XML, PDF, HTML, others) (c) Documetns export for raw files backup to Azure Data Lake - Corbs tasks - bulk data update and report
(All those should be configured as gradle tasks.)
CodePudding user response:
That's definitely a good strategy - one separate machine/host/whatever to handle deployment (Gradle) and batch processing (MLCP/Corb) tasks. As you note, you don't need Gradle (nor MLCP or Corb) available on any of the hosts. For MLCP and Corb in particular, it's best to run those on a separate machine so that they're not competing for system resources with any of the ML hosts.