Slide 1

Slide 1 text

αʔϏε։ൃͱ ݈શͳϓϩμΫτϝϯςφϯεΛ ։ൃνʔϜͰ࣋ଓతʹऔΓ૊Ή 2019/06/15 Developers Boost KANSAI Asato WAKISAKA (astj)

Slide 2

Slide 2 text

id:astjʢ͋͞ͱ͐͡ʔʣ ͸ͯͳ ΞϓϦέʔγϣϯΤϯδχΞ ৽ଔ (2014/04) Mackerel ։ൃνʔϜ (2016/08~) Mackerel ςοΫϦʔυ (2018/05~) มભ: ͸ͯͳϒοΫϚʔΫ‎͸ͯͳϒϩά ➡डୗϓϩδΣΫτ➡Mackerel

Slide 3

Slide 3 text

Mackerel

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

• 2014೥9݄ਖ਼ࣜϦϦʔε • ͔ͦ͜ΒຖिʢຖӦۀिʣͷ৽ػೳϦϦʔε • 200+िଓ͚·ͨ͠ • Ҏ߱΋ΞΫςΟϒʹػೳ։ൃΛܧଓ https://mackerel.io/ja/blog/entry/announcement/20180705

Slide 8

Slide 8 text

• αʔόʔαΠυ: Scala / Go • ϑϩϯτΤϯυ: TypeScript + AngularJS • ػցֶशαϒγεςϜ: Python • AWS Lambda : NodeJS ੝୔ࢁ

Slide 9

Slide 9 text

ຊ೔ͷத਎ • ࠓ೔࿩͢ϓϩμΫτϝϯςφϯεͷఆٛ • Mackerel ։ൃνʔϜͰͷՁ஋؍ • Mackerel ։ൃνʔϜͷऔΓ૊Έ

Slide 10

Slide 10 text

ϓϩμΫτϝϯςφϯε

Slide 11

Slide 11 text

• ʢΤϯδχΞͷ΍Δ͜ͱͷ͏ͪʣ • ϦϑΝΫλϦϯά • ґଘιϑτ΢ΣΞͷߋ৽ • Πϯϑϥɺϛυϧ΢ΣΞͷߋ৽ ʮػೳ։ൃҎ֎͍͍ͩͨશ෦ʯ

Slide 12

Slide 12 text

ٕज़తෛ࠴ͷ͜ͱʁ

Slide 13

Slide 13 text

์ஔͯ͠෗ΒͤΔͱٕज़తෛ࠴ ੵۃతʹऔΓ૊Ήͱརӹ͕͋Δ

Slide 14

Slide 14 text

Ձ஋؍

Slide 15

Slide 15 text

৽͍͠෺͸ྑ͍

Slide 16

Slide 16 text

ιϑτ΢ΣΞ͸৽͘͢͠Δͱྑ͘ ͳ͍ͬͯ͘ͱࢥ͍ͨ͘ͳ͍Ͱ͔͢ʁɹ ࣮ͦͯ͠ࡍଟ͘ͷ৔߹͸੒Γཱͭ͸ͣ

Slide 17

Slide 17 text

৽͍͠෺͸ྑ͍ • ػೳͷ௥Ճ • ෆ۩߹ͷमਖ਼
 • ੑೳͷ޲্
 • etc…

Slide 18

Slide 18 text

όʔδϣϯΞοϓ͕ۜͷ஄ؙ ……ʹͳΔ͜ͱ΋͋Δ

Slide 19

Slide 19 text

• Scala ͷίϯύΠϧ͸஗͍ͱݴΘΕΔ • ࣮ࡍ Mackerel Ͱ΋೰·͞Ε͖ͯͨ

Slide 20

Slide 20 text

• Scala 2.11.12 ➡ 2.12.6 • ϑϧίϯύΠϧ 30෼ ➡ 5෼൒ • CI 40~50෼ ➡ 16෼ • push ͢Δͨͼʹ͜Ε͚ͩ଴ͬͯͨ… • ࠓࢥ͏ͱੲͷॴཁ࣌ؒϠό͍

Slide 21

Slide 21 text

৽͘͢͠Δඞཁ͋ΔΜͰ͢ʁ ʮࠓͷ··Ͱ໰୊ͳ͘ಈ͍ͯΔ͡ΌΜʁʯ ʮมߋରԠ͢Δͷ΋खؒͩ͠…ʯ ʮ͏ͪͷίϯύΠϧ30෼͔͔Βͳ͍ΜͰ…ʯ ʮಈ࡞֬ೝ͢Δͷେมʂʯ

Slide 22

Slide 22 text

ͦΕ΋Θ͔Δ

Slide 23

Slide 23 text

͕

Slide 24

Slide 24 text

ྑ͠ѱ͠Ͳ͜Ζ͡Όͳ͍ྫ • όά • ηΩϡϦςΟ໰୊ • αϙʔτऴྃ

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

޻਺ͳ͍໰୊ • ػೳ։ൃ༏ઌ͞Εͯ͠·͏ɺͳͲ • ։ൃܭըଆͱՁ஋؍Λڞ༗Ͱ͖Ε͹ྑ͍ • Mackerel ͷ৔߹͸ΤϯδχΞ͕ଟ͍ • ͜ͷղ͸͋·Γ࣋ͬͯͳ͍Ͱ͢……

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

࣮ࡍͷऔΓ૊Έ

Slide 33

Slide 33 text

•৽ͨʹߟ͑Δ͜ͱ / ൑அ͢Δ͜ͱ͕ग़ݱ •վΊͯνʔϜঢ়گΛ࠶֬ೝ ςοΫϦʔυʹͳͬͨ (2018/05)

Slide 34

Slide 34 text

લఏ • εΫϥϜ • 2िؒεϓϦϯτ • εϓϦϯτͷ౓ʹόοΫϩάΛؔ܎ऀͰ੔ཧ • ௕ظతʹ͸̏ϲ೥ϩʔυϚοϓ • ̏ϲ݄͝ͱʹݟ௚͠

Slide 35

Slide 35 text

• খ͍͞λεΫʢ1εϓϦϯτ͘Β͍ʣ • XXX ͷίʔυϦϑΝΫλϦϯά͍ͨ͠ • ͋ͷαʔόʔΛೖΕସ͑ͳ͍ͱ͍͚ͳ͍ • ͓͓͖ͳ࿩୊ • Play Framework ͷόʔδϣϯΞοϓ • Redis Λ ElastiCache ʹҠߦ͢Δ ৭ʑͳϓϩμΫτϝϯςφϯε

Slide 36

Slide 36 text

ݩʑ (astj TL ब೚௚ޙ)

Slide 37

Slide 37 text

Α͍͜ͱ • ΍Δ΂͖͜ͱ͸ΈΜͳͷ೴ཪʹ֓Ͷ͋Δ • ϝϯςφϯεʹϦιʔεΛׂ͖͍ͨҙࣝ͸͋Δ • ʮ৽͍͠෺͸ྑ͍ʯ • ΤϯδχΞʹݶΒͣνʔϜϨϕϧͰ࣋ͬͯΔ • ҙࣝͷߴ͞ͱؾ߹ͰͦΕͳΓʹਐΜͰΔ

Slide 38

Slide 38 text

͓ࠔΓ • λεΫʹ૊৫తʹऔΓ૊ΉྲྀΕ͕ະ੔උ • ݸਓͷؤுΓۦಈ͕ଟ͍ • ҙࣝͷߴ͞ͱؾ߹པΈ • ࣋ଓੑ͕ͳ͍ʢؾ߹͕࣋ͯ͹࣋ଓ͢Δ…ʣ

Slide 39

Slide 39 text

• ΞϓϦ͸ TL, SM, PO ͰόοΫϩάͱͯ͠੔ཧ • ىථ͸ issue Ͱ୭Ͱ΋Ͱ͖Δ • ੔ཧ͢ΔձͰ͓ΓΌͬͱܾΊͯͨ • Πϯϑϥ͸ SRE ʹλεΫ؅ཧ͓೚ͤ খ

Slide 40

Slide 40 text

• ϩʔυϚοϓʹج൫ܥλεΫͱͯ͠Ճ͑Δ • SM ͱ PO ͕ issue ͔ΒงғؾͰर͍ͬͯͨ େ

Slide 41

Slide 41 text

• ΤϯδχΞ͕༨ྗͱؾ෼ɾؾ߹Ͱߋ৽͢Δ • ґଘϥΠϒϥϦͷߋ৽ͱ͔ ແ

Slide 42

Slide 42 text

astj TL ब೚(2018/05)

Slide 43

Slide 43 text

͜ΕܾΊΒΕͳ͘ͳ͍ʁ

Slide 44

Slide 44 text

• ΞϓϦ͸ TL, SM, PO ͰόοΫϩάͱͯ͠੔ཧ • ىථ͸ issue Ͱ୭Ͱ΋Ͱ͖Δ • ੔ཧ͢ΔձͰ͓ΓΌͬͱܾΊͯͨ • Πϯϑϥ͸ SRE ʹλεΫ؅ཧ͓೚ͤ খ

Slide 45

Slide 45 text

• όοΫϩά੔ཧͷͦͷ৔Ͱ൑அͰ͖ͳ͍ • ʮ΍ͬͨ΄͏͕͍͍Ͱ͢Ͷʯ͸ݴ͑Δ • ʮ༏ઌ౓Ͳ͏Ͱ͔͢ʯʹ౴͕͑ग़ͳ͍ • ຊདྷ͸ΤϯδχΞͷ૯ҙʢʁʣͷ൑அͰ͸ • ΤϯδχΞΛ୅දͯ͠੔ཧͷ৔ʹग़ͯΔ

Slide 46

Slide 46 text

• ϩʔυϚοϓʹج൫ܥλεΫͱͯ͠Ճ͑Δ • SM ͱ PO ͕ issue ͔ΒงғؾͰर͍ͬͯͨ େ

Slide 47

Slide 47 text

• ;Θͬͱͯ͠Δʂʂʂʂʂʂʂʂʂ • ΤϯδχΞ͕ͪΌΜͱؔ༩͍ͨ͠ • ໪࿦ϩʔυϚοϓͳͷͰަব΍ௐ੔͸͢Δɹ

Slide 48

Slide 48 text

ܾΊΔͨΊʹԿ͕ඞཁʁ

Slide 49

Slide 49 text

ϓϩμΫτϝϯςφϯεͷλεΫ؅ཧ

Slide 50

Slide 50 text

• ΤϯδχΞϦϯάλεΫͷ༏ઌ౓Λ؅ཧ͍ͨ͠ • ͦͯ͠ΤϯδχΞ಺Ͱٞ࿦͍ͨ͠ • ࠷ऴతͳλεΫ؅ཧ͸νʔϜશମ • খͳΒόοΫϩά΁ / େͷ࿩͸ޙड़ʂ • λεΫΛೋॏ؅ཧͨ͘͠ͳ͍ʢϜμʣ ➡όοΫϩά / ϩʔυϚοϓͷલஈ֊Λ؅ཧ

Slide 51

Slide 51 text

No content

Slide 52

Slide 52 text

• GitHub Project ʹ issue ΛूΊΔ • ʮػೳ։ൃλεΫ͸ೖΕͳ͍ʯ͕ϧʔϧ • νʔϜશମͷλεΫ؅ཧͱ͸ผͷϘʔυ • ఆظతʹΤϯδχΞͰ༏ઌ౓Λ͚ͭΔ • ༏ઌ౓௿͍ͱ์ྲྀʢؾ͕޲͍ͨΒ΍ͬͯʂʣ

Slide 53

Slide 53 text

• খʢεΫϥϜͷόοΫϩάʹՃ͑Δʣ • νʔϜͷόοΫϩά੔ཧͰϘʔυΛݩʹ࿩͢ • େʢϩʔυϚοϓʹ૊ΈࠐΉʣ • ϩʔυϚοϓΛࡦఆ͢Δձٞʹ TL ΋ग़Δ

Slide 54

Slide 54 text

͜ΕܾΊΒΕͳ͘ͳ͍ʁ ղܾ

Slide 55

Slide 55 text

No content

Slide 56

Slide 56 text

ͱ͜ΖͰ

Slide 57

Slide 57 text

• ΞϓϦ͸ TL, SM, PO ͰόοΫϩάͱͯ͠੔ཧ • ىථ͸ issue Ͱ୭Ͱ΋Ͱ͖Δ • ੔ཧ͢ΔձͰ͓ΓΌͬͱܾΊͯͨ • Πϯϑϥ͸ SRE ʹλεΫ؅ཧ͓೚ͤ খ

Slide 58

Slide 58 text

• SRE ΋ΤϯδχΞձʹࢀՃͯ͠૭ޱ౷Ұ • ΤϯδχΞΈΜͳͰ՝୊ʹऔΓ૊Ή • αʔόʔͷߋ৽΋ιϑτ΢ΣΞͷߋ৽΋ಉྻ Ұॹʹ΍Ζ͏͡ΌΜ

Slide 59

Slide 59 text

No content

Slide 60

Slide 60 text

ͱ͜ΖͰ̎

Slide 61

Slide 61 text

• ΤϯδχΞ͕༨ྗͱؾ෼ɾؾ߹Ͱߋ৽͢Δ • ґଘϥΠϒϥϦͷߋ৽ͱ͔ ແ

Slide 62

Slide 62 text

=> ϦεΫϔοδͱͯ͠ͷ ܭըతͳߋ৽ ʢͱ͍͏໘΋͋Δʣ ࠶ܝ

Slide 63

Slide 63 text

• αʔόʔαΠυ: Scala / Go • ϑϩϯτΤϯυ: TypeScript + AngularJS • ػցֶशαϒγεςϜ: Python • AWS Lambda : NodeJS ੝୔ࢁ ࠶ܝ

Slide 64

Slide 64 text

• ϝϯόʔʹΑΓಘखෆಘख͕͋Δ • ΋Γͩ͘͞Μ • ܭըతʹফԽ͢Δͱେྔͷ issue ͕ग़ݱ

Slide 65

Slide 65 text

ʢݸਓʣ ؾ߹େ޷͖ʂʂʂʂʂ

Slide 66

Slide 66 text

ʢTLʣ ؾ߹΍Ί͍ͨʂʂʂʂ

Slide 67

Slide 67 text

×TL͕ҟৗʹ͕Μ͹Δ ×ಛఆͷ୭͔͕ҟৗʹ͕Μ͹Δ ʓνʔϜͰ࣋ଓతʹ͕Μ͹Δ

Slide 68

Slide 68 text

• ҆ఆతʹϥΠϒϥϦΛߋ৽͍ͨ͠ • νʔϜͰऔΓ૊ΜͰ͍͖͍ͨ • ຖि issue ݐͯΔͷେมͰ͸ • ʢਐḿ؅ཧ͸γϏΞ͡Όͳ͍ʣ

Slide 69

Slide 69 text

➡ ΤϯδχΞձͰٞ࿦

Slide 70

Slide 70 text

➡౰൪੍

Slide 71

Slide 71 text

No content

Slide 72

Slide 72 text

• ΋ͱ΋ͱΤϯδχΞ಺ͰिସΘΓͷ౰൪੍ • ϦϦʔε୲౰ɺΤεΧϨʔγϣϯ੥͚ etc • ౰൪ͷҰͭͱͯ͠௥Ճ

Slide 73

Slide 73 text

No content

Slide 74

Slide 74 text

• େྔʹ͋ΔͷͰ͍͔ͭ͘ળҙͰબΜͰߋ৽ • ͬ͞ͱ্͛ΒΕͳ͍৔߹͸దٓઌૹΓ • ➡λεΫͱͯ͠ܭըతʹ޲͖߹͏

Slide 75

Slide 75 text

No content

Slide 76

Slide 76 text

• ߋ৽౓߹͍͸εϓϨουγʔτʹه࿥ • ͠͹Β͘଺ͬͯΔͱ੺͘ͳΔ • పఈ͍ͨ͠ͱ͍͏ΑΓՄࢹԽ͍ͨ͠

Slide 77

Slide 77 text

No content

Slide 78

Slide 78 text

;ΓฦΓ

Slide 79

Slide 79 text

ΤϯδχΞձ / GitHub Project

Slide 80

Slide 80 text

• ॠൃతͳ൑அྗʹཔΒͣ༏ઌ౓ܾఆͰ͖Δ • ٕज़తཁ݅ͳͲ΋֬ೝ͠΍͘͢ͳͬͨ • গ͠Πϯϑϥߋ৽ʹภͬͯΔؾ͸ͯ͠Δ • SRE ۀ΋TL ͕࢓੾͔ͬͯͨΒʁؔ܎ͳ͍ʁ • ➡࠷ۙ SRE ૿һ͕͋ͬͨͷͰௐ੔͍ͯ͘͠

Slide 81

Slide 81 text

Ξοϓσʔτ౰൪

Slide 82

Slide 82 text

• ґଘ͕ݹ୅ͷ··์ஔ͞ΕΔ͜ͱ͕ͳ͘ͳͬͨ • ༷ࢠ͕ՄࢹԽͰ͖ͨ • τϥϒϧͷࣄલճආ΋੒ޭ • Amazon S3: AWS ॺ໊όʔδϣϯ2ഇࢭ • aws-sdk-go Λߋ৽ͨ࣌͠ʹࣗવͱҠߦ

Slide 83

Slide 83 text

• Ұ౓ͷߋ৽ʹඞཁͳؾ߹ήʔδ͸ݮͬͨ • ؾ߹θϩͰ͸ߋ৽Ͱ͖ͳ͍ͷ΋ࣄ࣮ • Ͳ͏ͯ͠΋ۤखͷ΋ͷ͸ख͕͖ͭͮΒ͍ • ➡νʔϜ಺ͰͲ͏ٕज़Λ޿͛Δ͔ • εΩϧϚοϓͳͲͷऔΓ૊Έ Mackerel։ൃνʔϜΧΠθϯͷཱྀʢৼΓฦΓɾϞϒϓϩɾεΩϧϚοϓͳͲʣ https://developer.hatenastaff.com/entry/2018/04/04/111410

Slide 84

Slide 84 text

·ͱΊ

Slide 85

Slide 85 text

• ʮ৽͍͠෺͸ྑ͍ʯͰ΍ͬͯ·͢ • ϓϩμΫτΛ݈શʹ৽͍ͯ͘͘͠͠ • νʔϜͰ޲͖߹͏औΓ૊ΈΛ͍ͯ͠·͢ • ։ൃϩʔυϚοϓ΁ͷ૊ΈࠐΈ • ΤϯδχΞ಺ͰͷλεΫ༏ઌ౓෇͚ • Ξοϓσʔτ౰൪

Slide 86

Slide 86 text

͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ ͳʹ͔͋Ε͹࠙਌ձ or Twitter @astj ·Ͱʂ