Slide 1

Slide 1 text

CTOʹٻΊΒΕΔ΋ͷ IVS CTO Night and Day Hatena Co., Ltd. @stanaka ! 2014/12/03

Slide 2

Slide 2 text

Shinji Tanaka / ాத৻࢘ @stanaka / id:stanaka גࣜձࣾ͸ͯͳ ࣥߦ໾һCTO ࠷ۙɺ౦ژʹӽ͖ͯ͠·ͨ͠ 2

Slide 3

Slide 3 text

Slide 4

Slide 4 text

޷͖ͳٕज़ • ݴޠɿ Go • ΤσΟλɿ Emacs • AWSɿ S3 • ࣮ߦ؀ڥɿ Docker • σʔλετΞɿ MySQL

Slide 5

Slide 5 text

[PR] Mackerel https://mackerel.io/

Slide 6

Slide 6 text

CTOͱ͸? • Chief Technology Officer • VP Engineering $50ʹ
 ࣅͨϙδγϣϯ

Slide 7

Slide 7 text

CTOͷ໾ׂ • Ұ൪ίʔυΛॻ͘ਓ • γεςϜΞʔΩςΫτ • Ϛωδϝϯτ͢Δਓ 71 &OHJOFFSJOH

Slide 8

Slide 8 text

from CTO of Stripe IUUQCMPHHSFHCSPDLNBODPNpHVSJOHPVUUIFDUPSPMFBUTUSJQF

Slide 9

Slide 9 text

CTOͷఆٛ • ͔ͬ͠Γͱͨ͠ఆٛ͸ࠔ೉ • ձࣾͷن໛ɾϑΣʔζ΁ͷґଘ • ࣄۀ಺༰ʹ΋ґΔ

Slide 10

Slide 10 text

ந৅తͳ͜ͱΑΓ
 ʮࣗ෼ͷܦݧʯ͔Β

Slide 11

Slide 11 text

1 ͜Ε·Ͱͷ͋Β͢͡

Slide 12

Slide 12 text

in the case of @stanaka • 2000/4 NTTݚڀॴೖࣾ • 2006/4 ͸ͯͳೖࣾ • 2010/9 CTOഈ໋ • 2014/12 ΠϚίί

Slide 13

Slide 13 text

2006ʙ2010 • ΞϓϦέʔγϣϯΤϯδχΞ • ΠϯϑϥΤϯδχΞ → Ϛωʔδϟ • ӡ༻ޮ཰Խ(puppetಋೖ) • Ծ૝Խ(Xen)ɾSSDಋೖ • Hatena Inc.։ઃ & ຊࣾژ౎Ҡస

Slide 14

Slide 14 text

ࣄ݅฽ CTOҎલ • 2007,2008 DCϒϨʔΧʔஅ • 2007? શһୀձࣄ݅ • 2008/4 SubversionϦϙδτϦഁଛ
 → git΁Ҡߦ

Slide 15

Slide 15 text

2010ʙ2014 • CTOަ୅ • Πϯϑϥ͔Β࠶ͼαʔϏε։ൃ΁ • GitHub Enterpriseಋೖ • Scala, Goಋೖ • ౦ژΦϑΟεʹΤϯδχΞ࠾༻࠶։ • ϦϞʔτϫʔΫ(௅ઓத)

Slide 16

Slide 16 text

ࣄ݅฽ CTOҎޙ • 2012/1 SSDͷϑΝʔϜόά౿Έ
 DB࿈ଓμ΢ϯ • 2012/3 ͸ͯͳϒοΫϚʔΫϘλϯԌ্ • 2014/11 υϝΠϯWHOIS৘ใͷվ᜵

Slide 17

Slide 17 text

SSDͷϑΝʔϜόά౿Έ ಉ྅ͷ ݁ࠗࣜೋ࣍ձத ʹϝϯς࣮ࢪ

Slide 18

Slide 18 text

2 CTOͱͯ͠
 ҙ͖ࣝͯͨ͜͠ͱ

Slide 19

Slide 19 text

CTOͱͯ͠Ռ͖ͨͯͨ͜͠ͱ • ΠϯϑϥपΓΞʔΩςΫνϟ • ΞϓϦɾΠϯϑϥٕज़બఆ • ΤϯδχΞϦϯάνʔϜཆ੒ • ࠾༻ɾҭ੒

Slide 20

Slide 20 text

CTOͱͯ͠ҙ͖ࣝͯͨ͜͠ͱ ʮٕज़໘ʯ
 ͱ
 ʮਓࡐ໘ʯ

Slide 21

Slide 21 text

2.a ٕज़໘ͷ͜ͱ

Slide 22

Slide 22 text

ٕज़໘ • ߈Ί • ٕज़తڝ૪༏Ґͷ
 ཱ֬ • कΓ • ίετ؅ཧ • εέʔϥϏϦςΟ Մ༻ੑ֬อ • ηΩϡϦςΟ୲อ

Slide 23

Slide 23 text

߈Ί: ٕज़తڝ૪༏Ґͷཱ֬ • “Technology Company”Λ
 ඪᒗ͢ΔͷͰ͋Ε͹ɺ
 ੋඇ໨ࢦ͍ͨ͠ߴΈ ΤϯδχΞͷ ϩϚϯ

Slide 24

Slide 24 text

ͦ͏؆୯Ͱ͸ͳ͍ • ʮ࣌ػΛݟۃΊΔͷ͸ઐ໳ՈͰ΋೉ ͍͠ɻ͔͠͠উෛΛ͠ͳ͍ͱ෣୆ʹ ্͕Δ͜ͱ͢ΒͰ͖ͳ͍ɻʯ- ٕज़ͱ ࣌ػ IUUQSFTFBSDIQSFGFSSFEKQUJNJOH

Slide 25

Slide 25 text

ٕज़ΛҰखஈͱଊ͑Δ • ७ਮͳٕज़తཁૉͰϏδωε༏ҐΛ ࡞Δͷ͸ۃΊͯࠔ೉
 ˠ ੍໿Λٕज़తʹಥഁ/ճආͭͭ͠ɺ Ϗδωε্ͷ༏ҐΛங͘

Slide 26

Slide 26 text

Ϗδωε΁ͷٕज़తߩݙ • Ϗδωε্ͷڝ૪༏ҐΛཱ֬͢Δͨ Ίʹٕज़తʹߩݙ͢Δ • εϐʔυײͷ͋Δ։ൃ • ίϞσΟςΟԽ͍ͯ͠ͳ͍ٕज़ͷ ࠾༻

Slide 27

Slide 27 text

कΓ: ίετ؅ཧ • ٕज़తෛ࠴ΛฦࡁՄೳͳϨϕϧʹ IUUQNBSUJOGPXMFSDPNCMJLJ5FDIOJDBM%FCUIUNM

Slide 28

Slide 28 text

ٕज़తͳ൑அ • WAFબఆ • ։ൃݴޠબఆ • ϛυϧ΢ΣΞબఆ • ࣮ߦ؀ڥબఆ • ΞʔΩςΫνϟબఆ

Slide 29

Slide 29 text

։ൃݴޠબఆ • ௕Β͘Perl͕ओ࣠ • Ruby͸पลπʔϧͰར༻ • ScalaɾGoͷ࠾༻ (2013຤)

Slide 30

Slide 30 text

Scala, GoͷGood ɾ No good • Good • ܕ෇͚ݴޠʹΑΔݎ࿚ͳ։ൃ • ΤϯδχΞϞνϕʔγϣϯ޲্ • ࠾༻্ͷޮՌ • No good • ৽͍͠ݴޠΛษڧ͢Δ࣌ؒ(ίετ)͕ඞཁ

Slide 31

Slide 31 text

৽͍ٕ͠ज़ͷ࠾༻ • جຊ͸ϘτϜΞοϓ͕ྑ͍ • ܧଓతʹϝϯς͢Δ͜ͱ͸೦಄ʹ ٕज़తෛ࠴ʹ ͳΓ͔Ͷͳ͍ Ͱ΋एखΛ εϙΠϧ͠ͳ͍Α͏ʹ

Slide 32

Slide 32 text

࣮ߦ؀ڥબఆ • HDD → SSD • 2008Ն Intel X25-MϦϦʔεલ • ΦϯϓϨϛε → Ϋϥ΢υ(AWS) • TokyoϦʔδϣϯ։ઃ࣌

Slide 33

Slide 33 text

ΞʔΩςΫνϟબఆ • Microservices or Monolithic IUUQNBSUJOGPXMFSDPNBSUJDMFTNJDSPTFSWJDFTIUNM

Slide 34

Slide 34 text

ٕज़બఆ͸FacebookͰ΋ؒҧ͏ HTML5 vs Native IUUQTXXXGBDFCPPLDPNOPUFTGBDFCPPLFOHJOFFSJOHVOEFSUIF IPPESFCVJMEJOHGBDFCPPLGPSJPT

Slide 35

Slide 35 text

ٕज़બఆͷํ਑ • ͋Δఔ౓อकతʹ • ॏཁͳͱ͜ΖͰ͸ΞάϨογϒʹ • ൑அϛε࣌ͷఫୀ࿏͸೦಄ʹஔ͘

Slide 36

Slide 36 text

कΓ: εέʔϥϏϦςΟଞ • εέʔϥϏϦςΟɾՄ༻ੑ • ηΩϡϦςΟ ॗʑͱ
 खൈ͖ͤͣʹ

Slide 37

Slide 37 text

2.b ਓࡐ໘ͷ͜ͱ

Slide 38

Slide 38 text

ਓࡐ໘ • ΤϯδχΞͱϚωδϝϯτ

Slide 39

Slide 39 text

ΤϯδχΞͱϚωδϝϯτ IUUQUFOTIPLVNZOBWJKQJUFOHJOFFSLOPXIPXOBPZB@TVTIJ

Slide 40

Slide 40 text

Ϛωδϝϯτͷલʹ.. • ΤϯδχΞͷΩϟϦΞύε • ઐ໳৬(εϖγϟϦετ) • Ϛωʔδϟʔ • ݚڀ৬?

Slide 41

Slide 41 text

ઐ໳৬ = ϑϧελοΫΤϯδχΞ?? • ଟ༷Խ͢ΔϨΠϠʔ • ϑϩϯτʙόοΫΤϯυʙΠϯϑϥ • εϚʔτϑΥϯ • 3DάϥϑΟοΫΤϯδϯ • ػցֶशɾσʔλղੳ

Slide 42

Slide 42 text

ϋʔυ΢ΣΞΤϯδχΞ

Slide 43

Slide 43 text

શͯΛ໢ཏ͢Δͷ͸ඇݱ࣮త ͘͢ͳ͘ͱ΋ ଟ͘ͷਓʹ͸

Slide 44

Slide 44 text

εΩϧηοτͷϙʔτϑΥϦΦ • όοΫΤϯυ + ػցֶश • όοΫΤϯυ + εϚʔτϑΥϯ • ʮಘҙͳྖҬ + αʯΛૂ͏

Slide 45

Slide 45 text

ඞཁे෼ͳεΩϧηοτ΁ͷదԠ • Ϗδωε΍֎෦؀ڥͷมԽ
 ˠ ඞཁͳεΩϧηοτ΋มԽ • ֤ΤϯδχΞͷੜ͖࢒Γͱ
 ઌߦ౤ࢿͷόϥϯε εϚϑΥͷ ීٴɾ"84ͷ ོ੝

Slide 46

Slide 46 text

Ϛωʔδϟʔ • ϓϩμΫτ։ൃΛਪਐ͢Δ • ΤϯδχΞΛϞνϕʔτ͢Δ • ։ൃϓϩηεΛ੔͑Δ

Slide 47

Slide 47 text

ΤϯδχΞͷϞνϕʔγϣϯ • ։ൃνʔϜͷੜ࢈ੑʹ௚݁ • ίϛϡχέʔγϣϯͷॏཁੑ

Slide 48

Slide 48 text

ΤϯδχΞͷίϛϡχέʔγϣϯ • Ͱ͖Δ͚ͩଟ͘ͷ͜ͱΛ৘ใڞ༗ • ΤϯδχΞϦϯά΁ͷཧղ

Slide 49

Slide 49 text

ʮਆ͸ࡉ෦ʹ॓Δʯ • ݱ৔͔Β཭ΕΔͱࡉ෦Λܰࢹ͕ͪ͠ • ͳΜͱͳ͘෼͔ͬͨؾʹͳΒͳ͍ • ؆୯ʹݟ͑Δ͜ͱͰ΋؆୯ʹͰ͖ Δͱ͸ݶΒͳ͍ • ܦݧ͕͋ΔΤϯδχΞͰ΋ؕΓ͕ͪ

Slide 50

Slide 50 text

։ൃϓϩηεΛ੔͑Δ • εΫϥϜ • πʔϧಋೖ(GitHub, Slack) • ಇ͖ํͷଟ༷ੑ(ϦϞʔτϫʔΫ)

Slide 51

Slide 51 text

εΫϥϜ

Slide 52

Slide 52 text

πʔϧಋೖ

Slide 53

Slide 53 text

ϦϞʔτϫʔΫ ౦ژຊళ ژ౎ຊࣾ Ѫ஌ ग़ுઌ

Slide 54

Slide 54 text

ϦϞʔτϫʔΫͷӡ༻ • ίϛϡχέʔγϣϯΛΑΓॏࢹ͢Δ • ҰਓͰ͸·ΔͷΛආ͚Δ • ϊ΢ϋ΢͕ڞ༗͞Εͳ͍ͷΛආ͚Δ • ಓ۩ɾπʔϧʹͩ͜ΘΔ

Slide 55

Slide 55 text

ϦϞʔτͰϛʔςΟϯά

Slide 56

Slide 56 text

ϦϞʔτϫʔΫࢀߟຊ

Slide 57

Slide 57 text

3 CTOʹ
 ٻΊΒΕΔ΋ͷ

Slide 58

Slide 58 text

CTOͱͯ͠ҙ͖ࣝͯͨ͜͠ͱ(࠶ܝ) ٕज़໘
 ͱ
 ਓࡐ໘

Slide 59

Slide 59 text

ৼΓସ͑ͬͯΈΔͱ… • ࣦഊ͸ڪΕΔ΂͖Ͱ͸ͳ͍ • ͨͩ͠ୀ࿏͸֬อ͢Δ • ϘτϜΞοϓͰ࣮ߦ͢Δ • ࣦഊͯ͠΋ܦݧ஋͸࢒Δ

Slide 60

Slide 60 text

CTOʹٻΊΒΕΔ΋ͷ ٕज़ͱਓͷ໰୊ʹରͯ͠
 ౴͑Λग़࣮ͯ͠ߦͰ͖Δ

Slide 61

Slide 61 text

Q&A