PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie werden Cloudapplikationen entwickelt?


Binaermensch
2011-05-28, 02:45:17
Hallo!

Mir ist klar wie "herkömmliche" Programme entwickelt werden. Man hat seine Entwicklungsumgebung, programmiert fröhlich vor sich hin, bastelt eine GUI, und wenn das Ding fertig ist vertreibt man es über das Internet.

Angenommen ich würde eine Cloud-Anwendung nach der Art von Google Docs und Konsorten als Bezahldienst anbieten wollen... Wie müsste ich das angehen?

1.)
Müsste ich wirklich alles händisch ausprogrammieren (Sessionmanagement, AJAX, HTML, CSS), oder gibt es da schon Entwicklungsumgebungen die einem da helfend unter die Arme greifen?

Also ich programmiere zB sowas:
if (user klickt auf inventar-anzeigen-button)
then ( hol dir über AJAX das Inventar vom Server
und verpacks' in ne schöne HTML Tabelle
mit sortierbaren Spalten...
und verwende das grüne template )
Und die Entwicklungsumgebung kümmert sich um den Code am Server, den JavaScript-Code am Client, HTML und CSS.
Geht das? Vielleicht verdrehe ich da jetzt irgendwas, aber ich glaube Ruby on Rails (http://en.wikipedia.org/wiki/Ruby_on_rails) verfolgte Ansätze die in diese Richtung gehen.


2.)
Wie sieht es mit Hosting aus? Gibt es Hoster die sich schon darauf spezialisiert haben?
Was ich mir vorstellen könnte, wäre dass Hoster (neben spezialisiertem Hosting) auch die Übernahme von bestimmten Aufgaben anbieten... Aufgaben die das Betreiben einer Cloudapplikation so mit sich bringen, auf die der Entwickler aber eher selten selbst bock hat.

Kundenverwaltung zB. Also im Bankkonto die Eingänge überprüfen, sie den Usern zuordnen, verifizieren, und dann den Account entsprechend updaten.
Es wäre enorm aufwendig wenn sich jeder selbst darum (evtl. händisch) kümmern müsste --> wenn diese Aufgaben (zB auf den Hoster) ausgelagert werden profitieren alle davon. Er kann sich darauf spezialisieren und den Prozess sicherer implementieren als jeder der Applikationsentwickler es könnte; und die Applikationsentwickler können sich auf das Weiterentwickeln ihers Produkts konzentrieren anstatt sich öden Routineaufgaben beschäftigen zu müssen.


-----

Ich hoffe meine Gedanken waren klar und verständlich formuliert. Dass das nicht unbedingt meine Stärke ist ist mir selbst bewusst. :-)

Danke für eure Antworten!
Binärmensch

Marscel
2011-05-28, 04:41:48
Müsste ich wirklich alles händisch ausprogrammieren (Sessionmanagement, AJAX, HTML, CSS), oder gibt es da schon Entwicklungsumgebungen die einem da helfend unter die Arme greifen?

Eigentlich musst du kaum mehr was wirklich selbst schreiben. Guck dir Ruby on Rails an. Grundgerüst da, dann gibts zigtausende Gems (http://rubygems.org/), für Datenbanken, für APIs von Dienstleistern, für Frontendsachen, für vorgefertigte Rechte und Rollensysteme, für spezielle Ausgabeformate, für Warteschlangen-Jobs, für so gut wie alles, was in einer Cloudumgebung auch nur irgendwie mal relevant werden könnte.

Frontendseitig gibt es da Produkte wie: jQuery, Sencha ExtJS, SASS, formtastic, HAML, CoffeeScript, Compass. Für Datenbanken neben SQL eben auch modischere Dinge wie MongoDB oder Redis. User und Rechtegems für Rails sind beispielsweise Devise und CanCan. Resque oder Rails-Scripts können getimt Aufgaben übernehmen, fog kann Clouds managen. Müsstest eigentlich konkret etwas brauchen, mit ziemlicher Sicherheit gibts da ein langerprobtes Ruby-Gem, github.com ist daneben die weitere große Anlaufstelle.

Wie sieht es mit Hosting aus? Gibt es Hoster die sich schon darauf spezialisiert haben?

Beliebt sind Amazon EC2, speziell für Rails: Heroku und Engine Yard und etliche weitere, auch Google hat da für Python irgendwas im Angebot. Das sind dann entweder Serverinstanzen, so groß und so viele du gerade brauchst oder Dienste, denen du deine App mit einem Konfigurationsskript gibt welches dann ausgerollt wird (was je nach Anwendung aber einmal geschrieben werden muss und aufwendiger sein kann).

Das mit "was der Hoster tun soll" musst du nochmal genauer sagen. Bei Amazon ist es beispielsweise so, dass du normal absolut gar nichts an irgendwelchen Services bekommst, das ist vollkommen dir überlassen, das zu regeln.

Aus eigener Erfahrung, manche Dinge müssen einmal irgendwann geschrieben werden, wie z.B. Deployment-Scripts, deine Paketabhängigkeiten, Konfigurationen und dann funktioniert beim nächsten Mal alles ohne weitere Aufwand, mit Rails auch sogar unter Windows.

Ich hab leider keine Cloud-HowTo Artikel parat, google einfach mal die Begriffe, die ich hier gepostet habe, vielleicht hilft das ja.