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 apis
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. Doesnt 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?