Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Git, Nexus & Atlassian Tool Suite

Git, Nexus & Atlassian Tool Suite

Alexander Müller

July 21, 2015
Tweet

More Decks by Alexander Müller

Other Decks in Technology

Transcript

  1. Git, Nexus & Atlassian Tool Suite Git •  Unterschiede zu

    SVN •  Feature Branches •  Merging •  Pull Requests •  Continuous Integration Nexus •  Maven & Gradle •  Gründe für ein Artifact Repository CloudBees Jenkins vs. Atlassian Bamboo •  Kosten •  GUI •  Plugins •  Integration •  Branch Management •  Pipelines •  Verteilte Builds 3
  2. Unterschiede zu SVN (1) 5 SVN Repository Working Copy Working

    Copy Working Copy Git Repository Git Repository Git Repository Git Repository Git Repository zentrale Versionskontrolle vs. dezentrale Versionskontrolle
  3. Merging (1) 8 SVN Application.java v1 SuperApplication.java v1 Application.java v1

    Application.java v2 Application.java v3 Umbenennung Code-Änderung Code-Änderung
  4. Merging (2) 9 Git Application.java v1 SuperApplication.java v2 Application.java v1

    Application.java v2 Application.java v3 Umbenennung Code-Änderung Code-Änderung Vorläufer Vorläufer Vorläufer
  5. Pull Requests (1) 10 Pull •  = Fetch + Merge

    •  Aktuellen Stand des Branches von einem anderen Repository übertragen •  Übertragenen Branch in einen anderen Branch überführen Pull Request •  “Bitte integriere meinen Branch in deinen!”
  6. Pull Requests (2) 11 Bitte integriere meinen Branch! Lass mich

    noch kurz in den Code schauen… Branch erstellt Arbeit auf dem Branch Merge des Branches
  7. Continuous Integration (1) 12 Branch per Feature + CI • 

    Kritiker: “Das ist kein reines CI!” •  Antwort: “Eben.” •  Feature Branches sind kurzlebig •  Feature Branches sind isoliert •  Gleichzeitiges Arbeiten an Dateien sorgt für Instabilität •  Feature Branches können in dedizierten Integration-Branches zusammengeführt werden
  8. Maven & Gradle 15 Apache Maven •  Build Automation Tool

    für Java Projekte •  Deklarative Beschreibung der Projektstruktur Gradle •  Build Automation Tool für Java Projekte •  Beschreibung der Projektstruktur ist ausführbarer Code Beide Werkzeuge nutzen Artifact Repositories zur Verwaltung von Abhängigkeiten und deren Versionen.
  9. Gründe für ein Artifact Repository 16 •  Versionierung von Artefakten

    (JARs, WARs, EARs, etc.) •  Unterscheidung von Release-Versionen und Snapshot-Versionen •  Alle Projekte können die gleichen Abhängigkeiten verwenden, ohne sie neu bauen zu müssen
  10. Kosten 18 CloudBees Jenkins •  Kostenlos in der Basisausführung • 

    CloudBees Jenkins Team Edition, Enterprise und Operations Center sind kostenpflichtig •  Preise hängen von der Konfiguration ab und müssen angefragt werden Atlassian Bamboo •  Kostenpflichtig •  Preise hängen von der Anzahl der Remote Agents ab
  11. Plugins 20 CloudBees Jenkins •  1000+ Plugins verfügbar •  hauptsächlich

    kostenlos Atlassian Bamboo •  150+ Plugins verfügbar •  hauptsächlich kostenpflichtig •  Plugins werden durch Atlassian verifiziert
  12. Integration 21 CloudBees Jenkins •  Verlinkung von JIRA-Tickets via Plugin

    Atlassian Bamboo •  Out-of-the-box mit JIRA und Stash •  Bidirektionale Integration •  JIRA Tickets verweisen auf Builds •  Builds verweisen auf JIRA Tickets •  Branches verweisen auf Builds •  Builds verweisen auf Branches •  Release Management mit JIRA
  13. Branch Management 22 CloudBees Jenkins •  nur über Plugins mit

    limitierten Funktionen Atlassian Bamboo •  Automatische Branch-Erkennung •  Plan Branches •  pro VCS Branch kann ein Branch vom Plan erzeugt werden - automatisch
  14. Pipelines 23 CloudBees Jenkins •  nur über Plugins mit limitierten

    Funktionen Atlassian Bamboo •  Out-of-the-box •  Pläne können andere Pläne auslösen •  Ausführung von Plänen können an Bedingungen geknüpft werden Beispiel: Pläne A und B müssen erfolgreich durchgelaufen sein, damit Plan C ausgelöst wird
  15. Verteilte Builds 24 CloudBees Jenkins •  Out-of-the-box •  „Remote Node“

    Atlassian Bamboo •  Out-of-the-box •  „Remote Agent“
  16. Atlassian Stash 26 Was ist Stash? •  einfacher Code Browser

    •  Tool-Unterstützung für Code Reviews •  JIRA-Integration •  Git, Mercurial •  Git Repository Host
  17. Atlassian FishEye 27 Was ist FishEye? •  Code Browser mit

    Such- und Reporting- Funktionen •  Tool-Unterstützung für Code Reviews •  JIRA-Integration •  SVN, Git (deprecated), Mercurial, CVS, Perforce
  18. Fragen? 29 Alexander Müller, Senior IT Consultant codecentric AG Merscheider

    Straße 1 42699 Solingen, Deutschland mobil: +49 (0) 172. 5252240 www.codecentric.de blog.codecentric.de speakerdeck.com/alexandermueller visusnet