Как я не опубликовал приложение в Autodesk Apps Exchange

Исторически так сложилось, что я довольно давно являюсь администратором PDM системы Autodesk Vault. Кроме того, регулярно провожу обучение по использованию и администрированию этого программного продукта.

Ввиду описанных выше причин приходилось осуществлять довольно много установок «с нуля». В предыдущих версиях (2010-2014) даже для опытного пользователя задача, скажем честно, муторная. Так как в базовой комплектации система базируется минимум на MS SQL Server и IIS: необходимо учитывать и нейтрализовывать разного рода особенности, которые могут возникнуть при установке.

После примерно десятой итерации установки уже можешь вслепую пробежаться по настройкам Windows, IIS и SQL. Сразу обмолвлюсь, что использование виртуальной машины не подходило по причине того, что каждый раз установку приходилось осуществлять на новом железе, которым располагал заказчик. Итак, графический интерфейс – это хорошо, но метод явно не наш, так как сложно обеспечить должную скорость, повторяемость и автоматизацию.

В частности, перед установкой необходимо обеспечить ряд условий. Ниже приведу те, с которыми приходилось возиться при каждой установке:
  • ASP Status Check
  • Reboot Check
  • Disable User Access Control (UAC)
  • Check IIS DotNet Interoperability
  • Check Status of User Access Control
  • IIS Default Port Check
  • IIS Timeout Check
  • File and Print Sharing Check

Тут и родилась идея автоматизации подготовки почвы к установки при помощи программной утилиты администратора. Скрипты PowerShell отлично справлялись с поставленной задачей, для удобства они хранились и отлаживались в PowerGUI. Однако вскоре стало ясно, что новый пользователь должен:
  • Обеспечить наличие PowerShell на системе;
  • Уметь сколько-нибудь с ним работать.

Так было решено всё эту «автоматизацию на коленке» спрятать в приложение C#. Благо, примеры решений соблюдения описанных выше условий искались настолько же легко, как и для PowerShell.

Интерфейс получился простенький, деревянный, но меня вполне устраивающий.



Людям с крепкими нервами добро пожаловать на GitHub.
Сформировал и отправил «комплект публикации» для Apps Exchange. По прошествии недели пришёл ответ:

Wanted to let you know, we are still reviewing the zippy installer submission, I am having the server support team look at this to ensure it does not cause any issues with our installer logic.


Так, принимать решение по рассмотрению приложения было не в компетенции данного менеджера, и он передал приложение команде разработчиков, которая занималась установкой.

Немного погодя пришло следующее сообщение:

Good timing, I heard back this morning from the installer team – they as I suspected are a little concerned – over the years we have spent a lot of effort stabilizing our install process (pre-checks etc) so there would be concern if we created issues with an app from our store. Having said that they looked at the detail and provided the following:

Функция приложения

Ответ группы установщиков

UAC state — Button shows current User Access Control (UAC) state by text and color. Click to switch UAC state on whole OS. Requires administrator's privilege.

Vault no longer requires to switch off UAC. In fact, UAC can’t be switched off in windows 8/8.1/2012, it can be brought to minimum level but can’t be switched off unless user modifies the registry values.

Install Vault-related IIS features — Performs installation of all Vault-required IIS features (IIS Metabase and IIS 6 configuration compatibility; IIS Management Console; .NET Extensibility; ASP.NET; ISAPI Extensions; ISAPI Filters; Default Document; Directory Browsing; HTTP Errors; Static Content; HTTP Logging; Request Monitor; Static Content Compression; Request Filtering)

Not sure, if this is doing anything with Default Website/default app pool. Vault server has stopped using default website, it might create problems for existing applications using default website.

Re-register ASP .Net filters — Updates registration of ASP .Net filters for x86 and x64 platforms.

ASP .net filter can’t be registered if user doesn’t have required .net installed. Not sure, if this will install if required .net version is missing.

Let me know your thoughts, but I’m not sure this one should be posted. It can be a complicated area and VERY hard for us to test all the repercussions.


В общем, я понял, что не то чтобы л&хан*лся, но точно полез почти с советами куда не надо. Так как отступать было уже некуда, решил хоть как-то попробовать выгрести:

I foresaw their's concern. Anytime, I have some more explanations:

Функция приложения

Ответ группы установщиков

Попытка выгрести

UAC state — Button shows current User Access Control (UAC) state by text and color. Click to switch UAC state on whole OS. Requires administrator’s privilege.

Vault no longer requires to switch off UAC. In fact, UAC can’t be switched off in windows 8/8.1/2012, it can be brought to minimum level but can’t be switched off unless user modifies the registry values.

I’ve added this feature for all that good people that have to deal with old software. Meanwhile I can also add pre-check of OS version — this will enable this option in certain OS only.

Install Vault-related IIS features — Performs installation of all Vault-required IIS features (IIS Metabase and IIS 6 configuration compatibility; IIS Management Console; .NET Extensibility; ASP.NET; ISAPI Extensions; ISAPI Filters; Default Document; Directory Browsing; HTTP Errors; Static Content; HTTP Logging; Request Monitor; Static Content Compression; Request Filtering)

Not sure, if this is doing anything with Default Website/default app pool. Vault server has stopped using default website, it might create problems for existing applications using default website.

In my latest version I already have a pre-check of already installed features. If installation stops already running Websites/app pools, I could save running state state before installation and launch all stopped apps if they took place.

Re-register ASP .Net filters — Updates registration of ASP .Net filters for x86 and x64 platforms.

ASP .net filter can’t be registered if user doesn’t have required .net installed. Not sure, if this will install if required .net version is missing.

If so I could recommend users to start this app right before pre-check — when setup is already started.

If your staff is interested, I could provide source code or just algorithms that describes workflows of my app.


Как и ожидалось, спасти ситуацию «Не шмогла». Ответ менеджера:

Understood. I find myself having some general discomfort with the tool – I guess, my expectation is that if you cannot do all of the things your app does or do not have a set of modified conditions in your environment you probably shouldn’t be installing Vault Server 


В сухом остатке:
  • очередной опыт публикации
  • функционал приложения такой направленности заранее продумать было невозможно — его можно было согласовать только «боем»
  • пользователю всё равно необходимо было знать особенности установки – приложение только ускоряло процесс там, где возможно

Пользуясь случаем, хочу передать привет своей любимой жене и узнать у аудитории, какие статьи были бы интересны ещё:
  • CAD и PDM, которые использовались при разработке/монтаже Большого адронного коллайдера
  • Консоль на PowerShell для работы с Autodesk Vault
Поделиться публикацией

Комментарии 2

    0
    Мне кажется исход очевидным, не в обиду вам и вашему инструменту.
    При этом набор PS скриптов, мне опять же, кажется лучшим выбором — в любой момент можно поправить/дописать без пересборки приложения.
      0
      Полностью согласен. Для этих целей ранее я уже имел возможность разработать и опубликовать подборку скриптов в таком формате.

      Собственно, наглядность и доступность/простота кода PowerShell в своё время меня и искусила использовать его для демонстрации возможностей Vault API в рамках обучения программированию и администрированию Vault.

      P.S. Я не пиарюсь, а делюсь своими растянутыми во времени размышлениями в отношении того, что обучение относительно «сложному» продукту можно проводить комплексно:

      1. использование и администрирование
      2. продвинутый курс — расширение п.1.
      3. программирование с использованием API, из которого вытекает возможность автоматизации путём скриптования
      4. «экстремельное администрирование» — как быстро разворачивать, настраивать продукт и обеспечивать его надёжность

      Если будет интересно — могу описать статьёй непростой путь поиска такого решения.

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

    Самое читаемое