w****2 发帖数: 12072 | 1 Stevey's Google Platforms Rant
I was at Amazon for about six and a half years, and now I've been at Google
for that long. One thing that struck me immediately about the two companies
-- an impression that has been reinforced almost daily -- is that Amazon
does everything wrong, and Google does everything right. Sure, it's a
sweeping generalization, but a surprisingly accurate one. It's pretty crazy.
There are probably a hundred or even two hundred different ways you can
compare the two companies, and Google is superior in all but three of them,
if I recall correctly. I actually did a spreadsheet at one point but Legal
wouldn't let me show it to anyone, even though recruiting loved it.
I mean, just to give you a very brief taste: Amazon's recruiting process is
fundamentally flawed by having teams hire for themselves, so their hiring
bar is incredibly inconsistent across teams, despite various efforts they've
made to level it out. And their operations are a mess; they don't really
have SREs and they make engineers pretty much do everything, which leaves
almost no time for coding - though again this varies by group, so it's luck
of the draw. They don't give a single shit about charity or helping the
needy or community contributions or anything like that. Never comes up there
, except maybe to laugh about it. Their facilities are dirt-smeared cube
farms without a dime spent on decor or common meeting areas. Their pay and
benefits suck, although much less so lately due to local competition from
Google and Facebook. But they don't have any of our perks or extras -- they
just try to match the offer-letter numbers, and that's the end of it. Their
code base is a disaster, with no engineering standards whatsoever except
what individual teams choose to put in place.
To be fair, they do have a nice versioned-library system that we really
ought to emulate, and a nice publish-subscribe system that we also have no
equivalent for. But for the most part they just have a bunch of crappy tools
that read and write state machine information into relational databases. We
wouldn't take most of it even if it were free.
I think the pubsub system and their library-shelf system were two out of the
grand total of three things Amazon does better than google.
I guess you could make an argument that their bias for launching early and
iterating like mad is also something they do well, but you can argue it
either way. They prioritize launching early over everything else, including
retention and engineering discipline and a bunch of other stuff that turns
out to matter in the long run. So even though it's given them some
competitive advantages in the marketplace, it's created enough other
problems to make it something less than a slam-dunk.
But there's one thing they do really really well that pretty much makes up
for ALL of their political, philosophical and technical screw-ups.
Jeff Bezos is an infamous micro-manager. He micro-manages every single pixel
of Amazon's retail site. He hired Larry Tesler, Apple's Chief Scientist and
probably the very most famous and respected human-computer interaction
expert in the entire world, and then ignored every goddamn thing Larry said
for three years until Larry finally -- wisely -- left the company. Larry
would do these big usability studies and demonstrate beyond any shred of
doubt that nobody can understand that frigging website, but Bezos just
couldn't let go of those pixels, all those millions of semantics-packed
pixels on the landing page. They were like millions of his own precious
children. So they're all still there, and Larry is not.
Micro-managing isn't that third thing that Amazon does better than us, by
the way. I mean, yeah, they micro-manage really well, but I wouldn't list it
as a strength or anything. I'm just trying to set the context here, to help
you understand what happened. We're talking about a guy who in all
seriousness has said on many public occasions that people should be paying
him to work at Amazon. He hands out little yellow stickies with his name on
them, reminding people "who runs the company" when they disagree with him.
The guy is a regular... well, Steve Jobs, I guess. Except without the
fashion or design sense. Bezos is super smart; don't get me wrong. He just
makes ordinary control freaks look like stoned hippies.
So one day Jeff Bezos issued a mandate. He's doing that all the time, of
course, and people scramble like ants being pounded with a rubber mallet
whenever it happens. But on one occasion -- back around 2002 I think, plus
or minus a year -- he issued a mandate that was so out there, so huge and
eye-bulgingly ponderous, that it made all of his other mandates look like
unsolicited peer bonuses.
His Big Mandate went something along these lines:
1) All teams will henceforth expose their data and functionality through
service interfaces.
2) Teams must communicate with each other through these interfaces.
3) There will be no other form of interprocess communication allowed: no
direct linking, no direct reads of another team's data store, no shared-
memory model, no back-doors whatsoever. The only communication allowed is
via service interface calls over the network.
4) It doesn't matter what technology they use. HTTP, Corba, Pubsub, custom
protocols -- doesn't matter. Bezos doesn't care.
5) All service interfaces, without exception, must be designed from the
ground up to be externalizable. That is to say, the team must plan and
design to be able to expose the interface to developers in the outside world
. No exceptions.
6) Anyone who doesn't do this will be fired.
7) Thank you; have a nice day!
Ha, ha! You 150-odd ex-Amazon folks here will of course realize immediately
that #7 was a little joke I threw in, because Bezos most definitely does not
give a shit about your day.
#6, however, was quite real, so people went to work. Bezos assigned a couple
of Chief Bulldogs to oversee the effort and ensure forward progress, headed
up by Uber-Chief Bear Bulldog Rick Dalzell. Rick is an ex-Armgy Ranger,
West Point Academy graduate, ex-boxer, ex-Chief Torturer slash CIO at Wal*
Mart, and is a big genial scary man who used the word "hardened interface" a
lot. Rick was a walking, talking hardened interface himself, so needless to
say, everyone made LOTS of forward progress and made sure Rick knew about
it.
Over the next couple of years, Amazon transformed internally into a service-
oriented architecture. They learned a tremendous amount while effecting this
transformation. There was lots of existing documentation and lore about
SOAs, but at Amazon's vast scale it was about as useful as telling Indiana
Jones to look both ways before crossing the street. Amazon's dev staff made
a lot of discoveries along the way. A teeny tiny sampling of these
discoveries included:
- pager escalation gets way harder, because a ticket might bounce through 20
service calls before the real owner is identified. If each bounce goes
through a team with a 15-minute response time, it can be hours before the
right team finally finds out, unless you build a lot of scaffolding and
metrics and reporting.
- every single one of your peer teams suddenly becomes a potential DOS
attacker. Nobody can make any real forward progress until very serious
quotas and throttling are put in place in every single service.
- monitoring and QA are the same thing. You'd never think so until you try
doing a big SOA. But when your service says "oh yes, I'm fine", it may well
be the case that the only thing still functioning in the server is the
little component that knows how to say "I'm fine, roger roger, over and out"
in a cheery droid voice. In order to tell whether the service is actually
responding, you have to make individual calls. The problem continues
recursively until your monitoring is doing comprehensive semantics checking
of your entire range of services and data, at which point it's
indistinguishable from automated QA. So they're a continuum.
- if you have hundreds of services, and your code MUST communicate with
other groups' code via these services, then you won't be able to find any of
them without a service-discovery mechanism. And you can't have that without
a service registration mechanism, which itself is another service. So
Amazon has a universal service registry where you can find out reflectively
(programmatically) about every service, what its APIs are, and also whether
it is currently up, and where.
- debugging problems with someone else's code gets a LOT harder, and is
basically impossible unless there is a universal standard way to run every
service in a debuggable sandbox.
That's just a very small sample. There are dozens, maybe hundreds of
individual learnings like these that Amazon had to discover organically.
There were a lot of wacky ones around externalizing services, but not as
many as you might think. Organizing into services taught teams not to trust
each other in most of the same ways they're not supposed to trust external
developers.
This effort was still underway when I left to join Google in mid-2005, but
it was pretty far advanced. From the time Bezos issued his edict through the
time I left, Amazon had transformed culturally into a company that thinks
about everything in a services-first fashion. It is now fundamental to how
they approach all designs, including internal designs for stuff that might
never see the light of day externally.
At this point they don't even do it out of fear of being fired. I mean, they
're still afraid of that; it's pretty much part of daily life there, working
for the Dread Pirate Bezos and all. But they do services because they've
come to understand that it's the Right Thing. There are without question
pros and cons to the SOA approach, and some of the cons are pretty long. But
overall it's the right thing because SOA-driven design enables Platforms.
That's what Bezos was up to with his edict, of course. He didn't (and doesn'
t) care even a tiny bit about the well-being of the teams, nor about what
technologies they use, nor in fact any detail whatsoever about how they go
about their business unless they happen to be screwing up. But Bezos
realized long before the vast majority of Amazonians that Amazon needs to be
a platform.
You wouldn't really think that an online bookstore needs to be an extensible
, programmable platform. Would you?
Well, the first big thing Bezos realized is that the infrastructure they'd
built for selling and shipping books and sundry could be transformed an
excellent repurposable computing platform. So now they have the Amazon
Elastic Compute Cloud, and the Amazon Elastic MapReduce, and the Amazon
Relational Database Service, and a whole passel' o' other services browsable
at aws.amazon.com. These services host the backends for some pretty
successful companies, reddit being my personal favorite of the bunch.
The other big realization he had was that he can't always build the right
thing. I think Larry Tesler might have struck some kind of chord in Bezos
when he said his mom couldn't use the goddamn website. It's not even super
clear whose mom he was talking about, and doesn't really matter, because
nobody's mom can use the goddamn website. In fact I myself find the website
disturbingly daunting, and I worked there for over half a decade. I've just
learned to kinda defocus my eyes and concentrate on the million or so pixels
near the center of the page above the fold.
I'm not really sure how Bezos came to this realization -- the insight that
he can't build one product and have it be right for everyone. But it doesn't
matter, because he gets it. There's actually a formal name for this
phenomenon. It's called Accessibility, and it's the most important thing in
the computing world.
The. Most. Important. Thing.
If you're sorta thinking, "huh? You mean like, blind and deaf people
Accessibility?" then you're not alone, because I've come to understand that
there are lots and LOTS of people just like you: people for whom this idea
does not have the right Accessibility, so it hasn't been able to get through
to you yet. It's not your fault for not understanding, any more than it
would be your fault for being blind or deaf or motion-restricted or living
with any other disability. When software -- or idea-ware for that matter --
fails to be accessible to anyone for any reason, it is the fault of the
software or of the messaging of the idea. It is an Accessibility failure.
Like anything else big and important in life, Accessibility has an evil twin
who, jilted by the unbalanced affection displayed by their parents in their
youth, has grown into an equally powerful Arch-Nemesis (yes, there's more
than one nemesis to accessibility) named Security. And boy howdy are the two
ever at odds.
But I'll argue that Accessibility is actually more important than Security
because dialing Accessibility to zero means you have no product at all,
whereas dialing Security to zero can still get you a reasonably successful
product such as the Playstation Network.
So yeah. In case you hadn't noticed, I could actually write a book on this
topic. A fat one, filled with amusing anecdotes about ants and rubber
mallets at companies I've worked at. But I will never get this little rant
published, and you'll never get it read, unless I start to wrap up.
That one last thing that Google doesn't do well is Platforms. We don't
understand platforms. We don't "get" platforms. Some of you do, but you are
the minority. This has become painfully clear to me over the past six years.
I was kind of hoping that competitive pressure from Microsoft and Amazon
and more recently Facebook would make us wake up collectively and start
doing universal services. Not in some sort of ad-hoc, half-assed way, but in
more or less the same way Amazon did it: all at once, for real, no cheating
, and treating it as our top priority from now on.
But no. No, it's like our tenth or eleventh priority. Or fifteenth, I don't
know. It's pretty low. There are a few teams who treat the idea very
seriously, but most teams either don't think about it all, ever, or only a
small percentage of them think about it in a very small way.
It's a big stretch even to get most teams to offer a stubby service to get
programmatic access to their data and computations. Most of them think they'
re building products. And a stubby service is a pretty pathetic service. Go
back and look at that partial list of learnings from Amazon, and tell me
which ones Stubby gives you out of the box. As far as I'm concerned, it's
none of them. Stubby's great, but it's like parts when you need a car.
A product is useless without a platform, or more precisely and accurately, a
platform-less product will always be replaced by an equivalent platform-
ized product.
Google+ is a prime example of our complete failure to understand platforms
from the very highest levels of executive leadership (hi Larry, Sergey, Eric
, Vic, howdy howdy) down to the very lowest leaf workers (hey yo). We all
don't get it. The Golden Rule of platforms is that you Eat Your Own Dogfood.
The Google+ platform is a pathetic afterthought. We had no API at all at
launch, and last I checked, we had one measly API call. One of the team
members marched in and told me about it when they launched, and I asked: "So
is it the Stalker API?" She got all glum and said "Yeah." I mean, I was
joking, but no... the only API call we offer is to get someone's stream. So
I guess the joke was on me.
Microsoft has known about the Dogfood rule for at least twenty years. It's
been part of their culture for a whole generation now. You don't eat People
Food and give your developers Dog Food. Doing that is simply robbing your
long-term platform value for short-term successes. Platforms are all about
long-term thinking.
Google+ is a knee-jerk reaction, a study in short-term thinking, predicated
on the incorrect notion that Facebook is successful because they built a
great product. But that's not why they are successful. Facebook is
successful because they built an entire constellation of products by
allowing other people to do the work. So Facebook is different for everyone.
Some people spend all their time on Mafia Wars. Some spend all their time
on Farmville. There are hundreds or maybe thousands of different high-
quality time sinks available, so there's something there for everyone.
Our Google+ team took a look at the aftermarket and said: "Gosh, it looks
like we need some games. Let's go contract someone to, um, write some games
for us." Do you begin to see how incredibly wrong that thinking is now? The
problem is that we are trying to predict what people want and deliver it for
them.
You can't do that. Not really. Not reliably. There have been precious few
people in the world, over the entire history of computing, who have been
able to do it reliably. Steve Jobs was one of them. We don't have a Steve
Jobs here. I'm sorry, but we don't.
Larry Tesler may have convinced Bezos that he was no Steve Jobs, but Bezos
realized that he didn't need to be a Steve Jobs in order to provide everyone
with the right products: interfaces and workflows that they liked and felt
at ease with. He just needed to enable third-party developers to do it, and
it would happen automatically.
I apologize to those (many) of you for whom all this stuff I'm saying is
incredibly obvious, because yeah. It's incredibly frigging obvious. Except
we're not doing it. We don't get Platforms, and we don't get Accessibility.
The two are basically the same thing, because platforms solve accessibility.
A platform is accessibility.
So yeah, Microsoft gets it. And you know as well as I do how surprising that
is, because they don't "get" much of anything, really. But they understand
platforms as a purely accidental outgrowth of having started life in the
business of providing platforms. So they have thirty-plus years of learning
in this space. And if you go to msdn.com, and spend some time browsing, and
you've never seen it before, prepare to be amazed. Because it's staggeringly
huge. They have thousands, and thousands, and THOUSANDS of API calls. They
have a HUGE platform. Too big in fact, because they can't design for squat,
but at least they're doing it.
Amazon gets it. Amazon's AWS (aws.amazon.com) is incredible. Just go look at
it. Click around. It's embarrassing. We don't have any of that stuff.
Apple gets it, obviously. They've made some fundamentally non-open choices,
particularly around their mobile platform. But they understand accessibility
and they understand the power of third-party development and they eat their
dogfood. And you know what? They make pretty good dogfood. Their APIs are a
hell of a lot cleaner than Microsoft's, and have been since time immemorial.
Facebook gets it. That's what really worries me. That's what got me off my
lazy butt to write this thing. I hate blogging. I hate... plussing, or
whatever it's called when you do a massive rant in Google+ even though it's
a terrible venue for it but you do it anyway because in the end you really
do want Google to be successful. And I do! I mean, Facebook wants me there,
and it'd be pretty easy to just go. But Google is home, so I'm insisting
that we have this little family intervention, uncomfortable as it might be.
After you've marveled at the platform offerings of Microsoft and Amazon, and
Facebook I guess (I didn't look because I didn't want to get too depressed)
, head over to developers.google.com and browse a little. Pretty big
difference, eh? It's like what your fifth-grade nephew might mock up if he
were doing an assignment to demonstrate what a big powerful platform company
might be building if all they had, resource-wise, was one fifth grader.
Please don't get me wrong here -- I know for a fact that the dev-rel team
has had to FIGHT to get even this much available externally. They're kicking
ass as far as I'm concerned, because they DO get platforms, and they are
struggling heroically to try to create one in an environment that is at best
platform-apathetic, and at worst often openly hostile to the idea.
I'm just frankly describing what developers.google.com looks like to an
outsider. It looks childish. Where's the Maps APIs in there for Christ's
sake? Some of the things in there are labs projects. And the APIs for
everything I clicked were... they were paltry. They were obviously dog food.
Not even good organic stuff. Compared to our internal APIs it's all snouts
and horse hooves.
And also don't get me wrong about Google+. They're far from the only
offenders. This is a cultural thing. What we have going on internally is
basically a war, with the underdog minority Platformers fighting a more or
less losing battle against the Mighty Funded Confident Producters.
Any teams that have successfully internalized the notion that they should be
externally programmable platforms from the ground up are underdogs -- Maps
and Docs come to mind, and I know GMail is making overtures in that
direction. But it's hard for them to get funding for it because it's not
part of our culture. Maestro's funding is a feeble thing compared to the
gargantuan Microsoft Office programming platform: it's a fluffy rabbit
versus a T-Rex. The Docs team knows they'll never be competitive with Office
until they can match its scripting facilities, but they're not getting any
resource love. I mean, I assume they're not, given that Apps Script only
works in Spreadsheet right now, and it doesn't even have keyboard shortcuts
as part of its API. That team looks pretty unloved to me.
Ironically enough, Wave was a great platform, may they rest in peace. But
making something a platform is not going to make you an instant success. A
platform needs a killer app. Facebook -- that is, the stock service they
offer with walls and friends and such -- is the killer app for the Facebook
Platform. And it is a very serious mistake to conclude that the Facebook App
could have been anywhere near as successful without the Facebook Platform.
You know how people are always saying Google is arrogant? I'm a Googler, so
I get as irritated as you do when people say that. We're not arrogant, by
and large. We're, like, 99% Arrogance-Free. I did start this post -- if you'
ll reach back into distant memory -- by describing Google as "doing
everything right". We do mean well, and for the most part when people say we
're arrogant it's because we didn't hire them, or they're unhappy with our
policies, or something along those lines. They're inferring arrogance
because it makes them feel better.
But when we take the stance that we know how to design the perfect product
for everyone, and believe you me, I hear that a lot, then we're being fools.
You can attribute it to arrogance, or naivete, or whatever -- it doesn't
matter in the end, because it's foolishness. There IS no perfect product for
everyone.
And so we wind up with a browser that doesn't let you set the default font
size. Talk about an affront to Accessibility. I mean, as I get older I'm
actually going blind. For real. I've been nearsighted all my life, and once
you hit 40 years old you stop being able to see things up close. So font
selection becomes this life-or-death thing: it can lock you out of the
product completely. But the Chrome team is flat-out arrogant here: they want
to build a zero-configuration product, and they're quite brazen about it,
and Fuck You if you're blind or deaf or whatever. Hit Ctrl-+ on every single
page visit for the rest of your life.
It's not just them. It's everyone. The problem is that we're a Product
Company through and through. We built a successful product with broad appeal
-- our search, that is -- and that wild success has biased us.
Amazon was a product company too, so it took an out-of-band force to make
Bezos understand the need for a platform. That force was their evaporating
margins; he was cornered and had to think of a way out. But all he had was a
bunch of engineers and all these computers... if only they could be
monetized somehow... you can see how he arrived at AWS, in hindsight.
Microsoft started out as a platform, so they've just had lots of practice at
it.
Facebook, though: they worry me. I'm no expert, but I'm pretty sure they
started off as a Product and they rode that success pretty far. So I'm not
sure exactly how they made the transition to a platform. It was a relatively
long time ago, since they had to be a platform before (now very old) things
like Mafia Wars could come along.
Maybe they just looked at us and asked: "How can we beat Google? What are
they missing?"
The problem we face is pretty huge, because it will take a dramatic cultural
change in order for us to start catching up. We don't do internal service-
oriented platforms, and we just as equally don't do external ones. This
means that the "not getting it" is endemic across the company: the PMs don't
get it, the engineers don't get it, the product teams don't get it, nobody
gets it. Even if individuals do, even if YOU do, it doesn't matter one bit
unless we're treating it as an all-hands-on-deck emergency. We can't keep
launching products and pretending we'll turn them into magical beautiful
extensible platforms later. We've tried that and it's not working.
The Golden Rule of Platforms, "Eat Your Own Dogfood", can be rephrased as "
Start with a Platform, and Then Use it for Everything." You can't just bolt
it on later. Certainly not easily at any rate -- ask anyone who worked on
platformizing MS Office. Or anyone who worked on platformizing Amazon. If
you delay it, it'll be ten times as much work as just doing it correctly up
front. You can't cheat. You can't have secret back doors for internal apps
to get special priority access, not for ANY reason. You need to solve the
hard problems up front.
I'm not saying it's too late for us, but the longer we wait, the closer we
get to being Too Late.
I honestly don't know how to wrap this up. I've said pretty much everything
I came here to say today. This post has been six years in the making. I'm
sorry if I wasn't gentle enough, or if I misrepresented some product or team
or person, or if we're actually doing LOTS of platform stuff and it just so
happens that I and everyone I ever talk to has just never heard about it. I
'm sorry.
But we've gotta start doing this right. | w****2 发帖数: 12072 | 2 用google translate做个简单翻译:
Stevey的谷歌平台的咆哮
我在亚马逊是约6年半,现在我已经在谷歌这么久。一件事我立即袭击有关两家公司 -
已加强几乎每天都有一个印象 - 是亚马逊的一切错误,和谷歌的一切权利。当然,它
的一概而论,但令人惊讶的准确。这实在是太疯狂。有可能是一个百年甚至两百年不同
的方法可以比较两家公司,谷歌是优越的,但他们三人,如果我没有记错。其实我在一
个点上的电子表格,但法律不会让我展示给任何人,即使招募喜欢它。
我的意思,只是给你一个非常简短的味道:亚马逊的招聘过程基本上是由队聘请为自己
,所以他们雇用栏是令人难以置信的团队之间不一致的,尽管他们所做的水平出来各种
努力,有缺陷的。他们的行动是一个烂摊子,他们并不真正有国营事业
,他们的工程师几乎做的一切,这让几乎没有时间进行编码 - 虽然这组不同,所以它
的幸运抽奖。他们不给一个慈善或帮助有需要的人或社会的贡献或类似的东西的单狗屎
。从未出现在那里,除了也许笑。他们的设施是污垢弄脏没有装饰或共同会议领域上花
一毛钱的立方体农场。他们的薪酬和福利吸,虽然少得多,所以最近由于从谷歌和
Facebook本地的竞争。但他们并没有任何我们的津贴或额外 - 他们只是尝试匹配提供
字母数字,这就是它的结束。他们的代码库是一场灾难,没有工程的标准,除了个别球
队选择落实到位承担。
为了公平起见,他们有一个很好的版本库系统,我们真的应该效仿,一个很好的发布 -
订阅系统,我们也有不等价。但在大多数情况下,他们只是有一堆蹩脚的工具,读取
和写入到关系数据库的状态机信息。我们不会利用它,即使它是免费的。
我认为三件事亚马逊确实比Google更好的总计PubSub的系统和他们的库货架系统的两个
出。
我想你可以把一个论点,即启动早,迭代像疯了一样的偏见也是他们做好的东西,但你
可以认为这两种方式。他们优先年初推出超过一切,包括保留和工程学科和一堆其他的
东西,原来问题从长远来看。因此,即使它给了他们一些在市场上的竞争优势,它创造
了足够的其他问题,使其比扣篮的东西。
但有一件事他们真的很好,几乎使所有的政治,哲学和技术螺丝。
贝佐斯是一个臭名昭著的微观经理。他微观管理亚马逊的零售网站的每一个单个像素。
他雇用了苹果的首席科学家和在整个世界可能非常最著名的和尊重的人机交互专家,拉
里Tesler,然后忽略了三年拉里说,每一个该死的东西,直到最后拉里 - 明智 - 离开
了公司。拉里会做这些大的可用性研究和展示超越了任何一丝疑问,没有人能明白,该
死的网站,但贝佐斯只是不能放过这些像素,所有这些语义丰富的登陆页面上的像素数
百万。他们就像自己的宝贝儿百万。因此,他们都仍然存在,和拉里不。
微观管理,亚马逊并不比我们好,第三件事的方式。我的意思是,是啊,他们微观管理
得很好,但我不会列出作为一个实力或任何。我只是想在这里设置上下文,以帮助您了
解发生了什么事。我们谈论的是一名在所有的严重性,在许多公开场合,人们应该支付
他在亚马逊工作说的家伙。他与他的名字手小黄胶粘,提醒人们“运行公司”时,他们
不同意与他。这家伙是一个普通的... ...好,史蒂夫乔布斯,我猜。除了没有时尚设
计感。贝佐斯是超级聪明,不要误会我的意思。他只是普通的控制狂砸死嬉皮士一样。
所以有一天杰夫贝索斯发出任务。他所有的时间,当然,人喜欢用橡皮槌捣烂每当发生
的蚂蚁争夺。 - 2002年左右,我认为,加或减一年 - 但一次他发出有这么一&
#8203;个任务是,如此巨大的眼bulgingly沉重的,它使他的其他任务都喜欢看不请自
来的同行奖金。
他的大任务去沿着这些路线的东西:
1)所有参赛队今后将通过服务接口公开的数据和功能。
2)团队必须互相沟通,通过这些接口。
3)有没有其他形式的进程间通信:没有直接联系起来,没有直接的另一支球队的数据
存储读取,没有共享内存模式,绝对没有后门。允许的唯一通信是通过在网络上的服务
接口调用。
4)它不会不管他们使用什么样的技术。 HTTP,CORBA,PubSub的,自定义的协议 - 无
所谓。贝佐斯并不关心。
5),无一例外,所有的服务接口必须设计从地面被外部化。这就是说,团队必须规划
和设计的接口暴露在外界的开发。没有例外。
6)任何人不这样做,将被解雇。
7)谢谢你,有一个愉快的一天!
哈,哈! 150多前亚马逊乡亲在这里当然会实现立即,7号是我扔在一个小笑话,因为
贝佐斯最肯定不给一个约你的一天拉屎。
#6,但是,很真实,让人们去工作。贝佐斯分配的监督工作,并确保前进,尤伯杯行
政熊斗牛里克达尔泽尔为首的行政牛头犬夫妇。 Rick是前Armgy游侠,西点学院的毕业
生,前拳击手,前行政拷问斜线CIO在沃尔玛*沃尔玛,是一个大的和煦的吓人的人用字
的“硬化接口”了很多。瑞克是散步,谈论自己硬化接口,所以不用说,大家都作了大
量的向前进展,并提出确保里克知道。
在未来几年中,亚马逊内部转化成一个面向服务的架构。他们学到了大量的时间,而实
施这项转变。有许多现有的文件和有关SOA的绝杀,但在亚马逊的规模庞大,它告诉印
第安纳琼斯寻找过马路前两种方式有用。亚马逊的开发人员提出了很多,一路上发现。
这些发现微小的一个极小的采样包括:
- 寻呼机的升级获取方式更难,因为一票可能反弹确定之前,真正的主人是通过20个服
务电话。如果每个弹跳通过一个15分钟的响应时间的队,可几个小时前合适的团队终于
找到了,除非你建立大量脚手架和度量和报告。
- 您同行团队的每一个单之一突然成为一个潜在的DOS攻击。没有人可以做出任何真正
的前进,直到非常严重的配额和限制在每一个服务到位。
- 监测和质量保证是一回事。你从来没有这样认为,直到您尝试做一个大的SOA。但是
,当你的服务说“哦,是的,我很好”,它很可能的情况下,服务器中仍发挥作用的唯
一是小部分,知道怎么说“我没事,罗杰罗杰,和出“在一个愉快的机器人语音。为了
告诉您是否实际上是响应服务,使单个呼叫。递归问题仍然存在,直到您的监控是做全
面的语义检查你的服务和数据的整个范围,此时它的自动化质量保证无异。因此,他们
是一个统一体。
- 如果您有数百种服务,并通过这些服务,您的代码必须与其他团体的代码沟通,那么
你将不能够找到任何他们没有一个服务发现机制。你不能没有一个服务注册机制,这本
身就是另一个服务。因此,亚马逊有一个普遍服务的注册表,你可以找到了沉思约每一
项服务,它的API是什么,也无论是目前最多,并在(编程)。
- 调试与别人的代码问题得到了很多困难,基本上是不可能的,除非有一个普遍的标准
的方式来运行一个调试的沙箱中的每一项服务。
这只是一个非常小的样本。有几十个,像这些也许几百个人学习收获,亚马逊发现有机
。有很多古怪的周围外部服务,但并不像许多像你想象的。服务组织教导队不信任对方
在大多数相同的方式,他们不应该信任外部开发。
这方面的努力仍在进行中,我离开的时候,加入谷歌在2005年年中,但它很远先进。从
时间贝佐斯我离开的时候他发出的诏书,亚马逊已经转化成一个公司,认为一切都在服
务的第一个时装文化。现在是他们如何接近所有的设计,包括内部的东西,可能永远也
看不到出头之日,外部设计的基础。
在这一点上,他们不这样做,被解雇的恐惧。我的意思是,他们仍然担心,这几乎是人
们日常生活的一部分,危海盗贝佐斯和所有工作。但他们服务,因为他们已经明白过来
,它的正确的事情。毫无疑问的SOA方法的利弊,有一些利弊相当长的。但总体来说是
正确的事情,因为SOA驱动的设计,使平台。
这是什么贝佐斯与他的诏书当然,。他没有(不)甚至一点点关心队的福祉,也没有什
么技术,他们使用的,也其实任何任何他们如何去他们的业务细节,除非他们碰巧被拧
起来。但贝索斯意识到很久以前绝大多数的亚马逊,亚马逊需要一个平台。
你不会真的认为一个网上书店,需要一个可扩展,可编程的平台。你会吗?
好了,实现的第一个大的事情贝佐斯是,他们会出售和运输书籍及杂项基础设施可以改
变一个很好的repurposable计算平台。所以现在他们有亚马逊的弹性计算云和亚马逊弹
性MapReduce的,和亚马逊的关系数据库服务,和整体拥有一批“O”其他服务aws.
amazon.com可浏览。一些非常成功的公司,这些服务的主机的后端,书签交易是我个人
最喜欢的一群。
其他大的实现,他是,他不能总是建立正确的事情。我觉得拉里Tesler可能已取得一些
贝佐斯样的和弦时,他说他的妈妈不能用该死的网站。它也不是超清晰的妈妈他谈论,
其实并不重要,因为没有任何人的妈妈可以使用该死的网站。其实我发现网站令人不安
的是艰巨的,我有一半以上十年。我刚刚了解到,有点失焦我的眼睛,专注于倍以上的
页面的中心附近的万左右像素。
我真的不知道如何贝索斯来到这个实现 - 敏锐的洞察力,他不能建立一个产品,并已
为大家权。但不要紧,因为他得到它。实际上,有这种现象的一个正式名称。这就是所
谓的辅助功能,它在计算世界最重要的事情。
的。大多数。重要。事。
,如果你八九不离十的思想,“咦?你的意思是一样,盲,聋者使用吗?”那么你并不
孤单,因为我已经明白过来,有很多很多人跟你一样:人们对他们来说,这种想法不正
确的无障碍的,所以一直未能获得通过给你还没有。这不是你的错,不理解,任何超过
这将是你的错,为失明或失聪或运动受限,或与任何其他残疾生活。当软件 - 或为此
事的想法用品 - 失败可以访问到任何人以任何理由,它是软件的故障或消息的想法。
这是一个辅助功能衰竭。
像任何其他大,并在生活中重要的,辅助有一个邪恶的双胞胎谁,他们的青春在他们的
父母显示了不平衡的感情抛弃,已经成长为一个同样强大的拱门,报应是,那里的一个
以上的克星无障碍命名安全性。男孩HOWDY两个赔率不断。
但我会认为,无障碍实际上是比安全更重要,因为拨号辅助零意味着你有没有在所有的
产品,而拨号安全为零,仍然可以让你一个相当成功的产品,如PlayStation网络。
所以呀。如果你还没有注意到,其实我可以写一本关于这一主题的书。一胖一,充满了
关于蚂蚁和有趣的轶事,我曾在公司的橡胶槌。但我绝不会公布这个小咆哮,和你永远
不会得到它读取,除非我开始包。
这最后一件事,谷歌做得不好的平台。我们不明白的平台。我们不“”的平台。一些你
,但你是少数。这已成为过去6年来,我痛苦的明了。我希望从微软和亚马逊的竞争压
力,最近,Facebook将让我们唤醒集体,并开始做普遍服务。在某种特设半称职的方式
,但在以同样的方式或多或少亚马逊没有一次全部,真实的,没有作弊,并视为我们的
首要任务,从现在开始。
但没有。没有,这就像我们的第十或第十一优先。第十五,我不知道。这是相当低的。
有几支球队是一个非常认真对待的想法的,但大多数球队要么不想想,不断,其中只有
一小部分,它认为在一个非常小的的方式。
甚至大多数球队提供一个粗短的服务,以获取编程方式访问他们的数据和计算,这是一
个很大的拉伸。他们中大多数人都认为他们的建筑产品。和粗短的服务是一个非常可悲
的服务。回去看看,从亚马逊的知识和经验的部分清单,并告诉我哪些粗短给你框。至
于我担心的是,它没有。粗短的伟大的,但它像部分的时候,你需要一辆车。
一个产品是无用的,没有一个平台,或者更精确和准确,将永远是一个平台的产品由具
有同等作用的平台ized产品所取代。
谷歌+是一个最好的例子,我们彻底失败的了解平台(您好拉里,谢尔盖,埃里克,维
克,HOWDY HOWDY)从行政领导的最高水平最低的叶工人(嘿哟)。我们都没有得到它
。平台的金科玉律是,你吃你自己的的Dogfood。谷歌+平台是一个可怜的事后。我们有
没有API在所有发射时,和上次我检查时,我们不得不之一可怜的API调用。团队成员之
一游行,并告诉我时,他们推出,我问:“那么是潜行者API”她得到了所有闷闷不乐
,说:“是啊。”我的意思是,我是在开玩笑,但没有...唯一的API调用我们提供的是
得到别人的流。所以我想我的笑话。
微软已经知道至少20年Dogfood的统治。它已经整整一代人现在他们文化的一部分。你
不要吃人的食物,给你的开发狗粮。这样做简直是抢劫长期短期成功的平台价值。平台
是长远的思维。
谷歌+是一种下意识的反应,在短期思维的研究,对不正确的观念,Facebook的成功,
因为他们建立了一个伟大的产品为前提。但是,这不是他们成功的原因。 Facebook是
成功的,因为他们建立了允许其他人做的工作,一个产品的整个星座。所以,Facebook
是每个人都不同。有些人花费所有的时间都在黑手党战争。有些花费上法姆维尔所有的
时间。有数百或者数千提供高品质的不同时间汇,所以有一些为大家。
我们的Google +团队参加了在看售后,说:“天哪,看起来我们需要一些游戏,让我们
走合同的人,嗯,为我们写一些游戏。”你开始看到多么令人难以置信的错误思想,是
现在吗?问题是,我们正尝试预测人们想要什么,并为他们提供。
你不能这样做。不是真的。不可靠的。已经有世界上珍贵的几个人,在整个历史中,已
经能够做到可靠的计算。史蒂夫乔布斯就是其中之一。我们没有一个史蒂夫乔布斯在这
里。我很抱歉,但我们没有。
拉里Tesler相信贝索斯说,他没有史蒂夫乔布斯,但贝索斯意识到,他并不需要一个史
蒂夫乔布斯在向每个人提供合适的产品:界面和工作流程,他们喜欢和感觉用得放心。
他只是需要,使第三方开发人员做的,它会自动发生。
我道歉,你(很多),对他们来说,这一切的东西,我说是令人难以置信的明显,因为
呀。这是令人难以置信该死明显。但我们没有这样做。我们没有得到良好的平台,和我
们没有得到辅助。两者是基本相同的事情,因为平台解决无障碍。一个平台是无障碍。
所以呀,微软得到它。你知道,以及我做的,是如何不足为奇,,因为他们没有“得到
”的任何东西,真的。但他们明白作为开始在业务提供平台的生命纯属偶然产物的平台
。因此,他们有三十多年,在这个空间里学习。而如果你去msdn.com,花一些时间浏览
,你从来没有看到过,准备很惊讶。因为它是惊人的巨大。他们有成千上万,还有数千
和数以千计的API调用。他们有一个巨大的平台。事实上太大,因为他们不能设计为蹲
,但至少他们做。
亚马逊得到它。亚马逊的AWS(aws.amazon.com)是不可思议的。只要去看看它。点击
左右。它的尴尬。我们没有任何这些东西。
苹果得到它,很明显。他们已经取得了一些根本不开的选择,尤其是在他们的移动平台
。但他们了解获取和理解第三方开发的力量,他们吃的dogfood的。你知道吗?他们相
当好dogfood。其API是地狱,比微软的很多清洁和已自古以来。
FACEBOOK得到它。这是真正令我担心。这是什么我我懒屁股写这个东西。我恨博客。我
恨... ... plussing,或任何它被称为当你做一个巨大的咆哮在谷歌+即使它是一个可
怕的场地,但你这样做反正因为最终你真的希望谷歌能够成功。我做的!我的意思是,
Facebook希望我有,它会很容易才行。但是,谷歌是家,所以我坚持认为,我们这个小
小的家庭干预,不舒服,因为它可能会。
当你在微软和亚马逊和Facebook平台产品惊叹不已,我想(我没看,因为我不想太压抑
),到developers.google.com头和浏览一点点。相当大的区别,不是吗?这就像你五
年级的侄子可能模拟,如果他做的转让证明什么大的强大的平台,公司可能会建设,如
果他们的所有资源明智的,是一个五年级的。
请没有得到我错了 - 我知道一个事实,DEV -都得经过战斗变得这么多可用的外部REL
团队。他们踢屁股至于我担心,因为他们得到的平台,他们正努力英勇尝试创建的环境
中,最好的平台,精神萎靡之一,在最坏的情况经常公开敌对的想法。
我只是坦率地描述什么developers.google.com看起来像一个局外人。它看起来幼稚。
哪里有地图的API为基督的缘故?在那里的一些事情是实验室项目。的一切,我点击的
API ...他们是微不足道的。他们显然狗食。即使是很好的有机的东西。我们的内部API
相比,它的所有的吻部和马蹄。
,而且也不让我关于Google +错误。他们远离唯一的罪犯。这是一种文化的东西。我们
国内基本上是一场战争,争取哀兵少数Platformers对强大的投资信心Producters或多
或少失去战斗。
地图和文档浮现在脑海中,我知道Gmail是在这个方向的序曲 - 任何已成功内化的概念
,他们应该从地面外部可编程的平台,是处下风队。但是,很难让他们得到它的资金,
因为它不是我们文化的一部分。 Maestro的资金是一个软弱的事情相比,庞大的微软
Office编程平台:它是一个与一个T - REX的蓬松兔。文档团队知道他们永远不会与
Office竞争力,直到他们可以匹配它的脚本设施,但他们没有得到任何资源爱。我的意
思是,我想不是这样,在电子表格应用程序脚本只适用于现在,它甚至没有键盘快捷键
作为其API的一部分。那支球队看起来相当没人爱我。
讽刺的是,波是一个伟大的平台,愿他们安息。但是,一个平台的东西是不会让你马到
成功。一个平台,需要一个杀手级应用。 FACEBOOK - 那就是,股票服务,墙壁和朋友
等提供 - 是Facebook平台的杀手级应用。这是一个非常严重的错误结束的Facebook本
来,因为没有成功的Facebook平台附近的任何地方。
你知道人们是如何总是说谷歌是傲慢?我是Google员工,所以我得到恼火作为你当人们
说。我们不傲慢,通过和大。我们一样,99%的嚣张气焰。我开始这篇文章 - 如果你
将延伸到遥远的记忆 - 由谷歌描述为“做的一切权利”。以及我们做的意思,并在大
多数情况下,当人们说我们傲慢是因为我们没有聘请他们,或他们是我们的政策,或类
似的规定感到不满。他们推断的嚣张气焰,因为它使他们感觉更好。
但是,当我们采取的立场,我们知道如何设计完美的产品为大家,相信你我,我听到了
很多,那么我们正在傻瓜。您可以将它的属性的嚣张气焰,或天真,或任何 - 不要紧
到底,因为它的愚蠢。有没有完美的产品为大家。
因此,我们浏览器,不会让你设置的默认字体大小。谈一个无障碍的侮辱。我的意思,
因为我变老实际上,我盲目。对于实。我已经近视所有我的生活,而一旦你打你不再是
能够近距离看东西的40岁。所以字体选择成为生命或死亡的事情:它可以锁定您的产品
完全。但Chrome团队是平面的傲慢在这里:他们希望建立一个零配置的产品,和他们相
当的厚颜无耻,他妈的你,如果你失明或失聪或任何。按Ctrl +每一个单一的页面访问
你的后半生。
这不只是他们。它的每一个人。问题是,我们是一家产品公司通过和通过。我们建立了
一个成功的产品,具有广泛的吸引力 - 我们的搜寻,那就是 - 野生成功有失偏颇我们。
亚马逊是一个产品的公司也是如此,所以它采取了波段的力量,使贝索斯了解需要一个
平台。这力量是他们的蒸发空间;他狗急跳墙,不得不思考出路。但他是一堆的工程师
和所有这些计算机... ...如果只有他们可以货币化的莫名其妙... ...你可以看到他如
何抵达AWS在事后。
微软开始了作为一个平台,让他们刚刚在大量的实践。
脸谱,虽然他们担心我。我不是专家,但我敢肯定,他们开始了作为一个产品,他们骑
着马,成功很远。所以,我不知道他们是如何过渡到一个平台。这是一个比较长的时间
,因为他们前平台(现在很老),黑手党战争之类的东西可以沿来。
也许他们只是看着我们,问道:“我们如何才能打败Google,什么是他们失踪”
我们面临的问题是相当巨大的,因为它会采取一个戏剧性的变化,以文化为我们开始追
赶。我们不这样做内部面向服务的平台,我们只是作为同样没有做外部的。这意味着“
不”是整个公司流行的PMS没有得到它,工程师们不明白这一点,产品团队不明白这一
点,没有人得到它。即使个人,即使你做的,它并不重要位,除非我们作为全动手甲板
紧急处理。我们不能不断推出产品和假装我们稍后将变成神奇美丽的可扩展平台。我们
尝试过,它不工作。
黄金法则的平台,“吃你自己的Dogfood”,可以改写为“开始了一个平台,和然后使
用它的一切。”你不能只螺栓,在以后的。当然不容易,无论如何 - 问任何人上
platformizing MS Office的工作。或任何人platformizing亚马逊工作。如果延误了它
,它会尽可能多的工作只是在做它正确锋线十倍。你不能欺骗。你不能有内部应用程序
的秘密后门,得到了特别的优先访问,没有任何理由。你需要解决前面的难问题。
我不是说这是对我们来说为时已晚,但我们不再等待,我们得到太晚了。
老实说,我不知道如何包装这件事。我说我来这里说,今天几乎一切。这个职位一直在
酝酿6年。对不起,我是不是柔情似水,或如果我歪曲了一些产品或团队或个人,或如
果我们实际上做了很多平台的东西,它只是恰巧,我和大家我曾经谈论到有,只是从来
没有听说过它。我很抱歉。
但是我们总得开始做这项权利。
Google
companies
crazy.
,
【在 w****2 的大作中提到】![](/moin_static193/solenoid/img/up.png) : Stevey's Google Platforms Rant : I was at Amazon for about six and a half years, and now I've been at Google : for that long. One thing that struck me immediately about the two companies : -- an impression that has been reinforced almost daily -- is that Amazon : does everything wrong, and Google does everything right. Sure, it's a : sweeping generalization, but a surprisingly accurate one. It's pretty crazy. : There are probably a hundred or even two hundred different ways you can : compare the two companies, and Google is superior in all but three of them, : if I recall correctly. I actually did a spreadsheet at one point but Legal : wouldn't let me show it to anyone, even though recruiting loved it.
| w******c 发帖数: 574 | 3 stopped reading after ``google does everything right"
Google
companies
crazy.
,
【在 w****2 的大作中提到】![](/moin_static193/solenoid/img/up.png) : Stevey's Google Platforms Rant : I was at Amazon for about six and a half years, and now I've been at Google : for that long. One thing that struck me immediately about the two companies : -- an impression that has been reinforced almost daily -- is that Amazon : does everything wrong, and Google does everything right. Sure, it's a : sweeping generalization, but a surprisingly accurate one. It's pretty crazy. : There are probably a hundred or even two hundred different ways you can : compare the two companies, and Google is superior in all but three of them, : if I recall correctly. I actually did a spreadsheet at one point but Legal : wouldn't let me show it to anyone, even though recruiting loved it.
| D***e 发帖数: 247 | 4 You stopped one step too early:)
The guy has a point, and it explained some of my questions why many great products from Google did not enjoy the kind of success they should have. This doesn't mean Google is doomed, but it may really need a steve jobs for Google to accomplish its higher goal, and it is not easy.
【在 w******c 的大作中提到】![](/moin_static193/solenoid/img/up.png) : stopped reading after ``google does everything right" : : Google : companies : crazy. : ,
| s********k 发帖数: 6180 | 5 steve yegge的博客总是把偶尔的闪光点掩藏在一大堆shit里面。难以置信他每篇blog
能扯出这么多东西,并且之间有缺乏逻辑型的若隐若现的关系。我感觉他就是在用OOP
的方法写blog,不停地refactoring他的观点object。真是programmer的最爱
products from Google did not enjoy the kind of success they should have.
This doesn't mean Google is doomed, but it may really need a steve jobs for
Google to accomplish its higher goal, and it is not easy.
【在 D***e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : You stopped one step too early:) : The guy has a point, and it explained some of my questions why many great products from Google did not enjoy the kind of success they should have. This doesn't mean Google is doomed, but it may really need a steve jobs for Google to accomplish its higher goal, and it is not easy.
|
|