Healthshare/Ensemble/Cache deployment tool? Anyone every created one?

I'm working on a proposal for a deployment tool development project and I was wondering if anyone had any experience with such a thing.  

We use Healthshare and implementations for new clients are tedius and lengthy.  Lots of ensemble service, registry value, lookup tables, namespaces and other things have to be created and configured. 

I would like to create a Zen or CSP page based deployment tool that can do all this with a few parameters and some custom code.

Has anyone done this?  What are some pitfalls you ran into?  Any unique ideas you included?  Other general thoughts?

  • + 1
  • 0
  • 666
  • 15
  • 0

Comments

Scott - have you looked at %Installer?  That should be the first place that you start for trying to create a deployment from scratch.  This is how Ensemble, HealthShare and TrakCare instances get initialized by the installer and I know a lot of customers have used this with great success.

Also, the Enterprise Manager which is coming out in 2016.2 may be of interest in this area as well.

Enterprise Manager sounds very interesting... is there any documentation available yet?

See https://community.intersystems.com/post/enterprise-manager-20162 and the attachment

At a Caché level (for namespaces, databases, code, and security), %Installer may be useful; see: http://docs.intersystems.com/cache20152/csp/docbook/DocBook.UI.Page.cls?KEY=GCI_manifest

For Ensemble, there are some additional deployment-related features that might do more for you in terms of settings and lookup tables. See: http://docs.intersystems.com/ens20152/csp/docbook/DocBook.UI.Page.cls?KEY=EGDV_deploying#EGDV_deployment_overview

Great resources, thanks!  Do you think it's possible/feasible to create a web-based frontend for these two things that would simply take in a few parameters (Customer name, checkboxes, etc) and launch %Installer() with the parameters and deploy the production XML with necessary parameters?

I believe you can take paramaters for %Installer from a config file so you could make a page which creates the config file with the customer name, etc. 

Hi, Scott!

Look also at this approach for deployment. This UML Explorer tool is deployed by importing class package into Studio (not Atelier).

During class compilation it runs installation scripts which create database, namespace, web app, etc.

So for the client installation procedure is just one action: import package into Caché with Studio or Control Panel and client can start use it. They like it.

Scott:

it depends what you mean by a deployment tool. It opens up a whole new world of automation so you'll have to start to think about versioning your artifacts etc. It depends how you want to embrace your whole provisioning and deployment and management process.

My suggestion for infrastructure provisioning & deployment: Terraform; for management Ansible: agentless and easy to learn and use.

Of course, Puppet & Chef are strong valid alternatives but you'll have to take on board other considerations...

This subject cannot be done with one post and it really depends on how much automation you want to bring to this process. I would even suggest you consider containers. 

Once automation is seriously considered there is no turning back :-)

All the best

 

I'm familiar with Ansible, Puppet and Chef, but I think these are outside my scope.  Our solution is hosted by ISC, so they would take care of any physical/virtual hardware (my assumption).  My concern is 99% Healthshare, Ensemble and Cache related.