Was ist die bessere Programmierunggebung? Thinclients + Server oder Einzelplatzworkstations?



  • Stellt euch vor ihr hättet eine Firma mit ca. 50 Mitarbeitern deren Zweck es ist Software zu entwickeln.

    Was würdet ihr euren Programmieren dann als Arbeitsgeräte hinstellen, wenn ihr
    auf Windows verzichten könntet und Thinclients oder kleine ATOM oder ARM basierte
    Nettops die als Thinclient zu einem starken Server im Keller dienen verwendet werden könnten.

    Was wäre eure Wahl, 1 oder 2?

    1. Normale Desktoprechner bzw. Einzelplatzworkstations.
    Wie Core2Duo, Phenom 2 usw.

    2. Thinclients oder Nettops die als Thinclient dienen und
    an einem starken Serverrechner mit viel Arbeitsspeicher und mehreren Kernen hängen.

    Zu 1 sei gesagt.
    Denkt daran, normale Deskoprechner fressen deutlich mehr Strom,
    aber jeder Programmierer hat seinen eigenen Rechner bei dem er seinen Code compilieren kann. Die Compilerzeit ist auf die Leistung des Desktoprechners limitiert.

    Zu 2 sei gesagt.
    Thinclients brauchen weniger als 5 W, aber der Server im Hintergrund frisst dafür Strom.
    Compilieren würden alle Mitarbeiter ihren Code auf dem Server mit vielen Kernen und Arbeitsspeicher.
    Das kann gleichzeitig passieren, aber in den meisten Fällen auch wieder nicht,
    denn von 50 Mitarbbeitern sind vielleicht gerade 47 am eintippen des Codes und nur 3 compilieren. D.h. den 3 steht ein Server zur Verfügung, der mehr Rechenpower hat als ein normaler Desktoprechner in Wahl 1.
    Sollten aber alle gleichzeitig compilieren, dann muß der Server entsprechend ausgebaut sein.
    PS: Natürlich ist der Server so ausgelegt, daß ein Teil des Servers ausfallen kann. D.h. im Prinzip sind es mindestens 2 Server die, wenn alle funktionieren auch beide arbeiten. Aber wenn einer ausfällt, dann können die Mitarbeiter immer noch weiterarbeiten, nur wird ein Server dann halt die ganze Arbeit machen müssen bis der andere wieder funktioniert.

    Also, was wäre eure Wahl?
    Wie würdet ihr die Rechnerinfrastruktur aufbauen wenn ihr der Entscheider oder gar Firmenchef wärt und die Firma euch gehört?

    Und warum würdet ihr euch für Wahl 1 oder 2 entscheiden?



  • Das kommt natürlich schon ein bisschen darauf an, was entwickelt wird. Entwickeln die Programmierer etwas, was auf einer Einzelplatzworkstation benutzt werden soll, dann sollten sie auch eine Einzelplatzworkstation haben. Wenn sie ohnehin nur Webprogrammierung oder ähnliches machen, dann ist ein Thinclient vermutlich in Ordnung.

    Wobei man natürlich schauen muss, welche Qualität die Thinclients haben. Wenn du schon von Nettops sprichst, solltest du den Programmierern keine Systeme mit ungewohnter/unbedienbarer Tastatur oder Maus geben und vor allem sollte die Lösung die Mitarbeiter nicht verärgern/verunsichern. Wenn die Thinclients sich ungewohnt verhalten, dann hindert das die Produktivität.

    denn von 50 Mitarbbeitern sind vielleicht gerade 47 am eintippen des Codes und nur 3 compilieren. D.h. den 3 steht ein Server zur Verfügung, der mehr Rechenpower hat als ein normaler Desktoprechner in Wahl 1.

    Dafür könntest du auf den Workstations auch distcc (oder ähnliches) fahren und hättest den gleichen Vorteil.



  • ^^bei 50 leuten würde ich schon thin-clients nehmen. das verringert den administrationsaufwand dramatisch (softwareinstallation/updates nur einmal auf dem server nötig und so). wer nebenbei noch 'nen 0815-pc zum testen/etc. braucht, sollte natürlich auch einen kriegen. den muss er aber selber pflegen.
    🙂



  • haben thin clients denn die power fuer ordentliche entwicklungsumgebungen?

    und wie sieht es mit testen aus?



  • 3. Laptop



  • Wenn eine der "grossen" IDEs zum Einsatz kommt (NetBeans, Eclipse, Visual Studio, ...), dann auf jeden Fall Workstations. Diese IDEs brauchen einfach viel zu viel Resourcen, und da sind einzelne PCs vermutlich immer noch günstiger.



  • Shade Of Mine schrieb:

    haben thin clients denn die power fuer ordentliche entwicklungsumgebungen?

    Nö.
    Aber weil es "in" ist, muss man es natürlich trotzdem so machen 😉



  • Shade Of Mine schrieb:

    haben thin clients denn die power fuer ordentliche entwicklungsumgebungen?

    und wie sieht es mit testen aus?

    Die Thin Clients brauchen die Power nicht, da es ja im Prinzip nur Anzeigegeräte sind.

    Die Power kommt vom Server.

    Du könntest so gesehen auch einen 386 er als Thin Client Rechner einsetzen.
    Dieser Thin Client wäre dann dennoch Leistungsfähig genug für Eclipse und Co, weil dieses ja auf dem Server läuft und die Grafikausgabe von Eclipse ja nur auf dem 386er angezeigt werden würde.



  • hustbaer schrieb:

    Wenn eine der "grossen" IDEs zum Einsatz kommt (NetBeans, Eclipse, Visual Studio, ...), dann auf jeden Fall Workstations. Diese IDEs brauchen einfach viel zu viel Resourcen,

    Wenn du so denkst, dann hast du gar nicht verstanden wie ein Thin Client funktioniert.

    Ein Thin Client ist im Prinzip nur ein Terminal.
    Der rechnet gar nichts.

    Die Berechnungen passieren alle auf dem Server.



  • hustbaer schrieb:

    Shade Of Mine schrieb:

    haben thin clients denn die power fuer ordentliche entwicklungsumgebungen?

    Nö.
    Aber weil es "in" ist, muss man es natürlich trotzdem so machen 😉

    wie schon gesagt, wenn du keine Ahnung hast, warum willst du dann mitreden?
    Du disqualifizierst dich nur selbst.



  • Thin Client schrieb:

    Die Berechnungen passieren alle auf dem Server.

    Der Server hat aber auch nicht endlos Ressourcen - da ist irgendwann auch mal Feierabend.



  • Knuddlbaer schrieb:

    Thin Client schrieb:

    Die Berechnungen passieren alle auf dem Server.

    Der Server hat aber auch nicht endlos Ressourcen - da ist irgendwann auch mal Feierabend.

    Richtig, deswegen legt man ihn so leistungsfähig aus, daß die Thin-Client Benutzer nicht merken, daß die ganzen Berechnungen der Server macht.

    Und zukünftig hat man mit dieser Infrastruktur nur noch Vorteile, da man nur noch den Server updaten muß, während für die Thin Clients keine weiteren kosten anfallen, solange sie funktionstüchtig sind.
    Und wenn mal ein Thin Client ausfallen sollte, dann stellt man ein Ersatzthinclient schnell hin und kann ohne viel Arbeit gleich weiterarbeiten.



  • Ich hab davon leider wenig Ahnung, eventuell magst Du mir dennoch die Frage beantworten:

    Gehe ich recht der Annahme, das für jeden ThinClient eine Instanz der Software auf dem Server laufen muss ? Wenn ja würde ich die Aussage von Hustbaer unterstützen. Wenn nein stellt sich die Frage, wie jeder für sich Vernünftig arbeiten kann (und ich muss mich dringend mal mit dem Thema näher beschäftigen.)



  • Thin Client schrieb:

    Und wenn mal ein Thin Client ausfallen sollte, dann stellt man ein Ersatzthinclient schnell hin und kann ohne viel Arbeit gleich weiterarbeiten.

    Natürlich unterschlägst Du mal eben den worst case fall: Wenn der Server ausfällt können 50 Leute nicht mehr arbeiten. Nennt sich Single Point of Failure. Wenn dagegen ein Desktop ausfällt kann genau ein Entwickler nicht mehr arbeiten. Dabei reicht es schon wenn das Netzwerk ausfällt.



  • loks schrieb:

    Thin Client schrieb:

    Und wenn mal ein Thin Client ausfallen sollte, dann stellt man ein Ersatzthinclient schnell hin und kann ohne viel Arbeit gleich weiterarbeiten.

    Natürlich unterschlägst Du mal eben den worst case fall: Wenn der Server ausfällt können 50 Leute nicht mehr arbeiten. Nennt sich Single Point of Failure. Wenn dagegen ein Desktop ausfällt kann genau ein Entwickler nicht mehr arbeiten. Dabei reicht es schon wenn das Netzwerk ausfällt.

    Es wurde schon geschrieben das der Server insofern redunant ist, daß eine Hälfte des Servers ausfallen darf ohne das dabei die Arbeit der User verhindert wird.

    Im Prinzip kannst du dir das also als 2 Server vorstellen, die redunant arbeiten.



  • Knuddlbaer schrieb:

    Ich hab davon leider wenig Ahnung, eventuell magst Du mir dennoch die Frage beantworten:

    Gehe ich recht der Annahme, das für jeden ThinClient eine Instanz der Software auf dem Server laufen muss ? Wenn ja würde ich die Aussage von Hustbaer unterstützen.

    Gleiche Bibliotheken und Programmcode werden natürlich nicht mehrfach in den Speicher geladen.
    Aber jeder Nutzer hat seinen eigenen Prozess.

    Wenn nein stellt sich die Frage, wie jeder für sich Vernünftig arbeiten kann (und ich muss mich dringend mal mit dem Thema näher beschäftigen.)

    Siehe oben.
    Für jeden Nutzer wirkt der Thin Client so, als säße er vor seinem eigenen Desktoprechner.



  • hustbaer schrieb:

    Aber weil es "in" ist, muss man es natürlich trotzdem so machen

    'in' ist es seit 10 jahren. wenn nicht länger.
    🙂



  • Ich kann mir beim besten Willen nicht vorstellen, produktiv über so einen Remote Desktop zu arbeiten. Wir setzen sowas ähnliches für einen Kunden ein und die Latenz ist gegenüber ner Workstation schon deutlich spürbar.
    Außerdem brauche ich als Entwickler die Freiheit, auch nachträglich noch Tools und Programme zu installieren, ohne erst Antrag 29392 auszufüllen, damit das irgendein Admin für mich irgendwann mal auf dem Server einrichtet.

    Gleiche Bibliotheken und Programmcode werden natürlich nicht mehrfach in den Speicher geladen.
    Aber jeder Nutzer hat seinen eigenen Prozess.

    Verrate doch mal, wie Du das realisieren willst. Sagen wir, es kommt eine IDE wie Eclipse zum Einsatz. Jeder Entwickler checkt den Quellcode aus dem Versionskontrollsystem aus.
    Was und wie willst Du da nun gemeinsamen Speicher nutzen?



  • als programmierumgebung sind thin clients meiner erfahrung nach einfach nur müll.
    das liegt daran, daß jeden tag einer der entwickler eine endlosschleife bastelt und den server totalauslastet. die anderen clients fangen an zu ruckeln und mit der zweiten endlosschleife bleibt das ganze system stehen.

    also thinclients sind schonmal außerhalb jeder diskussion.

    und was ist das überhaupt für ein gegensatz, entweder thin clients oder fat workstations zu nehmen?
    nimm doch einfach thin workstations und verteile, was geht. anscheinend ist das kein spieleentwicklungsbüro. also reichen rechner mit onboard-grafik. schonmal 100 watt gespart.

    die compilefarm bringt nur so viel, wie sie bestückt werden kann. ich hab hier nen sehr lahmen viac7@400MhZ und einen neuen atom dualcore mit hyperthreading. der sehr lahme schafft es einfach nicht, den atom mit verteiltem compilieren auszulasten. daran würden wohl auch 50 weitere rechner in der compilefarm nichts ändern.

    der atom mit vier virtuellen cpus compiliert langsamer als mein alter singlecore amd mit 1800MhZ. 😮
    leider zu langsam, um bezahlte mitarbeiter darauf warten zu lassen.

    also denke ich an normale office-pcs.



  • Ganz klar Einzelplatzworkstations. Als Entwickler möchte man schließlich die Möglichkeit haben Software zu installieren, testen, etc.
    Da ist ein gemeinsam genutzter Server einfach ungeeignet. Wenn die Kosten für die Geräte die Gesamtkosten maßgeblich beeinflussen macht ihr sowieso etwas falsch.



  • Ich entwickele beruflich unter Unix. Wir haben aber nicht für jeden Entwickler eine Unix-Kiste, sondern entwickeln alle auf einer. Clientseitig haben wir Notebooks, weil wir diese auch für die Rufbereitschaft benötigen. Ansonsten wäre es so ziemlich egal, was wir hier lokal stehen haben. Hauptsache es ist ein X-Server drauf.

    So eine Technik wird hier bereits seit fast 20 Jahren eingesetzt. Das ist nichts neues. Es wird heutzutage halt als neueste Technik verkauft. Das ganze funktioniert auch einwandfrei.

    Bei uns wird auch nicht jeden Tag mal irgendwelche Software installiert und wieder deinstalliert, da wir doch in der Regel eher programmieren, als Software ausprobieren.


Anmelden zum Antworten