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

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

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

Bc1e4b3a33fe6718f50285d1c1f53feb?s=128

Kodai Sakabe

February 17, 2017
Tweet

Transcript

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

  2. ABOUT ME — Software Engineer — 2010/4- TIS ࡔ෦ ޿େ

    (KODAI SAKABE) 2015/8- Wantedly @koudaiii Site: https://koudaiii.com
  3. WANTEDLY — γΰτͰίίϩΦυϧͻͱΛ;΍͢—

  4. None
  5. None
  6. Ϗδωε4/4΁ͷਐԽ εΩϧɾධ൑ɾͭͳ͕Γͷ̏ͭࢿ࢈Λॆ࣮ͤ͞ΔΠϯϑϥ Visit
 Case ʢϙʔτϑΥϦΦʣ Tools ʢπʔϧϨϏϡʔʣ Chat ʢϏδωενϟοτʣ ✓

    σʔλ஝ੵ ✓ ίϯςϯπ֦ॆ ✓ ϓϩμΫτؒɾ֎෦࿈ܞڧԽ σʔλ • ϢʔβʔɾاۀͷϓϩϑΟʔ ϧɾؔ৺৘ใ • Ϣʔβʔ΍اۀͷؒͷͭͳ ͕Γ৘ใ • ߦಈ৘ใ΍ίϯςϯπ ֎෦ύʔτφʔ Chat Visit Tools Case People ʢϚονϯάʣ ίϯςϯπ Feed ϝσΟΞ πʔϧ
  7. ίϯςφΛϑϧ׆༻ͨ͠ݱ৔

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

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

  10. IUUQTGBDUPSOFUKB

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

    w ґଘؔ܎Λ໌ࣔతʹએݴ͠෼཭͢Δ  ઃఆ $POpH  w ઃఆΛ؀ڥม਺ʹ֨ೲ͢Δ IUUQTGBDUPSOFUKB
  12.  όοΫΤϯυαʔϏε #BDLJOH4FSWJDFT  w όοΫΤϯυαʔϏεΛΞλον͞ΕͨϦιʔεͱͯ͠ѻ͏ IUUQTGBDUPSOFUKB

  13.  ϏϧυɺϦϦʔεɺ࣮ߦ #VJME SFMFBTF SVO  w ϏϧυɺϦϦʔεɺ࣮ߦͷͭͷεςʔδΛݫີʹ෼཭͢Δ  ϓϩηε

    1SPDFTTFT  w ΞϓϦέʔγϣϯΛͭ΋͘͠͸ෳ਺ͷεςʔτϨεͳϓϩηεͱ࣮ͯ͠ߦ͢Δ  ϙʔτόΠϯσΟϯά 1PSUCJOEJOH  w ϙʔτόΠϯσΟϯάΛ௨ͯ͠αʔϏεΛެ։͢Δ  ฒߦੑ $PODVSSFODZ  w ϓϩηεϞσϧʹΑͬͯεέʔϧΞ΢τ͢Δ IUUQTGBDUPSOFUKB
  14.  ഇغ༰қੑ %JTQPTBCJMJUZ  w ߴ଎ͳىಈͱάϨʔεϑϧγϟοτμ΢ϯͰݎ࿚ੑΛ࠷େԽ͢Δ ։ൃຊ൪Ұக %FWQSPEQBSJUZ  w

    ։ൃɺεςʔδϯάɺຊ൪؀ڥΛͰ͖Δ͚ͩҰகͤͨ͞ঢ়ଶΛอͭ ϩά -PHT  w ϩάΛΠϕϯτετϦʔϜͱͯ͠ѻ͏ ؅ཧϓϩηε "ENJOQSPDFTTFT  w ؅ཧλεΫ ϚΠάϨʔγϣϯ౳ ΛճݶΓͷϓϩηεͱ࣮ͯ͠ߦ IUUQTGBDUPSOFUKB
  15. ΞϓϦέʔγϣϯͷϧʔϧ w %PDLFSΛ࢖ͬͨ৔߹ɺجຊతʹGBDUPSBQQʹԊͬͨΞʔΩςΫνϟ w ઃఆ͸؀ڥม਺Ͱࢦఆ͢Δ w ϩάΛϑΝΠϧग़ྗͰ͸ͳ͘ɺ45%065ʹ͢Δ w εςʔτϨεͳঢ়ଶʹ͢Δ σʔλΛஔ͔ͳ͍

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

  17. None
  18. ίʔυԽ w %PDLFSԽGBDUPSBQQͰ͍ͭͰ΋ग़ͤΔঢ়ଶ w TDSJQUCPPTUSBQ TDSJQUTFSWFSͲͷݴޠͰ΋ڞ௨ͷ࣮ߦํ๏ w EPDυΩϡϝϯτஔ͖৔ w IFBMUIDIFDLڞ௨ͷࢮ׆؂ࢹ༻ΤϯυϙΠϯτ

    w ΠϯϑϥΛૢ࡞͢Δ΋ͷ͸$-*πʔϧʹ͢Δ
  19. 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.
  20. ΠϯϑϥΛૢ࡞͢Δπʔϧ 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
  21. มԽʹڧ͍Πϯϑϥ 8BOUFEMZ1FPQMFࣄྫ

  22. େ͖ͳ՝୊

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

    %/4FUD  w ΠϯϑϥνʔϜͷ࡞ۀ଴ͪ w ΠϯϑϥνʔϜ͕༻ҙ͔ͯ͠Β΋ߋʹमਖ਼͕ඞཁ
  24. ೉ղͳखॱ

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

  26. ,VCFSOFUFT w ʮΞϓϦέʔγϣϯ͕ԿॲͰಈ͍͍ͯΔ͔Λҙࣝ͢Δʯੈք͔ΒʮΞϓϦέʔγϣϯ͕Ͳ͏ಈ͍͍ͯ Δ͔͚ͩΛҙ͍ࣝͯ͠Ε͹ྑ͍ʯੈքʹͰ͖Δ w ෳ਺୆ͷϗετΛΫϥελϦϯάͯ͠େ͖ͳϦιʔεͱͯ͠ݟͤΔɻΫϥελ಺ͰɺΞϓϦέʔγϣϯ ͷ%FQMPZ 4DBMF 0QFSBUJPOΛࣗಈతʹߦ͏ w

    ۭ͍͍ͯΔϦιʔε্ʹΞϓϦέʔγϣϯΛ࣮ߦ w ΞϓϦέʔγϣϯ୯ҐͰࣗಈ·ͨखಈͰεέʔϧ w ৽͍͠ػೳΛϦϦʔε͢ΔࡍʹɺγʔϜϨεʹσϓϩΠ w ඞཁͳϦιʔε͚ͩΛ࢖༻ͯ͠ϋʔυ΢ΣΞͷ࢖༻Λ࠷దԽ w ར༻ऀ͸ɺΞϓϦέʔγϣϯ ਺ ϚγϯεϖοΫ σϓϩΠํ๏ ؀ڥม਺ͳͲΛఆٛ͢Δ͚ͩͰ ,VCFSOFUFT͸ఆ͔ٛΒۭ͍͍ͯΔϦιʔε্ʹ࣮ߦ͢Δ IUUQTLVCFSOFUFTJPEPDTXIBUJTLT
  27. ৽͘͠αʔϏεΛ࡞Δ࣌ʹɺ طଘͷϦϙδτϦʹίʔυΛ௥Ճ͢ΔΑΓ ৽͘͠ϦϙδτϦΛ࡞Δํ͕ྑ͍ͱ͍͏งғؾΛ࡞Δ

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

  29. .FSHF%FQMPZ

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

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

  32. ܕ͕ܗ੒͞Εͨޙɺ3VCZҎ֎ͷϓϩμΫτ͕૿Ճ w $BQJTUSBOPͰͷEFQMPZํ๏͔Β,VCFSOFUFTΛ࢖ͬͨEFQMPZํ๏ʹมΘΓɺଞͷ ݴޠ͕ೖΓ΍͘͢ͳͬͨ w ΞϓϦέʔγϣϯͷϧʔϧͱίʔυԽ TDSJQUIFBMUIDIFDL౳ ͷ͓͔͛Ͱɺଞͷݴޠʹ ͳͬͯ΋ӡ༻͕جຊมΘΒͣɺଞͷΤϯδχΞ͸োน͕গͳࣗ͘෼ͷ؀ڥͰ࣮ߦͰ͖Δ w

    ΠϯϑϥνʔϜͷ࡞ۀ଴͕ͪݮΓɺ·ͨϦϦʔεͷ؆ུԽ͔ΒγϯϓϧͳΞϓϦέʔγϣ ϯΛͲΜͲΜ࡞Δͷ͕૿͑ɺΤϯδχΞଆͰγϯϓϧͳ%PDLFSpMF౳Λॻ͘Α͏ʹ ͳ͖ͬͯͨ w ,VCFSOFUFTΛར༻͢ΔͨΊͷΠϯϑϥΛૢ࡞͢Δ$-*͕ٸ຿ʹͳΔ
  33. .JDSPTFSWJDFTΛࢧ͑Δ.JDSPUPPMT

  34. 5IF6/*9QIJMPTPQIZ w 4NBMMJTCFBVUJGVMখ͍͞΋ͷ͸ඒ͍͠ w .BLFFBDIQSPHSBNEPPOFUIJOHXFMMͭͷϓϩάϥϜʹ͸ͭͷ͜ͱΛ͏· ͘΍ΒͤΔ w $IPPTFQPSUBCJMJUZPWFSF⒏DJFODZޮ཰ΑΓҠ২ੑΛ༏ઌ͢Δ w 6TFTPGUXBSFMFWFSBHFUPZPVSBEWBOUBHFιϑτ΢ΣΞΛᑏࢠ

    ͯ͜ ͱͯ͠ ࢖͏ w "WPJEDBQUJWFVTFSJOUFSGBDFTա౉ͷର࿩తΠϯλʔϑΣʔεΛආ͚Δ
  35. .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$-*ͷΑ͏ʹͦͷσΟϨΫτϦʹҠಈͨ͠Β෇༩͢Δ
  36. .JDSPUPPMT LVCFίϚϯυ͔Βͨ͘͞ΜͷπʔϧΛར༻͠ɺҰͭͷ$-*αʔϏεΛ࡞Δ

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

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

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

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

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

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

  43. w $$ 0CK$4XJGU+BWB3VCZ1ZUIPO(P/PEFͭͷݴޠ w ͭͷ.JDSPTFSWJDF w ߴ଎ͳΦϯϝϞϦݕࡧɺը૾ॲཧɺػցֶश w ͢΂ͯͷαʔϏε͕ಉ͡ӡ༻ํ๏ w

    5FTU#VJME%FQMPZ4DBMF$POTPMF-PH w ϦϦʔεํ๏΍2"؀ڥͳͲΛॊೈʹߏ੒Λม͑ͨΓ௥Ճग़དྷΔ w 8BOUFEMZͷJOUFSOBM"1*͕ར༻Ͱ͖Δ
  44. None
  45. ΫϥελϦϯάظ ,VCFSOFUFTಋೖ ελʔτظ ϧʔϧͱηϧϑαʔϏεظ

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

  47. IUUQTXXXXBOUFEMZDPNQSPKFDUT

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