# Hochverfügbarkeits System



## Fats (18. Apr 2007)

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 (18. Apr 2007)

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 (18. Apr 2007)

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


----------



## DP (18. Apr 2007)

oder jetspeed 2 von apache.org


----------



## Fats (18. Apr 2007)

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 (19. Apr 2007)

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 (19. Apr 2007)

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 als DB


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


----------



## Gast (20. Apr 2007)

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.


----------



## Hilefoks (21. Apr 2007)

kama hat gesagt.:
			
		

> Fats hat gesagt.:
> 
> 
> 
> ...


Falsch - MySQL ist OpenSource - um genau zu sein unterliegt es sogar eine der restriktivsten OpenSource Lizenzen - der GPL. 

MfG,
Hilefoks


----------



## kama (21. Apr 2007)

Hallo,



			
				Hilefoks hat gesagt.:
			
		

> kama hat gesagt.:
> 
> 
> 
> ...


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


----------



## DP (21. Apr 2007)

kama hat gesagt.:
			
		

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



 au ja


----------



## Hilefoks (22. Apr 2007)

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 (23. Apr 2007)

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


----------

