加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 eBay技术平台:掌控十亿级交易数据(Tony Ng)

eBay技术平台:掌控十亿级交易数据(Tony Ng).pdf

eBay技术平台:掌控十亿级交易数据(Tony Ng)

zjznet
2011-10-26 0人阅读 举报 0 0 暂无简介

简介:本文档为《eBay技术平台:掌控十亿级交易数据(Tony Ng)pdf》,可适用于IT/计算机领域

eBay Architecture Tony Ng Director, Systems Architecture October  DRAFTAbout Me • eBay – Systems Architecture and Engineering • Yahoo! – Social, Developer PlaEorms, YQL • Sun Microsystems – JEE, GlassFish, JSRs • Author of books on JEE, SOA    DRAFTeBay Stats •  million acQve users •  million items for sale in , categories • A cell phone is sold every  seconds in US • An iPad sold every  minutes in US • A pair of shoes sold every  seconds in US • A passenger vehicle sold every  minutes • A motorcycle sold every  minutes  http:wwwebayinccomfactsheetsDRAFTeBay Scale •  Petabytes of data storage • , applicaQon servers •  million lines of code •  billion pictures •  site availability • A typical day – B database calls – B page views – B search queries – Billions of service calls – s of millions of internal asynchronous events  DRAFTHistory of Technology InnovationPotentialAgilityTTMArchitectureMaturity·∙PerlC·∙InlineHTML·∙Monolithic·∙VerticalScale·∙WalledGarden·∙Java·∙XSL·∙Layered·∙HorizontalScale·∙SomeAPIs·∙Java·∙VComponents·∙Services·∙InternalCloud·∙PlatformDRAFTQualies A:ributes Concerns • Scalability • Availability • Latency • Security • Manageability • Cost   DRAFTeBay Scalable Architecture • ParQQon everything – Databases, applicaQon Qer, search engine • Stateless preference – No session state in app Qer • Asynchronous processing – Event streams, batch • Manage failures – Central applicaQon logging – Mark downs  DRAFTNext Challenges • Maintain site stability but deliver quality features and innovaQons at acceleraQng paces • Complexity as our codebase grows • Build on our architecture maturity to enable faster Qme­‐to­‐market • Developer producQvity  DRAFTScalability with Agility • Strategy : AutomaQon with Cloud • Strategy : Next Gen Service orientaQon • Strategy : Modularity • … and more …  DRAFTAutomaon with Cloud  DRAFTImproving Automaon  request{nbservers,model,app}orderreceiverackwireLabel(app)deliverwwrepurpose“several”weeksrequest{nbservers,model}orderReceiveprerackedPrewireddelivertocachedaywrepurposeminutesrequest{nbservers,model,app}deliverquarterlyDRAFTImproving Ulizaon  NumberofserversrequiredbasedonutilizationforpoolsDRDRAFTInfrastructure Virtualizaon InfraInfraInfraInfraSparesparesparespareApplicationAppAppAppSharedinfrastructureGlobalresourcepoolApplicationAppAppAppDRAFTeBay Cloud SelfServicePortalAutomationpoolprovisioninginminutesHardwareAcquisitionResourceAllocationVirtualizationSpareCapacityCapacityManagementImprovedTimetoMarketDRAFTDesign Principles • Network isolaQon to enable mobility and isolaQon at scale • Capability to automate reliably • StandardizaQon • Private vs Public – Start with Private, opQon to go Hybrid  • Buy vs Build – Build  OSS  DRAFTInfrastructure  PlaJorm as a service  VirtualizedCommonInfrastructureAutomatedOperationsInfrastructureAsAServiceFrontEnd,SearchBackEnd,GenericPlatformAutomatedLifeCycleManagementPlatformAsAServiceEnablesinnovationonnewplatformsInfrastructurelevelautomationHigherdeveloperproductivityFullapplicationlevelautomationDRAFTIaaS eBayConfidential VirtualEnvironmentComputeNodesStoragenetworksVirtualClusterComputeNodesStoragenetworksVirtualPoolAccess!Point!DNS!Name!DNS Service Mail Service Storage  As a Service NTP Service InfrastructureServicesComputeNodesStoragenetworksPhysicalInfrastructureVirtual machines Physical machines Network Storage (SANNAS) Firewalls Load Balancers networks Racks Data Centers Classof!Service!Access!Lists!Account!*OS!Images!*configurations!Organization!ReservedInstancesProxy Service DRAFTPaaS  VirtualEnvironmentApplicationServicesPlatformServiceseCommerceServicesClassof!Service!Access!Lists!Account!*Builds!packages!*configurations!Login Identy Catalog Search List Pricing Offer ADs Payment Shipping CS Coupons Messages Cart DB as A Service Logging Analycs Monitoring Front End Search SOA Storage  As a Service Generic UpdateStrategy*DNS!Name!Organization!ServiceInstancesProfilesAccess!point!groups!groups!DRAFTModel Driven Automaon for Reliability  • DesiredconfigurationisspecifiedintheexpectedstateandpersistedinCMS• Uponapproval,theorchestrationwillconfigurethesitetoreflectthedesiredconfiguration• Updatedsiteconfigurationisdiscoveredbasedondetectionofconfigurationevents• Reconciliationbetweentheexpectedandcurrentstateallowstoverifytheproperconfiguration• OngoingvalidationallowsthedetectionofoutofbandchangesLBPoolServerServerServerCurrentStateSiteDiscoveryComparisonExpectedStateReconciliationOrchestrationLBPoolServerServerServerDRAFTOpen Source Integraon IaaSPaaSAPIorchestrationResourceAllocationDistributedStateComputeControllerClusterControllerPoolControllerComputeMgtDNSMgtLBMgtNetworkProvImagePkgRepoSoftwareDistAuthNAuthZApplicationControllerAccessPointControllerIaaSPaaSAPIOpen Source SoluQon (openstack  Cloudstack) orchestrationResourceAllocationDistributedStateComputeControllerClusterControllerPoolControllerAuthNAuthZApplicationControllerAccessPointControllerMonitoringDRAFTApplicaon Architecture Ongoing“CloudFriendly”Future‘Cloudready’BeforeDRAFTNext Gen Service Orientaon  DRAFTServices  eBay • It’sajourney!• History• OneofthefirsttoexposeAPIsServices• Inearly,embarkedonserviceorientingourentireecommerceplatform,whetherthefunctionalityisinternalorexternal• SupportRESTstyleaswellasSOAstyle• Haveclosetoservicesnowandmoreontheway• EarlyadoptersofSOAgovernanceautomation(Discoveryfocusratherthancontrol)DRAFTArchitecture Vision ApplicationPlatformServicesLogin Identy Catalog Search List Pricing Offer ADs Messages Cart Coupons Payment Shipping CS CustomerExperienceCore Experience Custom Experiences Channels TechnologyPlatformApp Stack Data Access Layer Dev Tools Presentaon Messaging SOA Cloud OperationsInfrastructureLayerPower Data Center Hardware Network Database Operaons Tools DRAFTSOARESTServerFrameworkservicesSOARESTclientFrameworkclientsAuthenticationAuthorizationRLMonitoringLoggingPolicyserviceAdminconsoleMonitoringconsoleDesignDevRuntimeRegistryRepositoryLifecycledependencymgmtRegistryExternalrouting(ESB)EclipseDevtoolsDevArchTesttoolseBay SOA Stack Overview DevelopServices,consumers,AssertionssvcRESTMappingTierDRAFTChallenge : Mulple Data Formats • : Mix of user preferences – SOAP – REST­‐like: HTTP GET with all request informaQon in the URI – Plain Old XML (POX): HTTP POST with XML data but no SOAP envelope – JSON • Shopping API was our first “XML Unified Field” web service – Input formats: Name­‐value encoded in URI XML JSON SOAP – Output formats: XML, JSON, SOAP • Key concepts: – Users ask for whatever data format they want – When using our frameworks, developers don’t have to change any code to get a different data format – Anything you can express in XML, you can express in other formats – Complete mapping from XML structures to NV and JSON • Service developers don’t want to write extra code to do conversions too much maintenance impact  DRAFT Soluon: Pluggable Data Formats Using JAXB XMLOtherformatsJSONNVAsingleInstanceofServiceImplJAXBJavaobjectsPassedtopipelineXMLNVJSONDirectlydeserializedintoSOAframeworkothersSerDesermoduleUniforminterfaceXMLbasedserializationNointermediateformat,AvoidsextraconversionPluggableformatsDRAFTChallenge : Latency • JAXB unificaQon of XML, JSON, Name­‐Value, and Fast Infoset works well! • BUT: for large datasets, there can be nasty latencies – Not fixed by compressing or using Fast Infoset  MBstructuredresponsepayload,devtoprodWireTime(msec)DRAFTSoluon: Binary Formats • What about using: • Binary formats: Google Protocol Buffers, Avro,Thri^, etc • Numbers look promising (serializaQon, deserializaQon) • New challenges with these: • Each has its own schema (type definiQon language) to model types and messages • Each has its own code generaon for language bindings • NOT directly compaQble with JAXB beans • Turmeric SOA plaEorm uses WSDLXML Schema (XSD) data modeling, and JAXB language bindings  DRAFTCompare Popular non­‐XML Formats  ProtobufAvroThrift• OwnIDLschema• Sequencenumbersforeachelement• Compactbinaryrepresentationonthewire• MostXMLschemaelementsaremappabletoequivalents,exceptpolymorphicconstructs• VersioningissimilartoXML,abitmorecomplexinimplementingduetosequencenumbers• JSONbasedSchema• Schemaprependedtothemessageonthewire• Compactbinaryrepresentationonthewire• MostXMLschemaelementsaremappabletoequivalent,exceptpolymorphicconstructs• Versioningiseasier• OwnIDLschema• Sequencenumbersforeachelement• Compactbinaryrepresentationonthewire• MostXMLschemaelementsaremappabletoequivalents,exceptpolymorphicconstructs• VersioningissimilartoXML,abitmorecomplexinimplementingduetosequencenumbersComplex Types Unions (Choice Type) Self­‐References (Trees) Enums InheritancePolymorphism Inline A:achment Protobuf Yes No Yes Yes No No Avro Yes Yes Yes (with workaround) Yes No No Thri^ Yes No No No No No XML Yes Yes Yes Yes Yes Yes (MIME­‐TYPE) DRAFTEarly In­‐JVM Test,  percenle XMLFIProtobufSize(KB)WireTime(msec) Responsedata:itemsxfieldsDRAFTQA network test,  mings JSONXMLFastInfosetProtobufSize(KB)Wiretime(msec) Responsedata:itemsxfields(aboutobjects)DRAFTProducon tests – progressive improvements XMLXMLnopolyXMLflatPBnopolyPBflatWireTime(msec) DRAFTChallenge :  Service Consumer Producvity • Large, complex requests and responses • Get exactly what they want in data returned from services • Lack of consistency in service interface convenQons and data access paserns • Real client applicaQons make calls to mulQple services at a Qme – Serial calls increase latency Managing parallel calls is complex • Impedance mismatch between service interface and client needs – Too much data is returned –   n calls to get detailed data  DRAFTSneak Preview: qlio • New technology from eBay • Plan to open source soon • SQL  JSON based scripQng language for aggregaQon and orchestraQon of service calls • Filtering and projecQons of responses • Async orchestraQon engine – AutomaQc parallelizaQon, fork  join  DRAFTWhat qlio Enables • Create consumer­‐controlled interfaces   fixpatch APIs on the fly • Filter and project responses   use a declaraQve language • Bring in consistency   offer RESTful shims with simpler syntax • Aggregate mulple APIs  such as batching • Orchestrate requests  without worrying about async forks and joins  DRAFTqlio Demo  DRAFTModularity  DRAFTKey modularity concepts for so^ware • Building blocks • Re­‐use • Granularity • Dependencies • EncapsulaQon • ComposiQon • Versioning Source:http:techdistrictkirkkcomgranularityarchitecturesnemesisAuthor:KirkKnoernschildDRAFTChallenges for Large Enterprises • Some stats on the eBay code base – ~  million of lines of code and growing – Hundreds of thousands of classes – Tens of thousands of packages – ~ , jars • We have too many dependencies and Qght coupling in our code – Everyone sees everyone else – Everyone affects everyone else  DRAFTChallenges for Large Enterprises • Developer producQvityagility suffers as the knowledge goes down – Changes ripple throughout the system – Fallouts from changesfeatures are difficult to resolve – Developers slow down and become risk averse  codesizeknowledgecomplexityDRAFTOur Goals with Modularity Efforts • Tame complexity  • Organize our code base in loose coupling fashion – Coarse­‐grained modules: number masers! – DeclaraQve coupling contract – Ability to hide internals • Establish clear code ownership, boundaries and dependencies • Allow different components (and teams) evolve at different speeds • Increase development agility DRAFTConsideraons on Modularity Soluons • Scalability: enterprise soxware tends to be large scale • We need to consider a large group of developers with varying skill levels • End­‐to­‐end development lifecycle is crucial • ConversionmigraQon of exisQng code base is crucial – We rarely start from vacuum – We want to move over and modularize bulk of exisQng code – It is imperaQve that we chart a realisQc migraQon course that can be achieved within a reasonable amount of Qme – We cannot afford disrupQon to business meanwhile: “change parts while the car is running”   DRAFTEnd­‐to­‐End Development • IDE, command line build, repository, server runQme, etc – Complete and mature tooling – IntegraQon and fidelity of tools across phases RepositoryIDESCMServerruntimeDeploymentpublishconsumeconsumepackagingdeployCommandlinebuild(CI)pullpushpullDRAFTModularity Soluon Evaluaon • Evaluated OSGi, Maven, Jigsaw and JBoss Module • Criteria include: – Modularity enforcement – End­‐to­‐end development – MigraQon concerns – AdopQon – Maturity • Selected OSGi  DRAFTOSGi METAINFMANIFESTMF:BundleManifestVersion:BundleSymbolicName:orgfoobarBundleVersion:ImportPackage:orgfoootherversion=“,)”,javaxxmlparsersExportPackage:orgfoobarversion=“”,orgfoobarsubuses=“orgfoobar”version=“”DRAFTOSGi Pros • Enforces modularity strongly: it will let you know if you violate it • Mature and comprehensive: covers presy much all use cases regarding modularity • Open standard • Services: the ulQmate decoupling force • Can run two versions of the same class easily  DRAFTOSGi Cons • Can run two versions of the same class easily, and run into trouble • Some problems are nasty to troubleshoot (uses conflict anyone) • SQll not many well­‐integrated tools across all phases: impedance mismatches • Compared to strong runQme model, build side story is weak • MigraQon can be quite painful • Learning curv

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/10

eBay技术平台:掌控十亿级交易数据(Tony Ng)

仅供在线阅读

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利