Slide 1

Slide 1 text

ΫοΫύουͷܧଓతͳ੒௕ ͷͨΊʹ։ൃͱӡ༻͕
 ԿΛ͖ͯͨ͠ͷ͔ɺ ͦͷࣦഊͱ੒ޭʹ͍ͭͯ $PPLQBE5FDI$POG ΫοΫύουגࣜձࣾΠϯϑϥετϥΫνϟʔ෦ ੒ాҰੜ

Slide 2

Slide 2 text

੒ాҰੜ ͳΔͨ ͍͍ͬͤ !NJSBLVJ ΫοΫύουגࣜձࣾ ΠϯϑϥετϥΫνϟʔ෦௕ ೖࣾ೥໨

Slide 3

Slide 3 text

େલఏ • ࣄۀ͸มԽ͢Δ • ૊৫͸มԽ͢Δ • ϓϩμΫτ΍ίʔυʹ͸ण໋͕͋Δ • ։ൃϦιʔε͸༗ݶͰ͋Δ

Slide 4

Slide 4 text

ࠓ೔ͷςʔϚ • ݶΒΕͨϦιʔεͰɺͲ͏΍ͬͯ
 ૊৫΍ࣄۀͷมԽʹڧ͍։ൃΛߦ͏͔ • ௕ण໋Խͨ͠ΞϓϦέʔγϣϯͱ
 Ͳ͏޲͖߹͍͔ͬͯ͘

Slide 5

Slide 5 text

ྺ࢙

Slide 6

Slide 6 text

ʮΫοΫύουʯ͸ ͍͔ͭΒ͋Δͷʁ

Slide 7

Slide 7 text

IUUQTJOGPDPPLQBEDPNDPSQPSBUFIJTUPSZ

Slide 8

Slide 8 text

IUUQTXFCBSDIJWFPSHXFCIUUQXXXDPPLQBEDPN

Slide 9

Slide 9 text

IUUQTJOGPDPPLQBEDPNDPSQPSBUFIJTUPSZ

Slide 10

Slide 10 text

$PME'VTJPO3BJMT

Slide 11

Slide 11 text

IUUQTJOGPDPPLQBEDPNDPSQPSBUFIJTUPSZ

Slide 12

Slide 12 text

IUUQTTQFBLFSEFDLDPNB@NBUTVEBUIFSFDJQFGPSUIFXPSMETMBSHFTUSBJMTNPOPMJUI

Slide 13

Slide 13 text

ෆ໊༪

Slide 14

Slide 14 text

߃ྫͷSBLFTUBUT ൛ +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines | LOC | Classes | Methods | M/C | LOC/M | +----------------------+-------+-------+---------+---------+-----+-------+ | Controllers | 53487 | 43106 | 578 | 4326 | 7 | 7 | | Helpers | 16467 | 13482 | 19 | 1544 | 81 | 6 | | Models |109238 | 86118 | 1938 | 9700 | 5 | 6 | | Mailers | 2259 | 1821 | 47 | 209 | 4 | 6 | | Workers | 797 | 678 | 23 | 38 | 1 | 15 | | Chanko units | 12737 | 10967 | 20 | 373 | 18 | 27 | | Libraries | 52295 | 43235 | 649 | 3954 | 6 | 8 | | Feature specs | 56569 | 45583 | 0 | 192 | 0 | 235 | | Request specs | 46276 | 39906 | 0 | 18 | 0 | 2215 | | Routing specs | 614 | 495 | 0 | 0 | 0 | 0 | | Controller specs | 64188 | 53000 | 6 | 128 | 21 | 412 | | Helper specs | 84918 | 70300 | 3 | 71 | 23 | 988 | | Model specs |163524 |135337 | 5 | 130 | 26 | 1039 | | Worker specs | 1156 | 959 | 0 | 1 | 0 | 957 | | Chanko unit specs | 9214 | 7596 | 0 | 11 | 0 | 688 | | Library specs | 26054 | 21809 | 25 | 125 | 5 | 172 | +----------------------+-------+-------+---------+---------+-----+-------+ | Total |699793 |574392 | 3313 | 20820 | 6 | 25 | +----------------------+-------+-------+---------+---------+-----+-------+ Code LOC: 199407 Test LOC: 374985 Code to Test Ratio: 1:1.9

Slide 15

Slide 15 text

Ͱ͔͍ͱԿ͕ى͜Δͷ͔ ىಈʹ͕͔͔࣌ؒΔ ςετʹ͕͔͔࣌ؒΔ ੩తղੳܥπʔϧ͕ಈ͔ͳ͍ ϥΠϒϥϦ͕ಈ͔ͳ͍ σϓϩΠ͕େม Ϩʔϧʹ৐Εͳ͍

Slide 16

Slide 16 text

ίʔυ΍؀ڥͷ࿝ٺԽ

Slide 17

Slide 17 text

ͳͥਓ͸ શ෦ॻ͖௚ͨ͘͠ ͳΔͷ͔

Slide 18

Slide 18 text

ࠒ શϦχϡʔΞϧܭը

Slide 19

Slide 19 text

ϦχϡʔΞϧܭը • ΤϯδχΞ10ਓ͘Β͍ • ίʔυ͕ڊେɾෳࡶ͗ͯ͢ɺ৽ػೳͷ࣮૷͕ࠔ೉ • ͦ΋ͦ΋ࠓͷαʔϏε͸͜ΕͰ͍͍ͷͩΖ͏͔ʁ • ίʔυ΋αʔϏε΋ཧ૝తͳঢ়ଶʹͨ͠ɺ
 Զͨͪͷߟ͑ͨ࠷ߴͷΫοΫύουʹ͠Α͏ w Α͠ϑϧεΫϥονͰॻͧ͘

Slide 20

Slide 20 text

ϦχϡʔΞϧେࣦഊ

Slide 21

Slide 21 text

Կ͕ىͬͨ͜ͷ͔ ʮαʔϏεͷίΞόϦϡʔΛநग़͢Δʯ ʮ៉ྷͳίʔυͰΠν͔Βॻ͖௚͢ʯ ͷ྆ํΛಉ࣌ʹ΍Ζ͏ͱͨ͠ ˠ͍ͭ·Ͱܦͬͯ΋࣮૷͕ऴΘΒͳ͍

Slide 22

Slide 22 text

࢓༷ͷ੔ཧͱ ϦϑΝΫλϦϯάΛ ಉ࣌ʹ΍Βͳ͍ํ͕͍͍ ֶͼ

Slide 23

Slide 23 text

ख஗Εʹͳ͔ͬͯΒ ΍Βͳ͍ ֶͼ

Slide 24

Slide 24 text

೥ͷ3BJMTҠߦ͸
 ͳͥ͏·͍ͬͨ͘ͷ͔ ΤϯδχΞ5ਓ Rails ʹৄ͍ࣾ͠һ 0ਓ ͦΕ΄Ͳ೔ຊͰྲྀߦͬͯͳ͍

Slide 25

Slide 25 text

౰࣌ͷؔ܎ऀͷূݴ • αʔϏεͷػೳ͕·ͩগͳ͔ͬͨ • ͢Ͱʹ΅Ζ΅Ζ͔ͩͬͨΒɺ
 ͦΕҎ্ࣦഊ͠Α͏͕ͳ͔ͬͨ • ͦ΋ͦ΋ͦΜͳʹ੒ޭ͍ͯ͠ͳ͔ͬͨ • ʢҠߦ͸͕ͨ͠ɺ౰ॳ͔ͳΓෆ҆ఆͩͬͨʣ • ए͔ͬͨ

Slide 26

Slide 26 text

Ͱ͸Ͳ͏͢Ε͹͍͍ͷ͔

Slide 27

Slide 27 text

ຊ౰ʹཉ͍͠΋ͷ͸
 Կͩͬͨͷ͔ʁ

Slide 28

Slide 28 text

ͳͥॻ͖௚͔ͨͬͨ͠ͷ͔ • αʔϏεͷܧଓతͳվળ͕͔ͨͬͨ͠ • ṖͷෳࡶͳϨΨγʔίʔυ͕ଟ͗ͯ͢
 ػೳͷվળ΍௥Ճ͕ࠔ೉

Slide 29

Slide 29 text

ϨΨγʔίʔυΛ
 શ෦ॻ͖௚͞ͳͯ͘΋
 ։ൃ଎౓Λམͱͣ͞
 ܧଓతͳվળ͕Ͱ͖ΔΑ͏ʹ ͢Ε͹͍͍ͷͰ͸

Slide 30

Slide 30 text

ϦχϡʔΞϧࣦഊ͕ੜΈग़ͨ͠ $IBOLP

Slide 31

Slide 31 text

$IBOLP ຊ൪؀ڥͰͷτϥΠ&ΤϥʔΛࢧԉ͢Δ Rails ༻ gem Unit ͱ͍͏୯ҐͰطଘίʔυ΁ͷύονΛهड़ IUUQTHJUIVCDPNDPPLQBEDIBOLP

Slide 32

Slide 32 text

" # طଘͷίʔυ A ΛɺελοϑϢʔβͷΈʹରͯ͠ ϕʔλ൛ͷίʔυ B ʹஔ͖׵͍͑ͨ ͨͩ͠ɺB ͸๯ݥతͳ࣮૷ͳͷͰɺྫ֎͕ൃੜ͢Δ͔΋͠Εͳ͍ طଘͷ$POUSPMMFSͷίʔυ ϕʔλ൛ͷίʔυ

Slide 33

Slide 33 text

ελοϑͳΒ# #Ͱྫ֎͕ى͖ͨΒ" ελοϑҎ֎ͳΒ" ϑϥάͰ෼ذ͍ͤͯ͘͞ͱίʔυ͕ԚΕ͍ͯ͘

Slide 34

Slide 34 text

ϕʔλػೳͷ6OJU طଘͷ$POUSPMMFSͷίʔυ " # Chanko Ͱ͸ɺUnit ͱ͍͏ϑΝΠϧʹϕʔλػೳͷϩδοΫΛهड़͢Δ invoke ৚݅Λຬͨͨ͠৔߹ʹɺطଘϩδοΫ (A) ͷ୅ΘΓʹ Unit (B) ͕࣮ߦ͞ΕΔ B ͕ྫ֎Λىͨ͜͠৔߹͸ɺݩͷ A ͕࣮ߦ͞ΕΔͨΊɺϢʔβʹ͸Τϥʔ͕ฦΒͳ͍ JOWPLF৚݅

Slide 35

Slide 35 text

ແࣄʹՁ஋͕ೝΊΒΕͨΒ ຊ൪ͷ඼࣭ͷίʔυʹ࢓্͛Δ طଘίʔυΛॻ͖׵͑ɺUnit ϑΝΠϧΛফ͢
 ʢ௨শ Un-chankoʣ

Slide 36

Slide 36 text

d ଟαʔϏε࣌୅

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

ΫοΫύου
 ຊମίʔυ ผϓϩδΣΫτ 3BJMT

Slide 39

Slide 39 text

ϓϩδΣΫτͷ෼͔Εํ • ࠷ॳ͔ΒผϓϩδΣΫτͱͯ͠࡞ΒΕɺ ޙ͔Βຊମͱ࿈ܞͨ͠ύλʔϯ • ࠷ॳ͸ຊମͷҰ෦ͱͯ͠࡞ΒΕɺ
 ޙ͔Β෼཭ͨ͠ύλʔϯ

Slide 40

Slide 40 text

8PSME`TMBSHFTU SBJMTNPOPMJUI Λ୤٫͍ͨ͠

Slide 41

Slide 41 text

ϓϩδΣΫτ෼ׂํ਑ • ৽نαʔϏεΛ࡞Δͱ͖ • ຊମͱີ݁߹ͤ͟ΔΛಘͳ͍΋ͷ͸ຊମͰ࣮૷ • ͦ͏Ͱͳ͍΋ͷ͸࠷ॳ͔ΒผϓϩδΣΫτͰ • طଘαʔϏε • ෼ׂՄೳͳ΋ͷ͸ॱ࣍෼ׂ͍ͯ͘͠

Slide 42

Slide 42 text

ʙ αʔϏεͷ෼ׂ

Slide 43

Slide 43 text

IUUQUFDIMJGFDPPLQBEDPNFOUSZ ͱͯ΋͍͍هࣄɺ͓͢͢Ί

Slide 44

Slide 44 text

ʮຊ౰͸Կ͕͍ͨ͠ͷ͔ʯΛݟۃΊΔ • γϯϓϧͳ࡞Γʹม͍͑ͨ • ෆཁͳίʔυ͕ॏͳΓɺಈ࡞͕஗͘ͳͬ ͍ͯΔͱ͜ΖΛղফ͍ͨ͠ • ৽͍͠ϥΠϒϥϦɺ৽͍ٕ͠ज़ΛऔΓ ࠐΊΔΑ͏ʹ͍ͨ͠

Slide 45

Slide 45 text

େࣄͳ͜ͱ Ұͭͣͭ΍Δ

Slide 46

Slide 46 text

ೋஈ֊ͷΞϓϦέʔγϣϯ෼཭ 1.ΫοΫύουຊମΛ fork ͠ɺෆཁ෦෼ Λૈํফͯ͠ςετΛ௨͢ 2.rails new ͨ͠৽نϓϩδΣΫτʹ
 ࣸܦͯ͠ςετΛ௨͢

Slide 47

Slide 47 text

ຊମίʔυΛGPSL ෆཁͳ෦෼Λૈํ࡟আ ςετΛ௨͢ ୈஈ֊

Slide 48

Slide 48 text

͜ͷ࣌఺Ͱ͸ • ʮ͓͍͍݈͠߁ʯ͚ͩͷςετ࣮ߦɺ
 σϓϩΠ͕Մೳʹͳͬͨ • ͜Ε͚ͩͰ΋े෼ࣄۀతͳԸܙ͕͋Δ • ফ͖͠Εͳ͔ͬͨґଘϥΠϒϥϦɺ
 ϞϯΩʔύον౳͕ଟ਺࢒͍ͬͯΔঢ়ଶ • ςετ࣮ߦ͕஗͔ͬͨΓɺϨʔϧ͔Β
 ͸ͣΕͨΓ͍ͯ͠Δͷ͕໰୊

Slide 49

Slide 49 text

SBJMTOFXͨ͠৽نίʔυϕʔεʹ ϩδοΫΛҠ২͍͖ͯ͠ɺ طଘͷςετ͕௨Δ͜ͱΛ໨ࢦ͢ ୈஈ֊

Slide 50

Slide 50 text

஫ҙ఺ • ϩδοΫ͸Ҡಈ͢Δ͚ͩ • ϦϑΝΫλϦϯάͨ͘͠ͳͬͯ΋
 զຫ͢Δ • ςετΛ௨աͤ͞Δ͜ͱʹूத

Slide 51

Slide 51 text

ʮ͓͍͍݈͠߁ʯ෼཭੒ޭ͔Βͷֶͼ • ϑϧεΫϥονͰॻ͖௚͞ͳ͔ͬͨ • ࢓༷มߋ΍ϦϑΝΫλϦϯάΛߦΘͣɺ ෼཭͚ͩΛߦͬͨ • খن໛ʹগͣͭ͠ਐΊ͍ͯ͘͜ͱͰɺ ͦΕͧΕͷஈ֊ͰࣄۀతͳϝϦοτΛ ڗडͰ͖ͨ

Slide 52

Slide 52 text

෼཭ʹΑΔԸܙ • ΫοΫύουຊମ • ࣄۀͻͱͭ෼ίʔυ͕খ͘͞ͳͬͨ • ͓͍͍݈͠߁ • Ϩʔϧʹ৐ͬͨී௨ͷ
 Rails ΞϓϦέʔγϣϯʹͳΕͨ • ܰྔͰϞμϯͳ։ൃ؀ڥʹͳͬͨ

Slide 53

Slide 53 text

ίʔυ඼࣭

Slide 54

Slide 54 text

ίʔυ඼࣭͸Ϗδωεʹ Өڹ͢Δ͔ʁ

Slide 55

Slide 55 text

ΫοΫύουͷ౴͑ :&4

Slide 56

Slide 56 text

ίʔυͷ඼࣭ • Մಡੑ • ϝϯςφϯεੑ • όάͷ༗ແ • ηΩϡϦςΟ

Slide 57

Slide 57 text

ίʔυͷ඼࣭͕Өڹ͢Δ΋ͷ • ։ൃޮ཰ • ଐਓੑ wίʔυͷण໋

Slide 58

Slide 58 text

Ͳ͜·Ͱ΍Δ΂͖͔ʁ ΍Γ͗͢ͳ͍ ʮ៉ྷͳίʔυʯΛॻ͘͜ͱࣗମ͕໨తͰ͸ͳ͍ ࣄۀϑΣʔζʹͱͬͯඞཁͳ඼࣭·ͰΛ໨ࢦ͢

Slide 59

Slide 59 text

ίʔυϨϏϡʔ • ࣭ͷߴ͍ίʔυϨϏϡʔ͕ίʔυ඼࣭ Λ͋Δఔ౓୲อ͢Δ • ෛͷҨ࢈Λ࢒͠ʹ͘͘ͳΔ

Slide 60

Slide 60 text

ίʔυϨϏϡʔΞϯνύλʔϯ • ࠣࡉͳจ๏ͷ޷ΈͰᎍΊΔ • ΠϯσϯτɺׅހͳͲ • ͱʹ͔͘ෆໟ

Slide 61

Slide 61 text

ίʔυن໿͕͋Δͱ ίʔυϨϏϡʔͷޮ཰͕ ྑ͘ͳΔ ֶͼ

Slide 62

Slide 62 text

IUUQTHJUIVCDPNDPPLQBETUZMFHVJEF

Slide 63

Slide 63 text

No content

Slide 64

Slide 64 text

ಛ௃ ͦΜͳΜͲͬͪͰ΋͍͍ͩΖͱ ͍͏ͷ΋݁ߏܾΊͯΔ

Slide 65

Slide 65 text

೥͘Β͍ӡ༻ͯ͠Έͯ • ࠷ॳ͸൓ରҙݟ΋ଟ͔ͬͨʢ๻΋ʣ • ϏδωεͷίʔυϨϏϡʔͳͷʹจ๏ ͷ͠ΐ͏΋ͳ͍࿦૪͕ల։͞ΕΔɺ
 Έ͍ͨͳͷΛݟ͔͚ͳ͘ͳͬͨ • จ๏ͷ࿦૪͸ελΠϧΨΠυͷํͰ
 ΍Ε͹Α͍ • ͋ͬͯΑ͔ͬͨελΠϧΨΠυ

Slide 66

Slide 66 text

Πϯϑϥͷ࿝ٺԽ

Slide 67

Slide 67 text

%$"84

Slide 68

Slide 68 text

&$$MBTTJD71$

Slide 69

Slide 69 text

ೋ౓ͷʮશ୆࡞Γ௚͠ʯΛܦͯ • ໾ׂͷΑ͘Θ͔Βͳ͍
 Ṗͷαʔό͕౫ଡ͞Εͨ • શαʔό͕ Infra as Code Խ͞Εͨ • Ͳ͘͞͞Ͱ OS ΍֤छύοέʔδ͕ ΞοϓσʔτͰ͖ͨ

Slide 70

Slide 70 text

Πϯϑϥ࿝ٺԽ໰୊ • ͢Ͱʹଘࡏ͠ͳ͍αʔόͷ Puppet • OS ΍ϛυϧ΢ΣΞ͕ݹ͍·· • ؀ڥ͕ݹͯ͘ੈ͔ؒΒִ཭͞ΕΔ

Slide 71

Slide 71 text

Πϯϑϥ࿝ٺԽͷಛ௃ • ಈ͍͍ͯ͑͞Ε͹ɺΞϓϦέʔγϣϯ ίʔυ΄Ͳ͸࿝ٺԽ͕໰୊ʹ
 ͳΓʹ͍͘ • େ෯ͳόʔδϣϯΞοϓ͸େม͔ͭ࣌ ͕͔͔ؒΔͷͰɺඞཁʹͳ͔ͬͯΒ
 ಈ͖࢝ΊΔͷͰ͸஗͍

Slide 72

Slide 72 text

ࣜ೥ભٶ IUUQTKBXJLJQFEJBPSHXJLJਆٶࣜ೥ભٶ

Slide 73

Slide 73 text

ࣜ೥ભٶ ਆٶࣜ೥ભٶ͸ɺਆٶʢҏ੎ਆٶʣʹ͓͍ͯߦΘΕΔࣜ೥ભ ٶʢఆظతʹߦΘΕΔભٶʣͰ͋Δɻ ਆٶͰ͸ɺݪଇͱͯ͠20೥͝ͱʹɺ಺ٶʢߖେਆٶʣɾ֎ٶ ʢ๛डେਆٶʣͷೋͭͷਖ਼ٶͷਖ਼఼ɺ14ͷผٶͷશͯͷ఼ࣾ Λ଄Γସ͑ͯਆ࠲Λભ͢ɻ IUUQTKBXJLJQFEJBPSHXJLJਆٶࣜ೥ભٶ

Slide 74

Slide 74 text

ࣜ೥ભٶͷ͕͍͜͜͢͝ • ଱༻೥਺ͷ୹͍ݐஙํࣜͳͷʹ
 ҏ੎ਆٶ͸͓Αͦ1300೥ଘࡏ͍ͯ͠Δ • 7ੈلͷ໻ੜݐஙͷٕज़͕ݱ໾Ͱ
 ఻ঝ͞Ε͍ͯΔ • ભٶͷ༻ࡐͱͳΔ໦ΛҭͯΔͷʹ
 200೥Ҏ্͔͔Δ

Slide 75

Slide 75 text

࡞Γ௚͢͜ͱΛ
 લఏʹ͢Δ͜ͱͰ
 ௕ण໋Խ ֶͼ

Slide 76

Slide 76 text

No content

Slide 77

Slide 77 text

*OGSB*OGSB • CentOS 6.2 -> Ubuntu 14.04 (16.04) • Puppet -> Itamae • VPCωοτϫʔΫͷ࠶ઃܭ • ֤छύοέʔδɺϛυϧ΢ΣΞͷ
 όʔδϣϯΞοϓ • ͦͷଞϨΨγʔͷ࡮৽

Slide 78

Slide 78 text

Πϯϑϥࣜ೥ભٶ • ৽͘͠࡞Δαʔό͸ infra2 Ͱ
 ϓϩϏδϣχϯά͢Δ • طଘͷαʔό΋গͣͭ͠ infra2 Ͱ
 ࡞Γ௚͍ͯ͘͠

Slide 79

Slide 79 text

·ͱΊ

Slide 80

Slide 80 text

େલఏʢ࠶ʣ • ࣄۀ͸มԽ͢Δ • ૊৫͸มԽ͢Δ • ϓϩμΫτ΍ίʔυʹ͸ण໋͕͋Δ • ։ൃϦιʔε͸༗ݶͰ͋Δ

Slide 81

Slide 81 text

௕ੜ͖͢ΔࣄۀͷͨΊʹ
 ٕज़͕Ͱ͖Δ͜ͱ • ඼࣭΍৽͠͞Λอͭ͜ͱࣗମΛ
 ࢓૊ΈԽ͢Δ • ख஗ΕʹͳΔલʹগͣͭ͠΍Δ • ࡉ͔͘੒ޭମݧΛ࡞ΓɺΞοϓσʔτ ͷՁ஋Λ૊৫ʹ࣮ײͤ͞Δ