Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

Was ca kostet das Hosten eines kleinen Worker Services auf Azure?
CoderboyPB
myCSharp.de - Member



Dabei seit:
Beiträge: 291
Herkunft: Paderborn

Themenstarter:

Was ca kostet das Hosten eines kleinen Worker Services auf Azure?

beantworten | zitieren | melden

Hallo, ich plane meinen selbstgeschriebenen Twitter Bot als Worker Service auf Azure zu hosten, allerdings habe ich keine Ahnung, welche Kategorie das ist, finde deshalb im Pricing Calculator keine Antwort auf folgende Frage:

Was kostet (ungefähr, nur die grobe Größenordnung) das hosten eines sehr simplen kleinen Worker Services auf Azure?
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15702
Herkunft: BW

beantworten | zitieren | melden

Die Bezeichnung Worker Service gibt es so nicht; was Du hast ist im Endeffekt eine Konsolenanwendung, die dauerhaft läuft.
Diese kannst Du aber in der Form nicht 1:1 in Azure hosten; jedenfalls nicht direkt (sondern dann über eine VM).

Die "Lift and Shift" Alternative ist ein Azure Web Job; hier kannst Du langlaufende Konsolen-Anwendungen starten lassen und mit bisschen Glue-Code klappt das auch mit normalen Konsolenanwendungen.
Oder aber Du packst das alles in einen Docker-Container, brauchst dann eine Web App mit Container Support und lässt das damit laufen (ab 8€).
Beide Dinge hat aber den Nachteil, dass Du Resourcen dauerhaft buchen musst, auch wenn Du sie nicht benötigst (weil zB. Deine App gerade im Idle ist, weil sie nichts tweeten muss).
Damit bezahlst Du entsprechend unnötig Zeugs und bist (im Vergleich) teurer unterwegs.

Auf einer Cloud-Plattform würde man das ganz anders programmieren, um Resourcen-schonend und damit auch extrem billig sowas laufen lassen zu können; zwei einfache Dinge.
- Du verwendest eine Azure Logic App und baust Dir Dein Twitter Bot. Es gibt hier vorgefertigte Bausteine (zB. "auf Schlagwort hören" und "Tweet absenden"). Kannst also Dein Bot zusammen stecken. Beispiel: https://www.rubberduckdev.com/twitter-bot/
- Du verwendest eine Azure Function, die einen Trigger verwendet um auf Twitter-Wörter zu hören, sodass Dein Code nur ausgeführt wird, wenn er gebraucht wird.
Beides ist die absolut kostengünstigste Art und Weise so einen Bot umzusetzen.
Das kann sogar so günstig sein, dass es kostenlos ist, weil Du jeden Monaten hier ein Kontingent an freien Ressourcen hast (bei Functions zB. 1 Million Ausführungen pro Monat sind immer kostenlos).
In beiden Fällen erfolgt das Pricing immer nur nach den Ressourcen, die Du tatsächlich brauchst -> damit billig.
private Nachricht | Beiträge des Benutzers
CoderboyPB
myCSharp.de - Member



Dabei seit:
Beiträge: 291
Herkunft: Paderborn

Themenstarter:

beantworten | zitieren | melden

Danke :-)

Mal ne kurze andere Frage, wenn ich das local als Widows Dienst betreibe, läuft dieser im STANDBY (nicht Ruhezustand) weiter?
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15702
Herkunft: BW

beantworten | zitieren | melden

Standby ist der englische Begriff für den Ruhezustand.
Wäre mir neu, dass das unterschiedliche Dinge wären - und natürlich ist da alles aus.
private Nachricht | Beiträge des Benutzers
CoderboyPB
myCSharp.de - Member



Dabei seit:
Beiträge: 291
Herkunft: Paderborn

Themenstarter:

beantworten | zitieren | melden

Standby nicht Hibernate
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15702
Herkunft: BW

beantworten | zitieren | melden

Ah..jetz. Richtig. Aber in beiden Fällen is doch das System aus.
Der Unterschied war doch nur, dass Standby das System im RAM schlafen legt und Hibernate das System auf die Disk.
Aber aus ist aus.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15702
Herkunft: BW

beantworten | zitieren | melden

Da nun nach dem Thread Windows Dienst stoppt nach erster Ausführung klar ist was ein Worker ist (nämlich eine stink normale Hosting Pipeline; das Wort "Worker" ist hier selbst kriiert) kann man auch sachlich drauf antworten.

Du willst eigentlich gar kein Windows Service / "Worker" Service hosten, sondern Du willst nen .NET Background Service hosten.
Dazu kannst Du einfach eine ASP.NET Core Anwendung verwenden, die dann als WebApp läuft.
Darin musst Du einfach nur den Background Service in ASP.NET Core registrieren.

In den Azure Configs musst Du dann nur einstellen, dass die Anwendung dauerhaft laufen soll und nicht erst mit dem ersten Request (Always On).
Günstigste Variante ist hier 8€, weil Du in der Free Variante nur 60 Min free compute hast.


Bessere Variante:
einfach ne Azure Function nehmen, die alle X Minuten automatisch gestartet wird (kann man via Trigger angeben), die Deine Bot.Run() Methode ausführt. Den restlichen Code brauchst Du gar nicht.

[FunctionName("TwitterBot")] // alle 5 Minuten
public static async Task Run([TimerTrigger("0 */5 * * * *")]TimerInfo myTimer, ILogger log)
{
      await Bot.Run();
}

Wenn ein Monat 43.200 Minuten hat und die Function alle 5 Min gestartet wird, dann sind das 8640 Ausführungen.
Damit dürfte das ganze kostenlos zu hosten sein.

PS: keine Ahnung, wieso für Deine ganzen Themen immer im Smalltalk-Bereich erstellst und wir die Themen dann verschieben müssen.
Nimm doch einfach den richtigen Forenbereich, danke ;-)
private Nachricht | Beiträge des Benutzers
CoderboyPB
myCSharp.de - Member



Dabei seit:
Beiträge: 291
Herkunft: Paderborn

Themenstarter:

beantworten | zitieren | melden

zum Thema 'Worker Service', das ist keine Wortschöpfung von mir:
https://www.stevejgordon.co.uk/what-are-dotnet-worker-services

Was die falschen Forenbereiche angeht, es ist ja nicht so, dass ich nicht vorher schaue, aber es ist wie so oft, auch bei Support Hotlines, dass man wie so oft nicht weiß, wo man sein Thema nun einordnen soll, aber klar, versuche ich es wenigstens.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von CoderboyPB am .
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15702
Herkunft: BW

beantworten | zitieren | melden

Ja, Worker Service ist aber kein Produkt, sondern ein Teil von ASP.NET.
Dahingehend hättest Du durchaus sagen können, von was Du wirklich sprichst - das hätte es einfacher gemacht ;-)

Da hätte ich direkt sagen können, dass Du das gar nicht brauchst, um periodisch Dinge auf Azure auszuführen (siehe mein letzter Beitrag).
private Nachricht | Beiträge des Benutzers
CoderboyPB
myCSharp.de - Member



Dabei seit:
Beiträge: 291
Herkunft: Paderborn

Themenstarter:

beantworten | zitieren | melden

Das Thema Azure hat sich erledigt, der Twitterkollege wird das jetzt als Dienst auf seinem Rechner hosten, ich habe ihn über die Einschränkungen aufgeklärt, es ist OK für ihn.
private Nachricht | Beiträge des Benutzers