Slide 1

Slide 1 text

αʔόϞχλϦϯά޲͚ ࣌ܥྻσʔλϕʔεͷ୳ڀ גࣜձࣾ͸ͯͳ ΢ΣϒΦϖϨʔγϣϯΤϯδχΞ TSUBOUCHI, Yuuki @y_uuk1 2016/12/01 ୈ9ճΠϯλʔωοτͱӡ༻ٕज़γϯϙδ΢ϜʢIOTS2016ʣট଴ߨԋ

Slide 2

Slide 2 text

ʮӡ༻ͰΧόʔ͢Δʯ ʮӡ༻୲౰ऀͷਓபͷ্ʹ੒ཱ͢Δ લ࣌୅తͰ໺൮ͳߏ଄෺ʯ ʮෆշͳ൰͍͠࢓ࣄΛ΍Δඞཁ͕ͳ͘ͳΔͷ ͸ɺਓؒʹͱͬͯͻ͡ΐ͏ͳ෱ࢱ͔΋͠Εͳ ͍͕ɺ͋Δ͍͸ͦ͏Ͱͳ͍͔΋͠Εͳ͍ɻʯ ୈ 9 ճΠϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ ։࠵Ҋ಺ http://www.iot.ipsj.or.jp/iots/2016/announcement

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

We define toil as mundane, repetitive operational work providing no enduring value, which scales linearly with service growth. Betsy Beyer, Chris Jones, Jennifer Petoff, etc. Site Reliability Engineering. Oreilly & Associates Inc. April, 2016.

Slide 5

Slide 5 text

Software Engineering System Engineering

Slide 6

Slide 6 text

࣌ܥྻDBͷ։ൃΛྫʹͱΓ WebαʔϏεӡ༻ٕज़ͷ ΤοηϯεΛ఻͑Δ

Slide 7

Slide 7 text

WebαʔϏε

Slide 8

Slide 8 text

͸ͯͳͷ୅දతWebαʔϏε

Slide 9

Slide 9 text

10೥੒௕͢Δ WebαʔϏε

Slide 10

Slide 10 text

2001೥ தݹPC1୆ https://www.hatena.ne.jp/company/hatena10th/history

Slide 11

Slide 11 text

2006೥ αʔό350୆ http://www.slideshare.net/stanaka/how-to-use-virtualization-technology-in-hatena

Slide 12

Slide 12 text

2008೥ XenʹΑΔԾ૝ԽͰ୆਺૿Ճ http://www.slideshare.net/stanaka/how-to-use-virtualization-technology-in-hatena

Slide 13

Slide 13 text

2010೥ 1000୆ಥഁ http://www.slideshare.net/stanaka/how-to-use-virtualization-technology-in-hatena

Slide 14

Slide 14 text

ݱࡏͰ͸਺ઍ୆ن໛

Slide 15

Slide 15 text

αʔϏε਺50+ (಺෦޲ؚ͚Ή)

Slide 16

Slide 16 text

αʔϏεಉ͕࢜ෳࡶʹ࿈ܞ͢Δ

Slide 17

Slide 17 text

γεςϜ͕ෳࡶԽͨ݁͠Ռ ͳʹ͕ى͖͍ͯΔ͔Θ͔Βͳ͘ͳΔ

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

ຊ೔͸ֶੜ͞Μ΋ͨ͘͞Μ͍Βͬ͠ΌΔͷͰɺWebαʔϏεاۀͷऔΓ૊ΈΛ஌ͬͯ΋Βͬͯɺؔ৺Λ ΋͍͚ͬͯͨͩΕ͹ͱࢥ͍·͢ɻ ෳࡶԽ͢ΔγεςϜΛલʹ ਓʑͷٙ໰͸ਚ͖ͳ͍

Slide 20

Slide 20 text

؂ࢹΛࣗಈԽ͢Δ େਓ਺ͷΦϖϨʔλΛޏ༻͠ ਓྗͰղܾ

Slide 21

Slide 21 text

ҟৗͷݕ஌ͱ௨஌

Slide 22

Slide 22 text

ҟৗΛൃݟͨ࣌͠ʹ γεςϜͷաڈΛ஌Γ͍ͨ

Slide 23

Slide 23 text

CPUར༻཰ͷάϥϑ - 6࣌ؒલʙݱࡏ

Slide 24

Slide 24 text

CPUར༻཰ͷάϥϑ - Ұिؒલʙݱࡏ

Slide 25

Slide 25 text

࣌ܥྻσʔλΛ௕ظؒอଘ͢Δඞཁ ͕͋Δ

Slide 26

Slide 26 text

࣌ܥྻσʔλͷอଘ TSDB αʔό (ܥྻ໊, λΠϜελϯϓ, ஋) (ܥྻ໊, λΠϜελϯϓ, ஋) (ܥྻ໊, λΠϜελϯϓ, ஋) … ؅ཧαʔό αʔό αʔό ΤʔδΣϯτ ΤʔδΣϯτ ΤʔδΣϯτ

Slide 27

Slide 27 text

࣌ܥྻσʔλͷن໛ײ TSDB αʔό (ܥྻ໊, λΠϜελϯϓ, ஋) (ܥྻ໊, λΠϜελϯϓ, ஋) (ܥྻ໊, λΠϜελϯϓ, ஋) … ؅ཧαʔό αʔό αʔό ΤʔδΣϯτ ΤʔδΣϯτ ΤʔδΣϯτ 1000୆ 100 datapoints/min/host 100,000 writes/min

Slide 28

Slide 28 text

ແࢹͰ͖ͳ͍ ؂ࢹγεςϜͷӡ༻ίετ

Slide 29

Slide 29 text

Mackerel https://mackerel.io

Slide 30

Slide 30 text

https://mackerel.io

Slide 31

Slide 31 text

αʔόͷϝτϦοΫՄࢹԽ

Slide 32

Slide 32 text

MackerelͷΞʔΩςΫνϟ

Slide 33

Slide 33 text

Mackerelͷ࣌ܥྻσʔλͷن໛ײ • ΤʔδΣϯτ͕Ϣʔβ͞Μͷϗετ͔Βຖ෼ϝτϦοΫ ౤ߘ • 2016/01࣌఺ͰΞΫςΟϒΤʔδΣϯτ਺ 10,000+ • 1ΤʔδΣϯτ͋ͨΓͷϝτϦοΫ਺͸࠷େ200 • ԾʹฏۉϝτϦοΫ਺Λ100 datapoints/hostͱ͢Δͱ ߹ܭૹ৴ϝτϦοΫ਺ 1,000,000 datapoints/min+ • ϝτϦοΫͷେྔॻ͖ࠐΈʹ଱͑ΒΕΔσʔλϕʔε͕ ඞཁ

Slide 34

Slide 34 text

MackerelΛࢧ͑ΔTSDB Λ୳ڀ͢Δ

Slide 35

Slide 35 text

TSDBͱͷࢥ͍ग़

Slide 36

Slide 36 text

2012೥ ֶੜ࣌୅ʹ͸ͯͳͰΞϧόΠτ • Mackerelͷલ਎ͱͳΔΞϓϦέʔγϣϯ։ൃʹܞΘΔ • RRDtoolͱ͍͏2000೥୅ॳ಄ͷTSDBͰάϥϑඳը • ͦ΋ͦ΋ωοτϫʔΫσʔϞϯͰͳ͍ͨΊɺίϚϯυ Λ͍ͨͨͯ஋ͷߋ৽΍ࢀরΛ͍ͯͨ͠ • CPANϞδϡʔϧͷ࡞੒ https://metacpan.org/pod/RRDTool::Rawish • ϝτϦοΫͷΫϩʔϦϯάͱRRDtoolϕʔεͰάϥϑද ࣔͰ͖Δπʔϧͷ࡞੒ https://github.com/yuuki/ Monitorel

Slide 37

Slide 37 text

http://shoichimasuhara.hatenablog.com/entry/2014/04/10/003617

Slide 38

Slide 38 text

2014೥ ͸ͯͳೖࣾ • Mackerelͷ։ൃͱ͋ΘͤͯGraphiteͷݕূΛ։࢝ • RRDtool͸εέʔϥϏϦςΟ΍৴པੑͳͲ͞·͟·ͳ ఺Ͱ໰୊͕͋ͬͨ • Graphite͸γϯϓϧͰ࣮૷Λཧղ͠΍͘͢ɺӡ༻ʹख ؒ͸͔͔Δ͕ͦΕͳΓʹΑ͘εέʔϧ͍ͯ͠Δ • ϐʔΫ࣌Ͱඵؒ8ສ write IOPS (͍҆SSD ਺ेຕ෼) • ϑΝΠϧγεςϜ΍ετϨʔδͷಛੑʹ͋Θͤͯνϡʔ χϯά͠ଓ͚͍ͯΔ

Slide 39

Slide 39 text

http://blog.yuuk.io/entry/high-performance-graphite

Slide 40

Slide 40 text

https://speakerdeck.com/yuukit/performance-improvement-of-tsdb-in-mackerel

Slide 41

Slide 41 text

ۙ೥Ͱ͸ ߴ౓ͳཁٻΛٻΊΒΕΔΑ͏ʹ

Slide 42

Slide 42 text

https://speakerdeck.com/sugiyama88/mackerel-meetup-number-8

Slide 43

Slide 43 text

ߴ଎ͳ਺ઍݸͷܥྻͷදࣔ

Slide 44

Slide 44 text

1෼ղ૾౓ͷσʔλΛ௕ظؒอ࣋ https://mackerel.io/ja/docs/entry/overview

Slide 45

Slide 45 text

1෼ҎԼͷղ૾౓ͷରԠ https://mackerel.io/ja/docs/entry/overview

Slide 46

Slide 46 text

ΞʔΩςΫνϟͷ ࡮৽͕ඞཁ

Slide 47

Slide 47 text

ݱߦͷΞʔΩςΫνϟ(Graphite)ͷ՝୊ • εέʔϧΞ΢τʹେ͖ͳਓख͕͔͔Δ • ݱࡏ͸ioDriveͷΑ͏ͳߴ଎ͳϑϥογϡετϨʔδΛ༻͍ ͯεέʔϧΞοϓ • ߴ଎ͳετϨʔδ͕ඞཁͳͨΊɺGB୯Ձ͕ඇৗʹߴ͍ • ϥ΢ϯυϩϏϯσʔλϕʔεͰ͋ΔͨΊɺݹ͍σʔλΛ্ॻ ͖͢Δ • ͕ͨͬͯ͠ɺݹ͍σʔλΛผͷετϨʔδ΁ୀආͤ͞ΔΑ͏ ͳ࣮૷ΛՃ͑Δ͜ͱ͕೉͍͠ • ΦϯϝϞϦͳϦϨʔϓϩΩγΛॻ͖ࠐΈཁٻΛதܧ͢ΔͨΊɺ ϦϨʔϓϩΩγ͕མͪΔͱσʔλ͚͕ܽى͖ΔՄೳੑ͕͋Δ

Slide 48

Slide 48 text

https://docs.google.com/spreadsheets/d/1sMQe9oOKhMhIVw9WmuCEWdPtAoccJ4a-IuZv4fXDHxM/pubhtml 20ݸͷOSSͷTSDB࣮૷

Slide 49

Slide 49 text

TSDBʹؔ͢Δֶज़ݚڀ࿦จʢGorillaʣ Tuomas Pelkonen etc. Gorilla: a fast, scalable, in-memory time series database. In Proceedings of the 41st International Conference on Very Large Data Bases, Kohala Coast, Hawaii. Volume 8 Issue 12, August 2015. Pages 1816-1827 • Facebook͕։ൃ͍ͯ͠ΔTSDB • ௚ۙ26࣌ؒͷΈΠϯϝϞϦͰ֨ೲ • ࣌ܥྻσʔλͷղ૾౓͸15ඵ • ϝϞϦʹͷͤΔͨΊʹಠࣗͷѹॖํࣜΛఏҊ • ුಈখ਺఺਺͸ಉ͡ܥྻʹ͓͍ͯಉ͡஋͕࿈ଓ͢Δ έʔε͕ଟ͍͜ͱʹண໨ͨࠩ͠෼ූ߸Խ • ݹ͍σʔλ͸HBaseʹಀ͕͢

Slide 50

Slide 50 text

TSDBʹؔ͢Δֶज़ݚڀ࿦จʢBTrDBʣ Michael P Andersen and David E. Culler, University of California, Berkeley. BTrDB: Optimizing Storage System Design for Timeseries Processing. In Proceedings of the 14th USENIX Conference on File and Storage Technologies (FAST 16). Feb 2016. Pages 39-52. • IoT޲͚ͷTSDB • nanoඵʹରԠ • σʔλߏ଄͸copy-on-write treeϕʔεͷ΋ͷͰI/Oޮ཰ ͕ඇৗʹߴ͍ • 16.7 million writes/s and 19.8 million reads/s (EC2 c3.8xlarge) • GoݴޠʹΑΔ࣮૷͕ެ։͞Ε͍ͯΔ • https://github.com/SoftwareDefinedBuildings/btrdb

Slide 51

Slide 51 text

https://speakerdeck.com/rrreeeyyy/time-series-database-world

Slide 52

Slide 52 text

ͦͷଞͷTSDBͷ՝୊ • InfluxDB: RaftϓϩτίϧΛ༻͍ͨ৑௕ԽػߏΛ঎༻൛ͷΈͰα ϙʔτ • ӡ༻͕೉͍͠෼ࢄDB্ʹߏங͞Ε͍ͯΔ • OpenTSDB͸HBase, KairosDB͸Cassandra্ʹߏஙͳͲ • 1೥ͷϨϙʔτද͕ࣔ஗͍ • (ະ֬ೝ͕ͩ) OpenTSDBɺInfluxDBͳͲ • ޙड़͢Δ௿ղ૾౓ςʔϒϧ࡞੒ʹ૬౰͢Δ࣮૷͕ඞཁ • ϓϩμΫγϣϯʹར༻Մೳͳ඼࣭ͷιϑτ΢ΣΞͰ͸ͳ͍ • BTrDB͸development version • ίϛϡχςΟͰͷ࣮੷͕ͳ͍

Slide 53

Slide 53 text

࣮͸·ܾͩఆ൛͕ͳ͍

Slide 54

Slide 54 text

TSDBʹٻΊΒΕΔ΋ͷ͸ ͳʹ͔

Slide 55

Slide 55 text

TSDBʹٻΊΒΕΔੑ࣭ • TSDBͱͯ͠ͷجຊతͳػೳ • ৴པੑ • εέʔϥϏϦςΟ • ߴ଎ͳϨεϙϯελΠϜ • ௿ίετ

Slide 56

Slide 56 text

ࠓޙͷTSDBʹٻΊΒΕΔػೳ • ߴղ૾౓σʔλͷ௕ظอଘ • ௒ߴղ૾౓σʔλͷରԠ • େྔͷܥྻͷߴ଎දࣔ • (ܥྻʹର͢Δϝλσʔλඥ෇͚) • (ػցֶशΛ༻͍ͨҟৗݕ஌΍ྨࣅϝτϦοΫ ݕࡧ)

Slide 57

Slide 57 text

͜ΕΒΛ͢΂ͯຬͨ͢ʹ͸ Ͳ͏͢Δ͔

Slide 58

Slide 58 text

ύϒϦοΫΫϥ΢υͷ ϚωʔδυαʔϏεΛར༻

Slide 59

Slide 59 text

ݹ͍σʔλΛS3ͷΑ͏ͳ ͍҆σʔλετϨʔδʹୀආ

Slide 60

Slide 60 text

TSDBʹٻΊΒΕΔੑ࣭ • TSDBͱͯ͠ͷجຊతͳػೳ • ৴པੑ • εέʔϥϏϦςΟ • ߴ଎ͳϨεϙϯελΠϜ • ௿ίετ ← Graphiteϕʔεͷ ΠϯλϑΣʔε ← ϚωʔδυαʔϏεͰ୲อ ← ϚωʔδυαʔϏεͰ୲อ ← σʔλߏ଄΍ ɹσʔλ഑ஔͷ޻෉ ← ݹ͍σʔλΛ͍҆ετϨʔδ΁ୀආ ← ͦͷଞɺෳ਺ͷ࠷దԽΛ࣮ࢪ

Slide 61

Slide 61 text

৽TSDBΞʔΩςΫνϟ

Slide 62

Slide 62 text

write datapoints ϝοηʔδΩϡʔ ίϯγϡʔϚ ΠϯϝϞϦ DB Webαʔό ΦϯσΟεΫ DB େ༰ྔ ετϨʔδ read datapoints subscribe flush & rollup put purge table read read read

Slide 63

Slide 63 text

write datapoints ϝοηʔδΩϡʔ ίϯγϡʔϚ ΠϯϝϞϦ DB Webαʔό ΦϯσΟεΫ DB େ༰ྔ ετϨʔδ read datapoints subscribe flush & rollup put purge table read read read

Slide 64

Slide 64 text

write datapoints ϝοηʔδΩϡʔ ίϯγϡʔϚ ΠϯϝϞϦ DB Webαʔό ΦϯσΟεΫ DB େ༰ྔ ετϨʔδ read datapoints subscribe flush & rollup put purge table read read read 3छͷDB ௚ۙ1࣌ؒ ίʔϧυσʔλ ϗοτσʔλ

Slide 65

Slide 65 text

write datapoints ϝοηʔδΩϡʔ ίϯγϡʔϚ ΠϯϝϞϦ DB Webαʔό ΦϯσΟεΫ DB େ༰ྔ ετϨʔδ read datapoints subscribe flush & rollup put purge table read read read ΩϡʔͷલޙͰܥΛ෼ׂ

Slide 66

Slide 66 text

write datapoints ϝοηʔδΩϡʔ ίϯγϡʔϚ ΠϯϝϞϦ DB Webαʔό ΦϯσΟεΫ DB େ༰ྔ ετϨʔδ read datapoints subscribe flush & rollup put purge table read read read 3छDB͔ΒಡΈ෼͚Δ WebΞϓϦέʔγϣϯ Graphiteޓ׵ͷΠϯλϑΣʔε

Slide 67

Slide 67 text

write datapoints ϝοηʔδΩϡʔ ίϯγϡʔϚ ΠϯϝϞϦ DB Webαʔό ΦϯσΟεΫ DB େ༰ྔ ετϨʔδ read datapoints subscribe put & rollup put purge table read read read ,JOFTJT -BNCEB 3FEJT$MVTUFS %ZOBNP%# 4 ϚωʔδυαʔϏεͳͷͰ جຊతʹεέʔϧΞ΢τ΍
 ৑௕ੑ͸อূ͞Ε͍ͯΔ

Slide 68

Slide 68 text

৽TSDBͷσʔλߏ଄

Slide 69

Slide 69 text

ΦϯσΟεΫDB (DynamoDB)ͷεΩʔϚઃܭ ߦΩʔ ྻσʔλ ϝτϦοΫ໊ [ timestamp(int32):value(float64), … ] TFSWFSMPBEBWH < ʜ> TFSWFSMPBEBWH < ʜ> ಉ͡ܥྻͷϝτϦοΫͷϦετ

Slide 70

Slide 70 text

Time-based range partitioning (DynamoDB) ߦΩʔ ྻσʔλ ϝτ ϦοΫ ໊ [ timestamp(int 32):value(float 64), … ] TFSWFS MPBEB WH <ʜ> 2016/11/30 2016/11/29 2016/11/22 ߦΩʔ ྻσʔλ ϝτ ϦοΫ ໊ [ timestamp(int 32):value(float 64), … ] TFSWFS MPBEB WH <ʜ> ߦΩʔ ྻσʔλ ϝτ ϦοΫ ໊ [ timestamp(int 32):value(float 64), … ] TFSWFS MPBEB WH <ʜ> …… େྔϨίʔυ࡟আॲཧ͸ෛՙ͕ߴ͍ͨΊ ݹ͍೔෇ςʔϒϧΛυϩοϓ͢ΔΑ͏ʹ େ༰ྔ ετϨʔδ ྻσʔλΛҰఆαΠζʹऩΊΔ෭࣍తޮՌ

Slide 71

Slide 71 text

Write-through cache (Redis +DynamoDB) Redis ߦΩʔ ྻσʔλ ϝτϦο Ϋ໊ [ timestamp(int32):va lue(float64), … ] TFSWFSMP BEBWH <ʜ> DynamoDB ίϯγϡʔϚ ҰఆҎ্ಉ͡ܥྻͷσʔλϙΠϯτ͕ ͨ·ͬͨΒϑϥογϡ ౸ணͨ͠ σʔλϙΠϯτΛ ΠϯϝϞϦDBʹ֨ೲ

Slide 72

Slide 72 text

Graphiteޓ׵WebαʔόͷI/OଟॏԽ Redis DynamoDB S3 … … BatchGetItem API (100items) εϨου εϨουʹΑΓ I/OଟॏԽ͠ ϨεϙϯελΠϜ Λߴ଎Խ

Slide 73

Slide 73 text

৽TSDBʹ͓͚Δͦͷଞͷ࠷దԽΞΠσΞ • ௿ղ૾౓ςʔϒϧͷߏஙʹΑΔɺ௕ظϨϙʔ τදࣔͷϨεϙϯεߴ଎Խ • Amazon AthenaΛ༻͍ͨS3ͷσʔλ഑ஔ࣮ ૷ͷ؆қԽ • SIMDԋࢉʹΑΔ࣌ܥྻσʔλू໿ԋࢉͷߴ ଎Խ

Slide 74

Slide 74 text

৽TSDBͷܽ఺

Slide 75

Slide 75 text

৽TSDBΞʔΩςΫνϟͷܽ఺ • ΦϯϓϨϛε؀ڥͰ͸࣮ݱͰ͖ͳ͍ • ͨͩ͠ɺӡ༻ίετΛແࢹ͢Ε͹ࣅͨΑ͏ͳOSS࣮ ૷ʹஔ͖׵͑͸Մೳ • Kinesis=>KafkaɺDynamoDB=>CassandraͳͲ • ίϯϙʔωϯτ͕ଟ͍ͨΊɺҰݟෳࡶͰ͋Δ • ൚༻DBʹ͍ͭͯੑೳ΍ίετΛ࠷దԽ͠Α͏ͱ͢Δ ͱɺͲ͏ͯ͠΋ෳ਺ͷಛੑΛ΋ͭDBΛ૊Έ߹ΘͤΔ ඞཁ͕͋Δ

Slide 76

Slide 76 text

৽TSDBΞʔΩςΫνϟͷ֓ཁ·ͱΊ • ৴པੑ޲্ͱӡ༻ίετ࡟ݮͷͨΊϚωʔδ υαʔϏεΛར༻ • ੑೳͱۚમίετͷ࠷దԽͷͨΊʹɺΞΫη εύλʔϯʹԠͯ͡ෳ਺ͷҟͳΔDBΛซ༻ • ϝοηʔδΩϡʔΛڬΉ͜ͱͰγεςϜΛૄ ݁߹Խ͢Δ

Slide 77

Slide 77 text

WebαʔϏεӡ༻ ͷΤοηϯε

Slide 78

Slide 78 text

ܭࢉػΞʔΩςΫνϟ/OSͷجຊͷԠ༻ • ϝϞϦͱετϨʔδ • write-through cache • ௿ղ૾౓ςʔϒϧ͸ࣄલܭࢉ΍Ωϟογϡͷ ֓೦ʹ૬౰

Slide 79

Slide 79 text

ҟͳΔෳ਺ͷDBͷ૊Έ߹Θͤ • WebΞϓϦέʔγϣϯͷੈքͰ͸Α͘࠾༻͞Ε Δख๏ • ϝΠϯσʔλϕʔε͸RDBMSͱͯ͠MySQL΍ PostgreSQLΛར༻ • ੑೳ͕ٻΊΒΒΕΔͱ͜Ζ͸ɺKVSͱͯ͠Redis ΍memcachedΛར༻ • ݕࡧΤϯδϯͱͯ͠ɺElasticsearch΍SolrΛར༻

Slide 80

Slide 80 text

ٕज़બ୒ • OSSͰ͋Ε͹ίϛϡχςΟϕʔε͔Ͳ͏͔ • ੈͷதʹӡ༻ࣄྫ͕͋Δ͔ • ୤ग़Մೳ͔Ͳ͏͔ • ଞͷࣄۀʹطʹ࣮੷͕͋Δ͔΋͘͠͸ԣల։ Ͱ͖Δ͔ • ϏδωεΠϯύΫτΛߟྀ͢Δ

Slide 81

Slide 81 text

http://developer.hatenastaff.com/entry/2015/12/25/140233

Slide 82

Slide 82 text

http://blog.yuuk.io/entry/infra-for-newlang

Slide 83

Slide 83 text

ϞμϯͳΞʔΩςΫνϟ • Serverless Architecture • Microservices • Immutable Infrastructure

Slide 84

Slide 84 text

WebαʔϏεӡ༻ͷಛੑͱ՝୊ • WebαʔϏε͸σʔλʹՁ஋͕͋Δ • σʔλΛ΋ͭ(stateful)αʔόͷӡ༻ʹ͸෼ࢄ γεςϜͷ؍఺Ͱ՝୊͕ଟ͍ • ϚωʔδυαʔϏεΛ࢖͏͚ͩͰ͸ɺ݁ہӡ ༻͕Ϋϥ΢υͷԼଆʹҠߦ͢Δ͚ͩ • ੈͷத͔Βӡ༻͕ফ͑ΔΘ͚Ͱ͸ͳ͍

Slide 85

Slide 85 text

WebαʔϏεӡ༻ͷະདྷ

Slide 86

Slide 86 text

ਓ͕ؒཧղͰ͖ΔγεςϜ ਓ͕ؒཧղͰ͖ͳ͍γεςϜ

Slide 87

Slide 87 text

ਓ͕ؒཧղͰ͖ΔγεςϜ • γεςϜΛཧղՄೳͳখ͞ͳ୯Ґʹ෼ׂ͢Δ • খ͞ͳίϯϙʔωϯτΛཁٻʹԠͯ͡૊Έ߹ ΘͤΔ • ਓखʹΑΔӡ༻ίετΛ࠷খԽ͢Δ

Slide 88

Slide 88 text

ਓ͕ؒཧղͰ͖ͳ͍γεςϜ • શࣗಈͳγεςϜ • ੜ໋׆ಈͷΑ͏ʹγεςϜ͕ࣗ཯తʹम෮Ͱ ͖Δ • ͨͩ͠ɺશମ૾͸ਓ͕ؒཧղͰ͖ͳ͍ͷͰɺ ͨͱ͑όά͕͋ͬͯ΋ຊ౰ʹಈ͖ଓ͚ΔͳΜ Β͔ͷอূ͕ඞཁ

Slide 89

Slide 89 text

·ͱΊ • αʔόϞχλϦϯά͸γεςϜӡ༻ͷॏཁͳج൫ • αʔόϞχλϦϯάͷίϯϙʔωϯτͷ͏ͪɺಛʹ TSDBʹ՝୊͕͋Δ • TSDBͷཁٻϨϕϧ͕ߴ·͍ͬͯΔҰํͰɺܾఆ൛͕ͳ͍ • ϚωʔδυαʔϏε͔ͭෳ਺ͷ൚༻ετϨʔδΛ૊Έ߹ ΘͤͨTSDBΛ࣮૷͢Δख๏Λ঺հ • TSDBͷ։ൃΛྫʹWebαʔϏεͷӡ༻ࣄ৘Λؒ઀తʹ ঺հ

Slide 90

Slide 90 text

http://hatenacorp.jp/recruit/fresh/operation-engineer

Slide 91

Slide 91 text

ຊεϥΠυͷKeynoteςϯϓϨʔτͱͯ͠ shoya140͞ΜͷZebra(http://shoya.io/blog/zebra/) Λ࢖Θ͍͖ͤͯͨͩ·ͨ͠ αʔόϞχλϦϯά޲͚ ࣌ܥྻσʔλϕʔεͷ୳ڀ גࣜձࣾ͸ͯͳ ΢ΣϒΦϖϨʔγϣϯΤϯδχΞ TSUBOUCHI, Yuuki @y_uuk1