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

コンテナをフル活用した現場 / #devsumiE

Kodai Sakabe
February 17, 2017

コンテナをフル活用した現場 / #devsumiE

コンテナをフル活用した現場はどういった成長をたどるのか、出てきた課題に対してどう対処していったかについて話をしました。

Kodai Sakabe

February 17, 2017
Tweet

More Decks by Kodai Sakabe

Other Decks in Technology

Transcript

  1. ,PEBJ4BLBCF!LPVEBJJJ8BOUFEMZ *OD
    ίϯςφΛϑϧ׆༻ͨ͠ݱ৔
    EFWTVNJ&&

    View full-size slide

  2. ABOUT ME
    — Software Engineer —
    2010/4- TIS
    ࡔ෦ ޿େ (KODAI SAKABE)
    2015/8- Wantedly
    @koudaiii
    Site: https://koudaiii.com

    View full-size slide

  3. WANTEDLY
    — γΰτͰίίϩΦυϧͻͱΛ;΍͢—

    View full-size slide

  4. Ϗδωε4/4΁ͷਐԽ
    εΩϧɾධ൑ɾͭͳ͕Γͷ̏ͭࢿ࢈Λॆ࣮ͤ͞ΔΠϯϑϥ
    Visit

    Case
    ʢϙʔτϑΥϦΦʣ
    Tools
    ʢπʔϧϨϏϡʔʣ
    Chat
    ʢϏδωενϟοτʣ
    ✓ σʔλ஝ੵ
    ✓ ίϯςϯπ֦ॆ
    ✓ ϓϩμΫτؒɾ֎෦࿈ܞڧԽ
    σʔλ
    • ϢʔβʔɾاۀͷϓϩϑΟʔ
    ϧɾؔ৺৘ใ
    • Ϣʔβʔ΍اۀͷؒͷͭͳ
    ͕Γ৘ใ
    • ߦಈ৘ใ΍ίϯςϯπ
    ֎෦ύʔτφʔ
    Chat
    Visit
    Tools
    Case
    People
    ʢϚονϯάʣ
    ίϯςϯπ
    Feed
    ϝσΟΞ
    πʔϧ

    View full-size slide

  5. ίϯςφΛϑϧ׆༻ͨ͠ݱ৔

    View full-size slide

  6. ίϯςφΛϑϧ׆༻ͨ͠ݱ৔Ͱىͬͨ͜͜ͱ
    w ΞϓϦέʔγϣϯͷϧʔϧ5IF5XFMWF'BDUPS"QQ
    w ίʔυԽɺπʔϧԽXBOUFEMZNJDSPTFSWJDFT
    w มԽʹڧ͍Πϯϑϥ,VCFSOFUFT

    View full-size slide

  7. ΞϓϦέʔγϣϯͷϧʔϧ
    5IF5XFMWF'BDUPS"QQ

    View full-size slide

  8. IUUQTGBDUPSOFUKB

    View full-size slide

  9. ίʔυϕʔε $PEFCBTF

    w όʔδϣϯ؅ཧ͞Ε͍ͯΔͭͷίʔυϕʔεͱෳ਺ͷσϓϩΠ
    ґଘؔ܎ %FQFOEFODJFT

    w ґଘؔ܎Λ໌ࣔతʹએݴ͠෼཭͢Δ
    ઃఆ $POpH

    w ઃఆΛ؀ڥม਺ʹ֨ೲ͢Δ
    IUUQTGBDUPSOFUKB

    View full-size slide

  10. όοΫΤϯυαʔϏε #BDLJOH4FSWJDFT

    w όοΫΤϯυαʔϏεΛΞλον͞ΕͨϦιʔεͱͯ͠ѻ͏
    IUUQTGBDUPSOFUKB

    View full-size slide

  11. ϏϧυɺϦϦʔεɺ࣮ߦ #VJME SFMFBTF SVO

    w ϏϧυɺϦϦʔεɺ࣮ߦͷͭͷεςʔδΛݫີʹ෼཭͢Δ
    ϓϩηε 1SPDFTTFT

    w ΞϓϦέʔγϣϯΛͭ΋͘͠͸ෳ਺ͷεςʔτϨεͳϓϩηεͱ࣮ͯ͠ߦ͢Δ
    ϙʔτόΠϯσΟϯά 1PSUCJOEJOH

    w ϙʔτόΠϯσΟϯάΛ௨ͯ͠αʔϏεΛެ։͢Δ
    ฒߦੑ $PODVSSFODZ

    w ϓϩηεϞσϧʹΑͬͯεέʔϧΞ΢τ͢Δ
    IUUQTGBDUPSOFUKB

    View full-size slide

  12. ഇغ༰қੑ %JTQPTBCJMJUZ

    w ߴ଎ͳىಈͱάϨʔεϑϧγϟοτμ΢ϯͰݎ࿚ੑΛ࠷େԽ͢Δ
    ։ൃຊ൪Ұக %FWQSPEQBSJUZ

    w ։ൃɺεςʔδϯάɺຊ൪؀ڥΛͰ͖Δ͚ͩҰகͤͨ͞ঢ়ଶΛอͭ
    ϩά -PHT

    w ϩάΛΠϕϯτετϦʔϜͱͯ͠ѻ͏
    ؅ཧϓϩηε "ENJOQSPDFTTFT

    w ؅ཧλεΫ ϚΠάϨʔγϣϯ౳
    ΛճݶΓͷϓϩηεͱ࣮ͯ͠ߦ
    IUUQTGBDUPSOFUKB

    View full-size slide

  13. ΞϓϦέʔγϣϯͷϧʔϧ
    w %PDLFSΛ࢖ͬͨ৔߹ɺجຊతʹGBDUPSBQQʹԊͬͨΞʔΩςΫνϟ
    w ઃఆ͸؀ڥม਺Ͱࢦఆ͢Δ
    w ϩάΛϑΝΠϧग़ྗͰ͸ͳ͘ɺ45%065ʹ͢Δ
    w εςʔτϨεͳঢ়ଶʹ͢Δ σʔλΛஔ͔ͳ͍

    w ༻్ͷҧ͏ϓϩηεΛෳ਺ىಈͤ͞ͳ͍ TFSG౳ͰͲ͏ͯ͠΋ඞཁͳ৔߹
    ΋͋ΔɻΦϑΟγϟϧͷLPOH౳

    View full-size slide

  14. ίʔυԽɺπʔϧԽ
    XBOUFEMZNJDSPTFSWJDFT

    View full-size slide

  15. ίʔυԽ
    w %PDLFSԽGBDUPSBQQͰ͍ͭͰ΋ग़ͤΔঢ়ଶ
    w TDSJQUCPPTUSBQ TDSJQUTFSWFSͲͷݴޠͰ΋ڞ௨ͷ࣮ߦํ๏
    w EPDυΩϡϝϯτஔ͖৔
    w IFBMUIDIFDLڞ௨ͷࢮ׆؂ࢹ༻ΤϯυϙΠϯτ
    w ΠϯϑϥΛૢ࡞͢Δ΋ͷ͸$-*πʔϧʹ͢Δ

    View full-size slide

  16. TDSJQU
    DIFDL@FOWJSPONFOU؀ڥνΣοΫ
    CPPUTUSBQΞϓϦέʔγϣϯઃఆ
    $ curl https://xxxx/xxxx/check_environment | bash
    Wantedly
    γΰτͰίίϩΦυϧਓΛ;΍͢
    + sufficient processor speed.
    + sufficient memory size.
    + sufficient disk space.
    + ruby x.x.x fonud.
    + yarn found.
    + node x.x.x fonud.
    + PostgreSQL found.
    + No error raised.
    We are ready to setup environment.
    Ask your supervisor for further installation.

    View full-size slide

  17. ΠϯϑϥΛૢ࡞͢Δπʔϧ
    w %FQMPZɺ%PDLFSɺ"84ɺ%/4JNQMFΛૢ࡞Ͱ͖ΔXBOUFEMZDBQTBQ
    w $* XFSDLFS
    ͷ݁ՌΛऔಘͰ͖ΔXLXL
    w "1*ʹೝূ΍εϩοτϧͳͲΛϒϥ΢βͰઃఆͰ͖ΔXBOUFEMZLPOHGSPOUFOE
    w ඞཁͳTZTUFNEͷTFSWJDFΛ&$ͷUBH͔Βొ࿥Ͱ͖ΔDFMM
    w 4Λ࢖ͬͯϑΝΠϧΛؾܰʹڞ༗Ͱ͖ΔEUBOTVSM
    w &$ͷ৘ใΛऔಘͨ͠Γૢ࡞Ͱ͖ΔEUBOFDD
    w ؀ڥม਺ΛνʔϜͰ؅ཧͰ͖ΔEUBOWBMFD
    w "84%/4JNQMF%BUB%PHΛநग़ͨ͠Γૢ࡞Ͱ͖ΔEUBOUFSSBGPSNJOH XBOUFEMZUFSSBGPSN

    View full-size slide

  18. มԽʹڧ͍Πϯϑϥ
    8BOUFEMZ1FPQMFࣄྫ

    View full-size slide

  19. େ͖ͳ՝୊

    View full-size slide

  20. ϦϦʔε·Ͱʹֻ͕͔࣌ؒΔ
    w %PDLFSpMFΛΞϓϦέʔγϣϯΤϯδχΞ͕ॻ͘ͷ͕େม
    w ίϯςφΛαʔόʔʹࡌͤΔ·Ͱͷ४උ͕ଟ͍
    w "4( .POJUPS -PHHJOH "-# %/4FUD

    w ΠϯϑϥνʔϜͷ࡞ۀ଴ͪ
    w ΠϯϑϥνʔϜ͕༻ҙ͔ͯ͠Β΋ߋʹमਖ਼͕ඞཁ

    View full-size slide

  21. ೉ղͳखॱ

    View full-size slide

  22. ,VCFSOFUFTಋೖ
    ΑΓݕূΑΓຊ൪ಋೖ

    View full-size slide

  23. ,VCFSOFUFT
    w ʮΞϓϦέʔγϣϯ͕ԿॲͰಈ͍͍ͯΔ͔Λҙࣝ͢Δʯੈք͔ΒʮΞϓϦέʔγϣϯ͕Ͳ͏ಈ͍͍ͯ
    Δ͔͚ͩΛҙ͍ࣝͯ͠Ε͹ྑ͍ʯੈքʹͰ͖Δ
    w ෳ਺୆ͷϗετΛΫϥελϦϯάͯ͠େ͖ͳϦιʔεͱͯ͠ݟͤΔɻΫϥελ಺ͰɺΞϓϦέʔγϣϯ
    ͷ%FQMPZ 4DBMF 0QFSBUJPOΛࣗಈతʹߦ͏
    w ۭ͍͍ͯΔϦιʔε্ʹΞϓϦέʔγϣϯΛ࣮ߦ
    w ΞϓϦέʔγϣϯ୯ҐͰࣗಈ·ͨखಈͰεέʔϧ
    w ৽͍͠ػೳΛϦϦʔε͢ΔࡍʹɺγʔϜϨεʹσϓϩΠ
    w ඞཁͳϦιʔε͚ͩΛ࢖༻ͯ͠ϋʔυ΢ΣΞͷ࢖༻Λ࠷దԽ
    w ར༻ऀ͸ɺΞϓϦέʔγϣϯ ਺ ϚγϯεϖοΫ σϓϩΠํ๏ ؀ڥม਺ͳͲΛఆٛ͢Δ͚ͩͰ
    ,VCFSOFUFT͸ఆ͔ٛΒۭ͍͍ͯΔϦιʔε্ʹ࣮ߦ͢Δ
    IUUQTLVCFSOFUFTJPEPDTXIBUJTLT

    View full-size slide

  24. ৽͘͠αʔϏεΛ࡞Δ࣌ʹɺ
    طଘͷϦϙδτϦʹίʔυΛ௥Ճ͢ΔΑΓ
    ৽͘͠ϦϙδτϦΛ࡞Δํ͕ྑ͍ͱ͍͏งғؾΛ࡞Δ

    View full-size slide

  25. IUUQTXXXXBOUFEMZDPNDPNQBOJFTXBOUFEMZQPTU@BSUJDMFT
    $*$%ڞ௨ͷϧʔϧ
    IUUQTXXXXBOUFEMZDPNDPNQBOJFTXBOUFEMZQPTU@BSUJDMFT

    View full-size slide

  26. %BTICPBSE
    ڞ௨ͷμογϡϘʔυ
    %"5"%0(LVCFEBTICPSE-PHFOUSJFT

    View full-size slide

  27. ৽͘͠αʔϏεΛ࢝ΊΔͨΊͷυΩϡϝϯτ

    View full-size slide

  28. ܕ͕ܗ੒͞Εͨޙɺ3VCZҎ֎ͷϓϩμΫτ͕૿Ճ
    w $BQJTUSBOPͰͷEFQMPZํ๏͔Β,VCFSOFUFTΛ࢖ͬͨEFQMPZํ๏ʹมΘΓɺଞͷ
    ݴޠ͕ೖΓ΍͘͢ͳͬͨ
    w ΞϓϦέʔγϣϯͷϧʔϧͱίʔυԽ TDSJQUIFBMUIDIFDL౳
    ͷ͓͔͛Ͱɺଞͷݴޠʹ
    ͳͬͯ΋ӡ༻͕جຊมΘΒͣɺଞͷΤϯδχΞ͸োน͕গͳࣗ͘෼ͷ؀ڥͰ࣮ߦͰ͖Δ
    w ΠϯϑϥνʔϜͷ࡞ۀ଴͕ͪݮΓɺ·ͨϦϦʔεͷ؆ུԽ͔ΒγϯϓϧͳΞϓϦέʔγϣ
    ϯΛͲΜͲΜ࡞Δͷ͕૿͑ɺΤϯδχΞଆͰγϯϓϧͳ%PDLFSpMF౳Λॻ͘Α͏ʹ
    ͳ͖ͬͯͨ
    w ,VCFSOFUFTΛར༻͢ΔͨΊͷΠϯϑϥΛૢ࡞͢Δ$-*͕ٸ຿ʹͳΔ

    View full-size slide

  29. .JDSPTFSWJDFTΛࢧ͑Δ.JDSPUPPMT

    View full-size slide

  30. 5IF6/*9QIJMPTPQIZ
    w 4NBMMJTCFBVUJGVMখ͍͞΋ͷ͸ඒ͍͠
    w .BLFFBDIQSPHSBNEPPOFUIJOHXFMMͭͷϓϩάϥϜʹ͸ͭͷ͜ͱΛ͏·
    ͘΍ΒͤΔ
    w $IPPTFQPSUBCJMJUZPWFSF⒏DJFODZޮ཰ΑΓҠ২ੑΛ༏ઌ͢Δ
    w 6TFTPGUXBSFMFWFSBHFUPZPVSBEWBOUBHFιϑτ΢ΣΞΛᑏࢠ ͯ͜
    ͱͯ͠
    ࢖͏
    w "WPJEDBQUJWFVTFSJOUFSGBDFTա౉ͷର࿩తΠϯλʔϑΣʔεΛආ͚Δ

    View full-size slide

  31. .JDSPTFSWJDFTΛࢧ͑Δ.JDSPUPPMT
    w LVCFԼهπʔϧΛ࣮ߦ͢ΔͨΊͷXSBQQFS
    w LVCFDUMLVCFSOFUFTͷެࣜ$-*
    w XBOUFEMZEPDLFSUBHTEPDLFSSFHJTUSZʹ͋ΔJNBHFUBHΛҰཡͰऔಘ͢Δ
    w LPVEBJJJLVCFQTQPE͕ಈ͍͍ͯΔਖ਼֬ͳىಈ࣌ؒͱ࢖ΘΕ͍ͯΔJNBHFUBHΛऔಘͰ͖Δ
    w EUBOLTUBJMOBNFTQBDFͱMBCFMͰ·ͱΊͯMPHΛUBJMग़དྷΔ
    w EUBOLTFDTFDSFUTΛૢ࡞Ͱ͖Δ
    w LPVEBJJJRVDMJ2VBZJPΛૢ࡞Ͱ͖Δ
    w OBNFTQBDFΛIFSPLV$-*ͷΑ͏ʹͦͷσΟϨΫτϦʹҠಈͨ͠Β෇༩͢Δ

    View full-size slide

  32. .JDSPUPPMT
    LVCFίϚϯυ͔Βͨ͘͞ΜͷπʔϧΛར༻͠ɺҰͭͷ$-*αʔϏεΛ࡞Δ

    View full-size slide

  33. IPNFCSFX
    ࣾ಺πʔϧΛIPNFCSFXͰCJOBSZΛ഑৴
    3VCZ౳ͷݴޠΛೖΕͯແͯ͘΋πʔϧ͕࢖͑ΔΑ͏ʹ

    View full-size slide

  34. ಇ͖ํͷมԽͱαʔϏε਺ͷਪҠ
    8BOUFEMZ1FPQMF

    View full-size slide

  35. ελʔτظ
    ΞϓϦέʔγϣϯΤϯδχΞଆͰGBDUPSBQQͳߏ੒Λ࡞ΓɺΠϯϑϥνʔϜʹґཔ
    Developer ΠϯϑϥνʔϜ
    λεΫґཔ

    View full-size slide

  36. ϧʔϧͱηϧϑαʔϏεظ
    w طଘαʔϏεͷΠϯϑϥΛૢ࡞͢Δπʔϧ࡞੒ͱTDSJQUͳͲ͕ϧʔϧԽ
    ΠϯϑϥνʔϜ
    API and Tool
    Developer

    View full-size slide

  37. ΫϥελϦϯάظ
    w େ͖ͳϦιʔεΛΈΜͳͰࣗ༝ʹ࢖͍ɺ৽نαʔϏεΛཱͯ΍͘͢͢Δ
    Developer
    ΠϯϑϥνʔϜ
    API and Tool

    View full-size slide

  38. 8BOUFEMZ1FPQMFҎ֎ͷνʔϜʹ೾ٴͯ͠
    ࣍ʑͱαʔϏε͕࡞ΒΕ͍ͯΔ
    8BOUFEMZ1FPQMF

    View full-size slide

  39. w $$0CK$4XJGU+BWB3VCZ1ZUIPO(P/PEFͭͷݴޠ
    w ͭͷ.JDSPTFSWJDF
    w ߴ଎ͳΦϯϝϞϦݕࡧɺը૾ॲཧɺػցֶश
    w ͢΂ͯͷαʔϏε͕ಉ͡ӡ༻ํ๏
    w 5FTU#VJME%FQMPZ4DBMF$POTPMF-PH
    w ϦϦʔεํ๏΍2"؀ڥͳͲΛॊೈʹߏ੒Λม͑ͨΓ௥Ճग़དྷΔ
    w 8BOUFEMZͷJOUFSOBM"1*͕ར༻Ͱ͖Δ

    View full-size slide

  40. ΫϥελϦϯάظ ,VCFSOFUFTಋೖ

    ελʔτظ
    ϧʔϧͱηϧϑαʔϏεظ

    View full-size slide

  41. ίϯςφΛϑϧ׆༻ͨ͠ݱ৔Ͱىͬͨ͜͜ͱ
    w ΞϓϦέʔγϣϯͷϧʔϧ5IF5XFMWF'BDUPS"QQ
    w ίʔυԽɺπʔϧԽXBOUFEMZNJDSPTFSWJDFT
    w มԽʹڧ͍Πϯϑϥ,VCFSOFUFT
    ΠϯϑϥΤϯδχΞ͸ӡ༻อक͚ͩ͡Όͳ͘ɺ
    ੵۃతʹίʔυΛॻ͍ͯશମ࠷దԽͱͳΔ࢓૊Έʹूத͢Δ

    View full-size slide

  42. IUUQTXXXXBOUFEMZDPNQSPKFDUT

    View full-size slide

  43. NEXT
    — ڵຯΛ࣋ͬͨํ͸ؾܰʹҙݟަ׵Λ͍ͤͯͩ͘͞͞!! —

    View full-size slide