Azure Worker Role to AWS
От: Jericho113 Украина  
Дата: 16.10.19 14:33
Оценка:
День добрый,

Мигрируем большой проект из Azure в AWS.
Проект на .NET FW 4.7 (full)+ ASP.NET

В Azure использовали WorkerRole для того что бы код крутился постоянно в памяти и реагировал на входящие сообщения или же по таймеру выполнял некоторые предопределенные задачи.
Как с этим в AWS? Как сделать так что бы процесс постоянно сидел в памяти и ждал определенного внешнего события и выполнял соотвецтвенно некоторые действия или же просто висел в памяти и по таймеру выполнял какие либо действия (не суть важно что). Да и нужно что бы в случае крэша процесса он автоматом переподнимался

Сори за некоторую сумбурность изложенного.
NetDigitally yours ....
aws worker
Re: Azure Worker Role to AWS
От: Ночной Смотрящий Россия  
Дата: 16.10.19 19:00
Оценка:
Здравствуйте, Jericho113, Вы писали:

J>В Azure использовали WorkerRole для того что бы код крутился постоянно в памяти и реагировал на входящие сообщения или же по таймеру выполнял некоторые предопределенные задачи.


Это из Cloud Services что ли? Тут не такой уж простой вопрос. Посмотри на AWS Batch.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[2]: Azure Worker Role to AWS
От: Jericho113 Украина  
Дата: 18.10.19 11:10
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

J>>В Azure использовали WorkerRole ...

НС>Это из Cloud Services что ли? Тут не такой уж простой вопрос. Посмотри на AWS Batch.

Посмотрел.. хм это вобщем то для того что бы большие запросы на обработку объединять в некоторые группы и их одновременно выполнять.. не уверен что это подходит..

В Azure, апликуха которая крутилась в WorkerRole скорее была похожа на классический Windows Service — т.е. крутится в памяти апликуха без UI постоянно, реагируюя на врходящие сообщения в message queue и/или проверяет БД на наличие новых записей (это тоже своего рода очередь задач просто кладутся они в базу) и что то с ними делает — вызывает внешние сервисы или пишет в другую БД и т.п.
NetDigitally yours ....
aws worer
Re: Azure Worker Role to AWS
От: ltc  
Дата: 18.10.19 11:48
Оценка:
Здравствуйте, Jericho113, Вы писали:

J>В Azure использовали WorkerRole для того что бы код крутился постоянно в памяти и реагировал на входящие сообщения или же по таймеру выполнял некоторые предопределенные задачи.

J>Как с этим в AWS? Как сделать так что бы процесс постоянно сидел в памяти и ждал определенного внешнего события и выполнял соотвецтвенно некоторые действия или же просто висел в памяти и по таймеру выполнял какие либо действия (не суть важно что). Да и нужно что бы в случае крэша процесса он автоматом переподнимался

WorkerRole это же легаси практически уже. Почему Azure Functions/AWS Lambda не подходят?
Re: Azure Worker Role to AWS
От: Grelkin  
Дата: 21.10.19 06:27
Оценка: 1 (1)
Здравствуйте, Jericho113, Вы писали:

J>День добрый,


J>Мигрируем большой проект из Azure в AWS.

J>Проект на .NET FW 4.7 (full)+ ASP.NET

J>В Azure использовали WorkerRole для того что бы код крутился постоянно в памяти и реагировал на входящие сообщения или же по таймеру выполнял некоторые предопределенные задачи.

J>Как с этим в AWS? Как сделать так что бы процесс постоянно сидел в памяти и ждал определенного внешнего события и выполнял соотвецтвенно некоторые действия или же просто висел в памяти и по таймеру выполнял какие либо действия (не суть важно что). Да и нужно что бы в случае крэша процесса он автоматом переподнимался

J>Сори за некоторую сумбурность изложенного.


Для того, чтобы "код реагировал на входящие сообщения или же по таймеру выполнял некоторые предопределенные задачи" можно воспользоваться связкой AWS::Events::Rule + AWS::SQS::Queue + Lambda, или Events::Rule + SQS + ECS.

Events::Rule позволяет отсылать сообщение в SQS по таймеру, см ScheduleExpression, например "cron(15 10 ? * 6L 2019-2022)" или "rate(1 hour)". Далее, в случае Lambda, AWS::Lambda::EventSourceMapping вызовет код Lambda для сообщения. Понятно, что в очередь сообщение можно отправить и другими способами, чтобы "код реагировал на входящие сообщения".

В случае ECS достаточно, чтобы сервис постоянно pull'ил сообщения из очереди.

Надо помнить, что Lambda имеет ограничение на время выполнения в 15 минут, что имеет cold start, а ECS — постоянно крутится и, как следствие, жрет деньги, хотя затраты можно существенно минимизировать использовав AWS::EC2::SpotFleet.
Re[2]: Azure Worker Role to AWS
От: Jericho113 Украина  
Дата: 22.10.19 09:57
Оценка:
Здравствуйте, ltc, Вы писали:

ltc>WorkerRole это же легаси практически уже. Почему Azure Functions/AWS Lambda не подходят?

Ну проекту уже лет 8 — крутился себе в WorkerRole и всех устраивало.
Вот встала задача в AWS мигрировать и поэтому спрашиваю совета. Про AWS Lambda сейчас читаю возможно это то что нужно..
Я когда пришел на проект то мне говорили что там полный Azure и ничего другого нет (я с этим облаком худо бедно еще справлюсь) а через месяц — "Все до НГ мигрируем в AWS!!!" и тут опаньки про AWS я знал только что он существует
NetDigitally yours ....
Re: Azure Worker Role to AWS
От: VladCore  
Дата: 24.10.19 18:44
Оценка:
Здравствуйте, Jericho113, Вы писали:

J>День добрый,


J>Мигрируем большой проект из Azure в AWS.

J>Проект на .NET FW 4.7 (full)+ ASP.NET

J>В Azure использовали WorkerRole для того что бы код крутился постоянно в памяти и реагировал на входящие сообщения или же по таймеру выполнял некоторые предопределенные задачи.

J>Как с этим в AWS? Как сделать так что бы процесс постоянно сидел в памяти и ждал определенного внешнего события и выполнял соотвецтвенно некоторые действия или же просто висел в памяти и по таймеру выполнял какие либо действия (не суть важно что). Да и нужно что бы в случае крэша процесса он автоматом переподнимался

J>Сори за некоторую сумбурность изложенного.


Раньше для этого был https://aws.amazon.com/ru/elasticbeanstalk/

если autoscale не нужен, то просто добавьте csproj с Windows Service службой. Лол. (вы же НЕ поднимаете web-приложение в WorkRole? лол)

сейчас может что то добавили, я давно с AWS не работал
Azure Worker Role to AWS
От: Jericho113 Украина  
Дата: 11.11.19 16:12
Оценка:
Здравствуйте, VladCore, Вы писали:


VC>Раньше для этого был https://aws.amazon.com/ru/elasticbeanstalk/

VC>если autoscale не нужен, то просто добавьте csproj с Windows Service службой. Лол. (вы же НЕ поднимаете web-приложение в WorkRole? лол)

Конечно мы веб апликуху в worker role не поднимаем это глупо.
WorkerRole работал как такой себе аналог вин сервиса в котором перемалывались данные полученные из Message Queue.
Т.е. как только в очереди сообщений появлялось новое сообщение сразу же оно направлялось на worker role хэндлер который уже в зависимости от сообщения делал что-либо.. (запускал свою цепочку действий проассоциированную с сообщением).
Хотелось бы отказаться от переписывания WorkerRole на WinService — вот думал может в AWS есть нечто подобное... ну что бы туда загрузить грубо говоря DLL и оно себе сидело и слушало очеердь..
NetDigitally yours ....
Отредактировано 11.11.2019 16:13 Jericho113 . Предыдущая версия .
azure aws workerole
Re: Azure Worker Role to AWS
От: VladCore  
Дата: 09.10.19 18:42
Оценка: 1 (1)
Здравствуйте, Jericho113, Вы писали:

VC>>Раньше для этого был https://aws.amazon.com/ru/elasticbeanstalk/

VC>>если autoscale не нужен, то просто добавьте csproj с Windows Service службой. Лол. (вы же НЕ поднимаете web-приложение в WorkRole? лол)

J>Конечно мы веб апликуху в worker role не поднимаем это глупо.

J>WorkerRole работал как такой себе аналог вин сервиса в котором перемалывались данные полученные из Message Queue.
J>Т.е. как только в очереди сообщений появлялось новое сообщение сразу же оно направлялось на worker role хэндлер который уже в зависимости от сообщения делал что-либо.. (запускал свою цепочку действий проассоциированную с сообщением).
J>Хотелось бы отказаться от переписывания WorkerRole на WinService — вот думал может в AWS есть нечто подобное... ну что бы туда загрузить грубо говоря DLL и оно себе сидело и слушало очеердь..

AWS Lambda. На dotnext было
https://www.youtube.com/watch?v=9Hx5n4ogZLs
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.