ヤフー/ゼットラボのステートフルアプリケーションへの挑戦(前半)

 ヤフー/ゼットラボのステートフルアプリケーションへの挑戦(前半)

2020/06/13開催のKubeFest Tokyo 2020での発表資料です。

17d762ae166e66cab39e9b2e3df7d198?s=128

Yukinori Sakashita

June 13, 2020
Tweet

Transcript

  1. ϠϑʔθοτϥϘͷ εςʔτϑϧΞϓϦέʔγϣϯ΁ͷ௅ઓ :VLJOPSJ4BLBTIJUB

  2. "HFOEB <લ൒>,VCFSOFUFTBTB4FSWJDF޲͚εςʔτϑϧαʔϏεͷ࣮ݱ 2 <ޙ൒>εςʔτϑϧΞϓϦέʔγϣϯͷࣄྫ ‣ ϠϑʔθοτϥϘ͕࡞Δ,VCFSOFUFTBTB4FSWJDF $BB4  ‣ $BB4޲͚εςʔτϑϧαʔϏε΁ͷ௅ઓ

    ‣ σΟεϓϨΠ޿ࠂ :%/ ΁ͷ$BB4ಋೖࣄྫͷ঺հ ‣ $BB4ҠߦͰۤ࿑ͨ͠఺
  3. ࣗݾ঺հ ‣ٕज़ݚڀΤϦΞ  ӡ༻؅ཧٕज़  Ϋϥ΢υ  αʔόετϨʔδ  ࣗಈࣗ཯ίϯϐϡʔςΟϯά

     "*.- // ).. #BZFTJBO/FUXPSL  ‣લ৬  ૯߹ిؾϝʔΧʔ 㾎ݚڀॴ ओ೚ݚڀһ  㾎ւ֎ݚڀॴ!γϦίϯόϨʔ ϥϘ௕   αʔόϕϯμʔ ςΫχΧϧ4& 3 ࡔԼ޾ಙ ത࢜  :VLJOPSJ4BLBTIJUB 1I% ‣ ϠϑʔגࣜձࣾθοτϥϘגࣜձࣾ ‣ 4/*"೔ຊࢧ෦ٕज़ҕһձ෭ҕһ௕ ‣ 4/*"5FDIOJDBM$PVODJM"EWJTPS
  4. ϠϑʔθοτϥϘ͕૑Δ ,VCFSOFUFTBTB4FSWJDF

  5. Ϡϑʔ ‣ Ҏ্ͷ8FCαʔϏε χϡʔε ϠϑΦΫɺఱؾͳͲ Λఏڙ ‣ ओͳσʔληϯλʔ  ೔ຊڌ఺

     ถࠃڌ఺ ‣ 0QFO4UBDL΍,VCFSOFUFTͳͲΛ ׆༻ͨ͠ϓϥΠϕʔτΫϥ΢υʹͯ 8FCαʔϏεΛߏஙɾӡ༻ 5
  6. θοτϥϘ ‣ ೥ʹઃཱ͞ΕͨϠϑʔגࣜձࣾͷࢠձࣾ ‣ Ϡϑʔͷ࣍ੈ୅ΠϯϑϥΛݚڀ։ൃ ‣ Ϡϑʔ޲͚ʹ,VCFSOFUFTBTB4FSWJDF $BB4 Λ։ൃ ‣

    IUUQT[MBCDPKQ 6
  7. ϠϑʔͱθοτϥϘͷମ੍ 7 $BB4؅ཧऀ ετϨʔδ؅ཧऀ ֎෦ϕϯμʔ $BB4ར༻ऀ 8FCαʔϏε։ൃऀ ,VCFSOFUTఏڙ αϙʔττϨʔχϯά $BB4޲͚ΠϯϑϥධՁ

    ߏ੒ݕ౼ $BB4։ൃɺೲ඼ ઃܭ૬ஊ ٕज़ηϛφʔ 7 αʔό؅ཧऀ ωοτϫʔΫ؅ཧऀ $BB4 ཁ๬໰͍߹Θͤ
  8. ,VCFSOFUFTBTB4FSWJDF ‣ :BIPP+"1"/ͷ8FCαʔϏεͷҰ෦͸,VCFSOFUFT্ͰՔಇ ‣ Ϛωʔδυ,VCFSOFUFTαʔϏε ,VCFSOFUFTBTB4FSWJDF$BB4 Λӡ༻  Ќ 

    (" ‣ Ϡϑʔͷࣗࣾσʔληϯλʔ Ϧʔδϣϯ ʹͯՔಇத 8
  9. $BB4ͷར༻਺ ‣ ,VCFSOFUFTͷΫϥελ਺  ‣ ར༻͍ͯ͠Δ։ൃνʔϜ਺  ‣ ,VCFSOFUFTOPEFT਺ 

     ‣ ίϯςφ਺, 9 $MVTUFST $MVTUFST     ˞࣌఺ͷσʔλ  $MVTUFST   $MVTUFST  $MVTUFST
  10. "SDIJUFDUVSFPG$BB4 10 7 . ,VCFSOFUFT ɾɾɾ

  11. 4FMGIFBMJOH4DBMJOH 11 ,VCFSOFUFT 7 . )FBMJOH 4DBMJOH .POJUPSJOH

  12. "EEPONBOBHFS ‣ ಠࣗͷ"EEPONBOBHFSʹΑΓ(SBGBOB 1SPNFUIFVTͳͲϢʔβͷଟ͕͘ ར༻͢ΔΞϓϦΛఏڙ ‣ ఏڙ͢ΔΞϓϦͷϚχϑΣετΛύοέʔδԽ֤͠αʔϏε͕ར༻͢Δ ,VCFSOFUFT΁σϓϩΠ ‣ ,VCFSOFUFTͷόʔδϣϯʹԠͯࣗ͡ಈΞοϓσʔτ

    12 "EEPONBOBHFS BMFSUNBOBHFS ɾɾɾ %FQMPZ μογϡϘʔυ΍ ΞϥʔτϧʔϧͳͲ΋ σϓϩΠ
  13. $BB4ͷಛ௃ ‣ ίϚϯυͭͰ,VCFSOFUFTΫϥελΛ࡞੒ ‣ αʔϏεແఀࢭͰͷ,VCFSOUFTͷϩʔϦϯάΞοϓσʔτ  ϲ݄ʹճͷ,VCFSOFUFTͷΞοϓσʔτʹ௥ਵ  /PEFΛ࠶࡞੒ /PEFͷ04ͷΞοϓσʔτ΋Մೳ

     ‣ ,VCFSOFUFTΫϥελࣗ਎ͷηϧϑώʔϦϯά ‣ ,VCFSOFUFTΫϥελͷεέʔϧΞ΢τΠϯ ‣ "EEPONBOBHFSʹΑΔΞϓϦͷσϓϩΠΞοϓσʔτ 13
  14. $BB4ͷνϟϨϯδ ‣ ೥࣌఺Ͱ͸εςʔτϨεΞϓϦΛ,VCFSOFUFT্Ͱ࣮ߦ  8FCαʔϏε͸εςʔτϨεˍεςʔτϑϧͷΞϓϦͰߏ੒  8FCαʔϏε։ൃऀ͔Β͸εςʔτϑϧΞϓϦ΋,VCFSOFUFT্Ͱ ࣮ߦ͍ͨ͠ͱͷ੠ ‣ ;-BCʹͯεςʔτϑϧαʔϏεͷݕ౼։࢝

    ':2  ‣ ;-BCʹͯεςʔτϑϧαʔϏεͷఏڙ։࢝ ':2  ‣ ϠϑʔʹͯεςʔτϑϧαʔϏεͷύΠϩοτར༻։࢝ ‣ Ϡϑʔʹͯ$BB4޲͚εςʔτϑϧαʔϏεͷఏڙ։࢝ ':) 14
  15. $BB4޲͚ εςʔτϑϧαʔϏε΁ͷ௅ઓ

  16. εςʔτϑϧαʔϏεఏڙͷ՝୊ ‣ ֤αʔϏε͝ͱʹಠཱͨ͠σʔλΞΫηε͕ඞཁ ηΩϡϦςΟ  ‣ ૿͑ଓ͚Δ,VCFSOFUFTΫϥελ ‣ ૿͑ͳ͍؅ཧऀ ‣

    ϲ݄ʹճͷ,VCFSOFUFTͷΞοϓσʔτ΁ͷ௥ਵ ‣ $BB4ͷಛ௃Ͱ͋Δ/PEFͷηϧϑώʔϦϯάˍεέʔϦϯά΁ରԠ 16
  17. ‣ ෆඞཁͳϢʔβ͔ΒͷΞΫηε͸ېࢭ ‣ ෳ਺,VCFSOFUFT͕͋Δ؀ڥͰ͸,VCFSOFUFTࣗ਎Ͱͷ ΞΫηείϯτϩʔϧ͸ෆՄ 17 ,VCFSOFUFT ,VCFSOFUFT ࢪࡦηΩϡϦςΟ

  18. 18 ετϨʔδͷϚϧνςφϯτ׆༻ ‣ ετϨʔδͷϚϧνςφϯτͰ,VCFSOFUFTຖͷΞΫηεΛίϯτϩʔϧ  ϘϦϡʔϜɺϙʔτɺϢʔβݖݶ ,VCFSOFUFT ,VCFSOFUFT 5FOBOU" 5FOBOU#

    4UPSBHF
  19. ࢪࡦࣗಈԽ ‣ ,VCFSOFUFTͷόʔδϣϯΞοϓʹ௥ै͢ΔͨΊ໿ϲ݄ʹճ͸ ΞοϓσʔτΛ࣮ࢪ ‣ ετϨʔδͷ$4*%SJWFS΍ؔ࿈ΞϓϦͳͲͷΞοϓσʔτ΋ඞཁ ‣ Ҏ্ͷ,VCFSOFUFTΫϥελͷΞοϓσʔτ͸ਓखͰ͸ແཧ 19

  20. "EEPONBOBHFSΛ࢖ͬͨࣗಈԽ ‣ "EEPONBOBHFSΛ࢖͍4UPSBHF$MBTT΍ϕϯμఏڙͷ$4*%SJWFSؔ࿈౳ εςʔτϑϧαʔϏεͰඞཁͳ΋ͷΛࣗಈσϓϩΠ ‣ ,VCFSOFUFTͷόʔδϣϯΞοϓʹ࿈ಈࣗ͠ಈΞοϓσʔτ 20 "EEPONBOBHFS %FQMPZ $4*%SJWFSؔ࿈

    4UPSBHF$MBTT μογϡϘʔυΞϥʔτϧʔϧ
  21. ࢪࡦࣗಈԽ ‣ $BB4Ͱ͸Ξοϓσʔτ΍ো֐ൃੜʹ/PEF 7. Λ࠶࡞੒ ‣ /'4΍J4$4*Ͱ͸ετϨʔδଆͷ"$-ߋ৽͕ඞཁ ‣ ετϨʔδଆͷ"$-ߋ৽͸,VCFSOFUFTͰ͸࣮ࢪ͞Εͳ͍ 21

    /PEF /PEF $SFBUF OFX/PEF "EE OFX/PEF %FMFUF PME/PEF .PWF 1PE /PEF /PEF /PEF /PEF "$-ͷ ߋ৽ͳ͠ 4UPSBHF
  22. "$-ͷࣗಈߋ৽ ‣ /PEFΛ8BUDI͠"$-Λࣗಈߋ৽͢Δ$VTUPN$POUSPMMFSΛ։ൃ ॳظ  ‣ (JU)VCެ։ͷϕϯμʔͷ$4*1MVHJO΁ϦΫΤετ  ਖ਼ࣜαϙʔτ։࢝ 

    22 /PEF FYQPSUQPMJDZNHS "EE OFX/PEF %FMFUF PME/PEF /PEFͷ௥ՃΠϕϯτΛݕ஌ /FX/PEFͷ*1*2/Λऔಘ 4UPSBHFͷ"$-΁ొ࿥ /PEFͷ࡟আΠϕϯτΛݕ஌ 0ME/PEFͷ*1*2/Λऔಘ 4UPSBHFͷ"$-͔Β࡟আ 4UPSBHF
  23. લ൒ͷ·ͱΊ ‣ $BB4޲͚ʹεςʔτϑϧαʔϏεΛఏڙ ‣ ηΩϡϦςΟΛߟྀͨ͠Ϛϧνςφϯτ ‣ ,VCFSOFUFTͷΞοϓσʔτʹ௥ਵͰ͖ΔࣗಈΞοϓσʔτ ‣ /PEFͷ࡞Γ௚͠ʹ΋ରԠͰ͖Δ"$-ͷࣗಈΞοϓσʔτ 23

  24. 24 ޙ൒΁