| In large Internet companies,software development is increasingly focused on engineering efficiency,and most large Internet companies are experimenting with the DevOps development process.DevOps is a methodology that combines process,method,and system thinking.And promote the synergy between requirements,development,testing and release of multiple processes,the beginning of the DevOps process and the basis of the engineering development business is code management,therefore,the study of storage issues such as high availability and security to ensure code inventory storage is particularly important.The code storage cluster of the hosting platform stores the code base in a way of sub-library,and the routing module is designed in the application layer.The routing module can effectively store the changes of the code base to the specified node when the code operation is performed.The platform acts as a Git code hosting platform,so the reverse proxy of the Git client adopts the OpenResty and SSH transmission based on the Mina-sshd custom proxy for HTTP transmission;the hosting platform adopts the microservice architecture,and the transmission of the RPC interface between the modules adopts Dubbo.The code storage design solves the problem of how the client and browser usage scenarios dock the routing module so that routing can also be made when calling each service.Since the hosting platform will trigger code compilation,continuous integration and other upstream and downstream services,each cluster of code storage management design adopts a master-slave mode,a code,and three backups to ensure the security of the code.The slave node adopts a read-write separation strategy to ensure the availability and efficiency of code reading and writing when the code is stored.When the Internet development team needs to support a 10,000-level R&D team,the company code will accumulate more than 100,000 projects,and the daily request volume will reach one million.The underlying code platform based on Git version control relies on JGit.The code review and storage of the platform depends on Gerrit,so the code base size has already exceeded the single-machine limit supported by Gerrit,so the core problem is to study how the platform solves the problem of code storage.Therefore,the storage design has solved this pain point. |