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?
quelle
Antworten:
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.
quelle
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
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.
quelle
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.
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."
quelle
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.
quelle
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.
quelle