资源预览内容
第1页 / 共42页
第2页 / 共42页
第3页 / 共42页
第4页 / 共42页
第5页 / 共42页
第6页 / 共42页
第7页 / 共42页
第8页 / 共42页
第9页 / 共42页
第10页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
高效研发体系构建 C 落地实践分享 GOOGLE SRE 07-14 YouTube Video transcoding, streaming, storage ( 1PB/month ) Your cat video will be processed. Global CDN network ( 10K nodes, peaking 10Tbps egress). View cat video everywhere! GOOGLE SRE 07-14 Google Cloud Platform Machine lifecycle management ( clusters globally, Y machines) Broke and fi thousands of machines every day. Borg , Omega ( million jobs scheduled every week) 都是一些不存在的网站 问:问: 从从大公司离职去小公司当大公司离职去小公司当 CTO 是一种怎样的是一种怎样的体验体验? 知乎用户的答案 顶着CTO的名头干着技术组长兼打杂的事情, 包括但不限于招聘,培训,鼓励程序猿。拉网线, 查机房,搜破解码,装系统,重装系统。讨论方案, 推翻方案,重新定方案,确定进度,拖延进度,重 新定进度,安抚程序员,安抚老板。 工作内容一般不包括Coding。 CTO 是什么 鼓励师 网管 受气包 研发人员管理 研发技术/环境管理 研发流程管理 高效研发体系要素 人 技术 流程 问:创业公司需要什么样的人 全栈工程师 全栈工程师 1 全栈工程师 2 全干工程师 正确的组队姿势 如果集齐N个工程师, 就能解锁神龙 CODING 服务架构 1 CORE CODING 服务架构 2 CORE Front Infra Cache Queue MYSQL GIT Repo FileSystem NFS MQ Email Beanstalk Mysql Other Shop MYSQL Mart IDE Docker Registry CloudFoundry API server Mysql Postgresql Mango DEA CodeInsight CI Build Analysis CONWAY 铁律 Every organization that design system will produce a design which copies said organizations communication structure. 老板说:要有功能 前端代码要改 A来做! CORE 代码要改 B来做! 服务层代码要改 C来做? DB层代码要改 D来做? 测试部署环境都要改 谁来做?! 工程师日常工作状态 项目进度会议 实践: 全员全栈(产品) Feature Ownership Knowledge sharing Reduce unnecessary compleity 全员全栈的支柱:研发环境 和工具管理 代码?! 运行?! 部署?! 人 技术 过程 问:在G公司当码农是什么体验? 那酸爽,简直不敢相信! 不存在的公司是怎么玩的 整个公司只有一个Repo 一键编译运行任何程序 一键部署起停整个服务 理都懂,城会玩, 然并卵,臣妾做不到啊! 代码是如何用的 Goal: 统一代码结构,Enable代码引用,复用。 Solution: GIT multi repo + “repo” tool. One project one repo Everyone work in same “workspace” repo Use “repo” tool to sync across repo. Additional bonus: CodeInsight 代码阅读 Code quality analysis 代码质量分析 WORKSPACE workspace/ src/ coding/ coding-front/ coding-local/ repo.sh default.ml ./repo.sh sync REPO MANIFEST 开发环境 Goal 统一的,代码化,可复制,可重现的开发环境 Solution build.sh+package.sh / bazel Vagrant + docker Additional Bonus Enable automation. 编译系统接口比实现重要 coding/build.sh + coding/package.sh Or Bazel build /coding:server Transitive dependency 可复制,可重用的开发环境 Workspace Source Vagrant VM Docker Run VAGRANT Automated VM management tool. Download common BASE Bo. Apply customizations, pick provider (local + remote) Enjoy your VM. Additional Bonus: pre-populated repo caches. 运行:代码化! jobs : jobs : name: “coding-backend“ image: “coding-backend:Y“ env: jobs: 人 过程 技术 依赖太多跑不起:代码化! $ go run stack.go up Job: coding-front Image: coding-front: State: /coding-front_: Up 1 s Job: coding-backend Image: coding-backend:Y State: /coding-backend_Y: Up 1 s Job: mysql Image: mysql:5.5 State: /mysql_5.5: Up 1 s 人 过程 技术 实践: 统一的,代码化,可复 制,可重现的研发环境 Enable/Encourage collaboration. Enable new member. Enable automation. Enable more productivity tools. 高效研发体系要素 人 技术 流程 CTO的小小理想 CODE REVIEW Do Brain failure detector / 脑抽检测器. Knowledge sharing / 知识共享,信息共享 Idea generator / 基情四射 Dont Show superiority / 程序员鄙视链 Ownership / Responsibility / 责任不明确 Power struggle / 代码风格,态度问题。 RELEASE SCHEDULE 变冲刺为长跑 Monday / Wednesday , Staging Tuesday / Thursday , Production Friday, 该干嘛干嘛, 给程序员空间 Additional Bonus Enable planning INFRA TEAM / FEATURE TEAM 保证业务进度的同时,推进内部技术演进。 Coding-one Coding-two Coding-CI Additional Bonus: Horizontal Improvement PUSH ON GREEN 那只是一个神话. 人 技术 流程
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号