Was wünscht ihr euch von einem Django Webspace Anbieter

Django, Flask, Bottle, WSGI, CGI…
Antworten
djonny
User
Beiträge: 15
Registriert: Mittwoch 15. Juli 2009, 10:40

Hallo,

ich bin gerade dabei eine bisschen zu Recherchieren was sich Webprogrammierer von einem Django Webspace Anbieter erwarten bzw. wünschen?

Natürlich kommt das immer auf die Bedürfnisse an, allerdings müssten sich ja ein paar Sachen verallgemeinern lassen.

zB.
Welchen Webserver? Apache, lighttpd, nginx?
Welche DB? MySQL, Postgre, CouchDB, SQLite,... (benötigt ihr dafür auch tools ala phpMyAdmin?)
welche Serveranbingung? mod_wsgi, fcgi,...
Zugesicherter Ram?
....


Danke
Jonny
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Alles eine Frage des Preises...

Was auf jeden Fall ein muß ist, damit man überhaupt was mit dem WebSpace anfangen kann:

* Python => 2.5
* SSH Zugang
* MySQL + MySQLdb (phpMyAdmin wäre hilfreich)
* Apache mit mod_rewrite + fast_CGI

siehe auch: http://wiki.python.de/Python%20Webspace

Ein global installiertes Django muß es in zeiten von virtualenv nicht unbedingt sein. Aber ein paar zusätzliche python module, wären sicherlich nett, wie z.B. PIL

Was RAM/CPU Anbelangt, kann ich keine konkreten Zahlen nennen. Es sollte halt reichen, damit es nicht all zu langsam ist ;)
Eine Limitierung der prozesse/threads sollte auch nicht all zu stark sein.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
/me
User
Beiträge: 3552
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

jens hat geschrieben:* Python => 2.5
Besser wäre natürlich >= 2.6.
jens hat geschrieben:Ein global installiertes Django muß es in zeiten von virtualenv nicht unbedingt sein. Aber ein paar zusätzliche python module, wären sicherlich nett, wie z.B. PIL
lxml sollte man auf jeden Fall auch dazu packen.
lunar

@djonny: Ich würde mir eine eigenes virtualenv für jede Django-Instanz wünschen, in welches man bequem weitere Module aus dem Cheeseshop nachinstallieren kann (entweder per Shell und "pip install", oder noch schöner über eine Administrationsoberfläche). Wichtige Erweiterungsmodule, sprich das, was kompiliert werden muss, sollten eventuell vorinstalliert sein (e.g. numpy, pil, lxml, Datenbankadapter).

Welcher Webserver und welche Serveranbindung läuft, ist mir dagegen total egal. Einen dedizierten Django-Hoster nehme ich gerade deswegen, weil ich mich darum nicht kümmern möchte. Ansonsten könnte ich Django auch ja auch einfach auf einem normalen Hoster betreiben, und alles selbst einrichten.
djonny
User
Beiträge: 15
Registriert: Mittwoch 15. Juli 2009, 10:40

Danke für die zahlreichen Antworten.

Jedoch bleibt noch offen welche DB ihr euch wünscht?

@lunar das mit einer virtualenv hätte ich mir auch gedacht damit so jeder seine eigene Django Version installieren kann.
Shell zugriff ist auch klar nur kann man dies nur über eine chrooted shell machen da sonst das Sicherheitsrisiko zu hoch ist.
Das selbe gilt auch für pip install dies wird nicht so einfach möglich sein da man dadurch sicher einige Sicherheitrelevante Tools installieren kann.
Was ich mir allerdings vorstellen kann über eine Admin Panel einfach die wichtigsten nach zu installieren bzw. weitere Module auf Anfrage.

Das mit der Python Version wäre so gedacht das man sich auswählen kann zwischen versch. Versionen als 2.5, 2.6, 2.7

@jens
hättest du gerne Python und PHP auf einem Server? damit du hybrid fahren kannst? oder wieso benötigst du mod_rewrite?
Das Wiki habe ich mir schon durchgelesen allerdings frage ich deshalb auch was ihr bevorzugt.

Danke
Jonny
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

djonny hat geschrieben:Das mit der Python Version wäre so gedacht das man sich auswählen kann zwischen versch. Versionen als 2.5, 2.6, 2.7
Das wäre für mich jetzt kein großer Pluspunkt. Warum dann nicht einfach 2.7 und gut? Wenn verschiedene Versionen, dann wäre wohl 2.x und 3.x interessant.
djonny hat geschrieben:@jens
hättest du gerne Python und PHP auf einem Server? damit du hybrid fahren kannst? oder wieso benötigst du mod_rewrite?
PHP brauche ich nicht selber. Aber ein aktuelles phpMyAdmin wäre gut, wenn es MySQL gibt.

Der interessante Part wäre zu wissen, wie man Django an Apache bekommt. Der offizielle Vorschlag wäre ja mod_wsgi: https://docs.djangoproject.com/en/1.3/h ... t/modwsgi/
Aber dabei braucht man zugriff auf die httpd.conf, das dürfte bei SharedWebhosting nicht gehen.

mod_rewrite nutzte ich auch mit Python: https://github.com/jedie/PyLucid/blob/m ... t.htaccess
Damit kann ich fastCGI nutzten, ohne Zugriff auf httpd.conf.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
djonny
User
Beiträge: 15
Registriert: Mittwoch 15. Juli 2009, 10:40

Also bezüglich Django mit Apache + mod_wsgi.

Ich hätte mir eigentlich als Server Apache + mod_wsgi vorgestellt.
und da könnte man für jeden Kunden eine eigene conf Datei erstellen wo sein Pfad zur wsgi steht.

Verwende dies jetzt genauso auf unserer Shared Hosting Umgebung mit ispCP als Controlpanel.
mod_rewrite ist natürlich kein Problem einzubinden.
lunar

@djonny: „Sicherheitsrelevante Tools“?! Was glaubst Du zu erreichen, indem Du "pip install" nicht ermöglichst? Der Kunde kann innerhalb seiner Anwendung sowieso beliebigen Python-Quelltext ausführen, und die „sicherheitsrelevanten Tools“ (was immer Du Dir darunter vorstellst) somit auch einfach in die eigene Anwendung kopieren, anstatt sie mit "pip install" zu installieren. Das funktioniert letztlich sogar für native Erweiterungsmodule, da Du den Kunden nicht daran hindern kannst, die Serverkonfiguration und die installierte Python-Version auf dem eigenen System nachzustellen, in dieser Umgebung dann native Module zu übersetzen und diese schlussendlich auf den Server zu kopieren. Falls Du die Installation eigener Django-Versionen erlaubst, kann der Kunde die Enschränkung über Abhängigkeiten in "setup.py" sowieso umgehen.

Verhindern kannst Du das eigentlich nur durch einen Review-Prozess, indem die Anwendung des Kunden vorher geprüft wird, mit entsprechendem Zeit- und Kostenaufwand.

@jens: Der Kunde benötigt keinen Zugriff auf die Serverkonfiguration. Beim Anlegen des Kundenkontos, oder beim Anlegen der Django-Applikation im "virtualenv" kann man automatisiert eine normale mod_wsgi-Server-Konfiguration für den Kunden erstellen. Der Kunde muss dann lediglich das WSGI-Skript an bestimmter Stelle ablegen. Hostet man wirklich nur Django, kann man sogar das Verzeichnislayout fest vorgeben, so dass der Kunde aus der Django-Anwendung gar nichts mehr konfigurieren oder an bestimmte Stelle kopieren muss.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Das für mich wichtigste Kriterium wäre, dass ich eine Anwendung mit einem Befehl (re)deployen kann, ähnlich wie Heroku es über Rack-basierte Ruby-Webanwendungen und einige andere Sprachen bietet. Ich möchte also eine "IaaS" - Infrastructure as a Service, bei der sich der Anbieter um deren Betrieb kümmert.

Idealerweise stellt mir der Dienstleister auch ein Script (für meine Plattform, was ein Mac wäre) zur Verfügung, mit dem ich lokal die selbe Umgebung zu Testzwecken betreiben kann oder aber die Infrastruktur ist ähnlich genug zu der Standard-Entwicklungsumgebung, sodass es hier keine Überraschungen beim Deployment gibt.

Da die wenigsten Webanwendungen ohne DB auskommen, gehört für mich auch eine Datenbank-Lösung dazu. Bei Heroku hat man automatisch eine Postgres-Instanz, was nett gemeint ist, aber manchmal ein schlechter Default ist, da viele Rails-Projekte mit sqlite oder mysql starten und dann spezielle Funktionen dieser DBs nutzen. Somit würde ich es begrüßen, wenn z.B. sqlite als kleinster gemeinsamer Nenner ginge, ohne jetzt diskutieren zu wollen, ob das denn eine "richtige" DB ist oder nicht. Für viele Projekte (die nicht gerade das nächste Twitter oder Facebook bauen wollen) ist das Ding absolut ausreichend.

Da es bereits Anbieter gibt, die speziell No-SQL-DBs für mich im Netz betreiben, wäre hier eine automatische Anbindung nett, vielleicht eine Partnerschaft, sodass ich nicht mit zwei Firmen Verträge schließen muss.

Mir scheint z.B. MongoLab ein interessantes Angebot zu sein. In den USA ist alles alles, da wird auf AWS gehostet und wenn zwei Anbieter die selbe Zone wählen, lässt sich das prima kombinieren. In diesem Fall würde ich mir dann wünschen, das natürlich auch der IaaS-Anbieter Amazon wählt.

In Deutschland ist das leider aufgrund der Datenschutz-Gesetze alles komplizierter und je nach Rechtsauffassung kann selbst die Amazon-EU-Zone nicht ausreichend sein. Somit sind das leider alles keine Lösungen für Deutschland und ich würde sehr begrüßen, ähnlich unkomplizierte Angebote von deutschen Firmen zu bekommen. Idealerweise natürlich kompatibel zu Amazons API, damit man das immer größer werdende Angebot an Tools nutzen kann und das Anbieter wie Heroku oder MongoLab letztlich dann auch auf so einer Cloud ihre Dienste anbieten könnten, ohne viel umschreiben zu müssen.

Stefan
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

uWSGI, NginX mit mod-uwsgi, Python 2.7, SQLite, PostgreSQL. MySQL ist Müll. MongoDB wäre natürlich auch noch genial, kann aber aber nicht wirklich erwarten ;-)
djonny
User
Beiträge: 15
Registriert: Mittwoch 15. Juli 2009, 10:40

Danke für die vielen Antworten.

Werde mir das ganze mal durch den Kopf gehen lassen.
Der Vorschlag von sma ist natürlich nicht schlecht allerdings bedeutet das auch einen größeren Programmieraufwand, den man erst wieder einmal "reinbringen" muss.

Ich werd mir mal ein Konzept erstellen und melde mich dann bei euch wieder.

@lunar
Ja das mit den "Sicherheitsrelevanten Tools" da hast du wohl recht, war ein Denkfehler meinerseits...
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

sma hat geschrieben:Das für mich wichtigste Kriterium wäre, dass ich eine Anwendung mit einem Befehl (re)deployen kann, ähnlich wie Heroku es über Rack-basierte Ruby-Webanwendungen und einige andere Sprachen bietet. Ich möchte also eine "IaaS" - Infrastructure as a Service, bei der sich der Anbieter um deren Betrieb kümmert.
Um erlich zu sein? This! Habe beim besten Willen keine Lust mehr mich auf irgendwelche obskuren Server anzumelden und die Config per Hand zu erledigen. Am liebsten wenn der Betreiber meinen Code gleich aus einem Git(Hub)-Repository pullt und deployed. An dieser Stelle ist es mir dann auch völlig egal was für ein Webserver das ist und wie der angebunden ist. Mir ist es eigentlich sogar lieber wenn der Betreiber das entscheidet. Ob er jetzt uWSGI nutzt, Gunicorn, Gevent, nginx, mod_wsgi oder gar FastCGI ist mir schnuppe, sofern die Performance stimmt.

Datenbank sollte dann Postgres sein und zusätzlich irgendwas NoSQL-mäßiges (vielleicht sogar mehrere Sachen wie MongoDB und Redis). Aber das versteht sich eigentlich von selbst. Und ich brauche weder PHP-Support noch sonstigen Krams.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Heroku hat übrigens inzwischen Python Unterstützung.
krk485
User
Beiträge: 4
Registriert: Dienstag 14. September 2010, 10:59

Leonidas hat geschrieben:Habe beim besten Willen keine Lust mehr mich auf irgendwelche obskuren Server anzumelden und die Config per Hand zu erledigen. Am liebsten wenn der Betreiber meinen Code gleich aus einem Git(Hub)-Repository pullt und deployed.
+1

Ich will meine geringe Freizeit schließlich Nutzen um Software zu entwickeln, nicht um Server zu konfigurieren.
Benutzeravatar
daemonTutorials
User
Beiträge: 171
Registriert: Sonntag 6. Februar 2011, 12:06
Kontaktdaten:

http://aditsystems.de

Tolle server und vor allem billig und mit Django-Unterstützung.

Maik
LG Maik
Antworten