Slide 1

Slide 1 text

What is Serverless Why is Serverless

Slide 2

Slide 2 text

ࣗݾ঺հ ງՈོ޺ • Serverless Operations LLC • Serverless Framework Core mainainer • Serverless Step Functions, Serverless Atom Dashbord ։ൃऀ • Serverless Champion powerd by Serverless.inc

Slide 3

Slide 3 text

Serverlessͱ͸Կ͔ ͦͷຊ࣭ʹ͍ͭͯ ղઆ͍͖ͯ͠·͢

Slide 4

Slide 4 text

• ޿ٛͳҙຯͰ͍͏ͱαʔόʔ΍ίϯςφͷ؅ཧ͕ෆཁͳαʔϏεΛར༻ͨ͠ ΓɺͦΕΒΛ׆༻ͯ͠ΞϓϦέʔγϣϯΛͭͬͨ͘Γ͢Δߟ͑ํͱੈք؍ • ͜͜Ͱ͍͏Serverlessͱ͸ɺAWS LambdaͷΑ͏ͳFunction as a Serviceͱ ϚωʔδυαʔϏεͰߏ੒͞ΕͨγεςϜ΍ΞϓϦέʔγϣϯΛҙຯ͢Δ Serverlessͱ͸Կ͔ʁ 2014೥ʹAWS Lambda͕ొ৔͠ɺΫϥ΢υͷΞʔΩςΫςΟϯάͷ෯͕ େ͖͘޿͕ͬͨɻ·ͨɺAPI Gateway΍Kinesis, AWS IoTͳͲͷొ৔ʹΑΓ Ϋϥ΢υͷ֎෦ͱͷσʔλ࿈ܞ͕༰қʹͳͬͨ

Slide 5

Slide 5 text

• αʔό΍ίϯςφͳͲͷΠϯϑϥετϥΫνϟΛ؅ཧ͢Δ࡞ۀ͔Β։์͞Ε Δ • ίετͷ࠷దԽɻଟ͘ͷ৔߹͸҆͘ͳΔ • Ϋϥ΢υͷ੍໿Լʹ͓͍ͯແݶͷεέʔϥϏϦςΟΛੜΉɻجຊతʹ͸ࣄલ ͷΩϟύγςΟ༧໿౳͸ෆཁ Serverlessͷ͍ΘΏΔϝϦοτ Ϋϥ΢υʹ͜ΕΒΛΞ΢τιʔε͢Δ͜ͱͰӡ༻ͰָΛ͢Δ

Slide 6

Slide 6 text

Serverless Overview

Slide 7

Slide 7 text

• AWS Lambda, Azure Functions, Google Cloud Functionsͱ͍ͬͨΞϓϦέʔ γϣϯίʔυΛ࣮ߦͯ͘͠ΕΔαʔϏε • ঢ়ଶͷมԽʹΑΓΠϕϯτ͕ൃੜ͢Δ͜ͱͰίʔυ͕࣮ߦ͞ΕΔ • ಉ࣮࣌ߦ਺౳ͷ੍໿Լʹ͓͍ͯແݶʹεέʔϦϯά͢Δ(εέʔϦϯάͷࣄલ ༧ଌ͕ෆཁ) • ՝͕ۚίʔυͷ࣮ߦ࣌ؒ୯Ґ(ଟ͘ͷέʔεͰ͸҆͘ͳΔ) • ϛυϧ΢ΣΞͷΞοϓσʔτ͸ෆཁ(αʔό؅ཧ͔Βͷ։์) Function as a Service

Slide 8

Slide 8 text

• DynamoDB, API gateway, Auth0, Stripeͱ͍ͬͨػೳͷΈΛఏڙͯ͘͠ΕΔ αʔϏε • ServerlessͷੈքͰ͸͜ΕΒΛFaaSΛؔ਺ͱݺͿ͜ͱͱରൺͯ͠ϛυϧ΢Σ ΞͱݺΜͰΔ Functional SaaS / BaaS

Slide 9

Slide 9 text

FaaSʹΑΔίʔυͷ࣮ߦ؀ڥͱ Functional SaaSʹΑΔػೳͷఏڙ γϯϓϧʹߟ͑Δͱ͜ͷ2ͭͷཁૉͰ ServerlessΞʔΩςΫνϟ͸੒Γཱͭ

Slide 10

Slide 10 text

FaaSͷಛੑ

Slide 11

Slide 11 text

ΠϕϯτυϦϒϯͰ͋Γ ඇৗறܕͰ͋Δ͜ͱΛ೦಄ʹஔ͍ͨ ϓϩάϥϛϯάϞσϧͱͳΔ

Slide 12

Slide 12 text

• FaaSͷલஈʹ͋ΔαʔϏε্Ͱͷঢ়ଶͷมԽʹΑΓίʔυ͕࣮ߦ͞ΕΔ • PublisherͱSubscriberͱ͍͏ؔ܎ੑ • αʔόʔ্ͷมߋΛϙʔϦϯάͯ͠ݕ஌͢Δͷͱ͸ਅٯͷߟ͑ ΠϕϯτυϦϒϯͱ͸ putObject Event trigger

Slide 13

Slide 13 text

• Πϕϯτ͕ൃੜͯ͠ίʔυ͕࣮ߦ͞ΕΔͱ͖ͷΈϓϩηε͕ଘࡏ͢Δ • ಥવϓϩηε͕མͪΔͱ͍͏͜ͱ͸ͳ͍ͨΊɺͦͷҙຯͰ͸ݎकͳγεςϜ ʹͰ͖Δ ඇৗறܕͱ͸

Slide 14

Slide 14 text

• Πϕϯτ͕ൃੜͨ࣌͠ͷΈϓϩηεΛىಈͤ͞Ε͹ྑ͍ͷͰৗʹϓϩηεΛ ্ཱ͓ͪ͛ͯ͘ඞཁ͕ͳ͍ɻΠϕϯτυϦϒϯ͔ͩΒͦ͜ඇৗறͳϓϩηε ͷ࢓૊Έ͕੒Γཱͭ • ϓϩηε͕ৗʹଘࡏ͍ͯ͠ΔΘ͚Ͱ͸ͳ͍ͨΊɺFunction಺Ͱσʔλͷอ࣋ Λલఏͱ࣮ͨ͠૷͸Ͱ͖ͳ͍ɻͭ·ΓࣗવͱεςʔτϨεͳঢ়ଶͱͳΔɻ݁ ՌɺεςʔτΛ࣋ͨͳ͍͜ͱͰεέʔϥϏϦςΟΛ࣮ݱͰ͖Δ • Πϕϯτ͕ൃੜͨ࣌͠ͷΈϓϩηεΛىಈͤ͞Ε͹ྑ͍ͷͰɺ࣮ߦ࣌ؒʹͷ Έ՝ۚ͢Ε͹ྑ͍ͱ͍͏࠷దԽ͕੒Γཱͭ ΠϕϯτυϦϒϯͱඇৗற͕΋ ͨΒ͢ϝϦοτ ͜ΕΒͷ੍໿৚݅ʹΑΓFaaSͷϝϦοτ͕ ࠷େݶ׆͔ͤΔ࢓૊Έʹͳ͍ͬͯΔ

Slide 15

Slide 15 text

Functional SaaSͷಛੑ

Slide 16

Slide 16 text

ެࣜͷυΩϡϝϯτΛಡΜͰਖ਼͘͠ ཧղͷ্ͰɺదࡐదॴͰར༻͠ɺͦ ͷ੍໿৚݅ԼͰ࠷େݶͷੑೳΛҾ͖ ग़ͯ͠΍Δ͜ͱ͕େࣄ

Slide 17

Slide 17 text

Kinesis Stream • େྔͷσʔλετϦʔϜΛϦΞϧλΠϜͰऩूͯ͠ɺॲཧΛͤ͞ΔͨΊͷα ʔϏε • ͨ͘͞ΜͷIoTσόΠεͷόοΫΤϯυͷड͚ޱͱͯ͠ར༻͞ΕΔέʔε͕ଟ ͍ • ड͚औͬͨσʔλ͸Batch sizeͷ୯ҐͰLambda͕ड͚औΓɺޙଓͷॲཧΛ࣮ ࢪ͢ΔɻKinesis಺Ͱγʔέϯεׂ͕ΓৼΒΕΔ͜ͱͰॱংอূ΋͋Δɻ௚ྻ ʹσʔλΛॲཧ͍ͤͨ࣌͞ʹKinesisΛڬΉ

Slide 18

Slide 18 text

DynamoDB • ϚωʔδυܕͷNo SQLσʔλϕʔεɻେྔͷϫʔΫϩʔυͷσʔλΛӬଓ Խͤ͞Δͷʹ޲͍͍ͯΔ • Partition KeyʹΑΔ׬શҰகͱIndexʹΑΔ୳ࡧ͕Մೳ • ύϑΥʔϚϯεΛ࠷େʹͯ͠εϧʔϓοτίετΛ࠷খʹ͢ΔͨΊʹϓϥΫ ςΟεʹԊͬͨςʔϒϧઃܭ͕ඞཁͱͳΔ ɹɾΩʔͷϋογϡ஋ͰPartition͕෼ࢄ -> ۉ౳ʹͳΔΑ͏ͳΩʔઃܭ ɹɾεΩʔϚϨεDBɻεΩʔϚ͝ͱʹςʔϒϧΛ෼͚Δͱ͍͏ൃ૝͕ ɹɹͦ΋ͦ΋ͳ͍ɻΩϟύγςΟ؅ཧͷͨΊʹςʔϒϧ͸ΞϓϦέʔγϣϯ ɹɹͰ1ͭʹ͢Δ͜ͱ͕ཧ૝͸ཧ૝

Slide 19

Slide 19 text

API Gateway • ։ൃऀ͕ API Λ࡞੒ɺ഑෍ɺอकɺ؂ࢹɺอޢͰ͖ΔαʔϏε • SPAͰWebΞϓϦέʔγϣϯΛ։ൃ͢Δ৔߹ͷόοΫΤϯυAPIͱͯ͠࢖Θ ΕΔέʔε͕Α͋͘Δ • جຊతʹ͸֎෦͔ΒͷೖྗͷೖΓޱͱͯ͠ɺ1ର1ͷؔ܎ੑͰσʔλΛѻ͏ɻ ೖྗνΣοΫ౳ͷલॲཧ͚ͩΛ࣮ࢪͯ͠ɺޙ͸SNS΍DynamoDBʹܨ͙͜ͱ ͰޙଓͷॲཧΛ࣮ࢪͤ͞Δ

Slide 20

Slide 20 text

ΞʔΫςΫνϟͱͯ͠ͷಛੑ

Slide 21

Slide 21 text

ΠϕϯτυϦϒϯΞʔΩςΫνϟ Service Function Service Function Function Event Event ΠϕϯτυϦϒϯͳϓϩάϥϛϯάϞσϧͱͳΔ͜ͱʹΑΓ ࣗવͱΠϕϯτ͕਺चͭͳ͗ʹ఻ൖ͍ͯ͘͠ΞʔΩςΫνϟͱͳΔ Service Service

Slide 22

Slide 22 text

AWSͷαʔϏεʹஔ͖׵͑Δͱ ͜Μͳײ͡ API Gateway Lambda SNS DynamoDB

Slide 23

Slide 23 text

ΠϕϯτυϦϒϯΞʔΩςΫνϟ Publisher Subscriber Event • جຊతʹ͸PublisherͱSubscriberؒͰϝοηʔδΛૹड৴͢Δؔ܎ੑ • Publisher͸ࣗ਎͕ૹ৴͢ΔΠϕϯτͷ͜ͱ͔͠஌Βͳ͍ • Subscriber͸ࣗ਎͕ͲͷΠϕϯτΛड͚औΔ͔͔͠஌Βͳ͍ • ͜ΕʹΑΓγϯϓϧʹૄͷؔ܎ੑΛอͭ

Slide 24

Slide 24 text

ΠϕϯτυϦϒϯΞʔΩςΫνϟ ͸Կ͕خ͍͠ͷ͔

Slide 25

Slide 25 text

ΠϕϯτͷSubscriberͱPublisherͷؔ܎ੑΛมߋ͢Δ͜ͱͰ γϯϓϧʹػೳ௥Ճ΍มߋ͕࣮ݱͰ͖Δ Service Function Service Function Function Event Event ৽ػೳ Կ͕خ͍͠ͷ͔ ৽ػೳ

Slide 26

Slide 26 text

Service Function Function Event Function Function Service Service Function Service جຊతʹґଘؔ܎͸ૄͰ͋ΓͭͭҰํ޲ʹू໿͞ΕΔͨΊɺ σʔλͷྲྀΕͷݟ௨͕͠ඇৗʹྑ͘ͳΔ Կ͕خ͍͠ͷ͔

Slide 27

Slide 27 text

֤αʔϏεͷ੍໿৚݅ԼͰ࣮૷Λߦ ͏͜ͱͰࣗવͱϚΠΫϩαʔϏεΞ ʔΫςΫνϟͷϝϦοτΛڗडͰ͖ ΔΑ͏ʹͳΔ

Slide 28

Slide 28 text

·ͱΊ

Slide 29

Slide 29 text

·ͱΊ • ServerlessΞʔΩςΫνϟ͸୯७ʹFaaSͱFunctional SaaSͷ૊Έ߹ΘͤͰ ͳΓ͍ͨͬͯΔ • FaaSͱFunctional SaaSͷ੍໿ࣄ߲Λਖ਼͘͠ཧղͯ͠దࡐదॴͰ࢖͏ɻ੍໿ ͸੍ݶͰ͸ͳ͍ɻͦͷ੍໿ʹै͏͜ͱͰ࠷େݶͷੑೳΛൃشͰ͖Δͱ͍͏͜ ͱ • ServerlessΞʔΩςΫνϟ͸ෳࡶͰ͸ͳ͍ɻΉ͠Ζมߋʹڧ͘σʔλͷྲྀΕ ͕෼͔Γ΍͘͢ͳΔɻϚΠΫϩαʔϏεͷϝϦοτΛਖ਼͘͠ڗडͰ͖Δ

Slide 30

Slide 30 text

Thank You