Git architects


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Conceptually simple Integration Manager not needed (in theory) May lead to conflict Doesn't scale
  • Who do you think “G” is?
  • Git architects

    1. 1. Git ArchitectsPresentation: 1hrWorkshop: 1hr © Terence ChiaRevision: 1.2 1 September 2010
    2. 2. Git Architects● System Design ● Production Release● Team Design ● Testing● Software Design ● Issue Management● Code Organisation ● Continuous Integration● Environment ● Configuration● Infrastructure ● Backups● Development ● Security Process ● Performance
    3. 3. System Design● Legacy Systems● Modularity / n-tier● New Systems● Integration● Support
    4. 4. Team Design● Existing Team● Skill Sets● Development Capability● Team Evolution – Hiring / Training● Support
    5. 5. Software Design● Legacy code● Define Universe● Define Interfaces● Modularity● New Development● Integration● Support
    6. 6. Code Organisation● Modularity● Maintenance● Define Interfaces● New Development● Integration● Support
    7. 7. Environment● Development Environment● Resource Schedules● Local / Remote / Team size● Tools● Licenses
    8. 8. Infrastructure● Servers● Databases● Message Buses● Network Connectivity● Load● Storage● Security / Repository Security● Licenses
    9. 9. Development Processes● Agile / Waterfall● Code Access Protocols● Testing● Terminology – Beta / Alpha / RC● Issue Tracking / Notifications● Continuous Integration● Release
    10. 10. Git Workflow: Centralised● Centralised A● Simple● Possible Conflict C B Central● Doesnt Scale Repo● Overall: Below Average D E
    11. 11. Git Workflow: Peer 2 Peer● N to N Mesh A● Self-organising Teams C B● Flexible● Possible Conflict● Good for RAD D E● No Point of Truth● Doesnt Scale F● Overall: Bad
    12. 12. Git Workflow: Hybrid A● Semi-Centralised● Higher C Satellite B Repo Complexity● Reduced Conflicts D Central G Repo● Point of Truth● Scales Satellite Repo● Lacks Process● Overall: Average E F
    13. 13. Git Workflow: Integration Mgr● Mid-sized Teams A A Public Private● Self-organising B B Teams Public Private● Integration C C Manager Public Private● Point of Truth● Not Scalable● Defined Processes Blessed G Integration Repo Manager● IM Bottleneck● Overall: Better
    14. 14. Git Workflow: Dictator A A● Large Teams Public Private● Lieutenant/s (IM) B Public B Private● Large Teams C C Overheads Public Private●● Point of Truth● Scalable F Lieutenant E Lieutenant● Defined Processes Blessed Repo● Overall: Good G Dictator
    15. 15. And so on ...
    16. 16. Production Release● Schedule● Dependencies● Git for Configuration● Passwords● Push / Pull / Manual● Code Integrity
    17. 17. Testing● Servers● Databases● Message Buses● Network Connectivity● Load● Storage● Security● Licenses
    18. 18. Issue Management● Jira / Trac / Redmine / more...● Git for Versioning – Branches & Tags● Issue Aging● Burndown / Burnup● Gantt● Resourcing
    19. 19. Continuous Integration● Realtime / Daily Integration● Git Hooks● Jenkins
    20. 20. Git for Configuration● Dev / Test / Production Environments● Minor configuration changes● Logging changes● Configuration Security
    21. 21. Git for Backups● Code Backups● Data Backups● Redundancy / Replication● Automated● Rsync?
    22. 22. Security● Repository Security● Codebase Signing● Infrastructure Security
    23. 23. Git Performance● When is code checked in?● Code? Data? Media? Configuration?● Binary Files? Or Text?● Repository Size● History● Improving Performance– git fsck – git gc (packing)● Case Studies
    24. 24. Thank You● Questions?● Design Exercises. © Terence Chia 1 September 2010