Size Does Matter – Große Repos in Git

Wenn ein Projekt stark wächst oder bereits groß ist, steht die Entscheidung an, ob es in viele kleine Repos aufgeteilt oder in ein großes Repo abgelegt werden soll. Das Arbeiten mit kleinen Repos ist normalerweise unproblematisch und gut beschrieben. Der Monorepo-Ansatz bietet allerdings auch Vorteile, so sind modulübergreifende Branches und Commits möglich. Dadurch werden globale Refactorings, beispielsweise gravierende Änderungen der API, einfach möglich.

Allerdings gibt es neue Herausforderungen, wenn ein Repo größer wird und viele Entwickler gleichzeitig daran arbeiten wollen. Viele und große Dateien blähen das Repository auf und machen das Arbeiten zäh. Viele Tags und Branches werden irgendwann sehr unübersichtlich.

Git bietet jede Menge Tools und Optionen, um hier zu unterstützen. Viele davon sind jedoch kaum bekannt. Wir geben einen Überblick und empfehlen Tools und Vorgehensweisen, mit denen Sie die Herausforderungen großer Repos angehen können.

Vorkenntnisse

* Der Vortrag ist an Teilnehmer gerichtet, die bereits einige Erfahrung mit Git gesammelt haben.

Lernziele

* Tools, Optionen und Vorgehensweisen kennenlernen, die beim Umgang mit großen Git-Repos helfen – zum Beispiel shallow clones, sparse checkouts, reference clones, lfs, fsmonitor-watchman, filter-branch und bfg.

 

Agenda

ab 8.30 Uhr Registrierung und Begrüßungskaffee

9.30 Uhr Beginn

Intro

Machine Learning

  • Was ist Machine Learning?
  • Der typische ML Workflow
  • Was sind neuronale Netze?
  • Jupyter Lab mit Python
  • Eine Einführung in TensorFlow
  • Keras als High-Level API für TensorFlow

Praxisteil: Deep Learning Modelle mit Keras

  • Datengeneratoren
  • Datasets explorativ analysieren
  • Hold-Out vs. Cross Validation

11.00 - 11.15 Uhr: Kaffeepause

Praxisteil: Deep Learning Modelle mit Keras

  • Feed-Forward Netzarchitektur
  • Convolutional Neural Networks als Deep Learning Ansatz
  • Evaluation und Visualisierung des Modells

12.30 - 13.30 Uhr: Mittagspause

Pipelines mit Luigi

  • Anforderungen an produktive Modelle
  • Übersicht über Luigi und dessen Module
  • Bau eines Beispiel-Workflows

Praxisteil: Den Keras-Workflow mit Luigi implementieren

  • Anforderungen an produktive Modelle
  • Übersicht über Luigi und dessen Module
  • Bau eines Beispiel-Workflows

15.30 - 15.45 Uhr: Kaffeepause

Praxisteil: TensorFlow-Serving

  • Übersicht über TensorFlow-Serving
  • Ladestrategien konfigurieren
  • Deployment des Modells

ca. 17.00 Uhr: Ende

 

Referenten

 

René Preißel René Preißel arbeitet als selbstständiger Softwarearchitekt, Entwickler und Trainer. Seine Schwerpunkte liegen im Bereich Softwarearchitektur, Java-Technologien und Konfigurationsmanagement.

Bjørn Stachmann Bjørn Stachmann arbeitet als Softwarearchitekt bei OTTO im Projekt BRAIN daran mit, eine BI-Plattform zu schaffen, die es ermöglicht, OTTO zur Data-driven Company zu machen. Seine Schwerpunkte dabei sind Hadoop, insbesondere HBase, Java-Entwicklung und Git.

Platin-Sponsor

Gold-Sponsor

Silber-Sponsoren


CLC-Newsletter

Sie möchten über die Continuous Lifecycle
auf dem Laufenden gehalten werden?

 

Anmelden