23
Automate Your Deployments Geert Josten, Senior Development, Dayon April 11, 2013

MarkLogicWorld 2013 - Automate your deployments

Embed Size (px)

DESCRIPTION

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/

Citation preview

Page 1: MarkLogicWorld 2013 - Automate your deployments

Automate Your Deployments Geert Josten, Senior Development, Dayon April 11, 2013

Page 2: MarkLogicWorld 2013 - Automate your deployments

Geert Josten, Dayon Automate your MarkLogic deployments

Errrr, deployment?

Page 3: MarkLogicWorld 2013 - Automate your deployments

Geert Josten, Dayon Automate your MarkLogic deployments

Deployment = … Configuring MarkLogic • Apps, Databases, Indexes, Forests, Security, Groups, Clusters, .. Deployment of app-specific files • Static files, modules, schema’s, initial data, install/migration scripts, .. Running app-specific config/deploy scripts • Including possible user interaction, orchestration of migrations, and

imports, ..

More? (No bootstrapping) • A.o. installing MarkLogic itself, first admin user, entering license, ..

Page 4: MarkLogicWorld 2013 - Automate your deployments

Geert Josten, Dayon Automate your MarkLogic deployments

Why automate?

Page 5: MarkLogicWorld 2013 - Automate your deployments

Geert Josten, Dayon Automate your MarkLogic deployments

Well.. have you used this before?

Page 6: MarkLogicWorld 2013 - Automate your deployments

Geert Josten, Dayon Automate your MarkLogic deployments

So many pages, so many options..

Page 7: MarkLogicWorld 2013 - Automate your deployments

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)

Page 8: MarkLogicWorld 2013 - Automate your deployments

Geert Josten, Dayon Automate your MarkLogic deployments

Other built-in options?

Page 9: MarkLogicWorld 2013 - Automate your deployments

Geert Josten, Dayon Automate your MarkLogic deployments

Configuration Manager to the rescue?

Page 10: MarkLogicWorld 2013 - Automate your deployments

Geert Josten, Dayon Automate your MarkLogic deployments

Not just yet..

Page 11: MarkLogicWorld 2013 - Automate your deployments

Geert Josten, Dayon Automate your MarkLogic deployments

Information Studio?

Page 12: MarkLogicWorld 2013 - Automate your deployments

Geert Josten, Dayon Automate your MarkLogic deployments

Management API?

Page 13: MarkLogicWorld 2013 - Automate your deployments

Geert Josten, Dayon Automate your MarkLogic deployments

How about Client API?

Page 14: MarkLogicWorld 2013 - Automate your deployments

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

Page 15: MarkLogicWorld 2013 - Automate your deployments

Geert Josten, Dayon Automate your MarkLogic deployments

Non-built-in options?

Page 16: MarkLogicWorld 2013 - Automate your deployments

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

Page 17: MarkLogicWorld 2013 - Automate your deployments

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)

Page 18: MarkLogicWorld 2013 - Automate your deployments

Geert Josten, Dayon Automate your MarkLogic deployments

So, what is the ideal way?

Page 19: MarkLogicWorld 2013 - Automate your deployments

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

Page 20: MarkLogicWorld 2013 - Automate your deployments

Geert Josten, Dayon Automate your MarkLogic deployments

Demo!

Page 21: MarkLogicWorld 2013 - Automate your deployments

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?

Page 22: MarkLogicWorld 2013 - Automate your deployments

Any Questions?

Page 23: MarkLogicWorld 2013 - Automate your deployments

For More Information Geert Josten, Dayon [email protected]