GoとGCPとkubernetesを使った MF KESSAIの歴史

127be94df020299a489089c86ba1d69a?s=47 shinofara
January 30, 2018

GoとGCPとkubernetesを使った MF KESSAIの歴史

golang.tokyo #12

127be94df020299a489089c86ba1d69a?s=128

shinofara

January 30, 2018
Tweet

Transcript

  1. HPMBOHUPLZP (Pͱ($1ͱLVCFSOFUFTΛ࢖ͬͨ .',&44"*ͷྺ࢙ !TIJOPGBSB

  2. ࠓ೔࿩͢ࣄ ࣗݾ঺հ .',&44"*͍ͭͯ ձࣾʹ͍ͭͯ αʔϏεʹ͍ͭͯ HPMBOHUPLZPͰຊ୊ ;Γ͔͑Γ ʒ

  3. ࠓ೔࿩͢ࣄ ࣗݾ঺հ .',&44"*͍ͭͯ ձࣾʹ͍ͭͯ αʔϏεʹ͍ͭͯ HPMBOHUPLZPͰຊ୊ ;Γ͔͑Γ ʒ

  4. ·ͣ͸ ୭ʁ

  5. ୭ʁ ࣰݪ༞و !TIJOPGBSB  w (Pྺ೥"84ྺ೥($1ྺ೥%PDLFSྺ೥ w &NBDT(PMBOE w ೥৽ଔͰ:BIPP+"1"/ʹೖࣾɺͦͷޙస৬Λ܁Γฦ͢

    w ೥݄Ϋϥ΢υίϯςφԽ೚ͤͯԼ͍͞ʂͱ.'ʹೖࣾ
 ͔͠͠೥݄ʹ.',&44"*גࣜձࣾͷٕज़੹೚ऀͱͳΔ
  6. ࠓ೔࿩͢ࣄ ࣗݾ঺հ .',&44"*͍ͭͯ ձࣾʹ͍ͭͯ αʔϏεʹ͍ͭͯ HPMBOHUPLZPͰຊ୊ ;Γ͔͑Γ ʒ

  7. .',&44"*ͱ͸ .',&44"*ͱ͍͏ձࣾΛ͝ଘ஌Ͱ͔͢ʁ

  8. .',&44"*ͱ͸ w ݄೔ઃཱ w ϚωʔϑΥϫʔυͷࢠձࣾ w σʔλͷՄࢹԽʹΑΔʮۀ຿ޮ཰Խʯ͚ͩͰ ͸ͳ͘ɺʮࢿۚ܁ΓվળʯʹϑΥʔΧεͨ͠ ձࣾ

  9. .',&44"*͸Ͳ͏͍͏αʔϏεͳͷ͔ ੥ٻۀ຿Λߦͬͨࣄ͋Δਓ͸͍·͔͢

  10. .',&44"*͸Ͳ͏͍͏αʔϏεͳͷ͔ ചΓख ങ͍ख ༩৴ௐࠪ ੥ٻॻൃߦ ೖۚ؅ཧ ಜଅɾ࠵ଅ ୅ۚճऩ ੥ٻۀ຿ϓϩηε ͜ͷϓϩηεͷ͢΂ͯΛ୅ߦ

  11. .',&44"*͸Ͳ͏͍͏αʔϏεͳͷ͔ ؆୯ʹݴ͏ͱɺ੥ٻ୅ߦ

  12. ࠓ೔࿩͢ࣄ ࣗݾ঺հ .',&44"*͍ͭͯ ձࣾʹ͍ͭͯ αʔϏεʹ͍ͭͯ HPMBOHUPLZPͰຊ୊ ;Γ͔͑Γ ʒ

  13. HPMBOHUPLZPͰ͓࿩͢Δࣄ ͯ͞ɺຊ೔͸

  14. HPMBOHUPLZPͰ͓࿩͢Δࣄ .',&44"*ͷ೥ΛৼΓฦͬͯɺ(PΞ ϓϦέʔγϣϯ΍ɺपลͷΞʔΩςΫνϟ ͕Ͳͷ༷ʹมΘ͖͔ͬͯͨΛ͓࿩͠·͢ɻ

  15. HPMBOHUPLZPͰ͓࿩͢Δࣄ .',&44"*ͷྺ࢙

  16. .',&44"*ͷྺ࢙ ૑ۀॳظ ಋೖاۀ޲͚αʔϏε։ൃظ ݱࡏ

  17. ૑ۀॳظ ΤϯδχΞ͸໊̎ 10݉ΤϯδχΞ Πϯϑϥ݉ΤϯδχΞ ։ൃͰ࢖͏ٕज़ΛܾΊͨ (PMBOHΛ࢖͏ࣄ %PDLFSΛ࢖͏ࣄ ($1Λ࢖͏ࣄ ࣾ಺πʔϧͷ։ൃ

  18. (PMBOHΛ࢖͏ࣄʹͨ͠ཧ༝ ࣮ࡍʹ͓ۚʹؔΘΔࣄͳͷͰɺܕ͸ݫ֨ʹ͍ͨ͠ .'͸3VCZ3BJMTͷϝϯόʔ͕ଟ͍ͷͰɺ৽͍͠ ݴޠ΁ͷҠߦίετ͸ՄೳͳݶΓগͳ͘ ୭͕ॻ͍ͯ΋͋Δఔ౓͸ಉ༷͡ͳίʔυ͕͔͚Δɻ

  19. (PMBOHͰͲͷΑ͏ʹ։ൃ͔ͨ͠ &DIP΍(JOͱ͍ͬͨϑϨʔϜϫʔΫ͸࢖Θͳͣ ඞཁʹԠͯ͡ɺHPDIJDIJ΍ɺHPSJMMBDTSGͳͲ Λબ୒ͯ͠ɺ֦େ͍ͯ͘͠ํ਑ (PΒ͘͠ॻ͘ UFTUMJOUWFU͸࠷ॳ͔Βಋೖ

  20. (PMBOHΞϓϦέʔγϣϯͷঢ়گ w ϦϙδτϦ਺̍ w (P w ґଘ؅ཧ͸(MJEF (Pͱґଘ؅ཧ ར༻ύοέʔδ HJUIVCDPNVOSPMMFESFOEFS


    HPVCFSPSH[BQ HJUIVCDPNHPSJMMBTDIFNB HJUIVCDPNHPSJMMBDPOUFYU HJUIVCDPNHPSJMMBTFTTJPOT HJUIVCDPNHPSJMMBDTSG HJUIVCDPNQSFTTMZDIJ HJUIVCDPNKJO[IVHPSN
  21. %PDLFSΛ࢖͏ࣄʹͨ͠ཧ༝  ؀ڥͷಉҰੑͷ୲อ  ͩΕ͕Ͳ͜Ͱ࡞ͬͯ΋ಉ͡؀ڥΛ࠶ݱ͍ͨ͠  ΧϓηϧԽ  ΞϓϦέʔγϣϯຖʹಈ࡞؀ڥΛ෼཭ͯ͠؅ཧ 

    SVOUJNF؀ڥͷҰ؏ੑ  εςʔδϯάͳͲͰݕূͨ͠؀ڥΛɺಉ͡Πϝʔ δΛ࢖͍·Θ͢ࣄͰɺݕূࡁΈͷ؀ڥΛຊ൪ʹ దԠͰ͖Δ
  22. ($1Λ࢖͏ࣄʹͨ͠ཧ༝  (4VJUFͱ࿈ܞ͢ΔࣄͰɺ༰қʹݖݶ؅ཧ͕ग़དྷΔࣄʢ*".ʣ  ҙࣝ͠ͳͯ͘΋σʔλ͕஝ੵ͞ΕΔ4UBDLESJWFSͷଘࡏ  ,VCFSOFUFTαʔϏε͕ଘࡏͨ͠ࣄ  ࠓ͸"84ɺ#MVF.JYɺ"[VSFʹ΋ଘࡏ͍ͯ͠Δ 

    ΠϯϑϥΤϯδχΞෆࡏͰ΋ӡ༻͠΍͍͢
  23. ࣾ಺πʔϧʹઐ೦͢Δࣄʹͨ͠ཧ༝ ࠷௿ݶҎԼͷػೳ͕͋Ε͹ɺϏδωεΛ։࢝͢Δࣄ ͕Ͱ͖ͨͷͰɺࣾ಺πʔϧͷ։ൃ͔Βணख w اۀ৹͕ࠪग़དྷΔࣄ w औҾ৘ใͷ؅ཧ͕ग़དྷΔࣄ w ৼࠐͷҝʹܭࢉ͕Ͱ͖Δࣄ

  24. ͜ͷ࣌఺Ͱͷ($1ͷߏ੒ ࣾ಺؅ཧ༻ 8&#6*

  25. .',&44"*ͷྺ࢙ ૑ۀॳظ ಋೖاۀ޲͚αʔϏε։ൃظ ݱࡏ

  26. ಋೖاۀ޲͚αʔϏε։ൃظ (PQIFS໊̎
 ϑϩϯτΤϯυΤϯδχΞ໊̍ೖࣾ ಋೖاۀ޲͚8&#αʔϏεͷ։ൃ ಋೖاۀ޲͚3&45"1*ͷ։ൃ ಺෦"1*ͱͯ͠H31$"1*ͷ։ൃ

  27. H31$"1*։ൃ H31$Λ࠾༻ ݩʑͷϩδοΫ͸ࣾ಺πʔϧͰ։ൃ ࡁΈͳ΋ͷ͕ଟ͔ͬͨͷͰɺΠϯλʔ ϑΣʔε෦෼͕ओʹ։ൃͨ͠఺

  28. 3&45"1*։ൃ 3&45"1*ͷ։ൃʹ
 HJUIVCDPNHPBEFTJHOHPBΛ࠾༻ "1*,&:ೝূ΍ɺήʔτ΢ΣΠͱͯ͠
 "1*"HHSFHBUPSͷ,POHΛ࠾༻

  29. (PMBOHΞϓϦέʔγϣϯͷঢ়گ w ϦϙδτϦ਺̐ w (P w ґଘ؅ཧ͸(MJEF (Pͱґଘ؅ཧ ར༻ύοέʔδ HJUIVCDPNVOSPMMFESFOEFS


    HPVCFSPSH[BQ HJUIVCDPNHPSJMMBTDIFNB HJUIVCDPNHPSJMMBDPOUFYU HJUIVCDPNHPSJMMBTFTTJPOT HJUIVCDPNHPSJMMBDTSG HJUIVCDPNQSFTTMZDIJ HJUIVCDPNKJO[IVHPSN HJUIVCDPNHSQDHSQDHP HJUIVCDPNHPMBOHQSPUPCVG HJUIVCDPNHPBEFTJHOHPB HJUIVCDPNKJO[IVDPOpHPS
  30. ͜ͷ࣌఺Ͱͷ($1ͷߏ੒ ಋೖاۀ޲͚ 8&#6* ಋೖاۀ޲͚ 3&45"1* ࣾ಺؅ཧ༻ 8&#6* ܾࡁ H31$"1* "1*"HHSFHBUPS

    4FSWJDF.FTI %BUB%PH"HFOU &UD
  31. .',&44"*ͷྺ࢙ ૑ۀॳظ ಋೖاۀ޲͚αʔϏε։ൃظ ݱࡏ

  32. ݱࡏ (PQIFS͕ߋʹ໊̍ೖࣾͯ͠߹ܭ໊̒ʹ εέʔϥϒϧͳ1%'ੜ੒αʔϏεͷ։ൃ ϞχλϦϯάɺΤϥʔτϥοΩϯάݟ௚͠ 4FSWJDF.FTIಋೖ

  33. εέʔϥϒϧͳ1%'ൃߦͷ࢓૊Έ ੥ٻॻൃߦʹؔ͢Δ஌ࣝΛΞϓϦέʔγϣϯ͸஌Βͳͯ͘ྑ͘ͳΔ QVCTVC ("&Λ༻͍ΔࣄͰɺδϣϒͷฒྻ࣮ߦ͕ՄೳʹͳΓɺ୹࣌ؒͰେྔʹੜ੒Ͱ͖Δ

  34. (PMBOHΞϓϦέʔγϣϯͷঢ়گ w ϦϙδτϦ਺̑ w (P w ґଘ؅ཧ͸%FQ (Pͱґଘ؅ཧ ར༻ύοέʔδ HJUIVCDPNVOSPMMFESFOEFS


    HPVCFSPSH[BQ HJUIVCDPNHPSJMMBTDIFNB HJUIVCDPNHPSJMMBDPOUFYU HJUIVCDPNHPSJMMBTFTTJPOT HJUIVCDPNHPSJMMBDTSG HJUIVCDPNQSFTTMZDIJ HJUIVCDPNKJO[IVHPSN HJUIVCDPNHSQDHSQDHP HJUIVCDPNHPMBOHQSPUPCVG HJUIVCDPNHPBEFTJHOHPB HJUIVCDPNKJO[IVDPOpHPS (PPHMF$ISPNF%FCVHHFS HJUIVCDPNXJSFQBJSHDE
  35. ݱࡏͷ($1ͷߏ੒

  36. ($1ͷߏ੒ ($1શମͷNPOJUPSJOH͸ɺ4UBDL%SJWFS (,&ͷதͷNPOJUPSJOH͸ɺ%BUB%PH (,&ͷதͰൃੜ͢ΔΤϥʔ͸ɺ4FOUSZͰ؅ཧ

  37. ($1ͷߏ੒ ϚΠΫϩαʔϏεͷͦΕͧΕͷαʔϏε୯ҐͰ1PETԽ͠ ͍ͯ·͢ɻ (,&ͷதͷߏ੒͸͋ͱͷεϥΠυͰઆ໌

  38. ($1ͷߏ੒ ੥ٻॻ΍໌ࡉॻ1%'ͷൃߦΛ݅਺΍ෛՙʹԠͯ͡εέʔ λϒϧʹੜ੒Ͱ͖Δ࢓૊ΈΛߏங͍ͯ͠·͢ɻ

  39. ,VCFSOFUFTͷؔ܎ਤ

  40. ,VCFSOFUFTͷؔ܎ਤ Ϣʔβ͕ར༻͢Δ6*ຖʹ1PETΛ෼͚ ͍ͯ·͢ɻ w ಋೖاۀ޲͚6* w ಋೖاۀ޲͚3&45"1* w ࣾ಺༻؅ཧ6* w

    ,POHʢ044ʣ ฐࣾͰ͸ՄೳͳݶΓࣗࣾ։ൃͤͣ͋Γ ෺͕͋Ε͹࢖͏ํ਑ͳҝɺ(BUFXBZ 0BVUI&OEQPJOUͷ੹຿Λ,POHʹ· ͔͍ͤͯ·͢ɻ
  41. ,VCFSOFUFTͷؔ܎ਤ ࠓޙΑΓϚΠΫϩαʔϏεԽ͕ਐΉࣄͰɺH31$"1*͕૿͍͑ͯ͘ࣄ͕༧૝ ͞ΕΔҝɺݱࡏ͸༷ʑͳ"1*ͷ4FSWJDF%JTDPWFSZ3PVUJOH1SPYZ͕ߦ ͑Δ4FSWJDF.FTIͷ-JOLFSEΛಋೖ͓ͯ͠Γ·͢ɻ *TUJPʹ৺ऒ͔ΕͨΓ΋͍ͯ͠·͕͢ʣ

  42. ,VCFSOFUFTͷؔ܎ਤ H31$"1*͕υϝΠϯͷίΞϩδοΫ ෦෼ͳͲΛ୲౰͍ͯ͠·͢ɻ

  43. ࠓ೔࿩͢ࣄ ࣗݾ঺հ .',&44"*͍ͭͯ ձࣾʹ͍ͭͯ αʔϏεʹ͍ͭͯ HPMBOHUPLZPͰຊ୊ ;Γ͔͑Γ ʒ

  44. ;Γ͔͑Γ ৽نࣄۀʹHPMBOHΛબΜͰΈͯ 1SPT$POT

  45. ৽نࣄۀʹ(PMBOHΛબΜͰΈͯ1SPT  ৽نαʔϏε্ཱͪ͛࣌͸ಛʹɺ࢓༷มߋ΍ɺ్த͔Β࠷దԽͳͲߦ͏ࣄ΋͓͓͍ҝ
 ίϯύΠϧ͕͋Δ͓ӄͰɺେن໛ͳϦϑΝΫλΛߦͬͨ࣌ʹɺग़͔ͯ͠ΒյΕ͍ͯΔ ࣄʹؾ෇͘ͳͲͷ໰୊͸ͳ͘ͳͬͨͷͰΑ͔ͬͨ  HPGNU HPWFUͳͲͷ੩తνΣοΫπʔϧͷ͓͔͛ͰϨϏϡʔͰࠣ຤ͳࢦఠΛ͠ͳͯ͘ ࡁΉ ϨϏϡʔίετ࡟ݮ

      ݴޠࣗମͷ඼࣭΍ΤίαΠΫϧͷվળ DPOUFYUͷඪ४Խͱ͔ɺEFQͱ͔ ͕೔ʑߦΘΕ ͍ͯͯɺ͜Ε͔Βઌ΋҆৺ͯ͠࢖͑ͦ͏  νʔϜ։ൃʹ޲͍͍ͯΔɻ
 ݴޠతʹ΋ઃܭ͕ૄ݁߹ʹͳΓ͕ͪ ྫJOUFSGBDF࢖ͬͨΓͱ͔ɺDIBOOFMͰͷϝοηʔ δϯάͱ͔ ͳͷͰɺෳ਺ਓͰฒߦͯ͠։ൃ͢Δͷ΋ࣗવʹͰ͖ɺ։ൃ଎౓΋্͕Δ
  46. ৽نࣄۀʹ(PMBOHΛબΜͰΈͯ$POT  ੩తܕ෇͚ݴޠ΍৽͍͠ݴޠɺະܦݧऀ͕ډͯΔ৔߹͸ɺࠓ·Ͱग़དྷ͍ͯͨࣄ͕ग़དྷ ͳ͍ɺ͍ͨ͠ͱ͍ͬͨײ͡Ͱҙݟͷিಥ͸ى͖Δ  ௚઀తʹϦονͳ6*Λఏڙ͢Δͱ͔ʹ͸޲͍ͯͳ͍ 8FCΞϓϦͳͲɻόοΫΤϯυ ͱಉ͡ϊϦͰ؅ཧը໘ͱ͔΋(PͰ࡞Ζ͏ͱ͢Δͱख͕͔͔ؒͬͨ  

    ΤϥʔϋϯυϦϯάͳͲͰ هड़ྔ͕ͦΕͳΓʹଟ͘ͳΓ͕ͪɻαΫοͱ࡞Δʹ͸*%& ͱ͔ͦΕͳΓʹ࢖͍ࠐΜͰͳ͍ͱݫ͍͔͠΋  ྫ֎͕ແ͍͕Ώ͑ʹɺ*GFSSOJM\^͕େྔʹඞཁʹͳΔखؒΛײ͡Δࣄ͸ଟ͍
  47. ࠓ೔࿩͢ࣄ ࣗݾ঺հ .',&44"*͍ͭͯ ձࣾʹ͍ͭͯ αʔϏεʹ͍ͭͯ HPMBOHUPLZPͰຊ୊ ;Γ͔͑Γ ʒ

  48. ࠷ޙʹ ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ