We had a failed deploy last night. At minimum, we have at least 2 rules whi

We had a failed deploy last night.
At minimum, we have at least 2 rules which were correct in our dev environment, but which did NOT get moved to test and from there to production in addition to other conditions that led to an abort. This is not the first time we have had deploy issues occur like this.

In short, I am looking for a way to compare between servers. Rules, models, applications, data stores, data structures (CDTs), everything.

* Version numbers are not maintained between imports. (dev version 21 when first moved to test becomes version 1 there)

* The import/export packages contain too much "meta data" that is different between the servers to do a comparison, though a script could be written to strip datetimes, non matching version numbers etc. out.

Exporting the "View documentation" pages of models and comparing those between servers is not an option either because of the elements that are dropped from those (timers in start nodes...

OriginalPostID-110488

OriginalPostID-110488

  Discussion posts and replies are publicly visible

  • ..., truncated queries, etc.) and this would not encompass the rules, constants, etc.

    Please, are there any recommended techniques to do cross server comparison? Some sort of basic, fundamental version control tools?
  • What was the problem that stopped the import? Did you do an inspection of the package to be imported? That should show you all missing items. There are some very specific situations where dependency analysis is not able to pick up. I think Eduardo posted something about this issue.
  • The first two easily fixed issues were due to query rules. They received 3 inputs:
    a start date,
    an end date,
    and an array of text fields used for an "IN" clause.

    In dev, the array of text fields was multiple, this was correct.
    In test and prod the rule had not been copied out and had the array of text fields being fed in to a non multiple text field.

    It does not appear that anything is MISSING (other than some testing, but that is a whole other essay.) but the versions/content of some of the rules do not match between servers.

    I am looking for a way to identify those sorts of differences between servers so we can handle them beforehand rather than during the deployment which results in on the fly reconstruction of deploy packages.

    Version control (other than including everything in a folder in an application, then dependency checking and finally sorting the package by modified date to puzzle out what to include and what not) is desperately needed.
  • When I export an app I check when the last deployment was, put all folders and content in one temporary app, sort by modified date and remove everything that is prior to last deployment. That is quick and easy. I never had problems with this method. I think people that are used to do "real" configuration management would be not very happy about this :-) Btw. there is a whole chapter regarding this in the Appian STAR methodology.

    forum.appian.com/.../Change_and_Configuration_Management
  • When you say "the rule had not been copied out":

    a) Can you verify that the updated query rules were in your export/import package? (You can check export-log from when you exported or inspect the zipfile manually.)
    b) Can you verify whether or not the updated query rules imported at all? (I.e. new versions were created at Import time.)
    c) Did you run package inspection and if so, did it indicate everything would import successfully?

    If you are sure that your query rules were in the import package, and appeared to import successfully, but do NOT match the definitions you expect, this sounds like a bug and should be reported through a support case.

    If the rules were not in the import package, then either not all suggested dependencies were added, or the dependency wasn't caught by the dependency checker (in some cases that might be a bug). But it would be good to know if this was an export bug, an export configuration-management issue, or an import bug.
  • a) the updated query rules were NOT in the export package from dev to test. That is the problem.

    the move from Dev to Test that should have included these were overseen and run by people from Appian and they followed the model described by stefanh791. We saw issues even during that deploy where included dependencies were not caught (that has nothing to do with this issue in particular though.)

    I have conceded that there is no better way to build packages, but I am not looking for that as such, or even as stefanh791 called it '"real" configuration management'.

    I am looking for a way to compare what is on server (rules, models, constants, etc.) A to what is on server B.

    Yes this is in the interest of supporting deploys but it would be useful for a great number of other purposes (comparing dev/test/qa/prod configurations comes to mind with a 2 second thought)

    When I put that same question to the consultants (when we had similar issues during that first deploy), they seemed puzzled at why I would even ask it, but then saw what I meant after encountering the real world experience. I feel I am failing to ask the question in a meaningful way. I will try to devise another phrasing.
  • AFAIK there is no easy way to compare the assets and their versions on two servers. Doing an complete export on both systems and check for differences in the xml files might be a way. There are some tools that can do that. But that does not help when you have several applications running and you only want to check one of them.

    I hope this does fit your questions better.
  • Yep, it certainly does. Though I had hoped for an answer in the other direction. I may have to script up some personal tools if I can get some time.

    Thanks to everyone who has helped answer the question!