万人协同规模下的代码管理架构演进

作者:廖超超,百度代码开发协作平台架构师,加入百度之前曾就职于阿里巴巴。在高可用架构和分布式系统设计方面有一定经验,关注互联网大规模协同开发、持续集成和持续交付等业界优秀实践。
责编:钱曙光,关注架构和算法领域,寻求报道或者投稿请发邮件qianshg@youkuaiyun.com,另有「优快云 高级架构师群」,内有诸多知名互联网公司的大牛架构师,欢迎架构师加微信qianshuguangarch申请入群,备注姓名+公司+职位。
本文为《程序员》原创文章,未经允许不得转载,更多精彩文章请订阅《程序员》

互联网研发,唯快不破。为了提升公司整体研发效率,百度引入了业界的优秀工程实践,设计开发了一整套研发工具链。主要包括项目管理平台、代码开发协作平台和持续交付平台,分别针对需求、开发和交付场景,提供工具、流程和数据支持,如图1所示。

图片描述

图1 百度研发工具链

代码管理的目标场景就是开发场景,是研发活动的核心环节,承载着打通需求、交付上下游的作用。百度代码管理建设分别从文化传播、工程实践和产品建设三个方面入手推进公司代码管理水平的不断提升。为此,我们推出了代码管理建设的五级金字塔模型,如图2所示,分别代表了代码管理建设的不同能力水平。

图片描述

图2 百度代码管理概况

最底层是代码托管,这是代码管理最基础的能力。
第二层是协同开发,就是支持各个业务线在不同的研发模式下进行快而有序地协作开发。百度的产品、业务线众多,不同的团队规模、不同的开发语言、不同的研发模式都给开发协同提出了不同的需求。
第三层是DevOps支持,实现产品全生命周期的工具全链路打通与自动化。
第四层通过研发数据度量体系的建设,给公司提供研发数据参考,促进研发流程的改进。
第五层工程师文化建设,在公司内部推行代码评审、内部开源、社交化编程等工程师文化。

百度代码管理的挑战

百度拥有万人开发团队,近十万项目,每周代码自动检出的问题超二十万,每天发起评审超1万次。为了保证代码质量,我们要求代码提交前和提交后都进行自动化检查。为了加速编译和集成,我们有大规模的分布式编译系统和持续集成系统。百度C/C++语言是源码依赖,编译系统需要检出所有的依赖代码,这样代码库的访问压力呈指数级增长。这些都是百度代码管理面临的挑战,总结起来就是这三点:代码质量、规模协同和安全稳定的服务,如图3所示。

图片描述

图3 百度代码管理遇到的挑战

面对这三大挑战,代码开发协作平台重点解决代码管理五个方面的问题:代码托管、协同开发、代码质量、代码安全与开放、研发改进。
1. 代码托管
代码托管是研发的基础设施。代码托管需要保证服务的安全、稳定和可靠,同时保证在大规模协同场景下的高性能。
2. 代码质量
基于代码入库流程,提供简单易用的代码评审,并且在评审环节支持代码扫描、编码规范、安全扫描等自动化检查,同时支持打通持续集成进行自动化测试,从而保证代码入库前就得到充分的质量检验。
3. 代码安全与开放
代码安全要求对访问控制权限做严格的限制,需要支持安全扫描和安全审计等;代码开放鼓励代码共享、开源,从而实现代码复用。
4. 协同开发
支持主流的Workflow以满足各业务线不同的研发模式的需求,如:传统的分支开发、主干开发、特性分支、git flow等工作流。
5. 研发改进
研发管理需要有数据支撑,用数据度量一切,不断地优化研发流程,促进高效协同,提升研发效率。

百度代码管理架构演进的历程

代码开发协作平台经历了这四个阶段的演进。面对不同阶段的不同问题,我们所采用的方案也不同,如图4所示。

图片描述

图4 百度代码管理架构演进的历程

产品初创时期

为了快速验证产品,我们采用了精益的思路快速实现了MVP。在代码库服务设计上,暂时不考虑容量和性能的问题,采用了Master-Slave这种单实例结构,如图5所示。

图片描述

图5 产品初创时期——架构

在这种架构下,我们主要从两个方面保证服务的安全可靠。

  1. 存储上做了RAID,同时使用DRBD实时备份数据,保证数据可靠性。我们采用的是DRBD的同步复制协议,也就是说master的数据都会实时同步到slave上。
  2. 为了保证服务的高可用,使用KeepAlived,确保在master故障时能够快速切换到slave,实现自动failover。

产品发展时期

随着平台的快速发展,代码库的并发和容量都在急剧增长。我们首先采用大内存、SSD硬盘来提升硬件性能。然后进行I/O、网络、缓存等优化。经过反复的性能测试得到了单机的最优配置。

在扩容方案上我们主要考虑了两种方案:分布式存储和数据分片。

  1. 分布式存储
    1-1. 优点是架构简单,数据有备份,容量可以横向伸缩。
    1-2. 缺点是I/O性能下降。
  2. 数据分片
    2-1. 优点是性能可靠,控制灵活,便于扩展(根据业务需求实现不同的分片策略和负载均衡方案)。
    2-2. 缺点是对现有的架构改变较大;跨分片的操作实现成本较高。

我们经过性能测试和MVP验证后,最终选择了数据分片的方案。主要的原因就是代码服务是高I/O的服务,分布式存储的I/O性能较本地存储差距比较明显,尤其写的性能更是下降了一个数量级。

图片描述

图6 产品发展时期——架构

图6所示的这版架构的主要改变是git服务分实例部署。根据Repositories进行分片,将不同的Repositories分配到不同的实例。数据库服务采用主备的方式独立部署,同时支持了数据库访问的读写分离。

用户请求首先经过proxy,调用统一的路由服务将请求转发到对应实例。认证服务独立部署,proxy集成认证模块,加强了用户身份认证。

路由服务是核心服务。为了降低业务系统的改造成本,设计了统一的路由服务和路由模块,通过切面的方式拦截所有对代码库的访问请求,从而实现对业务代码的较低侵入和对调用方的透明。在路由设计上,因为首先使用了去中心化的微服务架构,所以采用客户端路由的方式。同时,增加了本地缓存,即使路由服务宕机,路由依然可以正常运行,如图7所示。

图片描述

图7 产品发展时期——路由设计

产品成熟时期

由于编译、自动化测试、持续集成等需求出现了爆发式的增长,代码库每日读的请求超过30万次,每日写的请求超2万次。高峰时段,TPS将近1000,千兆网卡全部被打满。经过对吞吐量的需求的评估,我们预计TPS将突破10000。为了保证性能,高峰时段下载代码的速率,自动化系统应该在30MB/s以上,开发人员必须在5MB/s以上。因此,吞吐量不足的问题已经成为最核心的问题。我们的改进方案如下:

  1. 增加带宽,千兆网卡换成万兆网卡。
  2. 增加机器。通过拆分更小的实例来分摊带宽压力。增加每组实例的只读节点,因为我们的场景是读远大于写的,吞吐量的压力大多来自读请求。同时将闲置的冷备节点升级成只读节点。

图片描述

图8 产品成熟期——架构

图8是读写分离的架构图,通过proxy判断读写请求,将写请求发给master节点,读请求通过负载均衡模块分别发给实例的所有节点。在这版架构升级的过程中,我们还是采用DRBD+KeepAlived实现容灾备份方案。读写分离大大提高了系统吞吐量,但是DRBD冷备机器闲置,严重浪费资源。所以,我们做了进一步的改进。

图片描述

图9 产品成熟期——架构优化

图9是改进后的架构图,我们废弃了DRBD备份,并且实现自己的高可用方案。我们的方案主要分为两个阶段:

  1. master节点的失效判定。某个proxy节点的心跳检测捕获master节点异常后,发起投票,如果过半数的proxy节点都判断master节点异常,就判定master失效。
  2. slave节点提升。再进行一轮投票,将这组git实例中一个slave节点提升为master节点。投票完成之后,将新的实例信息写入路由服务,路由服务通知所有调用方路由变更,及时更新本地路由缓存。

代码开发协作平台的整体架构

图片描述

图10 百度代码开发协作平台架构

百度代码开发协作平台整体上采用微服务架构,基于自主研发的微服务框架构建各个业务服务单元,独立开发、发布、部署和运行。整体的架构如图10所示。

1. 接入服务
Httpd Proxy主要用于Web访问,Sshd Proxy用于Git命令行操作,API Gateway用于统一提供开放API,便于API的安全授权、管理。
在接入服务之上采用百度统一前端接入服务构建高可用负载均衡器,一方面提高系统的并发访问能力,另一方面提高系统的防攻击能力,保证平台的安全性。
2. 访问控制
平台构建统一的安全策略和用户认证体系,确保系统安全。
3. 服务中心
服务中心是服务治理的核心,提供服务注册/发现、服务路由、服务配置、服务降级、服务熔断、流量控制等功能,保证平台整体的服务稳定性。通过服务路由、配置管理中心、服务注册/发现等机制来统一管理服务,另外提供统一的管理控制台管理应用服务集群、Git集群和基础服务集群等。
4. 开放服务
平台同时支持Webhook和Plugin两种开放能力的方案,支持第三方系统方便集成。Webhook主要的应用场景是当开发人员提交代码变更后,自动触发持续集成构建。Plugin主要应用在代码评审环节的自动代码检查。
5. 业务服务
业务服务通过微服务架构组织服务单元,每一个业务服务都会注册到服务中心,在调用其他业务服务时也是通过服务中心的服务发现机制去获取某一特定服务的具体提供实例列表,通过客户端路由方式来决定具体调用哪个服务提供者,从而既保证服务可靠性,又能提高系统吞吐量。平台提供代码管理、代码浏览、代码评审、代码搜索、代码扫描等业务组件。
6. Git集群
Git集群是平台的最核心、最基础的部分。为了保证Git集群的安全、高可用和高性能,平台提供了如下能力:
6-1. 同时支持数据的软实时和硬实时备份能力。
6-2. 提供三重备份,每一份代码至少有三份拷贝。
6-3. 提供根据不同的分片策略对数据分片的能力,支持Git集群动态扩容。
6-4. 提供读写分离的能力,支持一主多备。
6-5. 提供HA方案,支持自动failover。
7. 基础服务
平台依赖数据库、索引、缓存、用户管理、通知、存储等多个基础服务。这些基础服务在保障自身可用性的同时,提高了平台整体可靠性。

企业级SaaS服务下代码管理架构实践

经过一系列的架构改进,代码开发协作平台的容量、性能、可靠性都已经得到提升和验证。随着百度效率云产品对外服务,代码管理在其他方面遇到了更大的挑战。

  1. 安全性,代码是企业核心资产,只有确保企业代码不泄漏、不丢失才能赢得企业的信任。
  2. 容量和性能的要求更高,对外服务以后会有更多的用户,更多的用户就意味着更多的Repositories和更高的并发需要平台支撑。
  3. 弹性伸缩的需求,因为企业不同发展阶段,对代码库容量和性能的需求是不同的,那就需要实现弹性伸缩以满足企业对资源的变化需求。
  4. 自动化运维主要考虑两个方面,能够支持企业快速接入,可以方便大规模集群管理。

结合以上所述企业级SaaS对代码管理的要求,我们提出了企业专属云方案,如图11所示。

图片描述

图11 专属云

我们主要从三个方面实现企业专属云:

  1. 接入层,通过统一的代理服务,集成安全认证模块,支持企业账号接入实现企业请求隔离。
  2. 应用层,采用共享服务的方式,通过统一的访问控制层实现企业隔离。
  3. 对于企业的核心资产(如:代码库、产品库等)我们在资源层做隔离,不同的企业服务运行在不同的资源上,实现真正地物理隔离。

围绕着企业专属云方案,我们在架构设计上加强了多租户的管理、资源的管理,如图12所示。

图片描述

图12 企业级SaaS服务下代码管理架构

在多租户管理方面,在统一的访问控制层增加了租户认证,所有请求都需要带上租户信息才可以通过认证。

在资源管理方面,同时支持Docker资源和虚拟机资源。企业接入时,Admin系统将自动从统一的资源池申请资源,通过Docker的方式完成自动化部署。我们同时支持混部和独立部署的方式,混部就是在同一个资源上部署多个企业的代码库实例。对于对代码安全有更高隔离要求的客户,我们将他们的服务独立部署在一台虚拟机上。

总结

百度代码开发协作平台使用微服务架构构建业务服务,一方面整合了现有的业务系统,另一方面提高了系统的稳定性和性能。使用数据分片和读写分离相结合的方式解决了代码库服务容量和性能的问题。使用专属云方案处理多租户的问题,帮助企业客户快速接入,实现资源隔离。但是,我们还有很多不足的地方有待提高和完善。比如,目前我们考虑到性能和开发成本的问题,选择了数据分片来扩容。但是,随着代码库容量的不断提升,数据分片带来的架构复杂、运维成本、性能瓶颈等问题也开始显现出来。读写分离和主备切换的方案,在高并发读的场景下工作尚可,但是面对高并发写的场景性能和可靠性就难以满足。

架构设计是和业务需求紧密相关的,只有合适的架构才是好的架构,因此,产品发展的不同阶段需要选择不同的技术架构方案。同时,一种可演进的架构是应对业务需求发展和变化的较优选择。


SDCC 2017•上海站将于2017年3月17-19日登陆申城,三大技术峰会和24位嘉宾,汇聚国内知名的互联网公司CTO、架构师、技术总监,畅谈运维、数据库和架构的热门话题和技术热点,遇见精益运维发起人&优维科技CEO王津银、MongoDB大中华区首席架构师唐建法等大牛,五人团购报名立减1500元,详情点击注册参会

图片描述

今天出一个candence 17.4 allego的安装教程 7、安装完成,接下来进行补丁更新,找到Hotfix_SPB17.40.035_wint.iso软件 ,右击鼠标选择装载。6、因为之前选择的定制安装,这一步不知道具体要安装啥,因此都勾选,点击NECK,接下来等待安装完成。后面经过仔细对比,发现是前面更新补丁时选择了F盘,F盘是candence安装包,不是补丁。8、在破戒大师里选择安装更新补丁,并找到刚才装载的安装包里的程序,点击下一步。3、打开破戒大师,找到安装candence进行如下图选择,点击下一步。有耐心的人可以重新卸了再装一边,我就不卸了,直接装。 阅读详情

相关推荐

playwright-mcp 安装使用的详细教程

Playwright MCP 快速入门指南 Playwright MCP Server 是由微软开发的浏览器自动化服务,通过 MCP 协议为 AI/Agent/LLM 提供网页交互能力。它基于可访问性树而非屏幕截图,支持多种浏览器和运行模式。 安装要求: Node.js v18+ 命令行操作能力 支持 MCP 的客户端 安装方式: 通过 npx 快速启动:npx @playwright/mcp@latest 项目依赖安装:npm install @playwright/mcp 主要特性: 支持 Chrome

上善若水 7987

百度推出基于大模型的代码编写助手“Comate”真的好用吗?

‍点击蓝字 关注我们关注并星标从此不迷路计算机视觉研究院公众号ID|计算机视觉研究院学习群|扫码在主页获取加入方式计算机视觉研究院专栏Column of Computer Vision Institute6月6日,在文心大模型技术交流会(成都)上,百度智能云推出“Comate”代码助手,并正式开放邀测。借助文心大模型的理解、推理能力,“Comate”可实现代码的快速补齐、自然语言推荐代码、自动查找...

gzq0723的博客 6047

Quartus Prime 软件 USB-blaster 驱动安装失败【已解决】

一、安装步骤 1、将FPGA 开发板插入电脑时,未安装驱动的电脑会提示安装usb-Blaster驱动。Windows搜索框打开设备管理器,在“其他设备”下会发现黄色感叹号的“USB-Blaster”的设备驱动。 2、Quartus系列软件的安装目录下自带USB-blaster的驱动程序,右键更新驱动,选择驱动目录:(D:\intelFPGA\18.1\quartus\drivers\usb-blaster,文件位置和版本请按照自己安装的路径选择),点击Next开始安装。 3、安装成功,重启电脑即可使

adolphwang_909086的博客 6万+

百度分享--分享按钮的实现

 百度分享代码: <%@ page contentType="text/html;charset=UTF-8"%><div class="bdsharebuttonbox"><a href="#" class="bds_more" data-cmd="more"></a><a href="#"...

weixin_34290390的博客 1669

从网格划分到结果解读:一次完整的子弹侵彻LS-DYNA仿真避坑指南

本文详细解析了子弹侵彻LS-DYNA仿真中的关键技术与避坑指南,涵盖网格优化、对称边界条件设置、沙漏控制参数调整及结果可信度验证。通过HyperMesh网格划分和LS-DYNA高级参数配置,帮助工程师提升仿真精度与效率,确保计算结果物理可信。

weixin_29816689的博客 406

JS实例(三)图片的缓慢放大和缩小

  我们经常能看到在一些网站中可以通过按钮实现对图片的放大或者缩小,也有可能是鼠标经过时图片放大。在本例中就是通过JavaScript实现图片的放大和缩小。   首先是进行简单的页面布局 1 <div class="imagedispose"> 2 <img src="1.jpeg" id="imaged" width="400px" height="3...

weixin_34235105的博客 313

项目实训(六)——基于Gitea的代码管理框架搭建与实践

本项目通过集成Gitea API实现了完整的代码版本管理系统。主要包含合并请求管理、版本历史查看和代码差异比较等核心功能。在前端采用Vue3框架构建用户界面,实现了左右分栏的版本控制页面;后端使用Java封装Gitea API,提供统一的服务接口。通过这种架构设计,不仅规范了团队开发流程,也提高了代码管理效率。

2301_80139489的博客 796

手把手教你解决COLMAP编译中的Ceres CUDA支持问题(附详细配置步骤)

本文详细解析了COLMAP编译中Ceres CUDA支持问题的完整解决方案,包括环境准备、Ceres Solver的CUDA编译配置、COLMAP的CUDA集成配置等关键步骤。通过优化CMake参数和解决常见错误,帮助技术人员充分利用GPU加速优势,提升三维重建效率。

vodka的博客 858

研发工具链介绍

本节课程为《研发工具链介绍》,我们将主要学习三个工具。项目管理工具—iCafe、代码管理工具—iCode、交付平台—iPipe。 此外我们知道,管理实践具有以下三个特点:①用“精益”指引产品规划;②用“敏捷”加速迭代开发;③用“数据”驱动持续改进。而本节课程学习的这三个工具,就是对管理实践三个特点的完美覆盖。 项目管理工具——iCafe 01 需求管理 需求管理是一个项目的基石。在互联网行业中,因为产品需求迭代快速这一特点,需求管理一直非常令人头疼。所以如何对需求进行更好的管理,更好的做出产品规划对互联.

weixin_41888295的博客 1675

【专栏导引贴】100+智能优化算法:从背景原理到代码实战(持续更新)

本专栏系统整理100+种现代优化算法,涵盖粒子群优化(PSO)、遗传算法(GA)、鲸鱼优化(WOA)等经典方法,以及白鲸优化(BWO)、非洲秃鹫优化(AVOA)等新兴算法。每篇详解包含生物启发原理、数学模型、代码实现及工程应用,采用统一编程风格,提供可直接运行的实例代码。专栏持续更新,旨在为研究者提供系统化的智能优化算法参考资料,实现从理论到实践的完整知识链。目前已收录23种算法,包括蚁群系统(ACS)、蝙蝠算法(BA)、天牛须搜索(BAS)等自然启发式优化方法。

qq_42212808的博客 3650

【NI Multisim 14.0编辑环境——项目管理器】

主窗口包括标题栏、菜单栏、工具栏、工作区域、电子表格视图(信息窗口)、状态栏及项目管理器7个部分。 上期我们了解了工具栏,今天我们继续了解项目管理器。 一、项目管理器 在原理图设计中经常用到的工作面板有“设计工具箱”面板、“SPICE网表查看器”面板及“LabVIEW 协同仿真终端”面板。 1.“设计工具箱”面板 基本位于工作界面左侧,主要用于层次电路的显示。启动软件,默认创建的“设计1”以分层的形式显示出来。 那么如何打开“设计工具箱”面板呢?如图所示:在该面板中显示 SPICE 网表的输入,输出

RL2698853114的博客 2035

《百度万人协同规模下的代码管理架构演进》读后感

《百度万人协同规模下的代码管理架构演进》读后感 《百度万人协同规模下的代码管理架构演进》主要讲解了百度代码管理架构演进的历程,对不同阶段的不同问题,采用的不同方案进行了详细的讲解。 1、产品初创时期 为了快速验证产品,采用了精益的思路快速实现了MVP。在代码库服务设计上,暂时不考虑容量和性能的问题,采用了Master-Slave这种单实例结构, 在这种架构下,主要从两个方面保证服务的安全可靠...

weixin_33897722的博客 140

Python爬虫实战:采集行业协会、研究机构等平台的政策文件列表与PDF链接批量收集系统,支持自动下载、分类归档和数据库管理(SQLite持久化存储)!

我长期专注 Python 爬虫工程化实战,主理专栏 👉 《Python爬虫实战》:从采集策略到反爬对抗,从数据清洗到分布式调度,持续输出可复用的方法论与可落地案例。内容主打一个“能跑、能用、能扩展”,让数据价值真正做到——抓得到、洗得净、用得上。

喵手的博客 640

《百度万人协同规模下的代码管理架构演进》阅读有感

《百度万人协同规模下的代码管理架构演进》阅读有感 互联网研发,唯快不破。为了提升公司整体研发效率,百度引入了业界的优秀工程实践,设计开发了一整套研发工具链。主要包括项目管理平台、代码开发协作平台和持续交付平台,分别针对需求、开发和交付场景,提供工具、流程和数据支持,如图1所示。 图1 百度研发工具链 代码管理的目标场景就是开发场景,是研发活动的核心环节...

weixin_30662011的博客 123

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

百度万人协同规模下的代码管理架构演进

互联网研发,唯快不破。为了提升公司整体研发效率,百度引入了业界的优秀工程实践,设计开发了一整套研发工具链。主要包括项目管理平台、代码开发协作平台和持续交付平台,分别针对需求、开发和交付场景,提供工具、流程和数据支持,如图1所示。 图1 百度研发工具链 代码管理的目标场景就是开发场景,是研发活动的核心环节,承载着打通需求、交付上下游的作用。百度代码管理建设分别从文

u014344668的专栏 2876

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

感悟:百度万人协同规模下的代码管理架构演进

百度代码管理的挑战 百度拥有万人开发团队,近十万项目,每周代码自动检出的问题超二十万,每天发起评审超1万次。为了保证代码质量,我们要求代码提交前和提交后都进行自动化检查。为了加速编译和集成,我们有大规模的分布式编译系统和持续集成系统。百度C/C++语言是源码依赖,编译系统需要检出所有的依赖代码,这样代码库的访问压力呈指数级增长。这些都是百度代码管理面临的挑战,总结起来就是这三点:代码质量、规模...

weixin_30326741的博客 149

研发协同平台架构演进

导读 系统架构是一个系统的灵魂,然而一个好的架构(或者更确切的说,一个合适的系统架构)不是一蹴而就,一下子就能完全设计出来的,而是随着系统发展,逐步演进的。本文将介绍明源云研发协同平台的架构从0到1,逐步随着业务发展一步一步迭代演进的过程。 背景 随着公司的ToB业务发展,开发团队规模不断扩大,需要交付的业务也不断增长,在这个过程中,交付的效率和质量出现了不同程度的问题,虽然也有QA团队制定的流程...

weixin_30675967的博客 3180

各大互联网公司架构演进之路汇总 | 2020最新最全

△Hollis, 一个对Coding有着独特追求的人△整理 l Hollis来源 l Hollis(ID:hollischuang)在互联网行业中,有两种优秀的技术人,一种是热衷于分享技...

HollisChuang's Blog 4298

各大互联网公司架构演进之路汇总

本文转载自公众号Hollis 最近,整理个各大互联网公司的架构演进相关介绍,让我们一起看一看各大互联网公司在成长过程中遇到过哪些问题,又是如何解决问题的。希望对你有帮助!建议收藏保存。 支付宝和蚂蚁花呗的技术架构及实践 支付宝的高可用与容灾架构演进 余额宝技术架构及演进 淘宝数据魔方技术架构解析 淘宝技术发展历程和架构经验分享 淘宝架构演进背后——零售业务中台架构设计探讨及实践 ...

勇往直前的专栏 1027

互联网应用架构面面观

内容简介 立足互联网行业,架构通常指的是技术架构,更具体一点的说是系统架构、软件架构,或者是最常见的网站架构。本期我们共同探讨2017年互联网时代,实战型技术架构的演进过程及其优缺点等诸多方面。 京东分布式数据库系统演进之路(张成远,京东云资深架构师) 万人协同规模下的代码管理架构演进(廖超超,百度代码开发协作平台架构师) 微信数据强一致高可用分布式数据库 PhxSQL 设计与实现(陈俊超,腾讯...

GitChat 1882
上一篇: 【SDCC讲师专访】专访MongoDB唐建法:从关系型数据库到MongoDB的战略迁移
下一篇: MVCC原理探究及MySQL源码实现分析
仲培艺
博客等级 码龄10年 750粉丝 264原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值