Amazon前员工,现google员工在Google+上说google不懂得做平台,里头也提到以前Amazon实现面向服务架构的一些经验(不过是好几年前的经验了):
-pagerescalationgetswayharder,becauseaticketmightbouncethrough20servicecallsbeforetherealownerisidentified.Ifeachbouncegoesthroughateamwitha15-minuteresponsetime,itcanbehoursbeforetherightteamfinallyfindsout,unlessyoubuildalotofscaffoldingandmetricsandreporting.
-everysingleoneofyourpeerteamssuddenlybecomesapotentialDOSattacker.Nobodycanmakeanyrealforwardprogressuntilveryseriousquotasandthrottlingareputinplaceineverysingleservice.
-monitoringandQAarethesamething.You'dneverthinksountilyoutrydoingabigSOA.Butwhenyourservicesays"ohyes,I'mfine",itmaywellbethecasethattheonlythingstillfunctioningintheserveristhelittlecomponentthatknowshowtosay"I'mfine,rogerroger,overandout"inacheerydroidvoice.Inordertotellwhethertheserviceisactuallyresponding,youhavetomakeindividualcalls.Theproblemcontinuesrecursivelyuntilyourmonitoringisdoingcomprehensivesemanticscheckingofyourentirerangeofservicesanddata,atwhichpointit'sindistinguishablefromautomatedQA.Sothey'reacontinuum.
-ifyouhavehundredsofservices,andyourcodeMUSTcommunicatewithothergroups'codeviatheseservices,thenyouwon'tbeabletofindanyofthemwithoutaservice-discoverymechanism.Andyoucan'thavethatwithoutaserviceregistrationmechanism,whichitselfisanotherservice.SoAmazonhasauniversalserviceregistrywhereyoucanfindoutreflectively(programmatically)abouteveryservice,whatitsAPIsare,andalsowhetheritiscurrentlyup,andwhere.
- 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.
来自https://plus.google.com/112678702228711889851/posts/eVeouesvaVX