Slide 1

Slide 1 text

CONCEPT  PEOPLE      IT-­‐TALK     Ein  Erfahrungsbericht   Erfolgreicher  Ums9eg  auf  Git       René  Preißel  (eToSquare)   Nils  Hartmann  (Techniker  Krankenkasse)      

Slide 2

Slide 2 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   VORSTELLUNG   René  Preißel  |  Freiberuflicher   SoGwarearchitekt,  Entwickler  und  Trainer   Co-­‐Autor  des  Buchs  „Git:  Dezentrale  Versionsverwaltung   im  Team  –  Grundlagen  und  Workflows“   Kontakt:  [email protected]     Nils  Hartmann  |  Java-­‐SoGwareentwickler,   Techniker  Krankenkasse     Schwerpunkte:  OSGi,  Eclipse  und  Build-­‐Management   Kontakt:  [email protected]  

Slide 3

Slide 3 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   AGENDA   •  Ausgangssituaaon   •  Git  vs  Synergy   •  Repositories  &  Branches   •  Entwicklungsprozess  mit  Git   •  Tooling   •  Einführung   •  Fragen  &  Diskussionen  

Slide 4

Slide 4 text

CONCEPT  PEOPLE      IT-­‐TALK       Ausgangssitua9on      

Slide 5

Slide 5 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   AUSGANGSSITUATION:  TKEASY   TKeasy   •  1  Soeware  Ÿ  120  Produkte   •  65.000  Java  Klassen   •  700  MB  Code   •  120  Entwickler     Regelmäßige  Releases   •  5-­‐6  Major  Releases  pro  Jahr   •  1  Bugfix    pro  Woche  

Slide 6

Slide 6 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   AUSGANGSSITUATION:  SYNERGY   Synergy   •  Von  IBM  übernommen   •  Sehr  hohe  Lizenzkosten   •  Zu  langsam  für  die  Code-­‐Größe     Entwicklungsprozess   •  Synergy  Change   •  Komplex  

Slide 7

Slide 7 text

CONCEPT  PEOPLE      IT-­‐TALK       Git  vs.  Synergy      

Slide 8

Slide 8 text

GIT  –  DEZENTRALE  VERSIONSVERWALTUNG   Zentraler  Ansatz,  z.B.   Subversion  und  Synergy   Dezentraler  Ansatz  

Slide 9

Slide 9 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   ZUSTÄNDE  UND  QUERIES  IN  SYNERGY   Change  C   Rel.  4.5  /  offen   Task   Task   Task   Change  B   Rel.  4.0  /  freigegeben   Task   Task   Task   Change  A   Rel.  4.5  /  freigegeben   Task   Task   Task   Freigegeben   Rel.  <=4.5   Versionen  von     Dateien   Release  -­‐  Build  

Slide 10

Slide 10 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   COMMITS  UND  BRANCHES  IN  GIT   •   Jedes  Commit  versioniert  das  gesamte  Projekt   •   Integrierte  Änderungen  müssen  explizit  ausgebaut  werden  

Slide 11

Slide 11 text

CONCEPT  PEOPLE      IT-­‐TALK       Repositories  &  Branches      

Slide 12

Slide 12 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   REPOSITORIES  –  ANFORDERUNGEN     +  Einfache  Verwaltung   +  Sehr  gut  für  zentralen  Build   -  Git-­‐Operaaonen  dauern  lange  (klonen,  git  status  etc)   -  Keine  feingranularen  Berechagungen  möglich   -  Sehr  viele  Commits  =>  komplexe  Historie   +  Git-­‐Operaaonen  gehen  sehr  schnell   -  Hoher  Verwaltungsaufwand   -  Probleme  beim  Refaktoring  

Slide 13

Slide 13 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   REPOSITORIES  -­‐  ANFORDERUNGEN   •  Weboberfläche   •  Source  Code  Suche   •  Verlinkung  aus  Stacktraces  etc   •  Rechteverwaltung   •  Qualitätssicherung  /  Code  Review   •  REST  API  /  Plug-­‐ins  

Slide 14

Slide 14 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   REPOSITORY-­‐VERWALTUNG:  ALTERNATIVEN   •  Volltext-­‐Suche   •  (Eingeschränkte)  Rechteverwaltung   •  „Amend-­‐basierter“  Workflow   •  Konfigurierbare  Code-­‐Review-­‐Regeln   •  Feingranulares  Berechagungssystem   •  Konfigurierbare  Code-­‐Review-­‐Regeln   •  Bei  Projekt-­‐Start  noch  nicht  verfügbar  

Slide 15

Slide 15 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   int master „manueller“ non-fast-forward Merge ďƵŐĮdž prod BRANCH  MODELL    „TK  GIT  FLOW“  

Slide 16

Slide 16 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   int master „manueller“ non-fast-forward Merge ďƵŐĮdž prod Release 13.03 13.03 13.04 13.05 BRANCH  MODELL    „TK  GIT  FLOW“  

Slide 17

Slide 17 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   int master „manueller“ non-fast-forward Merge ďƵŐĮdž prod ͣĂƵƚŽŵĂƟƐĐŚĞƌ͞ŶŽŶͲĨĂƐƚͲĨŽƌǁĂƌĚDĞƌŐĞ Release 13.03 13.03 13.04 13.05 BRANCH  MODELL    „TK  GIT  FLOW“  

Slide 18

Slide 18 text

CONCEPT  PEOPLE      IT-­‐TALK       Entwicklungsprozess  mit  Git      

Slide 19

Slide 19 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   TK  ENTWICKLUNGSPROZESS   •  Changes  müssen  freigegeben  werden   •  Changes  müssen  isoliert  entwickelt  werden   •  Jeder  Change  benöagt  Review     Synergy   •  Integrierte  Change  Verwaltung   •  Freigaben  über  Change  Zustand     •  Einsammeln  über  Query  

Slide 20

Slide 20 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   EINEN  CHANGE  BEARBEITEN      1   •  Verwaltung  der  Changes  in  Atlassian  Jira   •  Change  wird  auf  Topic-­‐Branch  entwickelt   master topic-2 Beginn Topic-Branch topic-1

Slide 21

Slide 21 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   EINEN  CHANGE  BEARBEITEN      2   master topic-2 Beginn Topic-Branch topic-1 Pull Request

Slide 22

Slide 22 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   EINEN  CHANGE  BEARBEITEN      3   •  Automaascher  Build,  QS,  Tests  

Slide 23

Slide 23 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   EINEN  CHANGE  BEARBEITEN      4   •  Freigabe  über  den  Jira-­‐Vorgang   •  Beim  Deployment  werden  Freigaben  überprüe    git log int..prod | grep Jira-Id Bei  Nicht-­‐Freigabe  eines  Changes   •  Änderungen  müssen  ausgebaut  werden   •  Git  Reverse  Commit    

Slide 24

Slide 24 text

CONCEPT  PEOPLE      IT-­‐TALK       Tooling      

Slide 25

Slide 25 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   TOOLING  FÜR  ENTWICKLER   Egit  –  Git  Team  Provider   •  Sehr  „technisch“   •  Kein  Workflow   •  Fehlerhaee  Merges   Mylyn  –  Taskverwaltung     •  Topic-­‐Branch  akavieren  nicht   implemenaert    

Slide 26

Slide 26 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   TOOLING  FÜR  ENTWICKLER   •  Authenafizieren  und  Klonen  

Slide 27

Slide 27 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   TOOLING  FÜR  ENTWICKLER   •  Branches  anlegen  und  wechseln  

Slide 28

Slide 28 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   TOOLING  FÜR  ENTWICKLER  

Slide 29

Slide 29 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   TOOLING  FÜR  ENTWICKLER   •  CGit  für  Merge-­‐Operaaonen    

Slide 30

Slide 30 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   TOOLING  FÜR  BUILDMANAGEMENT   •  Vollständiges  Build  benöagt  alle  Produkte  und   dauert  lange   •  Vor  der  Integraaon  eines  Topic-­‐Branches  soll   ein  Build  inklusive  Tests  durchgeführt  werden   •  Schnelle  Builds  einzelner  Produkte  notwendig   •  Jedes  Produkt  kann  separat  mit  den  letzten   Versionen  abhängiger  Produkte  gebaut  werden      

Slide 31

Slide 31 text

GIT  SUBTREE   •  Vollständiges  Build   benöagt  alle   Produkte   •  Git-­‐Subtree  wird  für   die  Integraaon  aller   Produkte  in  ein   Repository  benutzt  

Slide 32

Slide 32 text

PRODUKT-­‐BUILD  

Slide 33

Slide 33 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   TOOLING  FÜR  CHANGEMANAGEMENT   •  Automaasche  Merges   •  Taggen  von  Code-­‐Ständen  (Installierte  Stände)   •  Abgleich  von  Git  und  Jira   •  Erzeugen  und  Pflegen  von  Jenkins  Jobs   •  Java,  Python,  Git  Bash   •  REST-­‐APIs  

Slide 34

Slide 34 text

CONCEPT  PEOPLE      IT-­‐TALK       Einführung  &  Fazit      

Slide 35

Slide 35 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   MIGRATIONSPFAD   Git 13.04 Build 13.03 Build 13.05-A Build 13.05-B Build 14.01 Build Produktentwicklung in Synergy Git Synergy

Slide 36

Slide 36 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   EINFÜHRUNG   •  Beschränkung  auf  essenaelle  Git-­‐Features   •  Frühzeiage  Ausbildung  interner  Experten   •  Entwicklerschulungen  kurz  vor  der  Umstellung   •  Verzicht  auf  Übernahme  der  gesamten   Historie   Kein  Big  Bang  

Slide 37

Slide 37 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   PROBLEME:  VIELE  NEUE  KONZEPTE   •  Lokale  vs  Remote-­‐Branches   •  Commit  vs  Push   •  „Wo  ist  mein  Change?“   •  Jira  vs  Git  vs  Jenkins...   •  Viele  potenaelle  Fehlerquellen  

Slide 38

Slide 38 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   PROBLEME:  MERGE-­‐KONFLIKTE   •  Synergy:  pessimisasche  Sperren  

Slide 39

Slide 39 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   FAZIT   •  Umstellung  hat  gut  geklappt   •  Einführung  länger  als  geplant   •  Absammung  der  Prozesse  aufwendiger  als   Umstellung  der  Tools   •  Prakasche  Umstellung  hat  gut  funkaoniert   •  ToollandschaG  hat  sich  verbessert   •  Weniger  Bugs   •  Mehr  Auswahl    

Slide 40

Slide 40 text

RENÉ  PREISSEL  |  NILS  HARTMANN,  10.  FEBRUAR  2014   VIELEN  DANK!