Bitbucket: Smart Mirroring und die Vorteile für verteilte Teams

Wer mit der Arbeit in verteilten Teams vertraut ist, kennt die besondere Kultur und die besonderen Herausforderungen dieses Settings. Und viele Remote-Entwicklungsteams werden durch langwierige Clone- und Fetch-Prozesse täglich aufs neue an die spezielle Situation erinnert.

Git-Spiegel bieten eine technische Antwort auf Bedenken, die Organisationen gegenüber verteilten Entwicklungsteams haben. Mit dem Smart-Mirroring-Feature in Bitbucket Data Center dauert das Klonen eine 5-GB-Repositorys lediglich ein paar Minuten statt eine Stunde oder länger. Die Entwickler können sich mit dem Schreiben und Reviewen von Code beschäftigen, statt auf ihn zu warten. Darüber hinaus unterstützt Smart Mirroring die Software-Entwicklung in verteilten Teams noch auf weiteren Ebenen.

Onboarding neuer Entwickler

Die Einarbeitung eines neuen Entwicklers ist auch dessen erster Einblick in die Kultur und die Prozesse des Teams und des Unternehmens. Sicherzustellen, dass er die passende Hardware, alle nötigen Systemzugänge und die Dokumentation zum Aufsetzen seiner Entwicklungsumgebung hat, ist nicht nur für die Produktivität wichtig.

In einem verteilten Team reduziert Bitbucket mit der Smart-Mirroring-Lösung die Einarbeitungsschritte. Das Team und der Entwickler verbringen weniger Zeit damit, lokal Git-Repositories aufzusetzen, und vermeiden Probleme wie Authentifizierungsfehler oder inkorrekte Fetch-URLs.

Traditionell bedeutet das Spiegeln eines Git-Repos die Erstellung eines neuen Repositorys. Jedes Remote-Repository muss weiterhin Aktualisierungen vom Master-Repo ziehen. Für ein Team, das mit Git-Mirroring arbeitet, ist damit die Konfiguration einer Remote-Fetch-URL (Spiegel) und einer Origin-Push-URL (Primärinstanz) erforderlich.

Bitbucket strafft diese Konfiguration: Dank Push-Proxy können Entwickler mit einer URL arbeiten. Wo sonst zwei URLs zu pflegen sind – eine für das Fetchen vom Spiegel und eine für das Pushen zum Primär-Server–, lassen sich hier beide Operationen zu einer einzelnen HTTP- oder SSH-URL kombinieren. Auf den ersten Blick mag das marginal wirken, doch es hilft dem Team beim lokalen Aufsetzen neuer Repos und bei der Erstellung einer konsistenten technischen Dokumentation.

Tägliche Arbeit mit Git

Die Zeiten, in denen Nutzer geduldig zehn Minuten auf einen Download von wenigen MB gewartet haben, sind lange vorbei, und in der modernen Arbeitswelt sind stundenlange Prozesse natürlich Gift für die Produktivität. Für verteilte Teams in einem Software-Unternehmen ist langes Warten auf eine Git-Kopie nicht selten eine schmerzhafte Erinnerung daran, dass die Werkzeuge, auf die die Entwickler sich verlassen, weit davon entfernt sind, die Produktivität und Effizienz der Entwicklungsarbeit zu unterstützen und zu stärken.

Mit Git-Spiegeln ist das anders. Dank dieser Technologie können verteilte Teams Repos in Windeseile klonen und fetchen. Wenn ein Entwickler bereit ist, ein Pull-Request anzulegen, ist es am CI-/CD-System, das letzte Changeset zu fetchen oder zu klonen. Und Bitbucket Data Center bietet Unterstützung für die Skalierung des gesamten Software-Entwicklungszyklus.

Viele Kunden von Bitbucket Data Center haben ihre Infrastruktur so konfiguriert, dass das CI-/CD-System auf einen Smart Mirror statt auf die Primärinstanz zeigt. Dieses Vorgehen erlaubt es, den Schwung an Git-Requests zu managen, der durch einen Build-Plan mit parallelen oder kaskadierenden Build-Stufen entsteht.

Aber dann gibt es noch Szenarien wie diese: Die Primärinstanz in San Francisco ist von einem großflächigen Netzwerkausfall betroffen; damit kann die Smart-Mirror-Kopie in Sydney sich nicht aktualisieren und ist veraltet. Statt auf Fehlersuche zu gehen, warum Tests gegen einen alten Build laufen, bietet Bitbucket für einen solchen Fall Just-in-time-Fetching: Der Spiegel „weiß“, dass die lokale Kopie veraltet ist, und versucht zu synchronisieren, ehe er Clone- oder Fetch-Anfragen bedient.

Verlässlichkeit auch in Problemsituationen

Wenn ein Team am zentralen Standort arbeitet und im Zweifel nur zur IT rübergehen muss, ist es in der Regel recht einfach, bei Problemen Unterstützung zu erhalten und die Lösungsansätze zu verfolgen. Sind Teams jedoch über Standorte und vielleicht sogar Zeitzonen verteilt, ist ein technisches Problem oder ein Ausfall oft nicht ganz so effizient zu lösen.

Smart-Mirroring fügt eine zusätzliche Resilienzebene hinzu. Im Fall einer systemweiten Störung ist das Team für eine gewisse Zeit weiterhin in der Lage, Repos zu klonen und zu fetchen – selbst wenn die Primärinstanz down ist. Entwickler, die vor dem Ausfall via Mirror eingeloggt sind, können fortfahren, bis der Nutzer-Cache abläuft.

Mit Remote-Teams und -Mitarbeitern gehen besondere Herausforderungen einher. Bitbucket Data Center bietet für solche Szenarien nicht nur Skalierbarkeit und Resilienz, sondern stärkt die Verbindung verteilt arbeitender Software-Teams und damit die Entwicklung des Produkts.

Git und Bitbucket effektiv nutzen? Wir sind Ihr Partner!

Möchten Sie mehr über Atlassians Git-Repository-Manager Bitbucket erfahren? Würden Sie die Lösung gerne unverbindlich testen? Oder suchen Sie Unterstützung bei der Transition zu Git? Wir sind Atlassian Platinum Solution Partner und helfen Ihnen bei allen Aspekten rund um die Einführung von Bitbucket Server oder Bitbucket Data Center: Evaluierung, Lizenzierung, Adaption, Optimierung.

Weiterführende Infos

Neue Enterprise-Features in Bitbucket für Git-Entwicklungsteams: Smart Mirroring, Git Large File Storage, Projekte
Bitbucket Data Center: Smart Mirroring und Large File Storage kombinieren
Branch-basierte Git-Workflows adaptieren
So funktioniert die Lizenzierung von Atlassian-Produkten