Pro Yearly is on sale from $80 to $50! »

クラウドネイティブを創る技術

 クラウドネイティブを創る技術

話し手の所属するGMOペパボでは、First Containerアーキテクチャを用いたクラウド・ホスティングサービスであるロリポップ!マネージドクラウドを提供しています。サービスを開発するに当たり、mrubyやGolangで開発した独自のミドルウェアなど多くのコンポーネントを生み出してきました。それらとKubernetesを比較しながら、コンテナのオーケストレーションにおけるアーキテクチャについて論じ、実装の詳細に迫り、コンテナをこれまでのLinuxOSにおけるプロセスと捉えた場合に、例えばログの扱いや、モニタリングをどうしていくべきなのか、クラウドネイティブ時代におけるベストプラクティスを考える時間にしたいと考えています。

1b838da2065660793d5b26f2cdc32de7?s=128

Kazuhiko Yamashita

July 23, 2019
Tweet

Transcript

  1. Ϋϥ΢υωΠςΟϒΛ૑Δٕज़ ʙݰքṗͰͱΕͨਅୄʹΦʔΨχοΫΦΠϧΛఴ͑ͯʙ @pyama86

  2. ࢁԼ࿨඙!QZBNB (.0ϖύϘٕज़ج൫νʔϜ γχΞɾϓϦϯγύϧ UFOTOBQPODPN QZBNBGVO TUOTKQ

  3. 45/4 -JOVY/444FSWFS TUOTKQ

  4. 45/4

  5. झຯ: ࠗ׆

  6. “Έͳ͞Μ͸ɺ CloudNativeͰ͔͢ʁ”

  7. None
  8. Ϋϥ΢υωΠςΟϒΛ ૑Δٕज़

  9. ࠓ೔࿩͢͜ͱ 1.ϚωʔδυΫϥ΢υʹ͍ͭͯ 2.KubernetesͱϚωʔδυΫϥ΢υͷൺֱ 3.ίϯςφΦʔέετϨʔγϣϯγεςϜͷߏஙɺӡ༻ʹ͍ͭͯ 4.๻ͷ൒ੜͱ༮গظʹ͍͔ʹՄѪ͔͔ͬͨΛٞ࿦

  10. –Johnny Appleseed “Ϋϥ΢υωΠςΟϒٕज़͸ɺύϒϦοΫΫϥ΢υɺϓϥΠϕʔτΫϥ ΢υɺϋΠϒϦουΫϥ΢υͳͲͷۙ୅తͰμΠφϛοΫͳ؀ڥʹ͓͍ ͯɺεέʔϥϒϧͳΞϓϦέʔγϣϯΛߏங͓Αͼ࣮ߦ͢ΔͨΊͷ ೳྗΛ૊৫ʹ΋ͨΒ͠·͢ɻ ͜ͷΞϓϩʔνͷ୅දྫʹɺ
 ίϯςφɺαʔϏεϝογϡɺϚΠΫϩαʔϏεɺΠϛϡʔμϒϧΠ ϯϑϥετϥΫνϟɺ͓ΑͼએݴܕAPI͕͋Γ·͢ɻ ͜ΕΒͷख๏ʹΑΓɺճ෮ੑɺ؅ཧྗɺ͓ΑͼՄ؍ଌੑͷ͋Δૄ݁߹

    γεςϜ͕࣮ݱ͠·͢ɻ ͜ΕΒΛݎ࿚ͳࣗಈԽͱ૊Έ߹ΘͤΔ͜ͱͰɺ ΤϯδχΞ͸ΠϯύΫτͷ͋ΔมߋΛ࠷খݶͷ࿑ྗͰසൟ͔ͭ༧ଌͲ͓ Γʹߦ͏͜ͱ͕Ͱ͖·͢ɻ”
  11. ϨϯλϧαʔόͱΫϥ΢υͷ͍͍ͱ͜ͲΓ ϩϦϙοϓʂϚωʔδυΫϥ΢υ IUUQTNDMPMJQPQKQ

  12. ϩϦϙοϓʂϚωʔδυΫϥ΢υͷັྗ • ؆୯ͳΦʔτεέʔϧ • ίϯςφςϯϓϨʔτΛݩʹɺ͙͢ʹ։ൃ͕࢝ΊΒΕΔ • ϨϯαόͷΑ͏ʹDB͕෇ଳ͠ɺ͞ΒʹΠϯϑϥͷӡ༻͸
 ϩϦϙοϓʹ͓೚ͤ

  13. ϩϦϙοϓʂϚωʔδυΫϥ΢υͷཁૉٕज़ • FastContainerΞʔΩςΫνϟ • haconiwa

  14. FastContainer Webαʔό্Ͱͷϓϩηε࣮ߦํࣜͷҰͭͰ͋ΔFastCGI͔Β @matsumotory ͕ண૝ͨ͠ΞʔΩςΫνϟ FastCGI Client Web Server CGI CGI

    ϦΫΤετ ىಈཁٻ ىಈ ܭࢉ Ϩεϙϯε FastContainer Client Web Server Container Container ϦΫΤετ ىಈཁٻ ىಈ ܭࢉ Ϩεϙϯε
  15. haconiwa • @udzura ࡞ͷmruby੡ίϯςφϥϯλΠϜ • RubyͰίϯςφΛఆٛ • ίϯςφىಈͷ֤εςοϓ΍Ұఆִؒ͝ͱ ϑοΫϙΠϯτ͕͋Δ •

    CRIUରԠ
  16. ϚωʔδυΫϥ΢υ proxy ngx_mruby compute ngx_mruby haconiwa
 backend coreapi CMD B

    compute ngx_mruby haconiwa
 compute ngx_mruby haconiwa
 ngx_mruby͕σΟεύονϟͱͳΓɺτϥϑΟοΫϧʔςΟϯ ά΍ίϯςφىಈΛߦ͏ NFS Storage
  17. ϚωʔδυΫϥ΢υ proxy ngx_mruby compute ngx_mruby haconiwa
 backend coreapi Data
 Store

    compute ngx_mruby haconiwa
 compute ngx_mruby haconiwa
 ϦΫΤετ୯ҐͷΦʔτεέʔϧ NFS Storage Ϣʔβʔσʔλ͸ ͢΂ͯετϨʔδʹ͋Δ
  18. ϚωʔδυΫϥ΢υ ʙίϯςφىಈʙ

  19. ϚωʔδυΫϥ΢υ - ίϯςφىಈ CMDB $PSF"1* DPOUBJOFS TUBUVTSFBEZ IPTUDPNQVUF ίϯςφͷ৘ใ SFBEZ଴ػத

    DPNQVUF $MJFOU TUPSBHF DPNQVUF OGT OGT 8FCQSPYZ http://www.kaasan.info/archives/3733
  20. CMDB $PSF"1* DPOUBJOFS TUBUVTCPPUJOH IPTUDPNQVUF ίϯςφͷ৘ใ ίϯςφϨίʔυΛ ىಈத΁ CPPUJOHىಈத DPNQVUF

    $MJFOU TUPSBHF DPNQVUF OGT OGT http://www.kaasan.info/archives/3733 8FCQSPYZ ໨తͷίϯςφͷ*1͕ -*45&/ͯ͠ͳ͍ ϚωʔδυΫϥ΢υ - ίϯςφىಈ ϦΫΤετܖػͰ
 ৘ใऔಘ
  21. CMDB $PSF"1* DPOUBJOFS TUBUVTFOBCMFE IPTUDPNQVUF ίϯςφͷ৘ใ ίϯςφϨίʔυΛ Քಇத΁ FOBCMFEՔಇத DPNQVUF

    $MJFOU TUPSBHF DPNQVUF OGT OGT http://www.kaasan.info/archives/3733 ίϯςφىಈ 8FCQSPYZ DPOUBJOFS ίϯςφͷ
 εςʔλεมߋ ϚωʔδυΫϥ΢υ - ίϯςφىಈ
  22. CMDB $PSF"1* DPOUBJOFS TUBUVTFOBCMFE IPTUDPNQVUF ίϯςφͷ৘ใ DPNQVUF $MJFOU TUPSBHF DPNQVUF

    OGT OGT http://www.kaasan.info/archives/3733 8FCQSPYZ DPOUBJOFS ࣍ͷϦΫΤετ͸طʹ
 ίϯςφىಈࡁΈͳͷͰ௚઀ϓϩΩγ ϚωʔδυΫϥ΢υ - ίϯςφىಈ
  23. CMDB $PSF"1* DPOUBJOFS TUBUVTSFBEZ IPTUDPNQVUF ίϯςφͷ৘ใ DPNQVUF $MJFOU TUPSBHF DPNQVUF

    OGT OGT http://www.kaasan.info/archives/3733 8FCQSPYZ DPOUBJOFS ίϯςφͷण໋͕དྷͨΒ ίϯςφΛఀࢭ͢Δ ϚωʔδυΫϥ΢υ - ίϯςφఀࢭ SFBEZ଴ػத΁ ͳʹ͔ॲཧதͷ৔߹͸ॲཧ͕ ऴΘΔ·Ͱ଴ͭ
  24. ϚωʔδυΫϥ΢υ ʙΦʔτεέʔϧʙ

  25. CMDB $PSF"1* DPOUBJOFS TUBUVTFOBCMFE IPTUDPNQVUF ίϯςφͷ৘ใ DPNQVUF $MJFOU TUPSBHF DPNQVUF

    OGT OGT http://www.kaasan.info/archives/3733  ʘෛՙ΍͹͍ʗ 8FCQSPYZ DPOUBJOFS ίϯςφ௥Ճཁٻ ϚωʔδυΫϥ΢υ - Φʔτεέʔϧ DPOUBJOFS TUBUVTSFBEZ IPTUDPNQVUF ίϯςφ৘ใΛ ௥Ճ
  26. CMDB $PSF"1* DPOUBJOFS TUBUVTFOBCMFE IPTUDPNQVUF ίϯςφͷ৘ใ DPNQVUF $MJFOU TUPSBHF DPNQVUF

    OGT OGT http://www.kaasan.info/archives/3733 8FCQSPYZ DPOUBJOFS ϦΫΤετܖػͰίϯςφىಈ ϚωʔδυΫϥ΢υ - Φʔτεέʔϧ ίϯςφ৘ใΛ ༗ޮԽ DPOUBJOFS DPOUBJOFS TUBUVTFOBCMFE IPTUDPNQVUF
  27. ओཁίϯϙʔωϯτ

  28. OpenStack Baremetal

  29. ओཁίϯϙʔωϯτ - ngx_mruby NSVCZ@TTM@IBOETIBLF@IBOEMFS@DPEF TTMOHJOY44-OFX DFSUJpDBUF@EBUB'JMFSFBE QBUIUP\TTMTFSWFSOBNF^DSU  LFZ@EBUB'JMFSFBE QBUIUP\TTMTFSWFSOBNF^LFZ

     TTMDFSUJpDBUF@EBUBDFSUJpDBUF@EBUB TTMDFSUJpDBUF@LFZ@EBUBLFZ@EBUB  OHJOYͷ͋ΒΏΔΠϕϯτʹϑοΫͯ͠ɺNSVCZͷίʔυΛ࣮ߦ͠ɺ ϓϥΨϒϧʹτϥϑΟοΫίϯτϩʔϧग़དྷΔ
  30. ओཁίϯϙʔωϯτ - ngx_mruby • CoreAPIʹϦΫΤετΛ࣮ߦ͠ɺίϯςφϧʔςΟϯάɺίϯςφىಈΛ ߦ͏ • ϦΫΤετ୯ҐͰɺίϯςφʹϔϧενΣοΫΛߦ͏ • ϊϯϒϩοΩϯάʹ৘ใ͕औಘͰ͖ΔΑ͏ngx_mruby

    v2ʹͯඇಉظεϦʔ ϓɺαϒϦΫΤετΛ࣮૷ • HTTP͸L7ϓϩΩγɺͦΕҎ֎͸L4ϓϩΩγ
  31. ओཁίϯϙʔωϯτ - ngx_mruby SFRVFTU SFRVFTU SFRVFTU SVODPOUBJOFS SVODPOUBJOFS SVODPOUBJOFS SFTQPOTF

    SFTQPOTF SFTQPOTF XPSLFS XPSLFS͋ͨΓͷNSVCZ࣮ߦ ίϯςφىಈ Ͱ
 ඇಉظ*0͕ϒϩοΫ͞ΕΔ ίϯςφىಈ ଴ͪ࣌ؒ
  32. ओཁίϯϙʔωϯτ - ngx_mruby /HJOY"TZODTMFFQΛར༻͠ɺίϯςφىಈ଴ͪ࣌ؒΛ ඇಉظʹ4MFFQ͢Δ SFRVFTU SFRVFTU NSVCZ SFTQPOTF SFTQPOTF

    8PSLFS MPPQEP  CSFBLJGDPOUBJOFSCPPU   /HJOY"TZODTMFFQ FOE NSVCZ TMFFQ ίϯςφىಈޙ ඇಉظSleep
  33. ! ओཁίϯϙʔωϯτ - ngx_mruby ngx_mruby Container • mruby-fast-remote-checkΛ༻͍ͯɺ
 3way ϋϯυγΣʔΫޙʹclose(2)

    • Ԡ౴͕ͳ͚Ε͹ίϯςφΛىಈ ϔϧενΣοΫ͸ϦΫΤετͷλΠϛϯάͰߦ͏
  34. ! ओཁίϯϙʔωϯτ - haconiwa 3VCZͷ4ZOUBYͰίϯςφΛఆٛ )BDPOJXBEFpOFEPcDPOpHc DPOpHOBNFOFXIBDPOJXBUPCFIPTUOBNF DPOpHDHSPVQ<DQVTIBSFT> DPOpHDISPPU@UPWBSZPVS@SPPUGT DPOpHOBNFTQBDFVOTIBSFNPVOU

    DPOpHDBQBCJMJUJFTBMMPXBMM DPOpHDBQBCJMJUJFTESPQDBQ@TZT@BENJO FOE
  35. ओཁίϯϙʔωϯτ - CoreAPI(Jardin) • GolangΛ༻͍ͯɺlabstack/echoɺjinzhu/gormΛར༻͠։ൃ • GETܥ͸ݪଇRedisʹΩϟογϡ͠ɺԠ౴ੑೳΛ޲্ • Consul EventΛར༻֤ͯ͠ϩʔϧʹϝοηʔδϯάΛૹΔΑ͏ͳ͜ͱ΋

    ΍͍ͬͯΔ
  36. ओཁίϯϙʔωϯτ - usermetrics • PrometheusΛ࠾༻͠ɺϢʔβʔίϯςφͷ৘ใΛ͢΂ͯू໿ • ίϯςφͷϦιʔεΛgoogle/cadvisorΛར༻͠ɺexporterܦ༝Ͱऩू • Prometheusܦ༝ͰAlertManager͔ΒWebhookͰΦʔτεέʔϧ •

    CPUɺMemoryɺNetworkෛՙͰΞϥʔτΛτϦΨʔ
  37. ओཁίϯϙʔωϯτ - Scheduler(kangetsu) • ϓϩϏδϣχϯάɾδϣϒεέδϡʔϥʔΛGolangͰrallison/go-workersΛར༻͠։ൃ • ετϨʔδྖҬͷ࡞੒ɺquotaͷઃఆ • DB࡞੒ •

    WordPressͷϓϨΠϯετʔϧ
  38. None
  39. ओཁίϯϙʔωϯτ - Cleaner(skmr) • ֤ίϯϙʔωϯτͷσʔλෆ੔߹ΛࣗಈͰݕ஌͠मਖ਼ • κϯϏϓϩηεͷຣࡴ • ίϯςφঢ়ଶͱCMDBͷࠩ෼Λऩଋ

  40. ͓·͚ - Hashicorp Software • αʔϏεσΟεΧόϦʹConsulɺConsul DNSΛϑϧ׆༻ • DBʹ֨ೲ͢Δൿಗ৘ใ͸VaultΛར༻͠҉߸Խ •

    OpenStackVMͷϓϩϏδϣχϯά͸TerraformΛར༻
  41. ͳͥKubernetesͰ͸ͳ͍ͷ͔ʁ

  42. ͳͥKubernetesͰ͸ͳ͍ͷ͔ʁ 1.ϖύϘ͸ϗεςΟϯάࣄۀΛఏڙ 2.FastContainerΞʔΩςΫνϟ 3.࣌୅తͳཁҼ 4.ࣄۀࠩผԽ

  43. KubernetesͱϚωʔδυΫϥ΢υͷҧ͍ 1.UI/UX 2.ΞʔΩςΫνϟ 3.ίϯςφىಈ 4.Φʔτεέʔϧ

  44. UI/UX ϚωʔδυΫϥ΢υ Kubernetes •Ϣʔβʔ͸όοΫΤϯυΛҙࣝ͢Δ͜ͱͳ ͘ɺෛՙʹԠͯ͡Ϧιʔε͕૿ݮ͢Δ •ςϯϓϨʔτΛબ୒͠ɺscp΋͘͠͸gitpush
 ͰΞϓϦέʔγϣϯΛσϓϩΠ •YAMLͰهड़Ͱ͖ΔϦιʔεͰॊೈʹ
 Ϧιʔε͕ఆٛՄೳ •೚ҙͷίϯςφΠϝʔδ͕ར༻ՄೳͰ


    σϓϩΠ͸ίϯςφbuild΋͘͠͸mount
  45. ΞʔΩςΫνϟ

  46. etcd CMDB kube-api-server Jardin kube-scheduler kube-proxy kubelet container runtime haconiwa

    ΞʔΩςΫνϟ kubernetes ϚωʔδυΫϥ΢υ ngx_mruby skmr usermetrics
  47. etcd CMDB kube-api-server Jardin kube-scheduler kube-proxy kubelet container runtime haconiwa

    σʔλετΞ kubernetes ϚωʔδυΫϥ΢υ ngx_mruby skmr usermetrics
  48. etcd CMDB kube-api-server Jardin kube-scheduler kube-proxy kubelet container runtime haconiwa

    API&Scheduler kubernetes ϚωʔδυΫϥ΢υ ngx_mruby skmr usermetrics
  49. etcd CMDB kube-api-server Jardin kube-scheduler kube-proxy kubelet container runtime haconiwa

    Node compornents kubernetes ϚωʔδυΫϥ΢υ ngx_mruby skmr usermetrics
  50. etcd CMDB kube-api-server Jardin kube-scheduler kube-proxy kubelet container runtime haconiwa

    Container Runtime kubernetes ϚωʔδυΫϥ΢υ ngx_mruby skmr usermetrics
  51. ίϯςφىಈ

  52. Kubernetes - ίϯςφىಈ • YAMLΛAPIʹ౤ೖ͢Δ͜ͱͰίϯςφىಈ • ϔϧενΣοΫ͸ProbeͰ࣮ߦ(HTTP/TCP/ExecCommand) • ىಈ࣌ʹߦ͏ͷ͸readinessProbeɺىಈޙ͸livenessProbe •

    ॳظԽॲཧ͸InitContainerɺPostStartͰॳظԽॲཧΛϑοΫՄೳ • NඵִؒͰϑοΫ͢Δͱ͔ɺ༗ޮظݶ͕དྷͨΒίϯςφΛఀࢭ͢Δʹ͸ί ϯτϩʔϥʔͰಠ࣮ࣗ૷͕ඞཁ
  53. ίϯςφىಈϊʔυ͸ͲͷΑ͏ʹܾ·Δʁ ϚωʔδυΫϥ΢υ Kubernetes •ੜଘ͍ͯ͠Δϊʔυͷϥ΢ϯυϩϏϯ •ϊʔυ͕ఀࢭ͍ͯ͠Δ৔߹͸࣍ͷϦΫΤετ ͔ΒੜଘϊʔυͰίϯςφىಈ •kube-scheduler͕ϊʔυΛબ୒͢Δ •ϑΟϧλϦϯά(ϥϕϧɺϦιʔεetc) •είΞϦϯά(෼ࢄɺϦιʔεetc)

  54. Φʔτεέʔϧ

  55. Φʔτεέʔϧ͸ͲͪΒ΋metricsϕʔε ϚωʔδυΫϥ΢υ Kubernetes •usermetrics(Prometheus)ʹઃఆ͞ΕͨΞϥʔ τ͔ΒWebhookͰCoreAPI͕࣮ߦ͞Εɺίϯ ςφͷ༧໿࿮͕૿͑Δ •εέʔϧΠϯʹ͍ͭͯ͸ɺෛՙ͕Լ͕ͬͨΒ ༧໿࿮͕࡟আ͞Εͯɺίϯςφͷ༗ޮظݶ͕ ౸དྷͨ͠ΒࣗಈͰεέʔϧΠϯ •metric-sserverΛΠϯετʔϧ͢Δͱɺ

    HorizontalPodAutoscalerΛར༻ͯ͠Ϧιʔε ʹԠͯ͡ΦʔτεέʔϧɾεέʔϧΠϯΛ࣮ ݱͰ͖Δ •ࢦఆͨ͠ෛՙʹͳΔΑ͏ʹϙου͕ௐ੔͞Ε Δ
  56. ͜͜·Ͱͷ·ͱΊ • ϚωʔδυΫϥ΢υ͸Kubernetes΄ͲॊೈͰ͸ͳ͍͕ɺΠϯϑϥʹৄ͘͠ ͳͯ͘΋࢖͑Δɺ͓खܰΫϥ΢υͰ͋Δ • ΞʔΩςΫνϟ΍ΦʔτεέʔϧͷڍಈͳͲྨࣅ఺΋ଟ͋͘Δ

  57. ϚωʔδυΫϥ΢υ΋ Ұ෦Kubernetesར༻

  58. None
  59. None
  60. ͳͥKubernetesͳͷ͔ʁ • ϚτϦϣʔγΧ΋ݕ౼͕ͨ͠ɺγεςϜμ΢ϯ࣌ͷӨڹ͕શஅʹͳΔͨΊ ϦεΫߴ͍ • KubernetesΛࣗ෼͕ͨͪӡ༻͠ɺ஌Δ͜ͱͰΑΓΑ͍Ϋϥ΢υɾωΠςΟ ϒ΁(Ṗ

  61. Ϋϥ΢υαʔϏεΛఏڙ͠ͳ͕Βɺ KubernetesΛӡ༻

  62. ίϯςφΦʔέετϨʔγϣϯγεςϜ Scheduler compute-node Container Container Container compute-node Container Container Container

    εέδϡʔϥʔ͕ϊʔυʹϓϩηεΛׂΓ౰ͯɺ ·ͨͦΕΒͷ৘ใ͕ϦΞϧλΠϜʹऩू͞Εɺ ࣗ཯తʹಈ͘γεςϜ
  63. ݟͨ͜ͱ͋Δͳʁʁʁ

  64. None
  65. None
  66. ίϯςφΦʔέετϨʔγϣϯγεςϜ͸OSͬΆ͍ • εέδϡʔϥʔ͕ϓϩηεΛεέδϡʔϦϯά͠ɺͦΕΒͷϑΟʔυόο ΫΛड͚ͳ͕Βಈ͖ଓ͚Α͏ͱ͢Δڍಈ͸OSͱࣅ͍ͯΔ఺͕ଟ͍ • OSͱྨࣅ఺͕ଟ͍ͳΒ͹OSʹ͓͚ΔάουϓϥΫςΟε͕ྑ͍࡞༻Λੜ ΉՄೳੑ͕͋Δ

  67. ϩάͷӬଓԽ

  68. OS γϯάϧϊʔυͷ৔߹ container log collector

  69. ΦʔέετϨʔγϣϯγεςϜ Scheduler compute-node Container Container Container log collector log collector

    log collector compute-node Container Container Container log collector log collector log collector
  70. ΦʔέετϨʔγϣϯγεςϜ Scheduler compute-node Container Container Container log collector log collector

    log collector compute-node Container Container Container log collector log collector log collector
  71. ϩάʹ͓͚Δ՝୊ • ैདྷͷΑ͏ʹ1ϩʔϧ1αʔόͰ͸ͳ͍͜ͱ͔Βɺ1ͭͷαʔόͰෳ਺ͷछ ྨͷϩά͕ग़ྗ͞ΕΔ • ίϯςφͷूੵ཰ΛߴΊΔͱɺچདྷΑΓϩάͷྲྀྔ͸࣮֬ʹ૿͑Δ • ෳ਺ͷछྨͷϩάΛ෼ղɺϧʔςΟϯά͢Δ͜ͱͷෳࡶ͞

  72. KafkaͰόοϑΝϦϯά͢Δ compute-node Container Container Container log collector log log Kafka

    cluster
  73. ,BGLBͷಛ௃ wߴ଎ॲཧ͕ՄೳͳϝοηʔδϯάγεςϜ w෼ࢄॻ͖ࠐΈɺඇಉظϨϓϦέʔγϣϯ˞ɺ෼ࢄಡΈࠐΈ wॳظ͸-JOLFEJOʹͯ։ൃɺݱঢ়͸"QBDIFࡒஂʹͯ؅ཧɺ -JOLFEJO͔ΒεϐϯΞ΢τͨ͠$POqVFOU͕։ൃΛओମతʹߦ͏ wݴޠ͸+BWBɺ4DBMBͰ։ൃ wΫϥελϦϯά͕ՄೳͰ଱ো֐ੑɺૹୡอূɺݎ࿚ੑ͕ߴ͍

  74. LBGLBDMVTUFS ඵͰཧղ͢Δ,BGLB producer (ૹΓख) kafka-broker-1 topic partition-0 kafka-broker-2 topic partition-1

    DPOTVNFSHSPVQ consumer (ड͚ख) consumer (ड͚ख) consumer (ड͚ख) ૹΓखͱड͚खΛ/ͱ͢ΔόοϑΝʔ
  75. ϩάͷग़ྗ࣌ؒ < Ξοϓϩʔυ࣌ؒ compute-node Container Container Container log collector log

    log Kafka cluster όϦૣ͍ʂ όϦ஗͍ʂʂʂ
  76. KafkaΛڬΉϝϦοτ wίϯςφىಈϊʔυͷϦιʔεΛ༗ޮར༻͢ΔͨΊʹɺϝΠϯΞϓϦ Ҏ֎ͷ࢓ࣄΛͤ͞ͳ͍ w,BGLBΛڬΉ͜ͱͰσʔλ͕ू໿͞ΕΔ͜ͱͰɺଟ͘ͷίϯςφ͔Β ͷ৘ใΛҰՕॴͰѻ͑ΔΑ͏ʹͳΔ w,BGLBDPOOFDUΛར༻͢Δ͜ͱͰଟ͘ͷ044ɺϚωʔδυɾαʔϏε ͱ࿈ܞͰ͖ΔͷͰ͓ಘ

  77. ϖύϘ ϩάج൫(௨শେ࿨ా) • ϓϩμΫγϣϯͰར༻͍ͯ͠ΔKubernetes͸͢΂ͯKafkaʹϩάΛू໿ ͠ɺS3΁ͷϩάอશɺGryalogͰͷݕࡧ͕Մೳʹͳ͍ͬͯΔ • ΞϓϦέʔγϣϯ։ൃऀ͸ΞϓϦΛ։ൃ͢Δ͜ͱ͚ͩʹूதͰ͖Δ • ϚωʔδυΫϥ΢υ΋େ࿨ాԽ͍ͨ͠

  78. Ϋϥ΢υωΠςΟϒΛ૑Δʹ͸ ·ͣ͸ࣗ෼͕Ϋϥ΢υωΠςΟϒʹͳΔ ඞཁ͕͋Δ

  79. ࣗ෼ͨͪͰੈքʹͨͩҰͭͷ Ϋϥ΢υαʔϏεΛ૑Γ ӡ༻͢Δ͜ͱ͸ָ͍͠

  80. Ϋϥ΢υαʔϏεΛ૑Γ Ϋϥ΢υαʔϏεͱ૊Έ߹Θͤ ϢʔβʔΛϋοϐʔʹʂʂʂ

  81. ࠷৽ͷ࠾༻৘ใΛνΣοΫˠ !QC@SFDSVJU Զͱ͜ͷϏοά΢Σʔϒʹ৐ͬͯ͘Εʂʂ̍