marklogicworld 2013 - automate your deployments

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

Upload: geert-josten

Post on 20-Jan-2015

210 views

Category:

Technology


0 download

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/

TRANSCRIPT

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]