DevOps案例研究|史上最能“拜客户教”的公司,是如何做到持续交付的?(第1趴)...

内容来源:DevOps案例深度研究 –Amazon持续交付之道战队(本文只展示部分PPT及研究成果,更多细节请关注案例分享会,及本公众号。)

本案例内容贡献者:单冰 (Topic Leader)、 赵栋、梁兴龙、李杰、毛艳清、牛恒

本次案例解读:王立杰

640?wx_fmt=jpeg

(图片来源于网络)

今天给大家拆解一家公司,一家可以称之为史上最能“拜客户教”的公司,而且它几乎连续20年如一日没有盈利!

640?wx_fmt=png

注:整个案例研究分成如下几个部分,本文为该系列文章的第一篇,后续内容会在本公众号持续发布,请大家关注“DevOps”公众号!避免错过后面的精彩内容。

640?wx_fmt=png

Amazon的发展历史

640?wx_fmt=png

先重点介绍一下Amazon公司的发展历史和文化背景,这样大家才能对“这家公司为何要把DevOps提到公司战略高度”,有一个清晰的认知。

640?wx_fmt=png

参考资料:https://zhuanlan.zhihu.com/p/24834655 李善友老师的公开演讲《战略》,图书《一网打尽》

《一网打尽》这本书建议大家去看看,是Amazon创始人贝索斯的传记。

书中介绍了贝索斯为什么创业,为什么选择互联网,为什么要卖书,这个决策过程非常有意思。 

1994年2月,贝索斯读了一本杂志叫《矩阵新闻》,《矩阵新闻》里刊登了一连串数据,这些数据震惊了贝索斯。 

“1993年1月份到1994年1月份这一年时间里边,网络传输速度提升了 2057 个单位,这同一个时间的数据包及一个单位的数据,在同一个时间段,网络传播速度提升了2560个单位。”

其实杂志中的这两个数据,很多人都看到了,但绝大多数人就是看到了而已。而这两个数字震惊了贝索斯,贝索斯从这一连串数据里推断,那一年整个网络运营上升了2300个单位,相当于增长了2300%。 

贝索斯说,“任何事物都不可能增长那么快”,“这件事情超乎寻常,让我思 索良久”,换句话说,贝索斯发现了一个百倍速增长的要素。正是这个洞见一下子就像一个闪电一样击中了贝索斯,他说我一定要进到这个产业里面去。 

大家看啊!牛人之所以牛,就在于他能够发现机会!!

但接下来就有一个问题,如果我进到互联网这个高速变化的产业里边去,我应该做什么呢? 

贝索斯研究了20多个产品品类,最终他认为最佳的选择是图书。所以贝索斯Amazon一开始选择的业务破局点是图书电商。 

1997年贝索斯致股东信中有一句话:“Amazon的使命是成为领先的产品与服务的在线零售商,而一开始我们会聚焦在书籍市场。”换句话说,1997 年的Amazon只是相当于我们中国的什么?当当而已(大家看看,你有多久没有用当当啦?)。 

到了1999年的时候,他说,“我们的使命是成为全世界最以消费者为中心的公司,一个消费者可以在这里买到任何东西的线上平台。” 这时它就变成了京东、淘宝、天猫,一个线上电商平台。 

到2002年的时候又有了新的变化,其使命呈现为这么一句话:“我们的使命是成为全世界最以消费者为中心的公司。” 这个时候它的竞争对手已经变成了线下的沃尔玛、线上的所有一切。也就是说:线上线下的一切都变成他的竞争对手,变成他的战场。

大家想想看啊!如果说,你要跟所有人PK,那么你得做得与众不同吧?你得打出你的特色来吧?你得让顾客记住你关键的一点吧?那怎么做呢?

贝索斯说 “有很多方法将业务集中于一点”。换句话说,它的隐含假设是一个公司必须找到一个战略支点。正如其使命“Amazon要成为世界上最以客户为中心的公司”。 

这些从贝索斯每年的《致股东信》里,可见一斑!!

640?wx_fmt=png

Amazon的企业文化

640?wx_fmt=png

很多公司都会在墙上贴上所谓的企业文化,但也仅仅是贴出来而已。如果你深刻理解贝索斯,理解Amazon,就会相信它的确把“以消费者为中心”融在它的血液里,融在它的战略里,融在它日常管理的每一步里。 

640?wx_fmt=png

《2018年贝索斯致股东信》里有这样一段话,这段话里充满了一种悖论性的力量。 

我非常欣赏客户的原因之一是客户总是感到不满意。”这件事非常有意思,客户的预期总在变化,他要求越来越高,昨天的惊喜很快就变成今天的习以为常。我发现这个变化的速度比以前更快。所以今天这个世界里边,你不能躺在冠军的奖杯之上。 

他认为这个世界有两种进步速度:第一种进步速度是客户需求的速度越来越高,但他认为这是一件好事情,理应如此,他对此并无抱怨。

他的解决方案是什么呢?他提出另外一种进步速度:我们应该如何超越客户不断提升的预期呢?高标准。

在电商领域和零售领域,他理解到用户体验、客户体验中的关键要素是什么呢?只有3个,这3个要素简单到你难以置信。

“在瞬息万变的零售业里边: 

第一,客户要低价。

第二,客户想要更快捷的配送。

第三,客户想要更多的选择,我想买什么就买什么。 

他认为这三点永远不会变。 

理解了这三点之后,Amazon的应对之道很简单,就是用不断提升的客户体验的高标准,对应不断提升的客户期望值。

Amazon的软件开发文化

640?wx_fmt=png

那具体如何应对呢?作为一家电商公司,这离不开全公司的IT研发!

640?wx_fmt=png

针对这三点,Amazon的应对之道很简单,就是用不断提升的客户体验的高标准,对应不断提升的客户期望值,并且第一条曲线的上升速度要超过第二条曲线的上升速度。 

当竞争对手的进步速度抵不上消费者期望的竞争速度的时候,其实市场就帮助它淘汰掉其他竞争对手了。应对之道非常简洁,但是也很残酷,就是用户体验。 

640?wx_fmt=png

如上所说,Amazon电商的增长引擎非常简单,那它把钱花在什么地方呢?

就花在满足消费者的这三个需求之上,无限选择最低价格快速配送

基于这个理解,贝索斯提出Amazon的增长飞轮。增长飞轮是什么东西呢?就是那个力在支点上跟你的目标之间会形成一个正循环的特征,就是越什么越什么的句式。 

它以消费者为中心,核心KPI就是增长。如何实现增长呢? 它提出三件事情:

第一件事是提高客户体验,第一圈是无限选择,用户要有无限选择权,如果用户想买什么就能买到什么,它的客户体验就好。如果客户体验好,就有更多的人来,流量就会提高。更多的买家会吸引更多的卖家,然后提供更多的无限选择权。 

第二圈是最低价格。它认为如果价格低,客户体验就好,流量就高,卖家就多,而更多卖家一起分担基础设施的时候,成本又会降下来,就会有最低价格。为了给消费者提供最低价格,贝索斯对于供应商的压榨是非常非常之残酷,同样他对自己的压榨也非常非常之残酷。 

我们再看最后一个圈,叫快速配送。它认为如果配送快,客户体验就好,流量就多,卖家就多。 

这个增长引擎是在2001年提出来的!相信这也对研发提出了更大的挑战,即必须大幅提高研发效能!

所以,2002年,贝索斯下了一份命令:坚持所有Amazon的服务,必须相互之间可以通过Web协议轻松沟通,谁不遵守,一定会被开除。

640?wx_fmt=png

很明显,贝索斯对第6点是很认真的,因此所以人都会遵从。贝索斯甚至派出了几位首席“牛头犬”(Chief Bulldogs)来监督并确保进度,带头的叫Rick Dalzell,一名前陆军突击队队员,西点军校毕业生,拳击手,沃尔玛的首席虐刑官(CIO)。据说Rick是个令人敬畏的人,还是经常使用”hardened interface(僵化接口)”词的人。

简而言之,贝索斯在2002年就认为:Amazon应该成为一个对内外部开发者而言都易于使用和沟通的平台。

随后,所有代码按照功能模块分隔每个模块用网络服务接口封装,各个模块间的通信必须通过web service API。这样,Amazon就建造了一个高度解耦的架构,这些服务可以相互独立地迭代,只要这些服务符合标准的网络服务接口。那时,这种架构还没有名字,现在我们都叫它微服务架构

640?wx_fmt=png

Amazon将这些改变也应用到了组织架构中,他们将中心化、层级的产品开发团队打散成了小的two-pizza teams(两个披萨的团队)。

“最初我们希望每个团队控制在两个披萨就能喂饱的规模,实际上现在每个团队有6-8个开发者。”每个团队都对一个或几个微服务有绝对的控制权,在Amazon这意味着:要和顾客对话(内部和外部的),定义自己的feature roadmap,设计并实现这些feature,测试这些feature,最后部署和运维这些feature。

Amazon用了5年的时间,经历了巨大的架构变迁,从两层的单体架构转为分布式的去中心化服务平台。Amazon在切换到面向服务的架构后,开发和运维流程都受益匪浅,进一步强化了以客户为中心的团队理念。每个服务都有一个与之对应的团队,团队对服务全面负责。

总结

640?wx_fmt=png

在经过架构和组织的重大变革后,Amazon极大地提高了前端开发的效率。产品团队可以很快地做决定,然后转化为微服务中的新feature。现在Amazon每年要进行5000万次部署,这都多亏了微服务架构和他们的持续交付流程。

Amazon这家史上最能“拜客户教”的公司,又是如何做到持续交付的呢?请先关注公众号,再听下回分解!


640?wx_fmt=gif

【规模化敏捷】部门很大,产品线很多,角色复杂,SAFe规模化敏捷框架,是你可以考虑的一个选择。

欢迎扫码加入一起交流,在规模化的场景下,如何实施DevOps。

如果一群满了,请扫码加入二群!任选一个加入即可。


640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/314712.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P2261 [CQOI2007]余数求和 整除分块

传送门 文章目录题意:思路:题意: n,k≤1e9n,k\le1e9n,k≤1e9 思路: 考虑转换式子,∑i1nkmodi∑i1n(k−⌊ki⌋∗i)n∗k−∑i1n⌊ki⌋∗i\sum_{i1}^{n}k\bmod i\sum_{i1}^n(k-\left \lfloor \frac{k}{i} \right \rfloo…

背包问题——第一篇

一,01背包 最简单也是最经典的背包问题。 首先我们知道背包问题是一种d问题,最重要的就是要去找到他的状态转移方程。而在01背包中转移方程就比较简单了,这里用一个二维数组进行标表示。 ans[i][j]max(ans[i-1][j],ans[i-1][j-v[i]w[i]); 在…

小白开学Asp.Net Core 《十》

小白开学Asp.Net Core 《十》 — — Session、Cookie、Cache(老生常谈)一、背景在常谈Session和Cookie之前我们先来简单的了解下Http(可以说这是必须的,默认大家都了解)总结一句话:HTTP是一种无状态的协议&…

P3935 Calculating 整除分块

传送门 文章目录题意:思路:题意: 思路: 我们设s(x)∑i1nf(x)s(x)\sum_{i1}^nf(x)s(x)∑i1n​f(x),那么答案就是s(r)−s(l−1)s(r)-s(l-1)s(r)−s(l−1)。 容易发现,我们要求的f(x)f(x)f(x)实际上就是xxx的…

Sticks-hdu-1455深度搜索dfs

Sticks 题目传送门。 题目大意是,给你一个数字n代表总共的棍子数量,要做的就是,把这几根棍子拼成长度相同的棍子,并且让所拼成的棍子的长度尽可能地小,也就是拼成的棍子的数量尽可能的多。 在这里很简单的想到要给棍…

gRPC in ASP.NET Core 3.0 -- Protocol Buffer(1)

开发环境:IDE: VSCodeVSCode的扩展插件:vscode-proto3和Clang-Format这两个扩展Windows还需要安装Clang,Windows 64位系统的地址如下:Clang for Windows (64-bit)(http://llvm.org/releases/3.7.0/LLVM-3.7.0-win64.exe)&#xff…

[蓝桥杯2016初赛]方格填数

正如题目,我们要保证相邻的数不相连就行了,一共要填十个数。 下面是我的思路,供大家参考一下, 我把上面的各子放进了这个5*6的矩形,其中标记1–10的分别是要填数的各格子,一开始我先初始化这个二维数组为全…

2021牛客暑期多校训练营7 xay loves monotonicity 线段树区间合并

传送门 文章目录题意:思路:题意: 题面挺绕口的,还是看原题比较好。 大概的意思就是让你从给定的区间中选择一个以左端点为起点的一个上升子序列,让后将这些下标存下来,在bbb中将这些位置拿出来后&#xff…

容器化单页面应用中Nginx反向代理与Kubernetes部署

在《容器化单页面应用中RESTful API的访问》一文中,我介绍了一个在容器化环境中单页面应用访问后端服务的完整案例。这里我将继续使用这个案例,介绍一下容器化单页面应用部署的另一个场景:将Nginx的职责独立出来。注:这里单页面应…

[蓝桥杯2019初赛]迷宫-DFS、BFS两种方法

迷宫问题的最短路&#xff0c;加最小字典序 迷宫文件maze.txt传送门 作者写的2019年B组蓝桥杯解集 . . . DFS的版本 #include<iostream> #include<cstring> using namespace std; const int ax[4]{0,0,1,-1}; const int ay[4]{1,-1,0,0}; const char dir[5]{R,L…

2021牛客暑期多校训练营7 xay loves trees dfs序 + 主席树

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你两棵树&#xff0c;让你在第一棵树选一条最长的深度递增的链&#xff0c;链上每一个点在第二棵树上都不互为祖先。 n≤3e5n\le3e5n≤3e5 思路&#xff1a; 之前做过差不多的题传送门。 之前哪个题是不…

xxl-job dotnet core executor执行器开源

DotXxlJob[(github)https://github.com/xuanye/DotXxlJob][https://github.com/xuanye/DotXxlJob] xxl-job的dotnet core 执行器实现&#xff0c;支持XXL-JOB 2.01 XXL-JOB概述[XXL-JOB][1]是一个轻量级分布式任务调度平台&#xff0c;其核心设计目标是开发迅速、学习简单、轻量…

2019年第十届蓝桥杯 C / C ++省赛 B 组真题题解

A: 组队 输入数据 编号 号位1 2 3 4 51 97 90 0 0 0 2 92 85 96 0 0 3 0 0 0 0 93 4 0 0 0 80 86 5 89 83 97 0 0 6 82 86 0 0 0 7 0 0 0 87 90 8 0 97 96 0 0 9 0 0 89 0 0 10 95 99 0 0 0 11 0 0 96 97 0 12 0 0 0 93 98 13 94 91 0 0 0 14 0 83 87 0 0 15 …

HDU - 7054 Yiwen with Formula 分治拆位FFT + dp + 费马小定理降幂

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 求aaa的所有子序列的和的乘积。 思路&#xff1a; 看到suma≤1e5sum_a\le1e5suma​≤1e5&#xff0c;这应该会给我们提示&#xff0c;但是我没看到。 我们可以记cntxcnt_xcntx​表示和为xxx的子序列有cnt…

使用Redis创建分布式锁

点击上方蓝色字关注我们~在本文中&#xff0c;我们将讨论如何在.NET Core中使用Redis创建分布式锁。当我们构建分布式系统时&#xff0c;我们将面临多个进程一起处理共享资源&#xff0c;由于其中只有一个可以一次使用共享资源&#xff0c;因此会导致一些意外问题&#xff01;我…

ASP.NET Core Web Api之JWT VS Session VS Cookie(二)

本文我们来探讨下JWT VS Session的问题&#xff0c;我们可直接抛出问题&#xff1a;使用客户端存储的JWT比服务端维持Session更好吗&#xff1f; 既然要比较JWT VS Session&#xff0c;那我们就得知道为何需要JWT和Session&#xff0c;它们共同是为了解决什么问题呢&#xff1f…

P4721 【模板】分治 FFT

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 写一下式子&#xff0c;发现每个fif_ifi​只有左边的fff对他有影响&#xff0c;所以考虑分治FFTFFTFFT来解决这个问题。 先递归左边&#xff0c;让后计算对右边贡献&#xff0c;再递归右边…

程序员生活之路--来自程序员爸爸的一封信

亲爱的孩子&#xff1a;当你看到爸爸这封信的时候&#xff0c;说明你已经长大了或者已经会玩微信公众号了&#xff0c;当然爸爸还是希望你长大了&#xff0c;并不希望你那么小就天天抱着手机刷微信。我写这个文章的时候正直盛夏&#xff0c;现在外边正是37度的高温&#xff0c;…

C#上位机与欧姆龙PLC的通信05---- HostLink协议

1、介绍 Hostlink协议是欧姆龙PLC与上位机链接的公开协议。上位机通过发送Hostlink命令&#xff0c;可以对PLC进行I/O读写、可以对PLC进行I/O读写、改变操作模式、强制置位/复位等操作。由于是公开协议&#xff0c;即便是非欧姆龙的上位设备&#xff08;软件&#xff09;&…

Codeforces Round #737 (Div. 2) D. Ezzat and Grid 线段树动态开点

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 比较套路的一个题&#xff0c;我们维护一个dp[i]dp[i]dp[i]表示到了第iii行能保留的区间最多是多少。 转移比较明显&#xff1a;dp[i]max(dp[j])dp[i]max(dp[j])dp[i]max(dp[j]) 其中jjj能…