Upgrade to Pro — share decks privately, control downloads, hide ads and more …

golang.tokyo #12 LT, Kushi

cnosuke
January 30, 2018

golang.tokyo #12 LT, Kushi

cnosuke

January 30, 2018
Tweet

More Decks by cnosuke

Other Decks in Technology

Transcript

  1. @cnosuke ͠Μͷ͚͢/͠ʔͷ͚͢ • SRE at ͓ۚͷσβΠϯ • KubernetesΫϥελ࡞ͬͨΓͦͷӡ༻ • ࣾ಺αʔϏεͱ͔πʔϧ΋࡞ͬͨΓ…

    • Slack͔ΒσϓϩΠग़དྷΔΑ͏ʹ͢Δ΍ͭͱ͔ • ͍ΖΜͳϑΝΠϧΛS3ʹόοΫΞοϓ͍ͯ͘͠΍ͭͱ͔ ͪͳΈʹɺ4MBDL͔ΒσϓϩΠ͢Δ΍ͭ͸ɺ4MBDL͔$IBUCPUʹ౤͛ͯɺEJHEBH 5%ۘ੡ͷXPSLqPXΤϯδϯ ʹஔ͔Εͨɺ σϓϩΠͷKPCΛ3&45"1*ͰΩοΫ͢Δͱ͍͏ߏ੒ʹ͍ͯ͠·͢ɻ͜Ε͸ɺϩά͕อશ͠΍ͯ͘͢ΈΜͳݟ΍͍͢ͱ͍͏ͷͱɺ Կ͔͋ͬͯKPC͕ࢮΜͩͱ͖ͱ͔ͷ੍ޚ ϦτϥΠͱ͔ ΋͠΍͍͢ɺͱ͍͏ར఺͕͋ΔͨΊͰ͢ɻ ౰વଞͷ௨ৗͷKPC΋͍Ζ͍ΖEJHEBHʹ͓͍ͯ͋Γ·͢
  2. Go ὑ THEO • Go + gRPC • ͍͔ͭ͘ͷΞϓϦ޲͚ͷAPI •

    ͍͔ͭ͘ͷࣾ಺޲͚API • Kubernetes • GKE … ։ൃ༻Ϋϥελ • AWS … ຊ൪༻Ϋϥελ (PͱͷؔΘΓͰ͍͏ͱɺJ04ΞϓϦΛࡢ೥຤ʹϦϦʔεͨ͠ͷͰ͕͢ɺ͜ͷΞϓϦͱ"1*αʔόؒ͸H31$Λશ໘తʹ࠾༻͍ͯͯ͠ɺ Ұ෦ͷ"1*Ͱ͸αʔόଆ΋(PͰॻ͔Ε͍ͯ·͢ɻ શͯͰ͸͋Γ·ͤΜ ·ͨɺͪΐ͏ͲҰ೥΄Ͳલ͔Β5)&0͸,VCFSOFUFTͰಈ͍͍ͯ·͢ɻ ։ൃ༻ͷLTΫϥελ͸(,&Λར༻͍ͯ͠·͕͢ɺຊ൪༻Ϋϥελ͸"84্ʹLVCFBXTͰߏஙͨ͠LTͰ͢ɻ ͳͥ(,&"84྆ํΛ࢖͍ͬͯΔ͔ͱ͍͏ͱɺকདྷ͸(,&ʹ΋ҠΔՄೳੑΛ࢒͍ͨ͠ͷͰɺ։ൃΫϥελ͸(,&ͱ͍͏͜ͱʹ͠·ͨ͠ɻ LTࣗମͷϙʔλϏϦςΟ΋͋ΔͷͰɺ·͊྆ํͪΌΜͱ௥͓͚ͬͯ͹কདྷͷબ୒ࢶ͕޿͘ͳΔͷͰΑ͍͔ͱɻ
  3. ։ൃ༻Ϋϥελ (on GKE) • Alphaαʔό܈ • API, DB, App …

    • ΤϯδχΞ͕खݩͰ։ൃ͢Δ࣌΋ɺجຊతʹґଘ ͢ΔAPI, DB͸ɺશһڞ௨Ͱ͜ͷAlpha؀ڥʹܨ͙ (,&ʹ͋Δ։ൃ༻Ϋϥελʹ͍ͭͯͰ͕͢ɺ͍ΘΏΔBMQIBαʔό܈ͱ͍͏ײ͡Ͱɺຊ൪؀ڥͱ΄ͱΜͲಉ͡αʔϏεߏ੒ʹ͍ͯ͠·͢ɻ ϦϦʔε౰ॳ͔Βɺ8FCͷϑϩϯτଆαʔϏεͱཪଆͷސ٬ɾূ݊؅ཧαʔϏεɺߋʹ͸ূ݊ӡ༻ͷαʔϏε౳͸෼ׂ͞Εͯ͸͍ͨͷͰ͕͢ɺ ͋·Γ៉ྷʹڥք͕੾ΒΕ͍ͯͨΘ͚Ͱ΋ແ͍ͷͰɺ೥΄Ͳલ͔Β͍͔ͭ͘ͷαʔϏεΛ৽ͨʹ੾Γग़͠͸͡Ί͍ͯͯɺϚΠΫϩͱ͍͏΄Ͳ খ͘͞͸͠ͳ͍ͱࢥ͍·͕͢ɺҙຯͷ͋Δ୯ҐͰαʔϏε෼ׂΛਐΊ͍ͯ·͢ɻͦͷ͍͔ͭ͘ͷ੾Γग़͞Εͨ"1*αʔό΍ɺґଘ͢Δ%#౳ͷ ߏ੒͕ɺຊ൪ͱ΄΅ಉ͡ײ͡ͰBMQIBʹ΋࡞ΒΕ͍ͯ·͢ɻ͜ͷBMQIB؀ڥ͸ɺΤϯδχΞશһ͕޷͖ʹΞΫηεͰ͖ΔΑ͏ʹͳ͍ͬͯͯɺ खݩͷ୺຤Ͱ։ൃ͢Δ࣌΋ɺ௚઀։ൃ͍ͯ͠Δ΋ͷҎ֎ͷ"1*αʔό΍ґଘ͢Δ%#͸ɺ͜ͷBMQIB؀ڥͷ΋ͷʹ઀ଓ͢ΔΑ͏ʹ͍ͯ͠·͢ɻ ͜Ε͸ɺશͯͷ"1*αʔό΍%#౳ΛϩʔΧϧͰಈ͔͢ͱɺ୯ʹॏ͍͠ඇޮ཰Ͱ͢͠ɺશͯͷ"1*αʔόΛ࠷৽ͷঢ়ଶʹಉظͯ͠खݩͰ։ൃ ͢Δͷ͕݁ߏ໘౗͔ͩΒͰ͢ɻ
  4. SSH Port fowarding ࢖͏ΑͶ • ·͊खܰ • DBͱ͔ܨ͙ͷʹTCPͰΞϨ͢Δඞཁ͋Δ͠… αʔϏεΛ෼ׂͯ͠%#΋͍͔ͭ͋ͬͯ͘ɺΈ͍ͨͳॴͩͱׂͱ࢖͍ͬͯΔͱ͜Ζଟ͍ͱࢥ͏ΜͰ͕͢ɺ ͍͔͕Ͱ͠ΐ͏ʁ

    ձ৔Ͱ͸গͳͦ͏Ͱ͕ͨ͠ʜ ΍ͬͺΓखܰͩ͠ɺ࠷ॳͷ%#ͻͱͭ͋ͨΓ͔Β44)1PSUGPXBSEJOHͰ͸͡Ίͯɺ ͦͷޙͲΜͲΜର৅͕૿͍͑ͯͬͯɺͱ͍͏έʔε͕ଟ͍Μ͡Όͳ͍͔ͱࢥ͍·͕͢ɻ ͏ͪ΋ͦ͏Ͱ͢  ͪͳΈʹɺલఏͱͯ͠͸ฐࣾͷΤϯδχΞ͸׬શࡋྔ࿑ಇ ϦϞʔτϫʔΫ΋ࣗ༝ͳͷͰɺͲ͔͜ΒͰ΋։ൃͰ͖ΔΑ͏ʹ͢Δඞཁ͕͋Γɺ ୯७ʹ%#౳ΛΫϥελ֎ʹ࿐ग़ͯ͠઀ଓݩ*1Ͱ੍ݶ͢Δɺͱ͍͏ख๏͸࢖͑·ͤΜɻΦϑΟεʹ71/ڌ఺͸͋Γ·͕͢ɺ શͯͷ௨৴Λ71/ܦ༝ʹ͢Δͱ͍͏ͷ͸ɺඞཁແ͍௨৴·Ͱ71/௨͢ͱ·͍͊Ζ͍Ζॏͯ͋͘·Γྑ͍ମݧͰ͸ແ͍Ͱ͢͠ɺ ಛఆͷϓϥΠϕʔτ*1ͱ͔͚ͩΛ71/௨͢ͱ͍͏ͷ΋ɺωοτϫʔΫ؀ڥʹΑͬͯ͸ɺϋϚΔΠϝʔδ͋Γ·͢ɻ ͪͳΈʹࣾ಺αʔϏεྨ΍BMQIBαʔόͷϒϥ΢βදࣔͷΞΫηε੍ޚ͸5-4͸౰વඞਢͰ ͦΕʹOHJOY@PNOJBVUI@BEBQUFSΛ૊Έ߹Θͤͯ·͢ɻ ͋ͱ5XJUUFSͰࢦఠ͕͋ͬͨͷͰ͕͢ɺ͜Ε͸։ൃ؀ڥʹݶͬͨ࿩Ͱɺຊ൪؀ڥ͸׬શʹผ ͦ΋ͦ΋"84 ʹͳ͍ͬͯͯɺΞΫηεͰ͖Δͷ͸ 43&ͷΈ͕࠷௿ݶʹඞཁͳ࣌ʹݶఆ͞Ε͍ͯ·͢ɻࣾ಺نఆྨ౳ʑ͸ۚ༥ͳͷͰΧονϦ੔උ͞Ε͍ͯΔͷͰ͢
  5. kushiͱ͸ • S3ͱ͔ʹஔ͍ͯ͋ΔYAMLͰهड़͞ΕͨPortfowardingͷϦετΛ औಘ͖ͯͯ͠ɺखݩͰSSHτϯωϧΛ͸ͬͯ͘ΕΔ΍ͭɻ • Ϧετͷߋ৽Λఆظతʹݟʹߦͬͯɺมߋ͕͋Ε͹มߋΛखݩʹ ൓өͯ͘͠ΕΔɻ • ωοτϫʔΫ؀ڥͷมߋ(e.g. ձࣾͷωοτϫʔΫ͔ΒՈͷωοτ

    ϫʔΫʹม͑ͨɺ౳)ʹΑͬͯSSHτϯωϧࣗମ͕յΕͨΒɺͦΕ ΛࣗಈͰுΓ௚ͯ͘͠ΕΔɻ • SSHτϯωϧ͸ແ௨৴ঢ়ଶͰ΋ͪΌΜͱkeepaliveͰɺग़དྷΔ͚ͩ ઀ଓΛҡ࣋ͯ͘͠ΕΔɻ ͪͳΈʹ࡞ͬͨͷ͸ࡢ೥݄͘Β͍Ͱ͕͢ɺͦΕ͔Βࢲͱ͔਺ਓͰࡉʑͱ·ͩࢼ͍ͯ͠Δͱ͜ΖͰɺࠓͷͱ͜Ζ͸͔ͳΓ҆ఆͯ͠·͢ɻ QPSUGPXBSEJOHͷϦετΛऔΔͱ͜Ζʹೝূػߏ͚ͭͨΒ ޙड़ ࣾ಺Ͱ͸શ໘తʹల։͢Δͭ΋ΓͰ͢ɻ