Slide 1

Slide 1 text

©MIXI .*9*5&$)$0/'&3&/$& શੈքͰ੒௕͠ଓ͚ΔαʔϏεͷΠϯϑϥͱ։ൃͷཪଆ 7BOUBHFελδΦ ΈͯͶࣄۀ෦ 43&άϧʔϓ ਗ਼ਫ ܄

Slide 2

Slide 2 text

©MIXI "CPVU.F ਗ਼ਫ ܄ !JTBPTIJNJ[V ● ೥ʙ גࣜձࣾϛΫγΟʢݱ.*9*ʣ ● ೥ʙ 4/4ʮNJYJʯӡ༻ΤϯδχΞ ● ೥ʙ ϞϯελʔετϥΠΫ 43& ● ೥ʙ Ո଒ΞϧόϜ ΈͯͶ 43& ● ೥ʙ 43&άϧʔϓ Ϛωʔδϟʔ ि຤͸ࣾձਓਧ૗ָஂͰͷ׆ಈʢָஂ௕ɺτϩϯϘʔϯ໿೥ɺͨ·ʹࢦشऀʣɻ ΩϟϯϓͱΫϥϑτϏʔϧ͕޷͖ɻ 2

Slide 3

Slide 3 text

©MIXI Ո଒ΞϧόϜ ΈͯͶ 3

Slide 4

Slide 4 text

©MIXI Ո଒ΞϧόϜ ΈͯͶ 4 ύύɾϚϚ͕ࡱͬͨࢠͲ΋ͷࣸਅ΍ಈըΛɺ૆෕฼΍ ਌ੰͳͲট଴ͨ͠Ո଒͚ͩʹ؆୯ʹڞ༗Ͱ͖Δࣸਅɾ ಈըڞ༗ΞϓϦ ϑΥτϒοΫ ࣸਅϓϦϯτ ঎඼ͷྫ

Slide 5

Slide 5 text

©MIXI Ո଒ΞϧόϜ ΈͯͶ 5 ΈͯͶΈ·΋Γ(14 ΈͯͶग़ுࡱӨ ΈͯͶ೥լঢ় ΈͯͶίʔϧυΫλʔ

Slide 6

Slide 6 text

©MIXI Ո଒ΞϧόϜ ΈͯͶ ● ೥݄ϦϦʔε ● ݱࡏ͸ݴޠɾͷࠃͱ஍ҬͰα ʔϏεΛఏڙ ● ւ֎Ͱ͸ʮ'BNJMZ"MCVNʯͱ͍͏ ໊শͰల։த ● ೥݄೔ʹར༻ऀ਺͕ ສਓ˞ Λಥഁ ● ೔ຊࠃ಺Ͱ͸ϚϚ΍ύύͷ൒਺ͱͳ Δˋͷํ˞ ͕͝ར༻ 6 ˞J04ɾ"OESPJEä ΞϓϦొ࿥ऀ਺ɺϒϥ΢β൛ొ࿥ऀ਺ͷ߹ܭ ˞ʮΈͯͶʯొ࿥࣌ʹೖྗ͞Ε͓ͨࢠ͞·ͷ஀ੜ೔ͱްੜ࿑ಇলൃදʮਓޱಈଶ౷ܭʯ͔Βࢉग़ɻ೥݄࣌఺Ͱˋ

Slide 7

Slide 7 text

©MIXI γεςϜߏ੒ 7

Slide 8

Slide 8 text

©MIXI ΈͯͶΛࢧ͑ΔΫϥ΢υ 8 AWS EKS / EC2 / S3 / Aurora ElastiCache / SQS / SNS など Google Cloud BigQuery など େ൒͕"84Ͱߏ੒͞Ε͍ͯΔ

Slide 9

Slide 9 text

©MIXI "84ͷߏ੒ʢུ֓ਤʣ 9 Amazon EKS Amazon EC2 Amazon S3 Amazon Aurora Amazon ElastiCache Amazon CloudFront Application Load Balancer Amazon DynamoDB

Slide 10

Slide 10 text

©MIXI γεςϜߏ੒ ● "84ΞΧ΢ϯτ͸؀ڥ͝ͱʹ׬શʹ෼ׂ ● "84ͷϦιʔε͸5FSSBGPSNʹΑͬͯ؅ཧ ● "-#ɺ4ͷલ໘ʹ$MPVE'SPOUΛஔ͖ɺωοτϫʔΫܦ࿏ͷ࠷దԽͱΩϟογϡར༻ ● &,4Ϋϥελʔ͸൒೥ʹҰ౓Ξοϓσʔτ͢Δӡ༻ʢ৽چΫϥελʔೖΕସ͑ʣ ● ,VCFSOFUFTͷϦιʔε͸"SHP$%ͱ)FMN$IBSUʹΑͬͯ؅ཧ ● &$͸ׂҎ্͕εϙοτΠϯελϯεʢΦϯσϚϯυ͸͘͝Θ͔ͣʣ ● &$্Ͱ͸3BJMT"QQMJDBUJPOɺ4JEFLJR8PSLFS͕ಈ࡞ ● "84-PBE#BMBODFS$POUSPMMFSͱ5BSHFU(SPVQ#JOEJOHʹΑͬͯ"-#͔Β1PE·Ͱ ͷϧʔςΟϯάΛίϯτϩʔϧ ● "VSPSB͸(MPCBM%BUBCBTFΛར༻ʢৄࡉ͸ޙड़ʣ 10

Slide 11

Slide 11 text

©MIXI ϚϧνϦʔδϣϯߏ੒ 11

Slide 12

Slide 12 text

©MIXI ϚϧνϦʔδϣϯߏ੒ 12 "84 BQOPSUIFBTU "84 VTFBTU Ϣʔβʔ͔Β͍ۙϦʔδϣϯʹΞΫηε͢Δ͜ͱͰ ϨεϙϯελΠϜΛ୹͘͢Δ͜ͱ͕Ͱ͖Δ

Slide 13

Slide 13 text

©MIXI ϚϧνϦʔδϣϯߏ੒ʢσʔλϕʔεʣ 13 ap-northeast-1 us-east-1 Amazon EKS Amazon EC2 Amazon S3 Amazon Aurora Global Database Amazon Aurora Global Database Amazon EKS Amazon EC2 ௿ϨΠςϯγʢฏۉ ໿NTʣͰಉظ͞ΕΔ ಡΈऔΓΞΫηεͷΈରԠ ॻ͖ࠐΈɾಡΈऔΓΞΫηεରԠ

Slide 14

Slide 14 text

©MIXI ϚϧνϦʔδϣϯߏ੒ʹ͓͚Δ஫ҙ఺ ● ΈͯͶͰ͸Ϣʔβʔମݧͷ޲্Λ໨తͱͨ͠ϚϧνϦʔδϣϯ ○ ͍ΘΏΔ#$1ରࡦͰ͸ͳ͍ ● ֤ϦʔδϣϯͰಉ༷ͷ؂ࢹΛ͓͜ͳ͏ඞཁ͕͋Δ ○ *B$ʹΑͬͯखؒ͸͋·Γ͔͔Βͳ͍ ● Ϧʔδϣϯ΍";ʹΑͬͯఏڙ͞Εͳ͍αʔϏεɺΠϯελϯελ Πϓ͕͋Δ ● &$ͷΩϟύγςΟঢ়گ͸Ϧʔδϣϯɺ";ʹΑͬͯେ͖͘มΘΔ ● ϦʔδϣϯؒͰωοτϫʔΫো֐͕͋Δͱσʔλϕʔεͷಉظʹ େ͖ͳ஗Ԇ͕ى͖Δ 14

Slide 15

Slide 15 text

©MIXI αʔόʔΞϓϦέʔγϣϯͷ ։ൃ؀ڥ 15

Slide 16

Slide 16 text

©MIXI αʔόʔΞϓϦέʔγϣϯͷ։ൃ؀ڥ 16 Πϯλʔωοτ ։ൃऀ͝ͱʹ༻ҙ ͞Εͨ؀ڥ 開発者 44) ͱͯ΋γϯϓϧʹॻ͘ͱ͜Μͳײ͡ ͜͜Ͱ։ൃ

Slide 17

Slide 17 text

©MIXI αʔόʔΞϓϦέʔγϣϯͷ։ൃ؀ڥ 17 Πϯλʔωοτ ,VCFSOFUFT "͞Μͷ ։ൃ؀ڥ1PE #͞Μͷ ։ൃ؀ڥ1PE $͞Μͷ ։ൃ؀ڥ1PE &͞Μͷ ։ൃ؀ڥ1PE %͞Μͷ ։ൃ؀ڥ1PE Aさん Bさん Cさん Dさん Eさん 開発チーム

Slide 18

Slide 18 text

©MIXI ։ൃ؀ڥͷ࡞Γํ 18 εςοϓ̍ εςοϓ εςοϓ :".-ϑΝΠϧΛ (JU)VCʹϓογϡ ˞:".-ͷத਎͸44) ͷެ։伴 "SHP$%Ͱ4ZODૢ࡞Λ ͯ͠։ൃ؀ڥ͕ىಈ ˞਺ेඵޙʹ؀ڥ͕࡞੒ ͞ΕΔ 44)͢Δ ։ൃऀࣗ਎Ͱ࡞੒ɾ࡟আΛࣗ༝ʹߦ͏͜ͱ͕Մೳ

Slide 19

Slide 19 text

©MIXI खݩͷ.BD1$ ։ൃ؀ڥ΁ͷϩάΠϯपΓͷηΩϡϦςΟ 19 ,VCFSOFUFTΫϥελ ։ൃ؀ڥ 1PE ίϯςφ sshd kubectl exec netcat 22番ポート Πϯλʔωοτ ίϯςφ ConfigMap SSH公開鍵 ίϯςφ ίϯςφ ProxyCommand .ssh/config ssh 44)ͷϙʔτΛΠϯλʔωοτʹެ։͢Δඞཁ͸ͳ͍ ։ൃऀ ίϯςφ "84ೝূ

Slide 20

Slide 20 text

©MIXI ։ൃ؀ڥ͕৽͍͠ߏ੒ʹͳͬͯ ● Ҏલ͸ݸਓ͝ͱͷ&$ʹ44)ͯ͠%PDLFSΛར༻͍ͯͨ͠ ○ 44)ͷ伴؅ཧɺ5FSSBGPSNͷద༻ͱߏஙͷεςοϓ͕ଟ͔ͬͨ ■ :".-ͷ௥Ճɺ"SHP$%ͷ؅ཧը໘͔Βͷద༻ͱ؆୯ʹ ○ खॱ͕Θ͔ΓͮΒ͘43&ϝϯόʔͷαϙʔτ͕ඞཁʹͳͬͨΓ ■ ୭Ͱ΋؆୯ʹߏஙɾ࡟আͰ͖ΔΑ͏ʹ ○ ൪ϙʔτͷΠϯλʔωοτެ։ʢެ։伴ೝূͱ͸͍͑ةͳ͍ʣ ■ ϙʔτެ։ͳ͠Ͱɺ"84ͷೝূʢ440ʣͱެ։伴ೝূͷ૊Έ߹Θͤʹ ■ 74$PEF3FNPUF%FWFMPQNFOUʹ΋ରԠ ○ ϩά͕ཷ·Γ͗ͨ͢Γɺݕࡧͮ͠Β͔ͬͨΓ ■ (SBGBOB-PLJͰݕࡧ͠΍͘͢ 20

Slide 21

Slide 21 text

©MIXI ΦϒβʔόϏϦςΟͷ޻෉ 21

Slide 22

Slide 22 text

©MIXI ΦϒβʔόϏϦςΟ͸ͳͥඞཁʁ ● γεςϜͰԿ͕ى͖͍ͯΔͷ͔Λ೺Ѳ͢ΔͨΊ ● ,VCFSOFUFTͳͲίϯςφͷΦʔέετϨʔγϣϯ͕ར༻͞ΕΔ ͜ͱ͕૿͑ͨ݁ՌɺγεςϜ಺෦͕ෳࡶʹͳΓɺ֤ίϯϙʔωϯ τΛ؍ଌՄೳͳঢ়ଶʹ͢Δඞཁ͕͋Δ ● ϝτϦΫεɺϩάɺτϨʔεͳͲͷ৘ใ͸ଟ͋͘Γɺ໰୊ͷݪҼ Λௐࠪ͢ΔͨΊʹ͸ͦΕΒΛత֬ʹूܭ͠ɺՄࢹԽ͢Δ࢓૊Έ͕ ٻΊΒΕΔ 22

Slide 23

Slide 23 text

©MIXI ΦϒβʔόϏϦςΟͷ࣮ݱ 23 ϞόΠϧΞϓϦ New Relic Mobile Firebase Crashlytics αʔόʔΞϓϦ New Relic APM New Relic Browser ֤छϩά Grafana Loki Amazon Athena Google BigQuery ֤छϝτϦΫε Prometheus / Amazon Managed Service for Prometheus Amazon CloudWatch Grafana

Slide 24

Slide 24 text

©MIXI ΦϒβʔόϏϦςΟͷશମ૾ 24 Kubernetes Prometheus New Relic Rails newrelic_rpm Grafana Node Exporter Amazon CloudWatch Amazon Managed Service for Prometheus Grafana Loki Promtail Ϣʔβʔͷ ୺຤ New Relic Mobile ϞχλϦϯά؀ڥ Fluent Bit Amazon Kinesis Firehose Amazon S3 Amazon Athena GCS BigQuery ETLॲཧ σʔλͷྲྀΕ

Slide 25

Slide 25 text

©MIXI 43&Λ࣮ફ͢Δ্Ͱ΋ ΦϒβʔόϏϦςΟ͸ͱͯ΋େࣄ 25

Slide 26

Slide 26 text

©MIXI ·ͱΊ 26

Slide 27

Slide 27 text

©MIXI ·ͱΊ ● શੈքͰ ສਓҎ্ͷϢʔβʔʹར༻͞ΕΔαʔϏεͷγε ςϜߏ੒͕ࢀߟʹͳΕ͹޾͍Ͱ͢ɻ ● "VSPSB(MPCBM%BUBCBTFͷ͓͔͛ͰϚϧνϦʔδϣϯߏ੒Λ࡞ Δ͜ͱ͕Ͱ͖ɺੈքதͷϢʔβʔମݧΛվળͰ͖·ͨ͠ɻ ● ,VCFSOFUFTΫϥελ্ͷ։ൃ؀ڥ͸ηΩϡΞͰѻ͍΍͍͢؀ڥ ʹͳΓ·ͨ͠ɻ ● ΦϒβʔόϏϦςΟ͸ࠓ·ͰࢼߦࡨޡΛ܁Γฦ͠ɺ43&͚ͩͰͳ ͘։ൃऀશମͰར༻Ͱ͖Δ؀ڥΛ࡞Δ͜ͱ͕Ͱ͖·ͨ͠ɻ 27

Slide 28

Slide 28 text

©MIXI 8&"3&)*3*/( 28 ΈͯͶ ࠾༻ ݕࡧ ͞·͟·ͳϙδγϣϯͰืूதͰ͢ʂ