IMG Geschrieben 23. Januar 2012 Teilen Geschrieben 23. Januar 2012 Hallo zusammen, ich bin ein bisschen Spät dran was meinen Projektantrag angeht. Ich muss diesen bis zum 31. in der IHK zu Schwerin abgeben. Ich habe mich nun hingesetzt und diesen ausformuliert und würde gerne eure Meinung dazu hören. Ich bedanke mich im Voraus für die Bewertungen. ________________________________________________________ Projektbezeichnung Externe Kontrolle von Cronjobs Kurze Projektbeschreibung In der Firma XYZ wird eine Cluster System betrieben. Dieses ist auf Hochverfügbarkeit ausgelegt. Damit dieses gewährleistet ist müssen auch Cronjobs doppelt ausgeführt werden. Einige Jobs dürfen aber nicht ausgeführt werden, während der gleiche von einem anderen System ausgeführt wird. Bei erhöhter Auslastung ist dieses nicht immer gewährleistet. Daher soll eine externe Überwachung stattfinden. Es soll eine Lösung gefunden werden um die doppelte Ausführung zu verhindern. Es soll dazu angegeben werden, wie lange ein Job maximal laufen soll, ist diese Zeit überschritten soll ein Administrator per E-Mail informiert werden. Eine Weboberfläche soll zur Kontrolle dienen. Diese benötigt keinen Login, da der Login mittels HTTP Authentifizierung realisiert wird. Projektumfeld Die Firma XYZ ist Anbieter eines Browsergames. Dieses Browsergame ist in der Türkei, Polen, Deutschland und in den USA vertreten. Das Projekt wird in der eigenen Firma stattfinden. Genutzt wird dabei ein Standard Computer mit Windows 7. Die Projektarbeit wird als PHP und MySQL Applikation realisiert. Hierbei ist ein Apache Webserver mit MySQL Datenbank gegeben. Für die Weboberfläche wird HTML mit CSS und Javascript eingesetzt. Zeitplanung 1. Analyse / Initialsierungsphase 9ha. Ist-Konzeptanalyse 1hb. Soll-Konzeptanalyse 2hc. Kostenanalyse 1hd. Pflichtenheft 5h 2. Konzeptionierung / Designphase 7ha. Datenbankentwurf 4hb. Programmablaufplan 3h 3. Realsierungsphase 28ha. Erstellung von Templates 4hb. Implementierung der Datenbank 3hc. Implementierung Kernsystem 18hd. Implementierung Templates 3h 4. Testphase 10ha. Testplanung 3hb. Tests durchführen 2hc. Fehlerbehebung 5h 5. Dokumentation 15ha. Projektdokumentation 10hb. Entwicklerdokumentation 4hc. Ist-Soll Vergleich 1h 6. Abnahme 1h Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Akku Geschrieben 24. Januar 2012 Teilen Geschrieben 24. Januar 2012 Das passt schon. In die Designphase bitte noch die GUI-Planung für die Weboberfläche. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 24. Januar 2012 Teilen Geschrieben 24. Januar 2012 Warum braucht man dafür PHP, einen Apache und eine Datenbank. Die Datenbank kann ich mir ja noch erklären, wenn man bei einem HPC von mehreren Knoten einen zentralen Speicherpunkt braucht, aber PHP und Apache sind mir etwas schleierhaft um "nur" einen Cronjob laufen zu lassen. Thema an sich passt schon Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
IMG Geschrieben 24. Januar 2012 Autor Teilen Geschrieben 24. Januar 2012 Der Cronjob soll extern überwacht werden. Der Cronjob selbst läuft auf dem Linux Cluster und führt PHP Files aus. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 24. Januar 2012 Teilen Geschrieben 24. Januar 2012 Das beantwortet aber nicht die Frage, denn um PHP Dateien ausführen zu können, brauche ich nur den PHP Interpreter und keinen Webservice, wenn das PHP Script auf die Datenbank zugreifen soll, dann eben noch die Datenbank. Eine externe Überwachung würde ich via Nagios machen. Wenn der Cron-Dämon das PHP Script startet, dann muss nur sichergestellt werden, dass das Script eben eine Art Lock anlegt, so dass bei mehrfachen Start eben nur eine Instanz läuft. Der Lock muss dann nach der Beendigung des Scriptes wieder entfernt werden. Zusätzlich muss natürlich sicher gestellt werden, wenn das Script abstürzt, wie mit dem Lock zu verfahren ist. Die reine Überwachung, z.B. ob und wann das Script und/oder ob es in definierten Intervallen läuft, macht man dann mit Nagios. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
IMG Geschrieben 24. Januar 2012 Autor Teilen Geschrieben 24. Januar 2012 Was mit Nagios alles möglich ist weiß ich nicht. Das mit den LOCK funktioniert leider nicht immer 100% daher soll dies nun extern erledigt werden. Es bietet dem Anwender auch die Möglichkeit unterwegs mal rein zuschauen. In der Datenbank selbst wird der aktuelle Status des Jobs gespeichert. Kommt dieser nun ein 2. mal an kann ein Error zurück gesendet werden und der Job kann darauf reagieren. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 24. Januar 2012 Teilen Geschrieben 24. Januar 2012 Das mit den LOCK funktioniert leider nicht immer 100% daher soll dies nun extern erledigt werden. Wieso ? Man muss letztendlich nur über alle Prozesse passend serialisieren und für einen passenden Mutex sorgen. Also da sehe ich kein Problem drin. Ich will mal anmerken, dass Du Dein Projekt auch "verteidigen" musst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
IMG Geschrieben 24. Januar 2012 Autor Teilen Geschrieben 24. Januar 2012 Wieso ? Man muss letztendlich nur über alle Prozesse passend serialisieren und für einen passenden Mutex sorgen. Also da sehe ich kein Problem drin. Ich will mal anmerken, dass Du Dein Projekt auch "verteidigen" musst. Du hast selbst geschrieben das wenn solch ein Prozess abschmiert das man mit den Lock auch etwas machen muss, nun kann man ja einräumen das wenn eine Job seine Zeit überschritten hat der der Job trotzdem laufen darf obwohl der Lock noch vorhanden ist. Evtl könnte man ihn dann sogar dazu anhalten das er diesen Lock wieder aufhebt. Das bietet doppelte Sicherheit wobei einmal der Lock vorhanden ist und die externe Abfrage. Bei entsprechender Last im Cluster ist es des öfteren dazu gekommen das solche Prozesse abgeschmiert sind. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 24. Januar 2012 Teilen Geschrieben 24. Januar 2012 Du hast selbst geschrieben das wenn solch ein Prozess abschmiert das man mit den Lock auch etwas machen muss, nun kann man ja einräumen das wenn eine Job seine Zeit überschritten hat der der Job trotzdem laufen darf obwohl der Lock noch vorhanden ist. Ja natürlich, aber das Problem hat man immer bei verteilten Systemen. Evtl könnte man ihn dann sogar dazu anhalten das er diesen Lock wieder aufhebt. Das bietet doppelte Sicherheit wobei einmal der Lock vorhanden ist und die externe Abfrage. Bei entsprechender Last im Cluster ist es des öfteren dazu gekommen das solche Prozesse abgeschmiert sind. Ich will mal so sagen, es gibt für so etwas einige bekannte Algorithmen, die man dafür verwenden kann. Die Stichworte sind "Wahlalgorithmen" bzw. "verteilte Transaktionen", gerade beim letzteren gibt es eine Vielzahl von Lösungsmöglichkeiten. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
IMG Geschrieben 24. Januar 2012 Autor Teilen Geschrieben 24. Januar 2012 Ok danke für den Hinweis ich kann dies ja in meine Dokumentation einfließen lassen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 24. Januar 2012 Teilen Geschrieben 24. Januar 2012 Ich würde Dir raten, Dich vorher einmal damit zu befassen, denn die verteilten Transaktionen sollten genau das liefern, was Du suchst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.