pre-con ed: webhooks & continuous feedback with ca application lifecycle conductor
TRANSCRIPT
World®’16
Webhooks &ContinuousFeedbackwithCAApplicationLifecycleConductorVaughnMarshallSr.PrincipalProductOwner
MFX57E
MAINFRAME
2 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
ForInformationalPurposesOnlyTermsofthisPresentation
©2016CA.Allrightsreserved.Alltrademarksreferencedhereinbelongtotheirrespectivecompanies.Thepresentationprovided atCAWorld2016isintendedforinformationpurposesonlyanddoesnotformanytypeofwarranty.Someofthespecificslideswith customerreferencesrelatetocustomer'sspecificuseandexperienceofCAproductsandsolutionssoactualresultsmayvary.
CertaininformationinthispresentationmayoutlineCA’sgeneralproductdirection.Thispresentationshallnotserveto(i)affecttherightsand/orobligationsofCAoritslicenseesunderanyexistingorfuturelicenseagreementorservicesagreementrelatingtoanyCAsoftwareproduct;or(ii)amendanyproductdocumentationorspecificationsforanyCAsoftwareproduct.Thispresentationisbasedon currentinformationandresourceallocationsasofNovember1,2016,andissubjecttochangeorwithdrawalbyCAatanytimewithout notice.Thedevelopment,releaseandtimingofanyfeaturesorfunctionalitydescribedinthispresentationremainatCA’ssolediscretion.
Notwithstandinganythinginthispresentationtothecontrary,uponthegeneralavailabilityofanyfutureCAproductrelease referencedinthispresentation,CAmaymakesuchreleaseavailabletonewlicenseesintheformofaregularlyscheduledmajorproductrelease.SuchreleasemaybemadeavailabletolicenseesoftheproductwhoareactivesubscriberstoCAmaintenanceandsupport,onawhen andif-availablebasis.Theinformationinthispresentationisnotdeemedtobeincorporatedintoanycontract.
3 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
Abstract
Today'sapplicationdevelopmentlandscapefrequentlyincludesaheterogeneoustoolsetwithsolutionsvaryingacrossvendorsandevendifferingbetweenteams.Insuchanenvironment,howdoyouensurethecriticaleventsoccurringinonesystemcantriggereventsinanother,creatingaseamlessSDLCoutofthemanyparticipatingtools?Joinusforatechnicaldeep-divetoseehowCAApplicationLifecycleConductorcanbothconsumeandproducewebhooks andothereventsforbothdistributed&mainframeproductstoproduceafullyintegratedSDLC.
VaughnMarshallCATechnologiesSr.PrincipalProductOwner
5 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
Development Deployment&OperationalTesting
ChallengestoDeliveringInnovations…Continuously
Developers ReleaseTeam
Operations
TESTBUILD DEPLOY
Testers
OPERATE
DeploytoProduction
CulturalBarriers,
LargeCodeMonoliths
ConstrainedEnvironments
TestEnvironmentProvisioningChallenges
ManualTestingandScripting
IncompleteTestCasesandData
Cross-EnterpriseDelivery,
CoordinationandVisibility
LackofIntegratedToolsets
IDLETIME DELAYS
Code/Integrate/Build
Functional&UATesting
PerformanceTestingdefect
RE-WORK
defect defect
DELAYS DELAYS
RE-WORK
6 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
IntroducingMainframeDevOpsSolutionCAoffersSolutionsin4keyareastofosterprinciplesofAgileandDevOps
ContinuousMonitoringContinuousTestingAgileDevelopment ContinuousDeliveryDevelopandmaintainmainframeapplicationswithagileandmodernmethodologies,toolsetsandcodinglanguages
TESTEarly&Often
DEVELOPSwiftly
DEPLOYReliably
OPERATEEfficiently
ContinuousFeedbackLoop
Reducetestcycletimesandcostsofmainframetestingforbettertimetomarketandmainframeeconomics
Removethebarrierstobusinessagilityonthemainframe,withautomationtoreducetimetomarketandmanageskillsgaps
UnifymonitoringandperformancemanagementacrossmobileandmainframeteamsforbetterMTTRandlowerskillscosts
8 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
WhatareWebhooks?
§ Termcoinedin2007fromtheprogrammingterm“hook”
§ Webhooksareuser-definedcallbackswhichrunusingHttpinfrastructure
§ Theyaregenerallytriggeredbyanapplicationeventsuchasupdatingaformfieldorperformingsomeapplication-specificoperation
9 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
WhatareWebhooks?(Continued)
§ AdministratorsdefineaHttpendpointthatcan“receive”notificationoftheevent
§ Whentheeventoccurs,aPOSTisdonetothedefinedend-point
§ Webhooks haveevolvedasanindustrystandardwayofintegratingapplicationsviaevents
10 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
ConsumingWebhooks– Challenges
§ TheonlythingwebhookshaveincommonacrossdifferenttoolsandapplicationsisthatanHttpPOSTisperformedtoaURL
§ ExactlywhatisPOST’disunspecified– itcouldbeanything:– XMLdata– JSONdata– Rawtext– Nothing!
11 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
ConsumingWebhooks – Challenges(Continued)
§ Nostandardsonsecurity– TypicallyAPIkeysareusedbutsomewebhook producersmayrequire
additionalconsiderations
§ Typically,systemsintegratorswouldcode&standupsimplewebservicestoconsumethewebhook events– Thisrequirescustomcoding&knowledgeofwebserviceinfrastructure– Thiscanalsoleadtoaproliferationofservices
12 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
IntroducingtheCAALCEventBroker
§ CAALC3.0includesanewcomponentcalledtheCAALCEventBrokertosimplifywebhook consumption– Providesagenericendpointforhandlinganynumbereventstoprevent
serviceproliferation– Multiplemethodsofauthentication– Providesdynamic,rules-basedformattingandprocessingusingworkflow
widgetstoavoidwritingcode
13 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
IntroducingtheCAALCEventBroker(Continued)
§ CAALC3.0includesanewcomponentcalledtheCAALCEventBrokertosimplifywebhookconsumption– LeverageCAALCconnectorsandconnectorworkflowwidgetstoquicklybuild
outintegrations– Extensiblewithcustomhandlerswherespecialprocessingorextremelyhigh
throughputisrequired– IncludesaNoSQLdatabaseforeventcapture&logging
14 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
ProducingWebhooks fromtheMainframe
§ Webhook producersupportispresentincommonALMtools
§ Webhook supportisnowcomingtoyourfavoriteMainframetoolsviatheMainframeWebhook Server
15 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
IntroducingtheMainframeWebhook Server
§ TheMainframeWebhook Servermonitorslocationsforfile-based“events”andpoststhemtoawebhook endpoint
§ Eventsaremonitoredtoensuredeliveryandcanberepostedintheeventoffailure
§ Simpleadministrativeinterfaceprovidedtoconfigurethewebhook eventandreview&manageeventdata
16 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
Webhook EventsforCAEndevor SCM&Beyond
§ WillinitiallyallowCAEndevor SCMtoproducepackageeventstoallowforautomationaroundoperationssuchaspackageCASTorEXECUTE
§ Eventually,thelistofsupportedproductswillbeextendedtootherCAApplicationDevelopmentProducts
17 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
ExtendingtheEventBrokerADevelopersViewofCAALC’sNewestIntegrationCapabilities
18 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
ExtendingtheCAALCEventBroker
§ ExtensibilityisprovidedbyallowingforthecreationofcustomerhandlerJarfiles
§ HandlersareconfiguredtobecalledinaparticularorderviatheCAALCEventBrokerconfigurationfile– Simplicityrules– noOSGIplugins,hotswaporother“plugin”capabilities– Handlersinheritfromabaseclassprovidedinthedistribution
§ Allhandlersareequal– whenaneventisreceived,thehandlersarenotifiedintheirconfiguredorder
19 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
ExtendingtheCAALCEventBroker(Continued)
§ Eachhandlermaydeclaretheeventhandledduringprocessingandifitdoesso,theeventstopspropagating
§ Otherwise,itpassestothenexthandler
§ AlloperationsarehandledviaHandlerJars.HandlersareprovidedOOTBto:– Authenticatewithvariousmethods– Formateventswithatargetruleflow– Processeventswithatargetruleflow
20 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
ExtendingtheCAALCEventBroker(Continued)
§ Fortherulebasedformattingandprocessing,theauthenticationisassumedtohavehappenedsohandlerorderingmatters!– AsecurityContext objectisexpectedtobeplacedinthebindingsbyan
authenticationhandlerpriortotriggeringit– Unlessyouwishtooverridesecurityprovidedbyanotherhandler,
subsequenthandlersshouldnotsetasecurityContext unlessoneisnotyetset
21 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
ExtendingtheCAALCEventBroker(Continued)
§ Itisuptotheindividualhandlerstoinspecttheeventbodyand/orqueryparametersanddeterminewhattodo(ifanything).Forexample:– Performanactionsuchascustomauthenticationorpreformatting– Propagatetheevent;or– Endeventprocessing
22 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
CAALCEventHandlerAbstractClass
§ Determinesifaneventshouldbehandledpublic boolean doesHandleEvent(String data, Map<String, List<String>> headers, final Map<String, Object> additionalBindings);
§ Processestheeventpublic String handleEvent(String data, Map<String, List<String>> headers, final Map<String, Object> additionalBindings);
§ Determinewhethertopropagateorstopeventprocessingpublic boolean doneProcessing();
23 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
RecommendedSessions
SESSION# TITLE DATE/TIME
MFX112SRoadmapSession:MainframeApplicationDevelopmentPortfolioReview 11/16/2016at12:45pm
MFT148SRoadmapSession:AchieveDevOpsontheMainframeforFasterTimetoMarket 11/16/2016at4:30pm
MFX111SAdvancedTechniquesforInitiatingtheDevOpsJourney[HSBC] 11/17/2016at12:45pm
24 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
MustSeeDemos
ContinuousDevelopmentandTestingMainframeTheater
ContinuousDelivery
MainframeTheater
@CAWORLD#CAWORLD ©2016CA.AllRIGHTSRESERVED.27 @CAWORLD#CAWORLD
MainframeandWorkloadAutomation
Formoreinformationpleasevisitca.com/alc