Microservices and Monorepos

Microservices and Monorepos

Microservices and Monorepos Match made in heaven? Sven Erik Knop, Perforce Software Overview . Microservices refresher . Microservices and versioning . What are Monorepos and why use them? . These two concepts seem to contradict – why mix them together? . The magic of narrow cloning . A match made in heaven! 2 Why Microservices? . Monolithic approach: App 3 Database Microservices approach . Individual Services 4 DB DB Database Versioning Microservices . Code . Executables and Containers . Configuration . Natural choice: individual repositories for each service Git . But: • Security • Visibility • Refactoring • Single change id to rule them all? 5 Monorepo . Why would you use a monorepo? . Who is using monorepos? . How would you use a monorepo? 6 Monorepos: Why would you do this? . Single Source of Truth for all projects . Simplified security . Configuration and Refactoring across entire application . Single change id across all projects . Examples: • Google, Facebook, Twitter, Salesforce, ... 7 Single change across projects change 314156 8 Monorepos: Antipatterns User workspace User workspace 9 Monorepos – view mapping User workspace . Map one or more services . Users only access files they need . Simplified pushing of changes 10 What does this have to do with Git? . Git does not support Monorepos • Limitations on number and size of files, history, contributing users • Companies have tried and failed . Android source spread over a thousand Git repositories • Requires repo and gerrit to work with 11 How can we square this circle? https://en.wikipedia.org/wiki/Squaring_the_circle 12 Narrow cloning! . Clone individual projects/services . Clone a group of projects into a single repo 13 Working with narrowly cloned repos . Users work normally in Git . Fetch and push changes from and to monorepo . SHAs preserved within the same repo . SHAs for compound repos will differ • But: common change id in the monorepo 14 So what does Perforce have to offer? . The vendor talk bit ... 15 Who we are . Perforce helps delivery teams build Global 24x7 Support complex products collaboratively, securely and efficiently. Commonly used for… • Software • Games • Electronics • Animations • Chipsets • Medical Devices • IoT 16 Managing IP for market leaders Games Chips Cloud/SW Electronics Systems Automotive & Animation 17 Perforce Helix . Hybrid Workflows CONSUMERS • Distributed & Centralized Version control, code reviews, simple file sharing • Happy developers & contributors . Every File • Efficiently handles large, often binary, data . DevOps Stay Happy & Productive • A mainline source for all builds even with distributed development CONTRIBUTORS . All IP Safe & Secure • Granular permissions, theft risk monitoring 18 Serves developers Serves operations More code Perforce Helix More performance More frequently Coordinate Development & Operations at Scale More uptime More freedom More control More flexibility Better coordination All text Binaries Small files Large files Code anywhere Protect IP Local repos Regulations/audit 19 GitSwarm: Integrated Git Management . Self-service repos . Merge requests . Permissions . Issue tracking, etc. Based on GitLab CE 20 Mirrored to the Helix Versioning Engine . Automatic bidirectional mirroring with Helix servers . Helix enforces security, down to the file level if needed . Immutable content for audit trails, regulated industries, etc. Support for Git LFS that works for DevOps 21 Work Locally, Scale Globally GitSwarm Helix . Distributed environment . Single source of truth for developers . Perforce reliability and stability . Git experience and workflow protecting your assets equivalent to well known tools 22 Microservices and Monorepos? Narrow cloning ... 23.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    23 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us