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
Was wünscht ihr euch von einem Django Webspace Anbieter
- 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.
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.
Besser wäre natürlich >= 2.6.jens hat geschrieben:* Python => 2.5
lxml sollte man auf jeden Fall auch dazu packen.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
@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.
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.
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
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
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
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: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
PHP brauche ich nicht selber. Aber ein aktuelles phpMyAdmin wäre gut, wenn es MySQL gibt.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?
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.
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.
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.
@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.
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.
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
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
-
- 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 ;-)
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...
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...
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.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.
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
+1Leonidas 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.
Ich will meine geringe Freizeit schließlich Nutzen um Software zu entwickeln, nicht um Server zu konfigurieren.
- daemonTutorials
- User
- Beiträge: 171
- Registriert: Sonntag 6. Februar 2011, 12:06
- Kontaktdaten:
LG Maik