Upgrade to Pro — share decks privately, control downloads, hide ads and more …

世界中のユーザーが快適に利用できるクラウドネイティブなシステムを目指して/#CNDT2021

46839cf590a549efe13547c17a6b2fde?s=47 Isao Shimizu
November 05, 2021

 世界中のユーザーが快適に利用できるクラウドネイティブなシステムを目指して/#CNDT2021

CloudNative Days Tokyo 2021 キーノート(20分)
2021.11.5

「家族アルバム みてね」は2015年4月にサービスを開始し、2021年3月に利用者数が1,000万人を突破しました。世界150か国以上でサービスを提供し、写真・動画の月間アップロード枚数は、2020年12月時点で1.4億枚に達しています。2020年から2021年にかけては、7つのサービス・機能をリリースし、3つのサービス・機能をアップデートしました。本セッションでは、このように新機能の開発スピードの加速や、海外での利用者数も伸びている中で、SREチームが取り組んできたKubernetes(Amazon EKS)への移行と運用、Observabilityの実現について紹介します。

46839cf590a549efe13547c17a6b2fde?s=128

Isao Shimizu

November 05, 2021
Tweet

Transcript

  1. ੈքதͷϢʔβʔ͕շదʹར༻Ͱ͖Δ Ϋϥ΢υωΠςΟϒͳγεςϜΛ໨ࢦͯ͠ Isao Shimizu CloudNative Days Tokyo 2021 2021.11.5

  2. mixi, Inc. ࣗݾ঺հ ਗ਼ਫ ܄ @isaoshimizu ˔ 2011೥ʙ גࣜձࣾϛΫγΟ ˓

    2011೥ʙ2014೥ SNS mixi ӡ༻ΤϯδχΞ ˓ 2014೥ʙ2018೥ ϞϯελʔετϥΠΫ SRE ˓ 2018೥ʙݱࡏ Ո଒ΞϧόϜ ΈͯͶ SRE ˔ SRE NEXT 2020 IN Tokyo ొஃ ˔ AWS Summit Tokyo 2014ˍ2019 ొஃ ˔ AWS Dev Day Tokyo 2018 LTେձ ϕετεϐʔΧʔ ˔ Software Design ಛूهࣄدߘ ͳͲ
  3. mixi, Inc. ΞδΣϯμ ˔ αʔϏεͷ঺հ ˔ lੈքதͷϢʔβʔ͕շదʹར༻Ͱ͖ΔzΛ໨ࢦͨ͢Ίʹ ˔ ,VCFSOFUFTͷબ୒ͱҠߦ ˔

    ηΩϡΞ͔ͭεϐʔσΟʹΫϥ΢υΛѻ͏ ˔ ΦϒβʔόϏϦςΟͷ޲্ ˔ ·ͱΊ
  4. mixi, Inc. શੈք ສਓҎ্ͷར༻ऀ ※ (ג) ϛΫγΟௐ΂ɻ iOSɾAndroidΞϓϦొ࿥ऀ਺ɺϒϥ΢β൛ొ࿥ऀ਺ͷ߹ܭ Ո଒ΞϧόϜ ΈͯͶ

    ଟࠃޠରԠɺੈք͔ࠃҎ্ͰαʔϏεఏڙ ೔ຊޠɺӳޠɺதࠃޠʢൟମࣈʣɺؖࠃޠɺϑϥϯεޠ υΠπޠɺεϖΠϯޠʹରԠ ࠃ಺޲͚ Ո଒ΞϧόϜ ΈͯͶ ւ֎޲͚ FamilyAlbum
  5. lੈքதͷϢʔβʔ͕շదʹར༻Ͱ͖Δz Λ໨ࢦ͢

  6. શੈքͰαʔϏεΛఏڙ͢Δͱ͍͏͜ͱ

  7. 2016年 2015年 2017年 2018年 2019年 2020年 2021年 Ո଒ΞϧόϜ ΈͯͶ ϦϦʔε

    ʢ೔ຊޠͷΈʣ ӳޠʢΞϝϦΧʣ ରԠϦϦʔε தࠃޠʢൟମࣈʣ ؖࠃޠ ରԠϦϦʔε ӳޠʢΠΪϦεʣ ϑϥϯεޠ υΠπޠ ରԠϦϦʔε lՈ଒ΞϧόϜ ΈͯͶzͷΞϓϦݴޠରԠঢ়گ 2022年 εϖΠϯޠ ରԠϦϦʔε
  8. mixi, Inc. ετΞϨϏϡʔʹدͤΒΕͨւ֎͔Βͷίϝϯτ Such a great app to privately share

    photos and video with family ʢՈ଒ͱࣸਅ΍ϏσΦΛڞ༗͢ΔͨΊͷૉ੖Β͍͠ΞϓϦͰ͢ʣ estou contente com a aplicação ʢΞϓϦʹຬ଍͍ͯ͠·͢ʣ Ich liebe diese App. Einfach toll. ʢ͜ͷΞϓϦ͕େ޷͖ɻγϯϓϧʹૉ੖Β͍͠ʣ 멀리떨어져있는 손녀를 언제든 열어볼수있어 너무편리하고 좋아요 ʢԕ͘཭Ε͍ͯΔଙ່Λ͍ͭͰ΋։͍ͯݟ͍ͯͯ΋ศརͰྑ͍ʣ Très bien idéal pour les grands parents que nous sommes ʢ૆෕฼ʹͱͬͯཧ૝తͳ؀ڥͰͨ͠ʣ 引用元 引用元 引用元 引用元 引用元
  9. શੈքͷϢʔβʔͷظ଴ʹ΋ͬͱԠ͍͑ͨ

  10. ? 43&΍ΠϯϑϥαΠυͱͯ͠ ੈքதͷϢʔβʔʹߩݙͰ͖Δ͜ͱ͸Կ͔

  11. mixi, Inc. ੈքʹ޲͚ͨαʔϏεʹ͓͚Δ՝୊ ˔ αʔόʔͱͷ෺ཧతͳڑ཭ ˓ ωοτϫʔΫϨΠςϯγ ˔ ໰୊ͷ೺Ѳͷͮ͠Β͞ ˓

    ݱ஍΁ߦ͔ͳ͍ͱΘ͔Βͳ͍͜ͱ͕͋Δ ˓ ֤ࠃͷܞଳճઢɺΠϯλʔωοτࣄ৘ͳͲ ˔ ͞·͟·ͳλΠϜκʔϯ ˓ ֤஍Ҭʹ޲͚ͨϓϩϞʔγϣϯࢪࡦ࣌ͷಥൃతͳෛՙ
  12. ΑΓ҆ఆͨ͠ωοτϫʔΫΛ࢖͏ ୺຤ଆͷϝτϦΫεΛऩूͯ͠վળʹͭͳ͛Δ

  13. mixi, Inc. ΑΓ҆ఆͨ͠ωοτϫʔΫ΁ S3 Transfer AccelerationΛ׆༻ͯ͠ߴ଎ͳΞοϓϩʔυ Slow Fast AWS Edge

    Location AWS Edge Location AWS Edge Location S3
  14. mixi, Inc. ϞόΠϧ୺຤ଆͰͷϝτϦΫεऩू ΤϯδχΞ S3 Metrics New Relic MobileΛ׆༻ͯ͠ ୺຤ଆͷϝτϦΫεΛऩू

    • ஍ཧ৘ใʢࠃ΍஍ҬͳͲʣ • Ξοϓϩʔυ࣌ؒ • HTTPΤϥʔ • ճઢΩϟϦΞɺλΠϓʢWi-Fi, 4G, 3Gʣ New Relic Upload
  15. mixi, Inc. ΦʔτεέʔϧͱσϓϩΠͷ଎౓Ξοϓ EC2ϕʔεͰͷΦʔτεέʔϧɺ ChefʹΑΔσϓϩΠ଴ͪʹΑΓ஗͍ Chef Auto Scale Auto Scale

    Container Registry ίϯϐϡʔτϦιʔεޮ཰Ξοϓɺ ίϯςφΠϝʔδͷ഑ஔʹΑΓ଎౓Ξοϓ EC2 EC2 Container ͞·͟·ͳෛՙ܏޲ʹૉૣ͘ରԠ͠΍͘͢ͳΔ ैདྷ ίϯςφԽ AWS OpsWorks
  16. ? ੈքதͷϢʔβʔʹ޲͚ͯ೔ʑ։ൃ͍ͯ͠Δ ૊৫ʹߩݙͰ͖Δ͜ͱ͸Կ͔

  17. mixi, Inc. ։ൃ૊৫ʹ͓͚Δ՝୊ ˔ ૊৫ͷ֦େɺ৽ػೳͷ௥Ճɺւ֎ରԠ΁ͷॊೈੑ ˔ ։ൃɾσϓϩΠͷ͠΍͢͞ɺޮ཰ੑ ˔ ηΩϡϦςΟͷ୲อ ˔

    ໰୊ͷૣظൃݟɺରॲ γεςϜશମͷେ෯࡮৽͕ඞཁ ͞·͟·ͳ՝୊͕ݦࡏԽ͍ͯͨ͠
  18. αʔϏεΠϯϑϥΛ ,VCFSOFUFT ʹશ໘Ҡߦ γεςϜͷ࡮৽ ᶃ

  19. mixi, Inc. ͳͥ ,VCFSOFUFT ΛબΜͩͷ͔ લఏ: αʔϏε౰ॳΑΓAWSΛར༻ ˓ VM͔Βίϯςφ΁ͷҠߦ ˓

    Amazon ECS or EKS ͱ͍͏બ୒ࢶ Kubernetes͸… ˔ ࣗ༝౓΍֦ுੑͷߴ͞ɺΤίγεςϜ͕ॆ࣮ ˔ CNCFϓϩδΣΫτͷOSSͰ͋Γ։ൃ͕׆ൃ
  20. mixi, Inc. ,VCFSOFUFT ΛબͿͱ͖ʹײͨ͡ෆ҆ ˔ ॻ੶΍ϒϩάهࣄΛಡΜͩΓɺਓͷ࿩Λฉ͍ͯΈͯ΋ɺ ࣮ࡍʹ৭ʑ΍ͬͯΈͳ͍ͱΘ͔Βͳ͍͜ͱ͕ଟ͔ͬͨ ˔ ৽όʔδϣϯ΁ͷ௥ैͷෆ҆ ˔

    ݕূ࢝͠Ίͨ౰࣌ʢ2018೥ʣɺEKS͕౦ژϦʔδϣϯʹ དྷ͍ͯͳ͔ͬͨɺػೳ΋ͦΕ΄Ͳଟ͘ͳ͔ͬͨ ˔ ࠓޙKubernetes͕Ͳ͏ͳ͍͔ͬͯ͘ͱ͍͏ෆ҆΋ ࣮ࡍʹ৮Δɺ"84 4"ͷํͱͷ૬ஊͳͲͰঃʑʹղফ͍ͯͬͨ͠
  21. mixi, Inc. ,VCFSOFUFT΁ͷҠߦͷྲྀΕʢͬ͘͟Γʣ ᶃ DockerΠϝʔδͷઃܭ ᶄ ϏϧυύΠϓϥΠϯͷߏ੒ ᶅ ։ൃ؀ڥͷίϯςφରԠ ᶆ

    Kubernetesͷݕূ ᶇ σϓϩΠํ๏ͷݕ౼ ᶈ ϞχλϦϯάํ๏ͷݕ౼ ᶉ ػೳ୯ҐͰͷຊ൪Ҡߦ γεςϜશମ͸ͦΕͳΓͷن໛ ͱ͍͏͜ͱ΋͋Γɺ೥൒͘Β͍ ͔͔ͬͨʜ
  22. ηΩϡΞ͔ͭεϐʔσΟʹΫϥ΢υΛѻ͏ γεςϜͷ࡮৽ ᶄ

  23. *B$Λ҆શʹɺޮ཰తʹ σϓϩΠΛૉૣ͘ɺ؆୯ʹ ݴ͍׵͑Ε͹

  24. mixi, Inc. *B$Λ҆શʹɺޮ཰తʹ AWS CodeBuild GitHub Terraform Apply ैདྷ ݱࡏ

    Admin Role Slack ΤϯδχΞ GitHub 自作ツール Admin Role Webhook Approve Plan結果 Terraform AWS CodeBuild Apply pull tf files
  25. mixi, Inc. σϓϩΠΛૉૣ͘؆୯ʹ ΤϯδχΞ σβΠφʔ ECR GitHub Kubernetes ArgoCD ArgoCD

    Application ࣗ࡞πʔϧ Deployment Webhook push Rolling Update merge PR Sync ࠩ෼ݕ஌ λά ߋ৽ pull
  26. ΦϒβʔόϏϦςΟͷ޲্ γεςϜͷ࡮৽ ᶅ

  27. mixi, Inc. ΦϒβʔόϏϦςΟΛ޲্ͤ͞Δࢪࡦ ˔ ϩά෼ੳج൫ͷվળʢArgo Workflowͷ׆༻ɺϝϯςφϯεੑ޲্ʣ ˔ CloudFrontɺS3ͷϩάͷ׆༻ʢϢʔβʔͷମײ஋Λಘ΍͍͢ʣ ˔ GrafanaͱRedashʹΑΔ෼ੳ

    ˔ New Relic ˓ APMʢAPIϨεϙϯεͷվળʣ ˓ MobileʢϢʔβʔͷ஍ཧతωοτϫʔΫঢ়گͷ೺Ѳʣ ˓ Kubernetes integrationʢKubernetesʹ͓͚ΔϝτϦΫεʣ
  28. mixi, Inc. ֤छϝτϦΫεͷऔಘͱ෼ੳ Kubernetes Pod Prometheus New Relic Pod Rails

    (Puma) Pod KEDA Pod New Relic Kubernetes integration newrelic_rpm Grafana Pod Exporter Internet Internet yebeda
  29. ͜ΕΒͷࢪࡦʹΑͬͯʜ Ϣʔβʔɺ։ൃऀͱ΋ʹମݧ͕޲্  ͔͠͠ɺ·ͩ·ͩ΍Δ΂͖͜ͱ͸࢒͍ͬͯΔ

  30. ·ͱΊ

  31. mixi, Inc. ·ͱΊ ੈքதͷϢʔβʔ͕շదʹར༻Ͱ͖ΔΫϥ΢υωΠςΟϒͳγεςϜΛ໨ࢦͨ͢Ίʹ͸ ˔ Ϣʔβʔͷ௨৴ʹ͓͚ΔετϨεΛܰݮ͢ΔɺϘτϧωοΫΛ೺Ѳ͢Δɻ ˔ ҆શ͔ͭޮ཰తʹΫϥ΢υ΍KubernetesΛར༻Ͱ͖Δ࢓૊ΈΛ࡞Δɻ ˔ γεςϜͷվળ΍มԽΛଓ͚ΔͨΊʹΦϒβʔόϏϦςΟΛ֬อ͢Δɻ

    ˔ ·ͩ΍Γ͖Ε͍ͯͳ͍͜ͱ͸ͨ͘͞Μ͋Δɻ΋ͬͱଟ͘ͷੈքதͷํʹշద ʹ࢖ͬͯ΋Β͑ΔΑ͏ʹվળΛଓ͚Δɻ
  32. mixi, Inc. 8&"3&)*3*/( ֤ϙδγϣϯੵۃ࠾༻த team.mitene.us

  33. mixi, Inc. ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ