Сложность сценария зависит от задачи и разработчика, а не от библиотеки (особенно это касается хореографии).
Если, вы имеете ввиду, умеет ли такие возможности реализация FSM в Masstransit при оркестрации, то да.
Условия можно прописывать внутри блока When с помощью конструкции If. Возможно я не понимаю, что вы имете ввиду о "параллейных задачах" в распределенной транзакции, но Вы можите в рамках одного State публиковать несколько разных собыйтий и они буду выполняться паралельно, плюсом masstransit поддерживает из коробки Schedule
Да, такие механизмы есть. При оркестрации контекст FSM можно хранить, например в MongoDb (masstransit умеет так из коробки). Даже если сам оркестратор умрет, то можно будет продолжить с того места, откуда начали.
При хореографии можно надеятся только на стандартные иструменты с очередьми: DLQ, retry policy и т.п.
Во первых, обработчики compensation logic должны быть покрыты тестами и точно отрабатывать. Во вторых должно быть настроенно retry policy, дабы цепочка не нарушилась из-за кривого подключения к базе и т.п. В третьих, недошедшие сообщения должны храниться в DLQ и в первую очередь обработаны.
Если есть вероятность что обработчики compensation logic будут переодически отрабатывать с исключениями, то можно сделать один ивент компенсации на всю транзакцию и настроить на него retry policy.
Это безумее для Российского рынка, если вы маленькая компания. Стоит учитывать, что разработчик MT орентируется на рынок США и европы. Для среднего (тем более большего) бизнеса в США эта цена не такая уж и большая. Как пример, Gitlab Premium берет 29$ за пользователя. Команда из 30 человек заплатит 870$ в месяц
Как я понимаю eсли контейнеры работают на Windows Server (той же версии, что и хост), они не требуют дополнительных лицензий. Исключением может быть Hyper-V т.к. он более изолированный контейнер (грубо почти виртуалка) или если вы попробуете запустить в 2022 сервере контейнер с 2019
Это действительно отличный вариант, если команда состоит в основном из разработчиков. Если в команде есть devops инженер, то ему явно в разы проще будет поддерживать и писать новые dockerfile т.к. он уже работал с ними
Не очень понял первый вопрос. Если вы имеете ввиду юридическую сторону, то лецензии в контейнере, скорее всего, будут теже что и у системы, которая используется за основу. Например, Alpine Linux распространяется по лецензии MIT (на основе этого дистрибутива базируются большая часть контейнеров). Проще всего будет зайти на официаьный сайт и посмотреть там https://mcr.microsoft.com/en-us/artifact/mar/dotnet/aspnet/about, тут видно, что у linux контейнера лецензия MIT. Если говорить о лецензии на windows контейнере, то тут скорее всего будет MICROSOFT SOFTWARE LICENSE TERMS.
Насчет контейнеров. Я бы не рекомендовал использовать windows контейнеры впринципе. По большей части компании используют linux на своих сервер и, тем более, вы скорее столкнетесь с iis на windows серверах чем с docker. Даже если вы используете windows, то можно рассмотреть вариант с WSL.
Насчет прав в контейнере. Возможно тут просто системы по разному монтируют volume. Если проблема происходит после перезапуска сервера, то проблема может быть связанна с Hyper-V (если используется) так как файлы монтируются через виртуальный слой. Вы можите попробовать явное указание владельца Volume при монтировании или изменить права на нужную директорию непосредственно внутри Dockerfile
В случае ручного тестирования можно пользоваться swagger, при автотестах использую postman или, например, python. Это все делают QA-инженеры. Backend разработчики обычно пишут Unit тест на свой код, возможно я еще напишу статью об этом, пока можете посмотреть в сторону вот этого шаблона для NUnit https://github.com/Pepegov/Template.Net.NUnit. Тут используются библиотеки NSubstitute, AutoFixture и Bogus
В xfce4-terminal, который устанавливается по гайду, имеет изначально возможность скрола. Чтобы настроить его отображение: нажмите ПКМ по окну терминала > Preferences... > General и ищите Scrolling.
Пост писался как поэтапная инструкция. У меня до сих пор есть 3 виртуальные машины созданные по этому гайду для проверки. Так что на сегодняшний момент все должно заработать. В первоисточниках ещё больше проблем (устаревшей, лишней информации). Будьте добры, подробнее напишите что Вы имели ввиду под: "обзорно расписать принципы и взаимосвязи всего этого безобразия", желательно в личные сообщения, чтобы я мог понять свои неточности.
Полностью согласен. Я написал в статье о возможности эксплоита в незашифрованный загрузочный раздел. Такое решение, скорее, спасает от людей не имеющих знания в этой области, но получивших доступ, например, к твоему ноутбуку. Познания TMP и SecureBoot у меня нет, если заинтересуюсь, напишу продолжение этой статьи с использованием этих технологий.
Насчет отсутствия mbr и legacy boot в некоторых системах, согласен. В данном случае мне стоило добавить, что в целях безопасности некоторые люди используют coreboot. Насчет отсутствия systemd. Если ты сознательно не используешь systemd, то ты готов решать проблемы несовместимости. Во многом это имхо о "не безопасной системе инициализации".
Сложность сценария зависит от задачи и разработчика, а не от библиотеки (особенно это касается хореографии).
Если, вы имеете ввиду, умеет ли такие возможности реализация FSM в Masstransit при оркестрации, то да.
Условия можно прописывать внутри блока When с помощью конструкции If.
Возможно я не понимаю, что вы имете ввиду о "параллейных задачах" в распределенной транзакции, но Вы можите в рамках одного State публиковать несколько разных собыйтий и они буду выполняться паралельно, плюсом masstransit поддерживает из коробки Schedule
Да, такие механизмы есть.
При оркестрации контекст FSM можно хранить, например в MongoDb (masstransit умеет так из коробки). Даже если сам оркестратор умрет, то можно будет продолжить с того места, откуда начали.
При хореографии можно надеятся только на стандартные иструменты с очередьми: DLQ, retry policy и т.п.
Во первых, обработчики compensation logic должны быть покрыты тестами и точно отрабатывать.
Во вторых должно быть настроенно retry policy, дабы цепочка не нарушилась из-за кривого подключения к базе и т.п.
В третьих, недошедшие сообщения должны храниться в DLQ и в первую очередь обработаны.
Если есть вероятность что обработчики compensation logic будут переодически отрабатывать с исключениями, то можно сделать один ивент компенсации на всю транзакцию и настроить на него retry policy.
Это безумее для Российского рынка, если вы маленькая компания. Стоит учитывать, что разработчик MT орентируется на рынок США и европы. Для среднего (тем более большего) бизнеса в США эта цена не такая уж и большая.
Как пример, Gitlab Premium берет 29$ за пользователя. Команда из 30 человек заплатит 870$ в месяц
Думаю, что вы правы. Очень вероятно появление более или менее популярного форка MT V8 в течении года
Как я понимаю eсли контейнеры работают на Windows Server (той же версии, что и хост), они не требуют дополнительных лицензий. Исключением может быть Hyper-V т.к. он более изолированный контейнер (грубо почти виртуалка) или если вы попробуете запустить в 2022 сервере контейнер с 2019
Это действительно отличный вариант, если команда состоит в основном из разработчиков. Если в команде есть devops инженер, то ему явно в разы проще будет поддерживать и писать новые dockerfile т.к. он уже работал с ними
Думал о написани статьи про Saga State Maсhine т.к. уже работаю с ней на проде. По вашему комментарию вижу что тема действительно актульная
Не очень понял первый вопрос. Если вы имеете ввиду юридическую сторону, то лецензии в контейнере, скорее всего, будут теже что и у системы, которая используется за основу. Например, Alpine Linux распространяется по лецензии MIT (на основе этого дистрибутива базируются большая часть контейнеров). Проще всего будет зайти на официаьный сайт и посмотреть там https://mcr.microsoft.com/en-us/artifact/mar/dotnet/aspnet/about, тут видно, что у linux контейнера лецензия MIT. Если говорить о лецензии на windows контейнере, то тут скорее всего будет MICROSOFT SOFTWARE LICENSE TERMS.
Насчет контейнеров. Я бы не рекомендовал использовать windows контейнеры впринципе. По большей части компании используют linux на своих сервер и, тем более, вы скорее столкнетесь с iis на windows серверах чем с docker. Даже если вы используете windows, то можно рассмотреть вариант с WSL.
Насчет прав в контейнере. Возможно тут просто системы по разному монтируют volume. Если проблема происходит после перезапуска сервера, то проблема может быть связанна с Hyper-V (если используется) так как файлы монтируются через виртуальный слой. Вы можите попробовать явное указание владельца Volume при монтировании или изменить права на нужную директорию непосредственно внутри Dockerfile
В случае ручного тестирования можно пользоваться swagger, при автотестах использую postman или, например, python. Это все делают QA-инженеры.
Backend разработчики обычно пишут Unit тест на свой код, возможно я еще напишу статью об этом, пока можете посмотреть в сторону вот этого шаблона для NUnit https://github.com/Pepegov/Template.Net.NUnit. Тут используются библиотеки NSubstitute, AutoFixture и Bogus
В xfce4-terminal, который устанавливается по гайду, имеет изначально возможность скрола. Чтобы настроить его отображение: нажмите ПКМ по окну терминала > Preferences... > General и ищите Scrolling.
Пост писался как поэтапная инструкция. У меня до сих пор есть 3 виртуальные машины созданные по этому гайду для проверки. Так что на сегодняшний момент все должно заработать. В первоисточниках ещё больше проблем (устаревшей, лишней информации).
Будьте добры, подробнее напишите что Вы имели ввиду под: "обзорно расписать принципы и взаимосвязи всего этого безобразия", желательно в личные сообщения, чтобы я мог понять свои неточности.
Полностью согласен. Я написал в статье о возможности эксплоита в незашифрованный загрузочный раздел. Такое решение, скорее, спасает от людей не имеющих знания в этой области, но получивших доступ, например, к твоему ноутбуку. Познания TMP и SecureBoot у меня нет, если заинтересуюсь, напишу продолжение этой статьи с использованием этих технологий.
Насчет отсутствия mbr и legacy boot в некоторых системах, согласен. В данном случае мне стоило добавить, что в целях безопасности некоторые люди используют coreboot.
Насчет отсутствия systemd. Если ты сознательно не используешь systemd, то ты готов решать проблемы несовместимости. Во многом это имхо о "не безопасной системе инициализации".