Sollten wir Code online hosten?

22

Wir suchen nach einer guten Lösung für die Quellcodeverwaltung und das Projektmanagement an meinem Arbeitsplatz und ich habe vorgeschlagen, eine GitHub-Organisation und private Repositorys zu erstellen. Ich liebe GitHub aus vielen Gründen, aber hier geht es nicht um GitHub (tatsächlich werden meine Kollegen Punkte für konkurrierende Plattformen präsentieren) - es geht darum, unseren privaten Code online zu speichern .

Ich versuche zu verstehen, ob dies eine gute Idee ist oder nicht. Dies scheint auf jeden Fall von Vorteil zu sein, da die Serverkosten (zumindest direkt) entfallen und die Suche nach Code vereinfacht wird (alles ist online).

Unser Team ist jedoch unentschlossen und führt mich zu meiner Frage: Was sollten wir beachten, um diese Entscheidung zu treffen?

Mathieu Guindon
quelle
13
Beachten Sie, dass Sie Ihren Code nicht in der Cloud speichern müssen, um github verwenden zu können. Sie verkaufen ein Unternehmensprodukt
Gort the Robot
1
@StevenBurnap yeah ... für den 10-fachen Preis des Organisationspakets . =)
Mathieu Guindon
12
Beachten Sie auch, dass Sie Github nicht benötigen, um git
Harrison Paine
6
Denken Sie daran, dass es nicht nur um Code geht. Es ist üblich, dass Entwickler versehentlich Passwörter und SSL-Schlüssel eingeben.
Nate CK
5
Ich bin ehrlich gesagt erstaunt , dass niemand erwähnt hat Gitlab Community Edition , die, im Gegensatz zu GitHub , ist eigentlich selbst Open Source . Sie müssen keinen Code in der Cloud speichern oder proprietäre Software erwerben, um GitLab zu verwenden. (@StevenBurnap)
Wildcard

Antworten:

24

Als Profi

Wenn das Büro Ihres Unternehmens brennt, befindet sich der Code immer noch auf dem Server.

Wenn das Büro Ihres Unternehmens nicht brennt, aber der Server, auf dem sich Ihr Git-Repository befindet, TUT, haben Sie immer noch eine lokale Kopie.

Wenn Sie Ihr Repository auf Ihrem Server im Bürogebäude Ihres Unternehmens hosten (wie bei einem freigegebenen Netzwerklaufwerk ...?), Verlieren Sie beide, wenn das Büro des Unternehmens brennt.

Natürlich benötigen Sie immer noch Backups wie gewohnt ...

Fühlen Sie sich frei, "Burns Down" durch "Ransomware-Infektionen" zu ersetzen.

Grundsätzlich ist die Verfügbarkeit hoch.

Als Betrug

Sie müssten Ihre Dateien mit der dritten Partei teilen, die Ihren Code hosten wird. Wenn Sie wirklich große Unternehmensgeheimnisse haben, ist dies möglicherweise nicht zulässig. Wenn Sie beispielsweise über eine Datenbank mit persönlichen Daten von europäischen Bürgern verfügen, dürfen Sie Ihren Code möglicherweise nicht bei Dritten aus den USA hosten, da diese dem US-Recht unterliegen und daher nicht vertrauenswürdig sind Einhaltung der EU-Datenschutzgesetze. Auch wenn es sich nicht um ein rechtliches Problem handelt, sollten Sie sich dessen bewusst sein, dass der Dritte bestochen werden kann, Ihre privaten Dateien weiterzugeben. Dies wäre wahrscheinlich sehr schlecht für die dritte Partei (enorme Reputationsstrafe), aber es könnte passieren.

Grundsätzlich ist die Vertraulichkeit nicht gewährleistet.


Wenn Sie mit der Vertraulichkeit des Handels in Bezug auf die Verfügbarkeit einverstanden sind, ist es eine gute Idee, Ihren privaten Code online bei einem Dritten zu hosten. Ansonsten nicht. Sie könnten die Kompromisse erklären, damit Ihr Chef eine intelligente Entscheidung treffen kann - aber Sie könnten "nein" hören. Das kann passieren, wenn Sie jemandem eine Entscheidung geben. Wenn dein Chef nein sagt, dann ist es das. Ich denke nicht, dass es eine sehr gute Idee ist, Ihren Chef gewaltsam zu überzeugen.

Pimgd
quelle
Da es sich um eine Listenfrage handelt, sollten Sie Ihrer Liste einen weiteren Con hinzufügen: Was ist, wenn die Hosting-Organisation den Weg von Google Code geht?
David Hammen
@DavidHammen Wenn der Server ausfällt, haben Sie eine lokale Kopie ... aber ... Ich vermute, es liegt ein Problem mit der ungeplanten Wartung vor ...? Ich denke, dieser Punkt ist auf beiden Seiten verfügbar; Wenn Sie Ihren eigenen Server hosten, wird er häufiger heruntergefahren. Wenn jemand anders den Server hostet, wird er möglicherweise heruntergefahren, wenn dies unpraktisch ist. In diesem Fall könnte Github kaputt gehen, aber auch Ihr Server. Ich denke, in diesem Fall ist es weniger wahrscheinlich, dass der Dritte verschwindet.
Pimgd
9
Beachten Sie, dass jeder Entwickler eine Kopie des Repositorys hat, wenn Sie git verwenden. (Minus private Niederlassungen.)
Gort the Robot
3
@DavidHammen So wie wenn die Server des Dienstes ausgebrannt wären, haben Sie immer noch eine lokale Kopie. Und dann können Sie zu einem alternativen Service wechseln oder alles ins Haus bringen.
8bittree
3
@ njzk2 wegen Netzwerk mit geringer Latenz? Oder weil Sie eine kleine Firma sind? Vielleicht ist Ihr Internet total Mist und Sie möchten schnellen Zugriff auf Ihre Dateien haben ...
Pimgd
11

Offensichtlich ist es eine Frage des Vertrauens in den Anbieter und wie viel Sie Ihren Quellcode schätzen.

Ich denke jedoch, es ist klar, dass die Leute zumindest in der Vergangenheit ihren Quellcode überbewertet haben.

  • Für Produkte zur Automatisierung von Geschäftsprozessen; Ein internes Team erstellt Websites und andere Software, die speziell auf die Anforderungen des Unternehmens zugeschnitten sind. Der Wert dieser Software für andere Menschen ist im Allgemeinen sehr gering.

  • Für verkaufsfähige Software; Es ist die Binärdatei, die Sie verkaufen und die ohne Zugriff auf den Quellcode kopiert und gehackt werden kann.

Zweitens: Sie sollten auch überlegen, ob das Speichern Ihres Codes bei einem Dritten Ihre Gefährdung tatsächlich über das aktuelle Niveau erhöht. In vielen Fällen wird es nicht

  • Beispielsweise; Wenn es sich bei Ihrem Produkt um eine Website ohne Backend-Code handelt, ist Ihr Code bereits öffentlich.
  • Wenn Ihr kompilierter Code verteilt wird, kann er dekompiliert werden.
  • Wenn es sich bei Ihrem Code um eine Website oder einen Dienst handelt und Sie ihn bei einem Dritten hosten. Dann kann der Dritte Ihren Code dekompilieren.
  • Wenn Sie Ihre Backups bei einem Dritten speichern, haben diese Zugriff auf Ihren Code.

Kurz gesagt, die meisten modernen Unternehmen werden im Tagesgeschäft einer Vielzahl von Dritten vertrauen. sogar Dinge, die für sie lebenswichtig und einzigartig sind.

Ewan
quelle
3

Ein Teil dieses Entscheidungsprozesses könnte ein wenig Testen, Ausprobieren und Irrtum sein. Nehmen Sie ein kleines Projekt und lassen Sie einige Mitglieder einige der verschiedenen Sites ausprobieren. Dies sollte die Benutzerfreundlichkeit des Teams abdecken, es gibt jedoch noch andere Überlegungen.

  1. Aktuelle Infrastruktur - Einige Unternehmen verfügen bereits über Server, Internetverbindungen, VPN und Mitarbeiter, die über die Fähigkeiten zum Hosten von Servern verfügen, sodass einige der Kosten und Bedenken viel leichter aufgefangen werden können. Ein Startup ist möglicherweise eher geneigt, so etwas wie Github zu verwenden, da es keine derartigen Investitionen tätigen muss und schneller in Betrieb gehen kann.
  2. Budget - Viele Aspekte von # 1 werden hier untergehen, aber es kann auch andere Lösungen mit einem hohen Preis geben. Einige Unternehmen können die Kosten rechtfertigen. Offensichtlich werden mit einem niedrigen Budget viele Optionen beseitigt.
  3. Teamverteilung - Wenn alle Mitarbeiter zu den gleichen Zeiten im selben Büro arbeiten, benötigen Sie möglicherweise keinen Github. Wenn Ihr Dateiserver nicht zu stark belastet ist, legen Sie einfach Git darauf.
  4. Sicherheit - Sie können wahrscheinlich viele Sites finden, die sicher sind, aber die Wahrnehmung der Sicherheit für einige Clients ist wichtiger. Ein eigenes Netzwerk ist möglicherweise das Richtige, um Vertrauen zu gewinnen. Sicherheitsplaketten, Netzhautscanner und bewaffnete Wachen geben manchen Kunden nur Anzeichen von Sicherheit.
  5. Schulung - Es geht um mehr als nur um die Verwendung der App. Es gibt Regeln und Verfahren, die Ihr Unternehmen / Team implementieren möchte. Wenn Sie wissen, wie Sie vorgehen möchten, können Sie entscheiden, welche Tools verwendet werden sollen. Es wird ein wenig einfacher, zusätzliche Teammitglieder zu gewinnen, wenn sie Ihre Arbeitsweise mögen.

Beginnen Sie, den gesamten Prozess des Codierens und Bereitstellens durchzuarbeiten. Je mehr Menschen an diesem Prozess beteiligt sind, desto besser. Sie möchten keine Versionsverwaltungsplattform auf der Grundlage bestimmter Kriterien einführen, um nur jemanden im Management zu veranlassen, alles zu ändern. "Diese verteilte, agile Sache funktioniert nicht. Wir brauchen also jeden, der ab Montag von 8 bis 7 Uhr im Büro anfängt, okay."

JeffO
quelle
2

Ich sage nicht unbedingt, dass Sie das Repository Ihres Unternehmens nicht in der Cloud hosten sollten , aber ich persönlich habe einige Nachteile und Schmerzen beim Cloud-Hosting erlebt.

Wie schnell und zuverlässig ist Ihre Internetverbindung?

Für mich ist das die größte Überlegung. Zum Beispiel befindet sich meine Firma in einer hübschen ländlichen Gegend. Während unsere Intra- Net-Geschwindigkeiten blitzschnell sind, sind unsere Inter- Net-Geschwindigkeiten bestenfalls langsam, im schlimmsten Fall geradezu flockig.

Je nachdem, welches VCS Sie verwenden, kann ein Teil der Schmerzen gelindert werden. Verteilte Versionskontrollsysteme wie Git sind nicht so schlecht, weil Sie immer noch lokal arbeiten können. Sie können sogar ein neues Repo auf einem Netzwerklaufwerk initiieren, wenn Sie wirklich Code mit einem Kollegen teilen müssen. Im Vergleich dazu können Sie mit Team Foundation keines dieser Dinge wirklich tun (trotz der ganzen lokalen Arbeitssache).

Aber das ist nur der Code. In Ihrem von der Cloud gehosteten Repository steckt viel mehr als nur der Code. Was ist mit Ihren Arbeitselementen (Funktionen / Fehlerliste)? Was ist mit deiner Dokumentation (Wiki)? Was ist mit Ihrem kontinuierlichen Integrations-Build? All diese Dinge werden wahrscheinlich auch in der Cloud neben Ihrem Code gehostet. Wie werden Sie ohne diese Dinge arbeiten, wenn Ihre Internetverbindung ausfällt?

Gitlab bietet eine kostenlose On-Premise-Version, die wahrscheinlich mehr bietet, als Ihr Team benötigt. Ich kann eine Installation vor Ort nur empfehlen. Es wird die Risiken erheblich reduzieren.

Badeente
quelle
1
Es ist erstaunlich, wie sich meine Meinung dazu ändert, seit ich mit einer zuverlässigen Internetverbindung in der Stadt arbeite. Wenn Ihr Internet zuverlässig ist, gibt es keinen Grund, die Kosten für die Wartung auf Prem-Servern zu bezahlen.
RubberDuck
1

Was sollten wir beachten, um diese Entscheidung zu treffen?

Sie sollten die Nachteile berücksichtigen. Ich habe (zusammen mit anderen) meinen derzeitigen Arbeitgeber erfolgreich ermutigt, das Hosting der Kronjuwelen des Unternehmens für geistiges Eigentum auf einem privaten Github-Repo einzustellen. Versteh mich nicht falsch; github ist fantastisch für Open Source Software.

Haben Sie bei Closed-Source-Software von github.com (oder einer Alternative) eine Geheimhaltungsvereinbarung (NDA) unterzeichnet, um Ihren Quellcode nicht für die Welt freizugeben? Viel Glück damit!

Meiner Meinung nach ist es geradezu verrückt, seine Kronjuwelen des geistigen Eigentums an eine andere Stelle weiterzugeben, bis diese andere Stelle eine NDA mit Ihnen unterzeichnet hat. Sie planen, einen Dienst wie github zu verwenden, der keine NDAs mit ihren Kunden unterzeichnet. Sie bieten stattdessen ein vages Versprechen in Form einer sehr langen EULA (Endbenutzer-Lizenzvereinbarung).

Github erkennt selbst, dass dies ein erhebliches Problem sein kann, und bietet Github Enterprise daher als Mechanismus zum Hosten von Quellcode (und anderem privaten Material) auf dem eigenen Server an.

David Hammen
quelle
4
Also ... für eine einfache Hersteller-Website sollte es dann in Ordnung sein, oder? Beim "Crown Intellectual Property" des Unternehmens geht es mehr um das, was wir herstellen, als um den Code, mit dem wir für das Unternehmen werben.
Mathieu Guindon