Рабочий процесс Windows в Azure
Я создаю приложение, которое будет запускать рабочие процессы в Azure.
Я видел презентацию сборки Building Applications with Workflow и Azure - BUILD 2011, в которой обсуждается, на что способны сегодня, а также что будет возможно в будущем. Обсуждается одна вещь, называемая "Служба рабочих процессов Azure", которую, как я понимаю, планируется выпустить в 2012 году. Однако я не смог найти больше информации об этом.
Кроме того, есть более ранняя презентация Workflow в Windows Azure AppFabric, в которой более подробно обсуждаются рабочие процессы в Azure с упором на Windows Azure AppFabric CTP. В этой презентации обсуждается много интересных функций, но я не уверен, доступна ли какая-либо из этих функций сейчас или нет, когда она может быть доступна.
Итак, два вопроса:
Если мне нужно создать приложение сегодня, каков предлагаемый подход для реализации рабочих процессов в Azure?
Если приложение не нужно завершать в течение года или около того, каков предлагаемый подход для реализации рабочих процессов в Azure?
1 ответ
В настоящее время размещение службы рабочего процесса в Windows Azure не сильно отличается от размещения ее самостоятельно в веб-приложении на IIS без использования Windows Server AppFabric. Вы можете использовать SQL Azure в качестве хранилища экземпляров. Вам нужно будет получить обновление 1 для платформы Microsoft .NET Framework 4, так как это обновление изменило сценарии SQL для совместимости с SQL Azure.
Смотрите здесь. Еще один пост, который я сделал по этому вопросу, находится здесь, но имейте в виду, что проблема со сценарием решается с помощью Обновления 1 платформы Framework 4, а также включает поддержку упомянутых временных условий подключения.
Официальный совет, который мне дали, состоит в том, чтобы использовать приложения логики Azure и приложения-функции Azure в сочетании друг с другом, когда приложение логики выполняет оркестровку, а приложения-функции обеспечивают функциональность вашего рабочего процесса.
Это видео на канале 9 рассказывает об этом подробно...
https://channel9.msdn.com/Events/Ignite/Microsoft-Ignite-Orlando-2017/BRK3179
... Проблема, которую я обнаружил, заключается в том, что ядро приложений логики является механизмом оркестровки и не расширяемо, поэтому для завершения решения я думаю, что конечным решением будет нечто вроде приложения логики Azure для бизнес-процесса, вызывающего функцию для каждого рабочего процесса. это должно быть запущено.
Я создал свой собственный механизм документооборота, который я размещаю внутри функции Azure, без каких-либо указаний от MS по этому вопросу... их лучший совет заключался в том, чтобы "заключить контракт на 50000 фунтов стерлингов в год с программой Premier Field Engineers, чтобы они пришли и построить это с вами ".
В нашем случае наши потоки / бизнес-процессы определяются нашими клиентами, поэтому мы не можем просто жестко написать что-либо о том, как работает бизнес-логика (например, записав фиксированный блок кода в функции) и трактуя функцию как рабочий процесс Деятельность (подумайте WF здесь), вы будете следовать лучшим практикам MS, но мы обнаружили, что наши потоки были достаточно сложными, и затраты на выполнение потоков таким образом стоили бы нам реальные деньги за каждое выполнение.
Вот так я и пришел к выводу о запуске всего потока внутри функции. В вашем случае вы можете выполнять потоки WF из функции для достижения того же решения, что и у нас.
Все это сводится к тому, что руководство MS по функциям говорит о том, что они должны быть быстрым коротким REST-вызовом для выполнения небольшой части работы (идеально подходящей для какой-либо деятельности), поэтому невозможно сказать, что может случиться, когда мы внедрим весь поток на этом этапе вы находитесь вне их поддержки, исходя из того, что я могу сказать, и, по сути, "по своему усмотрению", если вы не заключите контракт на 50000 фунтов стерлингов в год.
Я думаю... попробуй, проверь ограничения, вставь их в свой код, чтобы предотвратить нарушение структуры функций.
В свете этого я предложил сообществу обратной связи, что MS делает функции встраиваемыми в логическое приложение, напрямую устраняя накладные расходы, и нам необходимо реализовать отдельный механизм обработки потоков.
https://feedback.azure.com/forums/34192--general-feedback/suggestions/36979045-workflow-solution
... если это будет одобрено, мы можем разработать бизнес-процессы как логические приложения, которые будут вызывать потоки, которые будут созданы как другие логические приложения, чтобы полностью и полностью интегрировать полное решение в инфраструктуру MS без необходимости прыгать за кулисы циклы, чтобы сделать все это подходит, когда логические приложения не могут что-то сделать.