Laden...

Migration / neu Implementierung in die Cloud

Erstellt von Pioneer17 vor 10 Jahren Letzter Beitrag vor 10 Jahren 2.168 Views
P
Pioneer17 Themenstarter:in
148 Beiträge seit 2007
vor 10 Jahren
Migration / neu Implementierung in die Cloud

Hallo zusammen,

bei einer Verständnisfrage bräuchte ich eure Hilfe / Erfahrungen.

Zur Zeit habe ich eine Windows Applikation welche die folgenden Aufgaben übernimmt:
Im Grundsatz ist es ein Watchdogprogramm welches div. Stati auf verschiedenen Servern / PC's kontrolliert und ggf. Alarmmeldungen ausführt o.ä. Diese Applikation besteht aus mehreren Programmen:

  • Windows Dienst (installiert auf einem zentralem Server): Ist die Hauptschaltzentrale und wertet div. Informationen aus, die von den einzelnen Clients geschickt werden (CPU Load, Prozess x gestartet / gestoppt, SNMP Anfragen etc.)
  • Agent Applikation / Dienst: Dieser bekommt die Aufgaben vom Hauptdienst zugewiesen und überwacht die nötigen Kriterien auf diesem Client und schickt die Statusmeldungen zurück an den Hauptdienst.
  • Alarmclient: Dieser ist ein einfacher Anzeigeclient auf Basis einer Tabelle, welche die aktuellen Stati darstellt (ist ein Alam anstehend, wurde er bestätigt, von wem etc.)
  • Konfigurationsoberfläche: In dieser werden die Aufgaben definiert und dann in eine Konfigurationsdatei geschrieben, welche der Hauptdienst beim starten einliesst und dann diese Arbeiten übernimmt.

Nun zu Frage:
Ich habe vor diesen Hauptdienst in eine Cloud zu verlegen. D.h. dieser Hauptdienst soll nicht mehr lokal auf einem Server laufen, sondern in einer Cloud wie z.B. Windows Azure.
Wie wir das am besten angegangen? Ein Webservice kann es ja nicht sein, da dieser nicht immer läuft, oder? Ein Webservice nimmt Befehle entgegen und macht damit etwas.
Mein Hauptdienst macht aber mehr als nur Daten entgegennehmen. Er prüft ob die Clients verfügbar sind etc.
Aus meiner Sicht wäre ein Windows Azure Cloud-Dienst das richtige. ist das so, oder gibt es ggf. Alternativen?
Kann mir jemand Grob die unterschiede zwischen Webservice und einem Windows Azure Cloud Dienst sagen.
Gibt es überhaupt alternativen zu dem Azure Cloud Dienst?

Ich hoffe ich konnte einigermassen beschreiben was ich suche und von euch wissen will 😉

16.807 Beiträge seit 2008
vor 10 Jahren

Deine Architektur find ich so nicht so dolle.
Woher soll der Server wissen, mit wem er sich verbinden soll?

Besser ist es doch, dass die Clients eine bi-direktionale Verbindung zum Server aufbauen und sich so gegenseitig Nachrichten (mit Aufgaben) zukommen lassen.
Dass ein Server die Clients sucht; das ist eigentlich nicht seine Aufgabe.

Dahingehend kannst Du dann mit einer Webanwendung oder einem Webservice sehr gut auskommen.
Agents verbinden sich normalerweise auch in einer internen Lösung zum Server und nicht umgekehrt.

Dass sich die Server-Anwendung die Clients merkt; keine Frage.
Du kannst einen Azure Worker als Schedule Task verwenden, sodass dieser regelmäßig Funktionen der Anwendung aufruft, zB um Clients anzupollen, die sich ein paar Stunden / Tage nicht mehr gemeldet haben.
Wenn Du sicher stellen kannst, dass sich die Anwendung nicht in den SleepMode setzt (weiß grad gar nicht, ob das auf Azure passiert), kannst Du auch Quartz.NET als Scheduler verwenden (ist auch flexibler als eine Worker Role).

Eine Worker Role kannst Du auch dazu verwenden, dass die gewisse Aufgaben übernimmt. Zum Beispiel Last-hungrige Kompressionsanfragen für Bilder und Co.
Webanwendungen selbst laufen dann unter Web Roles (mit IIS, Worker ohne IIS).

Cloud Dienste sind in den meisten Fällen irgendwelche APIs, die Du von außen Aufrufen kannst. Banales Beispiel BING Maps Api. Oder Ausführungen von last-intensiven Dingen in verteilten Umgebungen (dann unter Worker Roles).

Ich weiß nicht, ob das so noch 100% alles stimmt oder ob sich was geändert hat; hab mit Azure lange nichts mehr gemacht.
Leg meine Hand nich ins Feuer 😉

P
Pioneer17 Themenstarter:in
148 Beiträge seit 2007
vor 10 Jahren

Hallo Abt,

danke erst mal für die rasche Antwort.
Dass es unüblich ist, dass sich der Server zu den Clients verbindet ist mir bewusst, wurde aber dann zu mal bewusst so gemcht, weil ich den Konfigurationsaufwand am Client so gering wie möglich halten wollte (der User soll keine IP eintragen müssen).

Wenn das Ganze nun in die Cloud verschoben wird, gebe ich dir absolut recht, dass ich das dann "Regelkomform" machen werden und sich die Clients zum Server verbinden.

Kennt jemand von euch evtl. einen Entwickler welcher mit Windows Azure Erfahung hat?
Oder noch besser ein Portal wo man solche Aufträge einstellen kann, denn ich habe eigentlich nicht vor diese Mutation / Neuentwicklung selber zu machen, sondern eher jemandem abgeben, der sich damit auskennt - gegen Bezahlung natürlich 😉

16.807 Beiträge seit 2008
vor 10 Jahren

Du wirst ein Problem haben, das Du nicht so einfach lösen kannst: wie soll der Server die Clients finden?
Wenn Du die Frage beantwortet hast, dann kannst Du Dir Gedanken machen, welche Variante Du wählst.

Weil dynamisch die Clients finden: keine Chance.
Zudem wirst Du Firewall-Löcher bohren müssen, worüber Sicherheitsleute nicht gerade begeistert sind.

Abhandeln selbst kannst Du die Anfragen ober Worker Prozesse. Azure ist keine Hexerei.

P
Pioneer17 Themenstarter:in
148 Beiträge seit 2007
vor 10 Jahren

Wie gesagt, beim Umbau in die Cloud werden sich die Clients zu dem Server verbinden, nicht mehr wie bisher der Server zu den Clients.

Evtl. hast du sogar recht und ich könnte das tatsächlich selber, nur möchte ich das gar nicht mehr, sondern eben als Auftrag extern geben.

16.807 Beiträge seit 2008
vor 10 Jahren