Slide 1

Slide 1 text

GoݴޠΛ ΄΅ຖ೔ॻ͍͍ͯΔ࿩ (ং) ͸ͯͳ id:y_uuki

Slide 2

Slide 2 text

id:y_uuki / @y_uuk1 Yuuki Tsubouchi https://yuuk.io גࣜձࣾ͸ͯͳ WebΦϖϨʔγϣϯΤϯδχΞ / γχΞΤϯδχΞ

Slide 3

Slide 3 text

Goྺ • 2013೥͙Β͍͔ΒWatch • 2014೥ʹ·ͱ΋ʹॻ͖࢝Ίͨ • ࠷ॳ͸Tour of Go • Go Kyotoͱ͍͏Jxck ͞ΜʹΑΔϋϯζΦϯʹࢀՃ • mkr / mackerel-client-go ͳͲΛॻ͍ͨ • 2015೥~2016લ൒ ͍͔ͭ͘ΦϖϨʔγϣϯπʔϧͭͬͨ͘ • grabeni / droot / gokc ͳͲ

Slide 4

Slide 4 text

http://developer.hatenastaff.com/entry/golang-for-ops

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

ͳΜͰ ຖ೔ॻ͖࢝Ίͨͷ͔

Slide 7

Slide 7 text

ͳΜͰຖ೔ॻ͖࢝Ίͨͷ͔ • ΦϖϨʔγϣϯ͢ΔΑΓɺιϑτ΢ΣΞͱ͔จষΛॻ ͍ͯΔͱ͖ͷ΄͏͕࣮͸޷͖ • ϒϩά΋͍͍͚Ͳ͍͔ͭ୅දతϓϩμΫτΛ࡞ͬͯΈ ͍ͨ • ͔͠͠ɺιϑτ΢ΣΞΛॻ͘εΩϧͱɺॻ্͖͛Δମ ྗ͕଍Γͳ͍ => ຖ೔ίʔυॻ͜͏

Slide 8

Slide 8 text

Site Reliability Engineering HOW GOOGLE RUNS PRODUCTION SYSTEMS Photo by O’reilly Media / CC by 3.0 http://shop.oreilly.com/product/0636920041528.do https://creativecommons.org/licenses/by/3.0/deed

Slide 9

Slide 9 text

ͳʹΛ ຖ೔ॻ͍͍ͯΔͷ͔

Slide 10

Slide 10 text

DiamonDB https://github.com/yuuki/diamondb

Slide 11

Slide 11 text

write datapoints Kinesis Streams Lambda read datapoints ElastiCache DynamoDB Lambda TTL expired flush write Web App (Golang) S3 read read read

Slide 12

Slide 12 text

write datapoints Kinesis Streams Lambda read datapoints ElastiCache DynamoDB Lambda TTL expired flush write Web App (Golang) S3 read read read AWSͷෳ਺ͷσʔλετΞΛ ૊Έ߹Θͤͨ Go ΢ΣϒΞϓϦέʔγϣϯ

Slide 13

Slide 13 text

ͳʹΛຖ೔ॻ͍͍ͯΔͷ͔ • DiamonDB • ͍͍ͩͨಉ͡ΞʔΩςΫνϟͷ΋ͷΛۀ຿Ͱ։ൃத • ίʔυϕʔε͸ۀ຿ͷ΋ͱ͸ผ • ͜Ε·Ͱͭͬͨ͘πʔϧͷϝϯςφϯε • ۀ຿Ͱ࢖͍ͬͯΔͷͰɺमਖ਼΍ػೳ௥Ճ • Pull RequestରԠ

Slide 14

Slide 14 text

ຖ೔ॻͨ͘Ίʹ ΍Δ͜ͱ

Slide 15

Slide 15 text

ຖ೔ॻͨ͘Ίʹ΍Δ͜ͱ • ʮຖ೔ʯࣗମʹ͸ҙຯ͸ͳ͘ɺܧଓతʹίʔυΛॻ͚Δ͔͕େࣄ • 1 commit / day Ͱ΋Α͍ • Ͳ͏ͯ͠΋๩͚͠Ε͹ɺgit commit —date Ͱ೔෇͔͖͔͑ • ͜ΕͰϞνϕʔγϣϯ͕ଓ͘ͳΒͦΕͰΑ͍ • ฏ೔͸͋·Γॻ͚ͳ͍ͷͰɺ౔೔ͷ͏ͪʹΠγϡʔΛ༻ҙ • ۀ຿ͱ݁ͼ͚ͭΔ • ෳ਺ͷϓϩδΣΫτΛ΋ͭ

Slide 16

Slide 16 text

ຖ೔ॻ͍͍ͯͯ Θ͔ͬͨ͜ͱ

Slide 17

Slide 17 text

ຖ೔ॻ͍͍ͯͯΘ͔ͬͨ͜ͱ • ຖ೔ίʔυॻͨ͘ΊͷϦζϜ͕Ͱ͖Δ • ೴಺ϝϞϦʹͷͬͯΔͷͰɺ࣍ʹॻ͘ͱ͖ʹ೰·ͳ͍ • ͍͖ͳΓେ͖͘มߋ͢ΔͷͰ͸ͳ͘ɺখ͞ͳมߋΛੵ ΈॏͶΔΑ͏ʹͳΔ • ౔೔ʹແཧ͠ͳ͘ͳΔ • ແཧΛ͢Δͱ݁ہଓ͔ͳ͍

Slide 18

Slide 18 text

Go tips

Slide 19

Slide 19 text

https://github.com/yuuki/yuuki/blob/master/golang/http-api-server-stack.md GoͰHTTP APIαʔόॻ͘ͱ͖ͷελοΫ GoͰHTTP APIαʔόॻ͘ ͱ͖ͷελοΫ

Slide 20

Slide 20 text

https://medium.com/@haya14busa/idiomatic-go-readability-f0b42ef381dc

Slide 21

Slide 21 text

https://github.com/golang/go/wiki/CodeReviewComments

Slide 22

Slide 22 text

;ͩΜΈ͍ͯΔ Gophers • @deeeet • @mattn • @motemen • @Songmu • @haya14busa • @davecheney • @dgryski

Slide 23

Slide 23 text

Πϯϓοτ ͱ Ξ΢τϓοτ

Slide 24

Slide 24 text

ΠϯϓοτͱΞ΢τϓοτ • Πϯϓοτ: ຊΛಡΉɺϒϩάΛಡΉͳͲ • Ξ΢τϓοτ: ٕज़ஊٛɺൃදɺϒϩάɺίʔυͳͲ • ݺٵͷΑ͏ͳ΋ͷ • Πϯϓοτ͢ΔͱΞ΢τϓοτͨ͘͠ͳΔɻΞ΢τϓο τ͢Δͱ·ͨΠϯϓοτΛ΋ͱΊΔ • Ξ΢τϓοτ͸ҰݟແବʹΈ͑Δ͕ɺఆظతʹΞ΢τϓο τ͢Δ͜ͱͰΠϯϓοτ΋૿͍͑ͯ͘

Slide 25

Slide 25 text

GoݴޠΛ ΄΅ຖ೔ॻ͍͍ͯΔ࿩ (ং) ͸ͯͳ id:y_uuki