Hochverfügbarkeits System

Status
Nicht offen für weitere Antworten.

Fats

Bekanntes Mitglied
Hallo zusammen!

Ich soll eine hochverfügbare Java-Applikation entwickeln und mich auch um den ganzen technischen Background wie Server und Backups kümmern.
Das ganze soll eine Mischung aus Portal, CMS und Community sein. Das System soll so konzipiert sein, daß die Leistung durch bloses Zusachelten weiterer Server gesteigert werden kann. Letztendlich soll das System locker mehr als 1. Mio User vertragen. Ausfallzeiten soll es nahezu nicht geben dürfen. Ist das realsitisch? Achja: und es soll aus OpenSource Komponenten bestehen! ;)

Wie geht man sowas am besten an? Woran sollte man unbedingt denken, wo gibt es zu erwartende Schwiereigkeiten? Hättet ihr da ein paar Gedanken und Anregungen für mich? Das wäre riesig!

Erste eigene Überlegungen:
- JBOSS besser geeignet als Tomcat
- Clustern von Servern (ist Clustern = Loadbalancing?)
- Aufteilung auf verschiedene Serverebenen (Datenbankserver, Communityserver, Webserver, Messageserver, Chatserver)
- MySQL als DB
- Große Sorgfalt auf Sicherheit des Systems und der User-Daten legen (-> Datenschutz)

Vielen Dank und beste Grüße
Fats
 

schalentier

Gesperrter Benutzer
Ist das dein Ernst? Ich versteh nicht richtig, denn entweder du hast von den genannten Dingen keine Ahnung, dann wuerd ich von dem Projekt die Finger lassen, oder du hast Ahnung, aber dann versteh ich die Frage nicht...
 

WeirdAl

Bekanntes Mitglied
Hi,
schau dir mal Liferay an. Liferay ist eine OpenSource Portal Lösung, bei dem man mit Hilfe von Portlets den Content beliebig erweitern kann. Evtl reicht es dir ja :)

Cu
Alex
 

Fats

Bekanntes Mitglied
schalentier hat gesagt.:
Ist das dein Ernst? Ich versteh nicht richtig, denn entweder du hast von den genannten Dingen keine Ahnung, dann wuerd ich von dem Projekt die Finger lassen, oder du hast Ahnung, aber dann versteh ich die Frage nicht...
Hmm ... ja, ich bin mit der Formulierung so im Nachhinein auch nicht so ganz zufrieden.

Ahnung? ja und nein zu gleich. Ich bin leider nicht seit 10 Jahren bei der Deutschen Bank für derlei Dinge zuständig und kann damit auf keinen reichen Erfahrungsschatz zurückgreifen. ;) Ich würde sagen, im Kleinen habe ich Erfahrungen und für derlei Großes habe ich eher im wahrsten Sinne des Wortes eine Ahnung. D.h. das Wissen basiert in diesen Dimensionen eher auf Theorie.
Ich bin sicherlich nicht so naiv, einen Apachen aufzusetzen, ein PHP Script dahinter zu feuern und mich über gehackte Sites und Server mit 100% CPU Auslastung zu wundern ;)

Dem Posting lag der Gedanke zugrunde, sich mit Leuten auszutauschen, die schon praktische Erfahrungen in diesem Umfeld haben.

Viele Grüße
Fats
 

KSG9|sebastian

Top Contributor
Mh...warum kein Tomcat? Wir verwenden nur Tomcat und haben weit mehr als 80000 User die den kompletten Tag arbeiten.

LoadBalancer -> n Tomcatserver -> n DBs

Clusterbetrieb ist auch mit Tomcat möglich.
Gibt aber viel zu beachten. Z.b. müssen Anmeldedaten über sämtliche Tomcatinstanzen propagiert werden (siehe Multicasting)...da gibt es sehr viel zu beachten und imho ist das als 1-Mann-Aufgabe nicht machbar, da brauch man einfach zu viel Fachwissen in so vielen verschiedenen Bereichen.
 

kama

Top Contributor
Hallo,

Fats hat gesagt.:
Ich soll eine hochverfügbare Java-Applikation entwickeln und mich auch um den ganzen technischen Background wie Server und Backups kümmern.
Habt Ihr denn einen genauen Anforderungsplan gemacht? Wie lange habt' ihr Zeit? Testing?

Erste eigene Überlegungen:
Fats hat gesagt.:
- JBOSS besser geeignet als Tomcat
Kommt darauf an, was man macht?

Fats hat gesagt.:
- Clustern von Servern (ist Clustern = Loadbalancing?)
Falsch.

Load-Balancing (Hardware!) ist zur Lastverteilung
Clustern von Servern (JBoss; geht mit Tomcat glaub ich auch?) ist zur Ausfallsicherheit

Fats hat gesagt.:
- Aufteilung auf verschiedene Serverebenen (Datenbankserver, Communityserver, Webserver, Messageserver, Chatserver)
Verschiedene Server für die Anwendung und die Datenbank auf jedenfall. Hängt aber auch von den Anforderungen ab.


Fats hat gesagt.:
MySQL ist kein OpenSource! Es gibt auch von MySQL Cluster Lösungen. Oracle / PostgreSQL mal anschauen...

Fats hat gesagt.:
- Große Sorgfalt auf Sicherheit des Systems und der User-Daten legen (-> Datenschutz)
Das man sorgfältig arbeitet ist selbstverständlich. Welche Regelungen/Festlegungen für die Sicherheit habt ihr denn? Gesetzliche Grundlage?
Wie definiert Ihr überhaupt Sicherheit? SSL Übertragung? Oder was?
Datenschutz? Was verstehst Du darunter?

Das erst was man Dir raten muss ist, schreibt ein ordentliches Pflichtenheft...(das wird dauern).
Zweitens ist das keine Ein-Mann-Show....

Das wichtigste was erst einmal geklärt werden muss, sind die Anfordernungen!
Weiterhin ist zu klären, was denn überhaupt "Hochverfügbar" bedeutet?
Zeitrahmen? Ich schätze mal ins blaue.....1 Jahr ++++

Ihr solltest Zuerst die fachlichen Anfordernungen klären. Dann kann man über die Technik sprechen...

Solche unklaren und unvollständigen Anfordernungen sind der Grund für die Aussage: Software wird immer teuer als ursprünglich geplant. Das Wort "geplant" ist an dem Satz einfach Falsch. Es wird nicht geplant...
Sondern einfach losgelegt....

MfG
Karl Heinz Marbaise
 
G

Gast

Gast
Hab da Erfahrung, Jboss cluster echt gut, Tomcat ist nicht genug, für das was Du planst. Liferay würde ich nehmen.

Aber ein Tipp, das ist zu viel für Dich, da scheitern auch Teams und gute Entwickler, wenn das ncht wirklich klar durch konzeptioniert ist.

Wenn Du nicht mindesten ein paar Projekte mit solchen Dingen wie Application Server und Portalen hast, und wenn Du nicht J2ee im schlaf beherrschst, ist es illusionär daran zu glauben das alleine zu schaffen.
 

kama

Top Contributor
Hallo,

Hilefoks hat gesagt.:
kama hat gesagt.:
Fats hat gesagt.:
MySQL ist kein OpenSource! Es gibt auch von MySQL Cluster Lösungen. Oracle / PostgreSQL mal anschauen...
Falsch - MySQL ist OpenSource - um genau zu sein unterliegt es sogar eine der restriktivsten OpenSource Lizenzen - der GPL.

MfG,
Hilefoks
Und mit der GPL kommen genau die Probleme. Der OP will mit Sicherheit nicht den Code der Applikation unter GPL stellen. Somit fällt das Weg. Anders ausgedrückt braucht er eine kommerzielle Lizenz.

http://www.mysql.com/company/legal/licensing/commercial-license.html

Davon abgesehen müsste man sich zuerst einmal unterhalten, was genau unter OpenSource zu verstehen ist ;-)

MfG
Karl Heinz Marbaise
 

Hilefoks

Bekanntes Mitglied
kama hat gesagt.:
Und mit der GPL kommen genau die Probleme.
Das klinkt schon anders, auch wenn die GPL nicht grundsätzlich ein Problem für kommerzielle Software darstellt. Aber darüber kann man besser im vom DP vorgeschlagenen Thread diskutieren.

MfG,
Hilefoks
 

Fats

Bekanntes Mitglied
Hallo miteinander!

Ganz herzlichen Dank für eure vielen Anregungen und Gedanken!! :)

Ich werde das Projekt nicht alleine durchziehen. Ich hab zwar einen gewissen Ehrgeiz, aber so ganz verrückt bin ich zum Glück noch nicht ;) Mal sehen, ein paar Mann/Frau soll ich noch bekommen. Was denkt Ihr: welche Dimension an Manpower ist notwendig? Wirklich nur Dimensionsmäßig! So ganz genau kann man das vermutlich nicht sagen, und hängt wohl von diversen Parametern ab:
- mehr als 3
- mehr als 5
- mehr als 10

Mein Bauch sagt mir etwas von etwa 3 bis 4 Programmierern, 1 besser 2 Admins und einen, der das alles fachlich koordiniert.

Tja, die Sache mit der Planung ... Da hat sich mal jemand aus dem Marketing dran gesetzt und gut 100 Seiten an Bildschirmansichten gescribbled: Wo ist welcher Button? Was passiert, wenn man hier oder dort klickt? usw. Das nennt sich dann Pflichtenheft. Sicherlich super fleißig! Aber ich würde dazu tendieren, es als einen Konzept-Entwurf zu bezeichnen! Es gibt so viele offene Fragen und nicht bedachte Punkte ....

Das ist ersteinmal nur das inhaltliche. Für die technische Ebene wäre meines Erachtens ebenfalls ein Konzept dringend notwenig.


Viele Grüße und einen guten Start in die Woche!
Fats
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben