




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
工作模式创新,及多中心分布式架构蒋鑫‣Gitcontributor(gitclean-i,...)‣Gitl10ncoordinator(/git-l10n/git-po)‣《Git权lub》,2011(/gotgit/gotgit)‣2005—2015L自雇佣L前一半时间vpSVNLe一半时间h纠正这O错误‣2015.12加入华PiSourceg队๏“买买买?还是自研?”跳出同质竞争的红海跳出同质竞争的红海驶入模式创新的蓝海GiEHFbAoHeCedE:eH:oleoAenDoFCce阿里腾讯GiEHFbAoHeCedE:eH:oleoAenDoFCce阿里腾讯MicrosoftVSTS度OMEGA.Distributed;freedom;commitanywhere,anytime.Geeky...Fork+PullRequestSocialSocial.Syncofforkrepos;wasteofdisk.spacesMulti-repomanagement,gitsubmodule?..ReviewinGooglestyleMulti-reposolution:repo...Projectbyproject,notaplatformCentralized,lackoffreedomJustforreview,andtheUI•Git工作流创新•多中心Git架构clone分布式工作流的困扰1:服务器端的存储压力cloneFreshclone,andhardlinksAfternewpushandGCfork origin originRepo100分布式工作流的困扰2:客户端操作的复杂性fork origin originRepo100upstreaupstream 本地gitremoteaddupstreamURLgitfetchupstreamgitrebaseupstream/mastergitpush-foriginHEADReverseMergeRequestupstreaupstream 本地owabout 本地forkFork1RepoFork1forkFork2RepoFork2......forkForkFork100•slowdownclone/fetch•loosereferences,highIO•chaosofvisibilityofallrefs•Multiplereposinoneproject,why?‣GC,clonearequiteslowforbigrepos;auth;microservices•gitsubmodule:适用范围:仓库少,松鹅合‣Recurisivesubmodules:描述复杂的目录嵌套‣Updateofgitlinks.迟更新和超前更新问题‣Conflictofgitlinks.支持几万研发,简直是灾难仓仓nosubmodulesOne-stopMulti-EndpointsGitAccessAPI#2merge-requestAPI#4GETsuper-mr/:idAPI#3super-mrAPI#1GET/ssh-infogitpush--receive-pack=omegaorigin\HEAD:refs/for/target-branch/local-branchgitlab-shell(omega:能读即能写)•••‣CCe3Ee-RMRbyAFD:‣DC3fEmode-RMROMEGA模式操作示例gitpushoriginHEAD:refs/for/master/my/topic1#moregitcommit...gitpushoriginHEAD:refs/for/master/my/topic1gitpushoriginHEAD:refs/for/master/my/topic2cloneclone集中式工作流典型分布式工作流派派生克隆本i分yw交v送mtMR创rfM游d步xXMR说明分y比较c起MR删除分yritOMEGA服务名--receive-pack="gerritreceive-pack[options]"--receive-pack="omega[options]"代码检视Change(percommit)MergeRequest(perfeature)特殊refspecHEAD:refs/for/masterHEAD:refs/drafts/masterHEAD:refs/for/master/local/branchHEAD:refs/drafts/master/local/branch提交和检视任务的关联•githook:commit-msg•在提交说明中嵌入唯一的标识•Change-Id:I......•Noclientsidehooks•无须在提交说明中嵌入特殊标识•同一个用户/本地分支对应同一个MR多仓库管理模式Manifest客户端工具repo•OnlyforLinux•Onlysupportmultiplerepos•Clonefrombundlegit-mm•支持Linux、Windows等•既支持多仓模式,也支持单仓操作•支持git-lfs•支持bundle*•支持batchquery*MMXML<?xmlversion="1.0"encoding="UTF-8"?><manifest><remotename="iSource".../><defaultrevision="master".../><projectpath=...MMXML<?xmlversion="1.0"encoding="UTF-8"?><manifest><remotename="iSource".../><defaultrevision="master".../><projectpath=...name=...groups=.../><projectpath=...name=...groups=.../>.....</manifest>•Git-MM:GitMulti-ModuleL参考Androidrepo方案L是适配OMEGA的repoL用Golangsc。•w供统一的Git环境设置。参考:Autodesk/enterprise-config-for-git•d时w供kRfaR解Y方案。XML‣gitconfig--globalalias.review“git-mm--single”XML•Bundle和batchrequest‣gitmminit-uURL‣gitmmsync‣gitmmupload‣gitreview•Git工作流创新•多中心Git架构gitfetch-pack/gitsend-packCGIgitfetch-pack/gitsend-packCGIgitupload-pack/gitreceive-packGit仓库存储客户端传输层服务端GitoverSSHGitlabWebUIGitoverHTTPNginxOpenSSH.ssh/authorized_keysgitlab-shellEgitlab-workhorseauthreqauthreqNginxOpenSSH.ssh/authorized_keysgitlab-shellEgitlab-workhorseauthreqauthreqEDatabasedisCPUgitupload-pack/gitreceive-packgitupload-pack/gitreceive-pack高IO容量Unicornsidekiqgitlab-railssidekiqAPIRuggedlibgit2Git仓库存储GitGitGerritMySQLOpenSSHWebWebouteouteGitGitGitSpokes(DGit),2016BigtableADBKGit+RPCALEMGit+RPCAMCQGit+RPCEGFHEGFHGit+RPCGit+GitGitGerritMySQLOpenSSHWebWebouteouteGitGitGitSpokes(DGit),2016BigtableADBKGit+RPCALEMGit+RPCAMCQGit+RPCEGFHEGFHGit+RPCGit+RPCJLKMJLKMGit+RPCGit+RPCGitGitGitGCDRBDhealing&re-balancejGoogle分布式存储方案GitHub本地存储分片方案OpenSSHMySQLMySQLouteSSHTunnelGGFSGit+RPCAACCBBDDGit+RPCAACCBBDDUnicorngitlab-railsclientUnicorngitlab-railsclientOpenSSH(AuthUnicorngitlab-railsclientUnicorngitlab-railsclientOpenSSH(AuthbyMySQL)gitlab-shellOpenSSH(AuthbyMySQL)gitlab-shellSSHTunnelGit+RPCGit+RPCNAS2NAS3Git+RPCNAS1DatabaseGitoverSSHGitlabWebUIGitoverHTTPLB(LVS-DR)NNginxgitlab-workhorseNginxgitlab-workhorseSSHTunnelGSAND(routingmicroservice)dis•Git靠近存储,无NFS•应用层三副本复制NginxRemoteTunnelNginxgitlab-workhorseOpenSSHgitlab-shellOpenSSHgitlab-NginxRemoteTunnelNginxgitlab-workhorseOpenSSHgitlab-shellOpenSSHgitlab-shellNginxGSAND-MDCMsgQueueAmirrorAmastergitlab-workhorseLocalTunnelGitSyncGitlab社区版本的架构演进TimetoLeavetheCloud》thecloud》infrastructurecompany”stingsolutionforaproblem”GitoverSSHGitlabWebUIGitoverHTTPNginxgitlab-workhorseOpenSSHgitlab-shellauth(shard) auth(shard)gitalyhandlergitaly-upload-packgitalyNginxgitlab-workhorseOpenSSHgitlab-shellauth(shard) auth(shard)gitalyhandlergitaly-upload-packgitaly-receive-packGit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 通信行业采购订单与合同风险管理
- 高端金融咨询服务保密及成果转化合作协议
- 车辆赠与及汽车保险理赔服务合同
- 整栋酒店式公寓租赁及运营管理协议
- 餐饮企业跨区域投资合作合同
- 厂房废墟改造方案
- 农业现代化牛场场地租赁合同范本(含环保设施建设)
- 知识产权全流程保护法律服务合同
- 安全叉车操作培训与承包服务协议书
- 牛场租赁与养殖人才培养服务合同
- 综采工作面液压支架安装回撤工职业技能理论考试题库150题(含答案)
- 电气类实验室安全培训
- 场地平整项目承包合同范本
- 船舶修理行业专业实践操作规范
- 河南省历年中考语文现代文阅读之非连续性文本阅读5篇(截至2024年)
- 麦秸秆环保板材项目可行性研究报告
- 加工厂股东合作合同范例专业版
- 市政工程安全文明施工标准化手册
- 水利水电工程施工机械台班费定额
- 山东某智慧农场项目可行性研究报告
- 新版《医疗器械经营质量管理规范》(2024)培训试题及答案
评论
0/150
提交评论