Slide 1

Slide 1 text

WHY SHOULD WE MAKE SERVERLESS APPLICATION AS EVENT DRIVEN? MASASHI TERUI @ SAPPORO.AWS #2

Slide 2

Slide 2 text

SERVERWORKS CO.,LTD. + FREELANCER • Serverless Oji-san • Serverless Framework Plugin Developer • Serverlessconf Tokyo 2016/2017 speaker • Remote worker (in Sapporo) • The best Cloud Engineer in Hokkaido!! (Ͱ͋Γ͍ͨʣ MASASHI TERUI ARCHITECT / DEVELOPER

Slide 3

Slide 3 text

SERVERLESSͬͯͳΜ͚ͩͬʁ WHAT IS

Slide 4

Slide 4 text

CNCF SERVERLESS WHITEPAPER V1.0 • Serverless computing refers to the concept of building and running applications that do not require server management • A platform may provide one or both of the following: • Functions-as-a-Service (FaaS) • Backend-as-a-Service (BaaS) • Products or platforms deliver the following benefits to developers: • Zero Server Ops • No Compute Cost When Idle 
 https://github.com/cncf/wg-serverless/tree/master/whitepaper

Slide 5

Slide 5 text

SERVERLESS CLOUD NATIVE LANDSCAPE

Slide 6

Slide 6 text

ͬͪ͜ͷํ͕෼͔Γ΍͍͢͠޷͖ https://www.slideshare.net/acloudguru/ant-stanley-being-serverless

Slide 7

Slide 7 text

SERVERLESS USE CASES (FROM CNCF WP) • Asynchronous, concurrent, easy to parallelize into independent units of work • Infrequent or has sporadic demand, with large, unpredictable variance in scaling requirements • Stateless, ephemeral, without a major need for instantaneous cold start time • Highly dynamic in terms of changing business requirements that drive a need for accelerated developer velocity • Non-HTTP-centric and non-elastic scale workloads that weren’t good fits for an IaaS, PaaS, or CaaS solution

Slide 8

Slide 8 text

͔͠͠ɺ͋ΔServerlessաܹ೿͸ݴ͍·ͨ͠ https://speakerdeck.com/toricls/how-serverless-loves-event-driven-architecture “Event Driven͕ͦ͜ServerlessͦΕҎ֎͸ೝΊΜʂ” ※٭৭͕͋Γ·͢

Slide 9

Slide 9 text

EVENT DRIVENͬͯԿ͕ඒຯ͍͠ͷʁ

Slide 10

Slide 10 text

MICROSERVICESͱฉ͍ͯԿΛࢥ͍ු͔΂·͔͢ʁ

Slide 11

Slide 11 text

͜ΕͰ͸ʁ https://www.slideshare.net/apigee/is-microservices-soa-done-right

Slide 12

Slide 12 text

ΈΜͳMicroservicesͬͯ͜͏͍͏ͷͩͱࢥ͍͕ͪ ґଘؔ܎͕ෳࡶɺ؅ཧ͕೉͍͠ɺ࡞Δͷ΋೉͍͠ େن໛޲͚Ͱ͔͠ͳ͍

Slide 13

Slide 13 text

Event Drivenʹ͢Δͱ͜͏ͳΔ ґଘؔ܎Λૄʹอͪͭͭू໿ɺ੔ཧͰ͖Δ ن໛Λ໰Θͣཧ૝తͳΞʔΩςΫνϟΛऔΓ΍͍͢

Slide 14

Slide 14 text

΋͏͢͜͠ৄ͘͠ • Pub/Subͷؔ܎ • Publisher͸ൃߦ͢΂͖Πϕϯτ͚ͩΛ஌͍ͬͯΔ • Subscriber͸ߪಡ͢΂͖Πϕϯτ͚ͩΛ஌͍ͬͯΔ • ґଘؔ܎ΛૄͰ͋Γͳ͕Βू໿ɺ੔ཧͰ͖Δ • ͜ͷؔ܎͸ٯస͠ͳ͍ͨΊɺྲྀΕ͕෼͔Γ΍͘͢ͳΔ • ࣗવͱඇಉظʹͳΔ • ඇಉظͰ͋Δͱ͍͏͜ͱ͸ϦτϥΠՄೳͰ͋Δͱ͍͏͜ͱ

Slide 15

Slide 15 text

EVENT DRIVENͬͯͲ͏΍Δͷʁ

Slide 16

Slide 16 text

େ͖͘෼͚Δͱ͔̎ͭ͠ͳ͍ Pull Push

Slide 17

Slide 17 text

࢖͍෼͚ - Pull • େྔͷΠϕϯτΛϋϯυϦϯά͍ͨ͠ • ࣮֬ʹॲཧ͍ͨ͠ɺࣦഊ͢Δ֬཰͕ൺֱతߴΊ • ϦτϥΠճ਺ɾظؒΛ௕͘औΕΔ • ಉ࣮࣌ߦ਺΍ฒྻ౓Λίϯτϩʔϧ͍ͨ͠ • DBॻ͖ࠐΈͱ͔֎෦αʔϏεݺͼग़͠ͱ͔

Slide 18

Slide 18 text

࢖͍෼͚ - Push • ஗ԆΛͰ͖Δ͚ͩগͳ͘ॲཧ͍ͤͨ͞ • ฒྻ౓Λ্͍͛ͨ • Ұ౓ʹଟ͘ͷॲཧΛىಈ͍ͨ͠ • ϦτϥΠػߏ͸͋ΔͷͰجຊ͸ͬͪ͜Ͱߟ͑Δ • ̏ճϦτϥΠˠDLQ

Slide 19

Slide 19 text

AWSαʔϏεͷ࢖͍෼͚

Slide 20

Slide 20 text

Kinesis Streams • PullܕΠϕϯτιʔεͷ୅ද֨ • େྔͷΠϕϯτΛόοϑΝͰ͖Δ • ॱংอূ͕͋Δ • ͨͩ͠ɺ͋ΒΏΔ৚݅ͰॱংΛҡ࣋͠Α͏ͱ͢Δͱ
 ॲཧΛࢭΊ͟ΔΛಘͳ͘ͳΔ • Ͱ͖Δ͚ͩॱংอূ͠ͳ͍ͰࡁΉΑ͏ʹ΂͖౳ʹઃܭ͢Δ

Slide 21

Slide 21 text

Simple Queue Service (SQS) • ϙʔϦϯά͕ඞཁʹͳΔͨΊਖ਼௚͋·Γ࢖Θͳ͍ʢࢲ͸ʣ • KinesisͰࣦഊͨ͠ΠϕϯτΛPut͠௚ͤ͹ྑ͍͡ΌΜతͳ • PushܕͰ΋DLQ͋Δ͠తͳ

Slide 22

Slide 22 text

Simple Nortification Service (SNS) • PushܕΠϕϯτιʔεͷ୅ද֨ • 1:NͷN͕ଟ͘ͳΔέʔεʹڧ͍ (Fanout) • ͚ͬ͜͏୔ࢁ࢖͏ͷͰ
 Serverless Frameworkͱ͔࢖Θͳ͍ͱઃఆ͕͠ΜͲ͍

Slide 23

Slide 23 text

Step Functions • Push͕਺चͭͳ͗ʹͳΔ࣌ͷϋϯυϦϯά͕ΊͬͪΌศར • ֎෦ೖྗ଴ͪͰϙʔϦϯάͤ͟ΔΛಘͳ͍৔߹ʹ΋ • State Machine DataʹσʔλΛڞ༗Ͱ͖Δͷศར • ؾΛൈ͘ͱશ෦͜ΕͰ΍Γͨ͘ͳΔ

Slide 24

Slide 24 text

API Gateway • جຊతʹ֎෦ΠϕϯτΛड͚औΔޱͱߟ͑Δ • ReadܥͳͲ݁Ռ͕ඞཁͰಉظͰॲཧ͢Δ৔߹ʹ಺෦Ͱ࢖͏ • ͨͩ͠1Πϕϯτ1ίʔϧ(Read)Λ৺͕͚Δ • ෳ਺ͷίʔϧ(Read)͕ඞཁͳ৔߹͸SNSͰFanout
 ·ͨ͸Step FunctionsΛ࢖͏ͳͲͯ͠෼ղ͢Δ

Slide 25

Slide 25 text

S3 Event Notification • ϖΠϩʔυͷେ͖ͳΠϕϯτΛѻ͏ • ϑΝΠϧͱͯ͠֎෦ೖྗΛΠϕϯτͱͯ͠ѻ͏

Slide 26

Slide 26 text

CloudWatch Events • Event-based • AWSͷαʔϏεΛτϦΨʔͱ͢ΔΠϕϯτΛൃߦ͢Δ • Time-based • ࣌ؒΛτϦΨʔͱ͢ΔΠϕϯτΛൃߦ͢Δ

Slide 27

Slide 27 text

ʢ͓·͚ʣLambda -> Lambda • جຊ΍Βͳ͍ʢࢲ͸ʣ • େମSNSڬΉ or ਺चܨ͗ʹͳΔͳΒStep FunctionsΛ࢖͏ • 1:1͕100%อূͰ͖Δ৔߹ͷΈ࢖ͬͯ΋ྑ͍ʢ͔΋ʣ • Ͱ΋ͦΕ1FunctionͰྑ͍Μ͡Όɾɾɾ

Slide 28

Slide 28 text

ALL BECOME EVENT DRIVEN

Slide 29

Slide 29 text

Event Driven͡Όͳͯ͘΋ͪ͠Ό͑Δ

Slide 30

Slide 30 text

THANKS!! LET’S ENJOY SERVERLESS
 WITH EVENT DRIVEN ARCHITECTURE !!