粉色裤子搭什么上衣| 黄瓜不能和什么一起吃| 芨芨草长什么样图片| 鼻涕黄粘稠是什么原因| 四十年是什么婚| 肺结核通过什么途径传染| 羊得布病什么症状| 哈达是什么意思| 和南圣众是什么意思| 稳是什么意思| 63年属什么生肖| 什么一现| 盆腔炎做什么检查| 支气管炎吃什么| 做梦怀孕了是什么意思| 腹胀便溏是什么意思| 胳膊困疼是什么原因| 无聊干什么| 蟑螂中药名称叫什么| 10月27是什么星座| ts是什么意思| 脸色发青是什么原因引起的| 肚子胀气放屁吃什么药| 身份证数字分别代表什么| vd是什么| 嗓子疼吃什么水果好得快| 紫癜病是什么病| 胃溃疡吃什么药| 肠套叠是什么意思| 人中有痣代表什么| 后脑勺发热是什么原因| 槟榔为什么上瘾| 党的执政理念是什么| 脑梗前有什么预兆| 什么是化学| 团宠是什么意思| 过敏性紫癜看什么科| 咽炎吃什么消炎药最好| 甲醇对人体有什么伤害| 雄性激素是什么| 猫咪弓背是什么原因| 手心脚心发热是什么原因引起的| 什么情况要做支气管镜| 菏泽有什么好玩的地方| 小孩放屁很臭是什么原因| 双职工是什么意思| 高粱是什么| 唐筛21三体临界风险是什么意思| 做梦梦见蛇是什么征兆| 男人脚底发热是什么病| 什么样的智齿需要拔| 金牛女跟什么星座最配| 梦见头上长虱子是什么意思| 鱼扣是鱼的什么部位| 媚眼如丝是什么意思| 鬼压床是什么原因造成的| 黄瓜为什么会苦| 喝酒后吃头孢有什么反应| 中医行业五行属什么| 盆腔积液吃什么药好| 无犯罪证明需要什么材料| 左克是什么药| 小丑叫什么| 左室舒张功能减退是什么意思| 打火机的气体是什么| 英五行属什么| 4月23日是什么日子| palladium是什么牌子| 小孩呕吐是什么原因引起的| 血压高压低是什么原因| dob值阳性是什么意思| 新生儿为什么有黄疸| 胸椎退变是什么意思| 老汉是什么意思| 睡久了头疼是什么原因| 夜宵和宵夜有什么区别| 腋下淋巴结挂什么科| 颈椎病吃什么药好| vegan是什么意思| 重庆市长是什么级别| 为什么会有霉菌性阴道炎| 顺钟向转位是什么意思| 左胸隐痛什么原因| 左肾小囊肿是什么意思| 过敏痒用什么药膏| 层次是什么意思| 什么是心肌炎| 青海有什么湖| 越什么越什么的词语| 盆腔少量积液是什么意思| 西葫芦炒什么好吃| 农历六月是什么生肖| allin什么意思| 儿童铅超标有什么症状| 土方是什么| 噬血细胞综合征是什么病| 蚂蚁上树是什么菜| 胃肠炎吃什么药好| vvip是什么意思| 11月21日什么星座| 急性肠胃炎是什么引起的| 啊哈是什么意思| 区人大代表是什么级别| 大陆对什么| 乙肝e抗体高是什么意思| 胃火吃什么食物好| 1995是什么年| 小满是什么意思| 商鞅变法是什么时期| 瘦的人吃什么才能变胖| 试商是什么意思| 什么是辟谷| 维生素ad和维生素d有什么区别| 脖子短是什么原因| 曹植是什么生肖| 望洋兴叹什么意思| 副乡长是什么级别| 鸡胗炒什么菜好吃| 下雨为什么会打雷闪电| 脚痒用什么药| 胃潴留是什么意思| 甲状腺肿物是什么意思| 阴道干燥是什么原因| 婴儿吃什么奶粉好呢| 减肥期间适合喝什么酒| 民警是干什么的| 狗贫血吃什么补血最快| 做月子要注意什么| 牛的本命佛是什么佛| 0x00000024蓝屏代码是什么意思| 寒门子弟是什么意思| 65年属什么生肖| 骆驼吃什么| 粉荷花的花语是什么| 精血亏虚吃什么中成药| 白化病是什么遗传| 什么补肾效果最好| 什么叫梗| Picu病房是什么意思| 什么是机械键盘| 牛b克拉斯什么意思| 女性的排卵期是什么时候| 禾加比读什么| 禾字五行属什么的| kick什么意思| 二月十三是什么星座| 放疗后不能吃什么| 止鼾什么方法最有效| 知柏地黄丸治疗什么病| 褥疮用什么药膏| 宝宝尿少是什么原因| 三天打鱼两天晒网什么意思| 梦见买衣服是什么意思| 七月二号是什么日子| 什么水越洗越脏| 射手座和什么座最配对| 朝鲜和韩国什么时候分开的| 怀孕腿抽筋是因为什么原因引起的| 神助攻什么意思| river是什么意思| 六小龄童的真名叫什么| 查甲功是什么意思| 痛风什么感觉| 脑震荡有什么症状| 吃无花果干有什么好处| 碳14是检查什么的| 宫颈潴留性囊肿是什么| 经常性偏头疼是什么原因| 甲状腺实性结节什么意思| 矫正度数是什么意思| 4月1号什么星座| 间歇脉多见于什么病| 乡和镇的区别是什么| 汤力水是什么| 血糖高的人适合吃什么水果| 暴跳如雷是什么意思| 日后好相见的前一句是什么| 证监会是干什么的| 善根是什么意思| 人参吃了有什么好处| 耦合是什么意思| 近字五行属什么| 病人化疗期间吃什么好| 阴茎进入阴道是什么感觉| 大名是什么意思| 副镇长是什么级别| 出大汗是什么原因| 什么是积食| 长个子需要补充什么| 热水器什么牌子好| 伴手礼是什么| 巫师是什么意思| 吃什么治肝病| 头晕是什么原因| 梦见骨灰盒是什么征兆| 横纹肌溶解什么意思| 容易感冒的人缺什么| 肝胆胰脾挂什么科| 洁身自爱是什么生肖| 相对是什么意思| h的大写字母是什么| 什么是乳清蛋白粉| 典韦字什么| 今日什么冲什么生肖| rt表示什么意思| 兔子的天敌是什么动物| 男人喝劲酒有什么好处| 2016年属猴是什么命| 熬夜 吃什么| 上将相当于什么级别| 消防队属于什么单位| 牛肉不能和什么食物一起吃| 财鱼是什么鱼| 寡糖是什么| 梦见打苍蝇是什么意思| 半月板退变是什么意思| 围产期是什么意思| 微波炉里不能放什么| 笑点低的人说明什么| 肠胃湿热吃什么药好| 南昌有什么好玩的地方| 京东plus是什么意思| 白细胞计数高是什么原因| 598分能上什么大学| 梦见大领导有什么预兆| 学籍卡是什么样子图片| 脸浮肿是什么原因| 双鱼座是什么性格| 抑郁症什么症状表现| 赵国是现在的什么地方| asic是什么意思| 小孩口腔溃疡是什么原因| 绿头牌是什么意思| 眼睛老是肿着是什么原因造成的| 睡觉小腿抽筋是什么原因| 全脂乳粉是什么| 拉肚子适合吃什么| 康熙的儿子叫什么| 气虚的人适合什么运动| agc什么意思| 过期茶叶有什么用途| 灵芝孢子粉什么时候吃最好| 着床出血是什么样的| 陕西八大怪是什么| 感冒了吃什么水果比较好| 万宝龙手表什么档次| 微信什么时候推出的| 酒精胶是粘什么的| 鼻咽炎吃什么药| 制动什么意思| 农历10月是什么月| 一月十二号是什么星座| 血清胃功能检测是什么| wing什么意思| 喝菊花水有什么好处| 办离婚证需要带什么证件| 一什么摇篮| 睾丸是什么意思| 蔑视是什么意思| 吃山竹有什么好处和坏处| 风热感冒吃什么水果| 丈夫的弟弟叫什么| 为什么一进去就射了| 炖鸭汤放什么食材最好| 百度
BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News How Amazon Uses Guardrails in Software Development

怕痒的男人意味着什么

Listen to this article -  0:00

Carlos Arguelles spoke about Amazon’s inflection points in engineering productivity at QCon San Francisco, where he explained that shift testing left can help catch issues early. He suggested using guardrails such as code reviews and coverage checks. Your repo strategy, monorepo or multirepo, will impact the guardrails that need to be in place.

When a company is new, it has to move fast, so there are very few guardrails in place. It’s also generally small enough where you know all the people touching a codebase, Arguelles said. As your customer base grows and more and more people depend on your product, it becomes increasingly important to adopt best practices and ensure everybody adheres to them, he added. Those guardrails don’t come for free: they add friction and reduce your ability to move fast in places, so there’s often a tradeoff here.

As a company grows, investing in custom developer tools may become necessary, as Arguelles explained in Inflection Points in Engineering Productivity:

Initially, standard tools suffice, but as the company scales in engineers, maturity, and complexity, industry tools may no longer meet needs. Inflection points, such as a crisis, hyper-growth, or reaching a new market, often trigger these investments, providing opportunities for improving productivity and operational excellence.

The software development life cycle at Amazon starts with an inner developer loop, where an engineer iterates on a piece of code in their own workspace. By default, engineers run unit tests, gather and gate on code coverage and execute various linters every time they create a build, Arguelles said. When they submit a code review, the code review tool runs a number of additional tests on that code.

When those validations pass and the engineer has thumbs up from their reviewer, the code gets pushed to a repo and CI/CD shepherds that code change through various testing stages and increasingly exhaustive tests, including load and performance tests, before finally pushing to production, Arguelles explained:

We expect most of our code changes to reach production within hours of checkin, as all the guardrails should be automated. Once they reach production, canaries further validate the changes.

Finding issues earlier is always better, Arguelles mentioned. And shifting testing left so that you can catch issues in the inner developer loop (pre-submit), and not in the outer developer loop (post-submit) becomes more and more important as your codebase grows:

This is because if a bad piece of code is submitted and merged, it now blocks N developers around you until it’s rolled back or fixed, and as your system grows, so does N.

Shifting testing left is non-trivial because in order for you to effectively and reliably run end-to-end integration tests against unreleased code you need to invest in ephemeral, hermetic test environments, Arguelles said.

One critical decision that Amazon made is that they operate in a multi-repo world, meaning every team has their own micro-repo. This is in contrast with other companies that have gone the route of a monorepo for the entire company (like Google).

Google uses a monorepo where ~100k engineers use a single repo with no branches. Everybody has to be committed to the health of the repo, because the blast radius of a bad code checkin is enormous; you could literally block thousands of people, Arguelles said. Pre-submit end-to-end testing is not just "nice-to-have," but business-critical.

Amazon, on the other hand, chose to go the route of multirepos, with every team having essentially their own repo, Arguelles mentioned. This acts as a natural blast-radius reduction mechanism: a bad checkin can break an individual microrepo, but there are more guardrails in place to prevent it from cascading into other team’s microrepos.

Arguelles mentioned that there’s unavoidable complexity in large systems. How you choose to do your development determines where in the software development lifecycle you need to deal with that complexity. Neither company was able to avoid it, but they’re tackling it either pre- or post- submit, he concluded.

InfoQ interviewed Carlos Arguelles about guardrails and micro vs mono repo.

InfoQ: How do guardrails at Amazon look?

Carlos Arguelles: For example, when Amazon was a much smaller company in 2009, you could quickly ssh to a production host to investigate an issue, tail logs, etc. Any manual interaction is inherently a dangerous thing to do - imagine you type the wrong command or accidentally press an extra "0" and bring down that host or cause data loss. So we put guardrails such that if you want to run a command on a production host, it needs to be code reviewed and there’s an auditable record of your action.

Another example is you cannot submit code directly to a repo without going through code review and having a thumbs up from another person. Or we now gate on code coverage drops to ensure all code going to production meets a minimum test coverage bar. Tooling like this provides scalable ways to encode and enforce best practices.

InfoQ: What are the implications of working with micro repos compared to monorepo?

Arguelles: This is a place where the two places where I worked, Amazon and Google, differed significantly because of a foundational decision made by both companies decades ago: Google using a monorepo and Amazon micro repos.

This decision impacts guardrails that need to be in place. For Amazon, end-to-end pre-submit testing was "nice-to-have," but it was not business-critical.

The decision to have micro repos at Amazon did not come for free, though. In a monorepo, every service is naturally integrated, whereas in a multirepo world, you need to coordinate how changes safely cascade from repo to repo.

About the Author

Rate this Article

Adoption
Style

BT
检查心脏做什么检查 绿色搭配什么颜色好看 鬼冢虎属于什么档次 脂肪肝吃什么药好得快 人的价值是什么
阴差阳错是什么意思 文化大革命什么时候 月经下不来吃什么药 谷氨酰转肽酶高是什么原因 客观原因是什么意思
贴士是什么意思 头皮屑是什么东西 苏铁是什么植物 清茶是什么茶 紫玫瑰代表什么意思
调理是什么意思 85年什么命 舌头上有齿痕是什么原因 女装大佬什么意思 为什么现在
热敷眼睛有什么好处hcv9jop6ns6r.cn 帕金森病是什么病hcv8jop2ns6r.cn 什么丝什么缕hcv7jop9ns0r.cn 什么解酒快hcv9jop0ns1r.cn 梦见盖新房子是什么意思hcv9jop4ns3r.cn
真我是什么意思hcv9jop0ns9r.cn 梦到刷牙什么意思hcv8jop6ns6r.cn 武的部首是什么hcv8jop0ns6r.cn 肠道感染有什么症状hcv7jop5ns2r.cn 牡丹花什么颜色0735v.com
赖氨酸有什么作用hcv9jop2ns1r.cn 贼是什么生肖hcv7jop6ns1r.cn 内向男生适合什么工作96micro.com 药物流产吃什么药hcv9jop2ns8r.cn 左耳烫代表什么预兆hcv8jop4ns2r.cn
胡饼是什么hcv9jop5ns0r.cn 梦见去墓地是什么预兆mmeoe.com 喜气洋洋是什么意思hcv7jop5ns6r.cn 巨蟹座和什么座最配对hcv8jop9ns8r.cn 氯雷他定不能和什么药一起吃hcv8jop2ns1r.cn
百度