Squbs是一个起源于eBay和PayPal的开源项目。
Squbs是一个软件容器,一套能实现AkkaandSpray应用/服务在大规模管理、云服务中标准化和运作的组件。
squbsComponents
Unicomplex:Themicro-containerthatbootstrapsandstandardizesthedeploymentofAkka/Sprayapplicationsandhowtheyareconfigured,allowingteamsotherthanPDtounderstandtheconfigurationandtweaktheconfigurationofapplications,partlyatruntime,asneeded.Inaddition,theUnicomplexencouragescoexistenceofdifferentmodules,calledcubes,and/oroperationaltoolinginaflexible,loosely-coupledfashionthatwillnotincuranycodechangeinordertoincludenewopstoolingordropout/changesomeopstooling.Forinstance,incaseswherewehavemixedcloudenvironmentssuchasprivateandpubliccloudneedingdifferentoperationaltools,thesamecodebasewillworkwithbothallowingdeployment-timeadditionofenvironment-specifictooling.
TestKit:Usedtohelptestapplicationswrittenforsqubs,orevenAkkaapplicationsaltogether.ItprovidesunittestandsmallscaleloadtestingfacilitiesthatcanberunaspartofCI.
ZKCluster:AZooKeeper-based,datacenter-awareclusteringlibraryallowingclusteredapplicationsorservicestospandatacenterandholdtheavailabilitycharacteristicsacrossdatacenters.Thisisneededforapplicationsthatneedintra-clustercommunications.
HttpClient:Anoperationalized,simplifiedclientthatsupportsbothenvironmentandendpointresolutiontofitintodifferentoperationalenvironments(QA,Prod)aswellasorganizationalrequirements(Topo,direct).
Pattern:AsetofprogrammingpatternsandDSLsprovidedtousers.
OrchestrationDSLallowingdeveloperstodescribetheirorchestrationsequenceinanextremelyconcisemannerwhilerunningthewholeorchestrationasynchronously,thuslargelysimplifyingcodeandreduceslatencyfortheapplication.
Asynchronoussystemsdependheavilyontimeoutsandfixedtimeoutsareneverright.TimeoutPolicyallowsuserstosetpolicy(like2.5sigma)insteadoffixedtimeoutvaluesandtakescareoftheheuristicsbyitselfallowingsystemstoadapttotheiroperatingconditions.
Spraydoesn'thavefriendlyAPIforJava,thespray.japipackageprovidesafewofHelpersandFactoriestohelpJavadeveloperstoconstructsprayentitieseasily.
ValidationprovidesaSpraydirectivefordatavalidationbyusingAccordValidationLibrary.
PersistentBufferprovidesahigh-performanceAkkaStreamsflowbuffercomponentthatpersistsitscontenttoamemory-mappedfileandrecoversthecontentafterfailureandrestart.
ActorRegistry:Acorelookupfacilityallowingactorsofloosely-coupledmodulestofindeachothers,oreventomodeldifferentservicesasactors.
ActorMonitor:Anadd-onoperationalmodulethatusesJMXtoreportthestatsandbehaviorofactorsinthesystem.ThesestatscanbeseenbyanyJMXtooling
Pipeline:Aninfrastructureallowingsequencingandplugginginofrequest/responsefilters.Theseareused,forinstance,forsecurity,ratelimiting,logging,etc.Eachofthecomponentshavevirtuallynodependencyoneachothers.Theyaretrulylooselycoupled.Developersandorganizationsarefreetopickandchoosethecomponentsneededfortheirenvironment.
Console:Adrop-inmoduleallowingwebaccesstosystemandapplicationstatsthroughasimplewebandserviceinterfacereturningpretty-printedJSON.
评论