Wie eine verteilte Anwendung in die Cloud?

Silver52

Mitglied
Hallo,

ich habe/will eine verteilte Anwendung entwickeln und diese in eine Cloud-Lösung deployen. Mein Problem ist, wie kann ich dieses machen bzw. welche Lösungen gibt es dafür?

Die Architektur der Anwendung stell ich mir wie folgt vor:
- ich habe eine Core-Anwendung die für die Businesslogik und Persistens da ist und Zugriffe über Webservices repräsentiert.
- Es gibt 2 Arten von Klient-Anwendung eine Webanwendung und eine Native Mobileanwendung.
- Die Kommunikation wird über Webservices realisiert.

Mit welchen Mitteln kann ich so eine Architektur skalierbar machen? Mir fehlt irgendwie ein Ansatz, wie ich das realisieren kann bzw. ich weiß nicht wie ich ein Loadbalancing dann implementiere bzw. wie stellt eine Cloud mir das zu Verfügung?
Oder ist mein Ansatz falsch?

Falls es interessante Bücher gibt, wäre ich auch über Büchertipps dankbar.

Vielen Dank im Voraus

Gruß Silver52
 
Zuletzt bearbeitet:
Wenn du Java EE entwickelst, dann müsstest du nur einen passenden Application Server wählen, der Clustering unterstützt. Grob gesagt 😉
 
Die Architektur mit "Ja, es gibt eben ein Server und ein Client" zu beschreiben reicht nicht ganz aus.
Da es im Moment völlig unbegründete und unnötige Cloudomania ansetzt, erstmal die Frage: willst du es haben, weil es cool ist, oder meinst du, dass die Anwendung wirklich ohne dessen nicht laufen kann? Durch unüberlegten Einsatz von Cloudcomputing kann es durch aus passieren, dass es kontraproduktiv wird.
Und zum Schluss dann noch eine Frage: was genau willst du denn verteilt machen?
 
Ich will eigentlich eine Cloud-Anwendung entwickeln, weil ich den Ansatz und das Prinzip verstehen will und eben später dann auch entscheiden kann, wo genau setzt ich dieses Konzept um und warum.
Ich bin mir sicher, dass die Anwendung die mir vorschwebt nicht unbedingt Cloudfähig sein muss, da es mehr oder weniger ein Testprojekt ist und höchst wahrscheinlich nicht die Userzahlen erreichen wird, dass mehre Server benötigt werden.
Die Sache mit dem Verteilt stelle ich mir so vor, dass ich theoretisch 3(Anzahl variable je nach last ) Server zu Verfügung habe die die Core-Anwendung betreibt, also hier soll dann die Businesslogik passieren und die Persistens sichergestellt werden. Die Anwendung soll aber über mehrere Kommunikationswege verfügbar sein, das heißt ich habe vielleicht 1 -2 Webserver die eine Webseite bereitstellt und mit der Core-Anwendung interagiert. Zusätzlich habe ich jetzt noch eine Vielzahl an Smartphones die ebenso die die Core-Anwendung nutzen um Informationen zu bekommen bzw. erstellen.
 
Naja, bleibt immer noch die Frage nach dem "was". Es ist ja nicht so, dass du HalloWelt-Programm schreibst und dann ZACK - ist es plötzlich skalierbar. Du musst wissen ob du die Berechnungen paralellisieren willst oder ob da verteilte Persistenz eingesetzt werden sollte oder was auch immer.
Du könntest dir z.B. Hadoop von Apache anschauen. Allerdings sollte dann auch deine Datenmenge stimmen - da könnte man bei einer Aufarbeitung von paar Hundert GB Daten evtl mal ggf unter Umständen darüber nachdenken. Aber Hadoop stellt auch ein verteiltes Dateisystem, sowie verteilte Datenbank zur verfügung.
Cloudera basiert auf Hadoop, stellt aber einige benutzerfreundliche und vor allem einsteigsfreundliche Sachen zur Verfügung.
Storm von Backtype soll wohl nächsten Monat als OpenSource die Welt erblicken. Laut der Beschreibung eignet es sich mehr für Echtzeitsachen als Hadoop. Dazu ist zu sagen, dass es nicht schwer ist, denn Hadoop eignet sich überhaupt nicht für Echtzeitberechnungen, weil allein schon das Verteilen der Tasks eine gewisse Zeit benötigt. (Wobei Facebook Das ist auch der Punkt, den ich vorhin meinte: unter Umständen ist (etwas übertrieben) das Overhead größer als der eigentliche Task. [gefährliches Hörensagen]Bei Storm laufen die Tasks wohl permanent und werden nur mit neuen Daten gefüttert [/gefährliches Hörensagen]
In dem Zusammenhang ist natürlich auch die seit kurzem negativ in News erscheinende Cloud von Amazon zu nennen.
... und je nach Einsatzzweck gibt es da auch noch 100 verschiedene andere Sachen...

Aber so wie du dein Vorhaben geschrieben hast, bist du bei der Cloud nicht gut aufgehoben. Schaue lieber in Richtung load balancing und nicht unbedingt Richung Cloud.
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben