Slide 1

Slide 1 text

Google Cloud Next 2019 Θ͍Θ͍ใࠂձ In Mercari Θ͔Ί ·͞ͻΖ

Slide 2

Slide 2 text

Θ͔Ί ·͞ͻΖ @v vakame Masahiro Wakame Go GraphQL TypeScript AppEngine

Slide 3

Slide 3 text

US ڧߦ܉ •04/06 from HND to SFO •04/09-11 Cloud Next •04/11-12 from SFO to HDN •04/14 ٕज़ॻయ6 (27Kmา͍ͨ) •04/17 ࠓ೔ʂʂ ·ͩ࣌ࠩϘέͯΔ

Slide 4

Slide 4 text

ࠓճͷײ૝ (1/3) •ΞϓϦدΓ։ൃऀతʹ͸NOT FUN •※ AppEngine/SE ͳਓؒͰ͢ •Anthosʹ࢝·ΓEnterpriseܥͷ࿩୊ଟ͠ •Google͕Cloudࢢ৔ຊؾͰऔΓʹདྷͨײ

Slide 5

Slide 5 text

ࠓճͷײ૝ (2/3) •Kubernetes͔Β͸ಀ͛ΒΕͳ͍…ʂ •͋Δఔ౓֮ޛܾΊΔඞཁ͕͋Γͦ͏ •͋ͱ1-2೥ఔ౓͸ಀ͛ΒΕΔؾ΋͢Δ •ฐࣾʹ͸SREνʔϜ͕ډͯΑ͔ͬͨ

Slide 6

Slide 6 text

ࠓճͷײ૝ (3/3) •Kubernetesͷcluester࠶࡞੒͔Β΋… •ಀΕͳ͍֮ޛΛͨ͠΄͏͕޾ͤʁ •Traffic Director… Istio… etc?

Slide 7

Slide 7 text

ࠓճͷײ૝ (4/3) •AppEngine͸ࢮͳΜ͞…ʂ •Cloud Run ͍͢͝Αͦ͞͏Ͱ͢Ͷ •2nd genͷҙຯ߹͍มΘ͖ͬͯͨ •ͬͯࢠݘࣂͬͯΔແ৬͕ݴͬͯͨ

Slide 8

Slide 8 text

Spanner Internals ࠓ೔ͷຊ୊Ͱ͢ https://gist.github.com/vvakame/fd8e3e7b0ee430e9e62e83a500fd355f

Slide 9

Slide 9 text

Spanner Internals Part 1: What Makes Spanner Tick? Spanner Internals Part 2: How GCP Builds Global Meta-Data and Scalable Data Backends on Spanner ࠷ۙɺࣾͰSpanner͕ ϗοτͩͬͨͷͰ… https://cloud.withgoogle.com/next/sf/sessions?session=DBS304 https://cloud.withgoogle.com/next/sf/sessions?session=DBS306

Slide 10

Slide 10 text

Spannerͱ͸ʁ •Relational DBͱಉ͡semantics •Schemas, ACID, Transactions, SQL •Horizontal Scale •Scale out Ͱ͖Δʂ •MySQLͱ͔͸Ͱ͖ͳ͍…

Slide 11

Slide 11 text

Ͳ͏΍ͬͯʁ •PaxosΞϧΰϦζϜ •෼ࢄ߹ҙͷͨΊͷϓϩτίϧ •͙͙Εʂ(Θ͔Δ͚ͲΘ͔Βͳ͍ •TrueTime API •TxOpsͷॱং෇͚͕Մೳʹ

Slide 12

Slide 12 text

TrueTime? https://youtu.be/nvlt0dA7rsQ?t=860

Slide 13

Slide 13 text

TrueTime? •࠷৽ͷߏ੒ͷ঺հ •1ϥοΫʹ4αʔό •2αʔό → GPSΛ࢖ͬͨ࣌ࠁಉظ •2αʔό → ݪࢠ࣌ܭΛ࢖ͬͨ࣌ࠁಉظ •2ͭͷݪࢠ࣌ܭͷϒϥϯυ͸෼͚Δ

Slide 14

Slide 14 text

TrueTime? •TrueTimeΛ࢖͏ͱૢ࡞ͷॱ൪͕Ұҙʹ •௨৴ແ͠ʹͰ͖Δ͜ͱ΋ଟ͍ •ৄ͘͠͸͙͙Εʂ

Slide 15

Slide 15 text

Read, Write https://youtu.be/nvlt0dA7rsQ?t=977

Slide 16

Slide 16 text

ࢼ࡞൛Spanner •3-4ݸ͘Β͍ࢼ࡞Λ࡞ͬͨΒ͍͠ •2-3೥͔͔ͬͨ •৭ʑͳϛεΛͨ͠… •࠶ؼతͳσΟϨΫτϦͷαϙʔτͱ͔ •࣌ؒܦաͰղܾ͠Α͏ͱͨ͠Γͱ͔

Slide 17

Slide 17 text

ϑΝΠϧγεςϜͷ࿩ •ColossusͱBigtable্ʹߏங •File Systemͱಠཱ͍ͯ͠Δ •ϑΝΠϧ؅ཧ΍Hot spot໰୊͸੾Γ཭͠ ͯߟ͑Δ͜ͱ͕Ͱ͖ΔΒ͍͠ SpannerʹHot spot໰୊͕ͳ͍Θ͚Ͱ͸ͳ͍

Slide 18

Slide 18 text

҆ఆੑͷ࿩ʁ •ׂͱΈΜͳΑ͘ಈ͘ •TrueTime΋৺഑Λਧ͖ඈ͹ͨ͠ •Paxos΋ૉ௚ʹΑ͘ಈ͘ •CAPఆཧ •͋Δ͚Ͳਓੜͷେ൒͸͏·͍͘͘

Slide 19

Slide 19 text

ConsistencyͷͭΒΈ •Eventual consitencyਏ͘ͳ͍ʁ •Strong consistency͸ਓੜ͕๛͔ʹͳΔ •͋ʔͦΕΊͬͪΌΘʔ͔ʔΔʔ •୯७ʹߟ͑Δ͜ͱ͕ݮΔ •ίʔυॻ͘ྔ΋ݮΔ

Slide 20

Slide 20 text

SQL͍͍ΑͶ… •ॊೈ •ܕ͕͋Δʂ •΍ͬͺΓSchema͕͋Δͷͬͯਆ΍ͳ

Slide 21

Slide 21 text

୭͕࢖ͬͯΔͷ •Merpay͕࢖ͬͯΔΑʂ •…͸ஔ͍ͱ͍ͯ •Google͕ΨϯΨϯ࢖ͬͯΔΑʂ •୅දࣄྫͱͯ͠GCSͰͷ࿩͕ΨοπϦ

Slide 22

Slide 22 text

Googleͱಉ͡΋ͷʁ •͍͍ͩͨಉ͡ •ಉ͡Πϯϑϥ… •ಉ͡όΠφϦ…

Slide 23

Slide 23 text

Googleͱಉ͡΋ͷʁ •ҟͳΔ •ΞΫηεύε •ηΩϡϦςΟ, ίϯϓϥ •༻ޠ • Cloud Spanner nodes →
 ɹSpanner Servers • Cloud Spanner instance configurations →
 ɹSpanner configurations

Slide 24

Slide 24 text

GCSͷ࿩ •GCSͷmetadataͷ؅ཧ͸͢΂ͯSpanner •SpannerʹΑΔϝϦοτͷ࿩ͨ͘͞Μ •Multi regionͳҰ؏ੑ •Strongly consistent listings

Slide 25

Slide 25 text

GCSͷ࿩ https://youtu.be/zy-rcR4MoN4?t=604

Slide 26

Slide 26 text

GCSͷ࿩ https://youtu.be/zy-rcR4MoN4?t=834

Slide 27

Slide 27 text

GCSͷ࿩ https://youtu.be/zy-rcR4MoN4?t=1936

Slide 28

Slide 28 text

མͪึर͍ •Spannerͷྺ࢙ https://youtu.be/nvlt0dA7rsQ?t=1601

Slide 29

Slide 29 text

References •https://bit.ly/2KLGqIB •https://bit.ly/2wvMFWt •http://bit.ly/2vaskps •http://bit.ly/2IDjgl0