Hallo,
ich soll ein größeres Projekt umsetzten (komplette Windows-Umgebung
MSSQL etc.). Sowas habe ich schon mal gemacht, aber langsam ergeben sich
in diesem Projekt immer mehr Dinge, die mich eigentlich eher negativ
stimmen:
Bislang habe ich solche Projekte lokal bei mir in der Arbeit lauffähig
gemacht, und dann wenn alles auslieferungsfertig war auf den
Kundenserver übertragen. Nachdem die Projekte alle einen sehr ähnlichen
Charakter haben ist es meines Erachtens nach dadurch auch sinnvoll, eine
Entwicklungsumgebung davon im Haus zu Haben. Hardware und VM ist in
genügendem Maß vorhanden.
Bei dem aktuellen Projekt zeichnet es sich ab, dass die Entwicklung über
VPN auf dem LIVE-Server stattfinden soll. Nicht nur dass ich dass
gefährlich für die laufende Produktion beim Kunden finde (ca. 15 Clients
die mit dem System arbeiten), sondern auch allein die VPN-Verbindung
sehe ich kritisch. Bislang war es so, dass die Internetleitung (2
vorhanden) bei uns im Haus gerade in Fernwartungsszenarien stellenweise
extrem zäh war. Sicherlich geht's auch mal schneller, aber sehr oft eben
auch nicht. Wenn dass dann beim Entwickeln noch hinzu kommt, stelle ich
mir den zeitlichen Verlust und meinen dabei entstehenden Frust nicht
unerheblich vor.
Wie ist da eure Vorgehensweise in solchen Szenarien? Nicht darauf
einlassen? Was wäre in diesem Fall fachlich korrekt, falls man sowas
sagen kann?
Vielen Dank und Viele Grüße,
Peter
Peter schrieb:> Bei dem aktuellen Projekt zeichnet es sich ab, dass die Entwicklung über> VPN auf dem LIVE-Server stattfinden soll.
Was für Leistungsträger und Entscheider kommen auf solche Ideen?
Peter schrieb:> Wie ist da eure Vorgehensweise in solchen Szenarien?
Als Kunde gesehen:
- Entwicklung in grösserem Umfang beim Entwickler.
- Test und kleinere Anpassung auf Testserver bei uns.
Das ist zumindest der offiziell favorisierte Weg. Es kommt allerdings
leider schon mal vor, dass der Testserver etwas hinter dem Prodserver
nachhinkt oder veraltet. Dann gibts bei Bedarf einen Klon vom Prodserver
als neuen Testserver.
VPNs gibts für Support. Für intensive Entwicklungsarbeit ist das
unpraktisch. Spätestens wenn die Entwicklung nicht bloss per vi
stattfindet, sondern eine entsprechende Umgebung voraussetzt, gehts
eigentlich auch nicht anders. Denn die kommt garantiert weder auf Test-
noch auf Prodserver drauf.
Um Sorgen wg. Quellcodeverfügbarkeit entsprechender Lösungen auszuräumen
gibts bei uns einen SVN-Server.
Peter schrieb:> Bei dem aktuellen Projekt zeichnet es sich ab, dass die Entwicklung über> VPN auf dem LIVE-Server stattfinden soll.
Man möchte zunehmend die Kontrolle über die Softwareentwickler haben,
möglichst jeden Tastendruck zählen um die Leistung mit anderen messbar
vergleichen zu können und Minderleister rauswerfen und gegen Inder
ersetzen zu können.
Es reicht nicht mehr, Stundenerfassung zu betreiben und tasks im Sprint
von SCRUM zu zählen, denn das ist nachweislich gescheitert.
Microsoft macht vor, wie es funktionieren kann, Windows 9 bietet zwar
für den Benutzer kaum mehr als Windows 3.11, ist aber 10000 mal grösser
und verschlingt 100 mal mehr Rechenleistung, das kommt bei raus, wenn
man Leistung einer Softwareentwicklung nach BWL Massstäben optimiert.
Peter schrieb:> und dann wenn alles auslieferungsfertig war auf den> Kundenserver übertragen
Das geht natürlich bei ernstzunehmenden Projekten nicht mehr, da ist
eine Kontrolle, ob es auf dem Server läuft und welche Belastung es ihm
auferlegt, vorher regelmässig nötig.
Peter schrieb:> dass die Entwicklung über VPN auf dem LIVE-Server stattfinden soll
Nun ja, VPN damit eure Konkurrenz nicht zuhört, die NSA kann trotzdem
reinhören.
MaWin schrieb:> Man möchte zunehmend die Kontrolle über die Softwareentwickler haben,> möglichst jeden Tastendruck zählen um die Leistung mit anderen messbar> vergleichen zu können und Minderleister rauswerfen und gegen Inder> ersetzen zu können.
Falsches Szenario. Es geht hier offensichtlich nicht um
Inhouse-Entwickler, sondern um externe Firmen, die kundenspezifische
Lösungen entwickeln. Ob die dann intern Tastaturklicks pro Sekunde
zählen kann dem Kunden egal sein.
Peter schrieb:> Bei dem aktuellen Projekt zeichnet es sich ab, dass die Entwicklung über> VPN auf dem LIVE-Server stattfinden soll. Nicht nur dass ich dass> gefährlich für die laufende Produktion beim Kunden finde (ca. 15 Clients> die mit dem System arbeiten),
So etwas macht man zwar ungern, aber es kommt echt drauf an. Wenn das
System nicht besonders relevant und ein (längerer) Ausfall zu verkraften
ist, dann kann man das schon mal probieren. Es kann ja nur schief
gehen...
Peter schrieb:> , sondern auch allein die VPN-Verbindung> sehe ich kritisch. Bislang war es so, dass die Internetleitung (2> vorhanden) bei uns im Haus gerade in Fernwartungsszenarien stellenweise> extrem zäh war. Sicherlich geht's auch mal schneller, aber sehr oft eben> auch nicht.
VPN - Virtual Private Network - was soll den da kritisch sein? - Man
logt sich über VPN in ein anderes Netz ein.
Die Zähigkeit, die Du bei der Fernwartung bemängelst, könnte diese von
der Geschwindigkeit des Upstreams der Gegenstelle her kommen?
mar IO schrieb:> VPN - Virtual Private Network - was soll den da kritisch sein? - Man> logt sich über VPN in ein anderes Netz ein.
Die grössere Latenz kann sich auf die Produktivität auswirken.
Die Uebertragungsgeschwindigkeit hat ja keinen Einfluss auf die 123 Euro
pro Stunde. Allenfalls auf die Anzahl Stunden. Aber wenn der Kunde das
so will...
Ob das System live ist, ist auch egal. Man kann ja in einem anderen
Directory mit anderen Zufriffsrechten arbeiten wie da, wo die richtigen
Daten sind.
MaWin schrieb:> Windows 9 bietet zwar> für den Benutzer kaum mehr als Windows 3.11
Weißt du etwas, was andere nicht wissen? ;-)
(Glaskugel vielleicht?)
Дуссель дукъ schrieb:> Die Uebertragungsgeschwindigkeit hat ja keinen Einfluss auf die 123 Euro> pro Stunde. Allenfalls auf die Anzahl Stunden. Aber wenn der Kunde das> so will...
das ist mir klar. Mir geht es darum, dass ein Auftraggeber auch in einer
angemessenen Art Beratung bekommt um unnötigen Aufwand zu vermeiden.
> Ob das System live ist, ist auch egal. Man kann ja in einem anderen> Directory mit anderen Zufriffsrechten arbeiten wie da, wo die richtigen> Daten sind.
Mit dem intensiven Entwicklungs-Arbeiten auf einem Live-Server habe ich
bisher eher schlechte Erfahrungen gemacht. Diese beziehen sich zwar
momentan auf MySQL, aber ich denke MSSQL kann da auch nicht unbegrenzt
"zaubern". Wenn da mal ne Abfrage lange läuft und den Rechner
runterzieht und dann mehrere angeschlossene Clients gleichzeitig über
einen langsamen Server meckern, dann wird's wieder nicht lustig.
Mir geht es hier echt nicht um die Diskussion, ob es über VPN machbar
ist oder nicht, weil das kann man klar mit Ja es ist möglich
beantworten. Aber ich sehe einfach sowohl für den Kunden als auch für
den Entwickler eher Nachteile in so einer Vorgehensweise.
Gruß
Peter
Fuer ein EU-Projekt landete der DB-Server auch in einem "richtigen" RZ.
Anbindung der regionalen Offices per VPN.
Wo ist das Problem?
Keines der regionalen Offices hatte genug Bandbreite noch die
noetige Infrastruktur um einen laengerfristigen stabilen Betrieb
zu gewaehrleisten.
Wenn der Server nun aber nicht "einfach" geklont werden kann, oder die
Daten nicht an den Entwickler gegeben werden dürfen was tun?
Du sollst doch wohl nicht auf dem Rechner entwickeln (also deine IDE
etc. läuft dort) sondern nur mit dem Rechner (hier: mit der MSSQL-DB).
Den Fall habe ich hier auch das ich per VPN an den (entfernten)
ActiveDirectory Server hänge, ob der nun lokal oder per VPN angebunden
ist ist ja nur eine technische Sache. Wer will sich den im Zweifel ein
ganzes Rechnenzentrum ins Arbeitszimmer stellen?
Ob das "schnell" oder "langsam" ist hängt von vielen Faktoren ab, "VPN"
ist da sicher der allerkleinste...
Sei doch froh das du das nicht alles bei dir einrichten musst (+ggf.
Lizenzgebühren!) das kostet auch Zeit, und im endefekkt weicht dann
irgendwo doch die Test von der Produktiv Konfig ab und schon ist der
Ärger vorprogrammiert. Die paar ms mehr Latenz sind doch wohl wirklich
egal.
Läubi .. schrieb:> Die paar ms mehr Latenz sind doch wohl wirklich> egal.
die sind sogar vom Vorteil bei der Entwicklung. Es gibt Entwickler die
rufen 10.000 Zeilen von der Datenbank ab und bilden dann die Summe.
Andere verwenden die Aggregatfunktionen der Datenbank und kommen so
Ressourcenschonender zum gleichen Ergebnis.
> die sind sogar vom Vorteil bei der Entwicklung. Es gibt Entwickler die> rufen 10.000 Zeilen von der Datenbank ab und bilden dann die Summe.> Andere verwenden die Aggregatfunktionen der Datenbank und kommen so> Ressourcenschonender zum gleichen Ergebnis.
Peinlich wird sowas ganz schnell, wenn wegen mangelnder Performanz
eine externe Codereview eingeleitet wird.
Da sieht man dann viele rote Koepfe.
Mich erinnert die Diskussion hier, an einen DVB-S/T-Player aus
der Opensourceszene.
Der hatte bei (sehr) vielen Anwendern erhebliche Performanceprobleme
mit der Kanalverwaltung.
Der Entwickler hatte seine Software auf einem Rechner mit SSD,
mit entsprechend leisungsfaehigem IO-Durchsatz "entwickelt".
Da stoerten mehrere tausend (unnoetige) Zugriffe nicht.
Davon war der normale Wald- und Wiesen-PC natuerlich einiges entfernt.
Da brauchte dann jede Kanalumschaltung einiges an Umschaltzeit.
Fuer die Entwicklung sollte zumindest ein dem Produktivsystem
gleichartig angebundenes Testsystem zur Verfuegung stehen und
auch fuer die Entwicklung genutzt werden koennen.
Entwickeln auf einem Produktivsystem ist eine schlechte Idee.
./. schrieb:> Entwickeln auf einem Produktivsystem ist eine schlechte Idee.
Das sagt doch keiner! Höchstwarscheinlich soll er schlicht gegen das
Produktivsystem entwickeln, wo z.B. ein Klon der echten Datenbank liegt
oder er einen speziellen User mit eingeschränkten Rechten hat, der z.B.
nur lesen darf und in den erlauben Resourcen (Query time, Memory)
beschränkt ist, sowie den Daten die er sehen darf.
Demgegenüber steht, das er ggf. ein komplexes Serverumfeld bei sich
nachbilden, und alle Daten auf seinem System geliefert bekommen muss.
Ich habe bisher nirgendwo rausgelesen, das er an Produktivdaten
rumfummeln soll, oder auf dem System (z.B. per Remotedektop oder VNC)
arbeiten soll.
Nimm dir halt die Google APIs für diverse Dienste her, da arbeitest du
auch gegen das "Produktivsystem" und über ein Netzwerk. Keiner würde
verlangen, das Google jedem Entwickler ein komplettes Abbild seiner
Serverlandschaft bereitstellt um die APIs zu bedienen.
Das VPN ermöglicht ihm doch nur in ein ansonsten abgeschottetes
Netzsegment zu kommen, ob die auf dem Physikalischen System auch noch
irgendwelche Kunden bedienen oder das ansonsten für die Mittägliche
LAN-Party-Stunde nutzen kan ihm doch völlig egal sein.
Hallo,
danke für eure Antworten. Ich bin immer wieder erstaunt, wie schnell
sich eine gewisse Hitzigkeit in den Antworten einstellt.
Ich möchte gerne ganz ruhig bleiben.
Mir ist bekannt, dass es Rechenzentren mit hoher Leistung gibt. Mir ist
bekannt, dass nicht jeder ein Rechenzentrum mit unbegrenzten
Möglichkeiten im Serverraum stehen hat. Mir ist bekannt, dass VPN nichts
schlechtes ist. Mit ist bekannt, dass man beim Entwickeln hier und da
mal einen Bock schießt (das gilt zumindest für mich :) . Dazu gehören
Endlosschleifen, Speicherexplosionen, TRUNCATE auf falsche Tabelle
etc... Mir ist bekannt, dass das nicht passieren soll. Mir ist bekannt,
dass es effektive Datenbankabfragen gibt, und welche die nicht so gut
sind. Das könnte ich hier noch endlos fortsetzen. Achso, einen noch: Mir
ist bekannt, dass im grafischen Gewerbe größere Datenmengen beim
Entwickeln verarbeitet werden, die übers INetz dann doch mal zäh zu
händeln sind.
Also vielleicht die gleiche Frage nochmal in Bezug auf eine genauere
Beleuchtung der Umgebung:
gegeben sei:
Kunde
32GB RAM 16 Cores ~3GHz MSSQL 5 GB DB / 200 GB Files
angeschlossen ca. 15 Clients
Bei uns im Haus:
VM Host etwa dem Kundenserver entsprechend. Die VM selbst passend um das
das Zeugs vom Kunden aufzunehmen.
Vielleicht wäre auch noch zu sagen, dass eben dieses Projekt als
Grundlage der Zusammenarbeit mit dem
"Datenverwaltungssoftwarehersteller" für weitere Projekte dienen soll.
Und dadurch auch einen "Schablonencharakter" bekommen soll. (Soweit das
möglich ist. Mir ist bekannt, dass das in mehreren Fällen bisher nicht
im gewünschten Grad erreicht worden ist :)
Achja, zur Entwicklungsumgebung. Ich möchte hier keinen Namen nennen,
aber die ist grausam grausam grausam! Der Code ist sehr stark an C
gelehnt und wird in der Datenbank abgespeichert. Mehrfaches rückgängig
machen im Editor ist nicht möglich. Hab mir schon einen SVN-Hook
geschrieben, der die Dateien, die ich dann in einem vernünftigen Editor
editiere beim Commiten in die DB schreibt, damit ich wenigstens noch
etwas freude in dieser Umgebung habe.
Also ist VPN jetzt gut oder schlecht in MEINEM Fall?
Läubi .. schrieb:>> Das VPN ermöglicht ihm doch nur in ein ansonsten abgeschottetes> Netzsegment zu kommen, ob die auf dem Physikalischen System auch noch> irgendwelche Kunden bedienen oder das ansonsten für die Mittägliche> LAN-Party-Stunde nutzen kan ihm doch völlig egal sein.
Das ist im Prinzip richtig, aber wenn die Cients ebenfalls Zugriff haben
und der Kunde anfängt Live-Tests durchzuführen, wird sich der Entwickler
vor Änderungswünschen nicht mehr retten können. Dann könnte das Projekt
schnell zun beweglichen Ziel werden. Wenn der Kunde das bezahlt ist das
natürlich OK.
Peter schrieb:> Also ist VPN jetzt gut oder schlecht in MEINEM Fall?
Was hat diese Frage mit der Aufgabe zu tun.
Die VPN-Tunnel dienen nur zu Anbindung der externen Clients.
Wenn die Bandbreite in eurem Haus, nicht die Bandbreite hat, die die 15
Clients benötigen, dann bekommt ihr ein ganz anderes Problem.
Über den Daumen gepeilt sollte euer LAN-Anschluß mindestens 6-7 Mbit/s
Bandbreite für die 15 Clients zur Verfügung stellen.
Wie ich auf diesen Wert komme: 15 Clients x 2 Mb/s / 4
(Überbuchungsfaktor).
Sonst springen die Entwickler an den Clients im Dreieck.
Und so wie ich aus Deinen Ausführungen gelesen habe, könnt ihr diese
Bandbreite nicht zu Verfügung stellen. Ein DSL-Anschluß ist dafür
überhaupt nicht geeignet.
Oder habe hier etwas falsch verstanden? Ich glaube erst einmal nicht(?).
ok, ich glaub ich lass das hier...
Die Clients sind alle auf Kundenseite.
Telco schrieb:> Peter schrieb:>> Also ist VPN jetzt gut oder schlecht in MEINEM Fall?>> Was hat diese Frage mit der Aufgabe zu tun.> Die VPN-Tunnel dienen nur zu Anbindung der externen Clients.> Wenn die Bandbreite in eurem Haus, nicht die Bandbreite hat, die die 15> Clients benötigen, dann bekommt ihr ein ganz anderes Problem.> Über den Daumen gepeilt sollte euer LAN-Anschluß mindestens 6-7 Mbit/s> Bandbreite für die 15 Clients zur Verfügung stellen.> Wie ich auf diesen Wert komme: 15 Clients x 2 Mb/s / 4> (Überbuchungsfaktor).> Sonst springen die Entwickler an den Clients im Dreieck.>> Und so wie ich aus Deinen Ausführungen gelesen habe, könnt ihr diese> Bandbreite nicht zu Verfügung stellen. Ein DSL-Anschluß ist dafür> überhaupt nicht geeignet.>> Oder habe hier etwas falsch verstanden? Ich glaube erst einmal nicht(?).
Nein, Clients und Live-Server sind alle außerhalb der Entwicklung. Es
geht nur darum, soll auf dem Live-Server die Entwicklung über VPN
erfolgen? M.E. riskant. Aber lasst gut sein, ich sag jetzt einfach mal,
dass ich Vorlieb ohne VPN nehme (VPN nur zum Verteilen und LIVE-Test).
Noch zur Info: ich hätte mir die Diskussion eher in eine solche Richtung
vorgestellt. Ist zwar nicht ganz das Thema, aber Teile davon:
http://stackoverflow.com/questions/3550953/developing-over-vpn-connection-on-a-virtual-desktop
Und ganz ehrlich finde ich auch Aussagen wie "Wenn's der Kunde zahlt
ist's ok" bedenklich. Mich wundert's da nicht, dass immer mehr in
Pakistan und Indien und wo auch immer gemacht wird. Und das meine ich
jetzt nicht abwertend, da ich auch schon mal die Ehre hatte aus Pakistan
eine Qualitativ hochwertige Umsetzung zu bekommen.
Ich auf jeden Fall erfahre auch nur sehr ungern, dass ich für irgendein
Produkt zu viel bezahlt habe.
Peter schrieb:> Noch zur Info: ich hätte mir die Diskussion eher in eine solche Richtung> vorgestellt. Ist zwar nicht ganz das Thema, aber Teile davon:>> Und ganz ehrlich finde ich auch Aussagen wie "Wenn's der Kunde zahlt> ist's ok" bedenklich. Mich wundert's da nicht, dass immer mehr in> Pakistan und Indien und wo auch immer gemacht wird. Und das meine ich> jetzt nicht abwertend, da ich auch schon mal die Ehre hatte aus Pakistan> eine Qualitativ hochwertige Umsetzung zu bekommen.> Ich auf jeden Fall erfahre auch nur sehr ungern, dass ich für irgendein> Produkt zu viel bezahlt habe.
Du solltest lesen lernen und das nicht aus dem Zusammenhang zitieren. Es
ging um laufende Änderungswünsche während der Projektbearbeitung durch
den Kunden. Du hast scheinbar noch nie Reale Projekte gemacht wo du du
den Auftrag nur zum Festpreis bekommst. Aber wenn du zu wenig für deine
Arbeit bekommst ist für dich OK ...