gids.2019 serverless architectures and - developermarch€¦ · event-driven systems integration...

Post on 22-May-2020

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.|

GIDS.2019

ServerlessArchitecturesandPatternsinAction

AbhishekGuptaPrincipalProductManagerOracleCloudInfrastructure– Serverless

@abhi_tweeter

April25,2019

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

AgendaIntrotoServerless

OpensourceFn ProjectandOracleFunctions

“inaction…”– usecases&demos

QnA

1

2

3

2

4

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

SafeHarborStatementThefollowingisintendedtooutlineourgeneralproductdirection.Itisintendedforinformationpurposesonly,andmaynotbeincorporatedintoanycontract.Itisnotacommitmenttodeliveranymaterial,code,orfunctionality,andshouldnotberelieduponinmakingpurchasingdecisions.Thedevelopment,release,timing,andpricingof anyfeaturesorfunctionalitydescribedforOracle’sproductsmaychangeandremainsatthesolediscretionofOracleCorporation.

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

Forslidesandcode…

https://github.com/abhirockzz/gids2019

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

HelloServerless

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

Serverlesscharacteristics

Thereareservers,butdon’tworry aboutthem(provisioning,patching

etc.)

Scale (inandout)automatically

Costeffective– payonlyforuse

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

FaaS-inating options

OracleFunctions

Opensource

Cloudofferings

andlotsmore….

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

• OpenSource—novendorlock-in

• DockerBased—leverageDockerecosystem

• PlatformIndependent—laptop,server,cloud

• SchedulerIndependent—deploytoKubernetes,Swarm,Mesos,etc.

• Approachable—easyfornewusers,lowlevelcontrolsforadvancedusers

www.fnproject.ioOracleFunctions

CurrentlyinLimitedAvailability

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

BasicConcepts

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

A Function

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.| 12

CLI

https://github.com/fnproject/cli/releases

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

DeployandInvoke

- function- func.yaml- Dockerfile

fn deploy

fn invoke

Pullimage,runcontainer

Dockerregistry

Server(fn orOracleFunctions)

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

Developerexperience

1. fn start2. fn init --runtimego--namehellofunc3. fn usecontextdefault4. fn createapporacodemo5. fn –vdeploy--apporacodemo --local6. fn invoke oracodemo hellofunc

1. fn start2. fn init --runtimego--namehellofunc3. fn usecontext<functions-ctx-name>4. fn createapp<additionalinfo> oracodemo5. fn –vdeploy--apporacodemo --local6. fn invoke oracodemo hellofunc

Localdevelopment OracleFunctions(Cloud)

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

UseCases&Patterns

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

Backendsystems

Event-Drivensystems

Integration Automation

• APIs• Webapps

• Eventdrivenapps• StreamProcessing

• Webhooks• Workflows

• IaaSmonitoring• Scheduled/Batchjobs

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

Backendsystems

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

APIs(dataservices)

APIG

atew

ayMobile

Web OracleFunctions

Legacysystem

Otherbackend(s)

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

FaaSAPIs+‘friends’=ServerlessWebapps

APIG

atew

ay

ObjectStorage

Frontendassets(HTML,JSetc.)

User

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

Event-DrivenSystems

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

Asynchronousprocessing

OCIObjectStorage

ObjectStorageevents–created,deleted,updated

etc.

OracleFunctions

Dropstextfiletoinputbucket

1

2

3 ConvertstoPDFandstoresinoutput bucket

TexttoPDFconversion

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

StreamProcessing• Builttohandlecontinuous(streamsof)data– Durable/persistent• Possibletoreplayandreprocessdata(akatimetravel)

–MessageOrdering,lowlatency,differentguarantees

• AmazonKinesis,ApacheKafkaetc.• Streaming-FaaS integration– Native– tightcouplingb/wstreamingandFaaS platforms• vendorspecifice.g.Kinesis->Lambda

– Custom– rollyourown• vendoragnostic,flexiblee.g.Kafka->FaaS• Needaserver component

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

Kafka->KafkaConnect->FaaS

KafkaCo

nnect

(sinkconn

ectors)

KafkaCo

nnect

(sou

rceconn

ectors)

Producers Consumers

Sources

OracleFunctions

StreamProcessors

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

Integration

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

Webhooks

• Wikipedia– “user-definedHTTPcallbacks”– “usuallytriggeredbysomeevent”

• Eventdrivenonsteroids – triggerfunctionsusing(almost)any eventsource

• EasilyintegratewiththirdpartysystemslikeGitHub,Slack,Twilio etc.

Slackservice(withconfiguredwebhook)

Random API

Slackworkspace(user)

1

2

3

4

funcy – trimmeddownversionoftheGiphySlackapp

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

https://blog.csanchez.org/2019/02/19/serverless-jenkins-pipelines-with-project-fn/

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

FunctionOrchestration

• Problem(s)– HowdoIintegratefunctionstobuildcomplexapps?– Orchestratetheirbehavior– Manageintermediatestate

• Options- AWSStepFunctions,AzureDurableFunctions,FnFlowetc.

• FnFlow– Buildlong-runningfunctionswithrichsetsoflanguage-specificprimitivesincludingfork-join,chaining,delaysanderrorhandling

– Supportscomplexparallelprocessesthatarereadableandtestable(includingunittests)withstandardprogrammingtools

27

FnFlowJavaUserGuide

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

Automation

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

Inframonitoring

IaaS

Create,start,stop,terminate

etc.

Events….

OracleFunctions

MonitoringOracleDBlifecycleevents

OCIEmailDeliveryService

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

ScheduledJobs

• Configureandforget!• Goodforautomatingrepetitive tasks– Reminders,alerts(email,SMSetc.)– Backups,import/export– etc.

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

Links• Slack - https://fnproject.slack.com/

• Blog - https://medium.com/fnproject• Twitter - https://twitter.com/fnproject

• GitHub– Fn – https://github.com/fnproject/fn– FDKs- https://github.com/fnproject/?&q=fdk– Fn Flow- https://github.com/fnproject/flow

• OracleFunctions- https://blogs.oracle.com/cloud-infrastructure/announcing-oracle-functions

• GitHubrepoforthistalk- https://github.com/abhirockzz/gids2019

Copyright©2019,Oracleand/oritsaffiliates.Allrightsreserved.|

Thankyou!

top related