There are lots of ways to deploy your applications in MarkLogic. Numerous tools are at your disposal, like the Configuration Manager, Pomegranade, and Roxy. But how about a pure XQuery solution, that takes you all the way? Geert discusses the existing tools briefly, and shows a new personally-made prototype that allows deployments simply by uploading a zip.
Audio available at http://www.marklogic.com/resources/automate-your-deployments/
7. Geert Josten, Dayon
Automate your MarkLogic deployments
So, why automate?
Because..
• Manual work time-consuming, tedious and error-prone
• Databases, app-servers, security, uploading of files, app-specific setup, ..
• Repeat same installation on multiple machines
• DTAP, development laptops, clusters, show casing, ..
• Many updates over application life-time
• During development, project iterations, simple or complex updates, ..
And not in the least..
• You (developer) might not be running the installation
• App managers, non-MarkLogic-expert colleagues, third party, ..
In short:
Keep deployments SIMPLE! (and quick if possible)
14. Geert Josten, Dayon
Automate your MarkLogic deployments
Built-in options..
Fills gaps, but partial solutions
• Still manual work
• Multiple steps
• No versioning
• No automated rollback
• Possibly different instructions each release
Unless you (developer) do a lot of scripting..
• REST api’s
• Admin/security XQuery modules
16. Geert Josten, Dayon
Automate your MarkLogic deployments
Existing alternatives?
Here are some:
• MarkLogic Content Pump, AutoLoader and RecordLoader
• Uploading
• MarkLogic Ant tasks
• Could do all, but developer tool, and still lots of work
• Cqsh, Xmlsh
• Similar to Ant tasks
• Roxy
• Very promising! But what about versioning, rollback, etc?
• Booster
• Simple HTTP wrapper for admin and security tasks
• Depx and Expath Packaging System
• Intended for libraries, not applications. Doesn’t configure MarkLogic
17. Geert Josten, Dayon
Automate your MarkLogic deployments
Alternatives?
Some thoughts:
• All executed outside MarkLogic
• Shell scripting could appeal to App managers
• Roxy looks promising, but why Ruby?
• Some solutions still need more or less additional scripting
• No user interfaces?
• No versioning as part of deployment
• No automated rollback (not just on failure)
19. Geert Josten, Dayon
Automate your MarkLogic deployments
I have a dream..
Simple method
• Only MarkLogic (preferably out of box)
• Simple interface
Single package
• App, database, security configuration
• Files, modules, schemas
• App-specific setup
Upload and go
• Ear-style deployment, one zip with all
• Deployments dir, or upload
• MarkLogic picks up and installs automatically
21. Geert Josten, Dayon
Automate your MarkLogic deployments
MarkLogic package manager
Functionality
• Upload single package
• With configs, files, post-install scripts
• Keeps track of installed packages
• Reinstall, rollback
Prototype
• Relies on built-ins like Configuration Manager
• Custom code to upload files (could use Client-API?)
• App-specific configuration
• Runs at Admin-interface port
Short-comings
• No security config yet (could use/lend code from Roxy?)
• Removal of files on file-system not possible
• Storage of packages, where best?