All Articles

Google Cloud Next 2019 Extended๋ฅผ ๋‹ค๋…€์™€์„œ

์ฃผ๋ง์— ๋ญํ•˜์ง€ ํ•˜๋‹ค๊ฐ€ festa.io์—์„œ ํ‘œ๋ฅผ ํŒ”๊ธธ๋ž˜ ํ•œ ๋ฒˆ ๊ฐ€๋ด„. ํ–‰์‚ฌ ๊ด€๋ จ ์ •๋ณด๋Š” ํ–‰์‚ฌ ํŽ˜์ด์ง€ - Next โ€˜19 Extended | Festa! ๋ฅผ ์ฐธ์กฐ.

Beyond kubernetes (์กฐ๋Œ€ํ˜‘๋‹˜)

  • microservice pattern
    • eg) circuit braking.
      • Netflix OSS hystrix ๋“ฑ
        • ๋‹ค ์ข‹์€๋ฐ Application Layer๊ณ , Java๋กœ ๋˜์žˆ๋‹ค
        • ์Šคํ”„๋ง์ด ์ข€ ํŽธํ•œ๋ฐ ๊ทธ๋ž˜๋„ ์ž๋ฐ”๋‹ค
      • Envoy
        • Network Layer์—์„œ!
        • ๋‹ค ์ข‹์€๋ฐโ€ฆ ๊ทธ๋•Œ๊ทธ๋•Œ ๊ณ„์† ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์—ฎ๊ธฐ๊ฐ€ ๊ท€์ฐฎ๋‹ค
  • Istio
    • ๊ทธ๋ƒฅ k8s ์“ฐ๋“ฏ์ด ์“ฐ๋ฉด ์ปจํ…Œ์ด๋„ˆ์— Istio Proxy๊ฐ€ ์•Œ์•„์„œ ๋ถ™์Œ
    • Traefik์ด๋ž‘ ํฌ๊ฒŒ ๋‹ค๋ฅธ๊ฑด ์—†๋Š”๋ฐ ์ •์ฑ…์„ ์ž…ํž ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ํฐ ์ฐจ์ด์ 
    • ํŠนํžˆ ๋ˆˆ์— ๋„๋Š” ๊ธฐ๋Šฅ
      • Rate control์ด ํŠนํžˆ ๋ˆˆ์— ๋„์—ˆ์Œ
      • ๋„คํŠธ์›Œํฌํ† ํด๋กœ์ง€ ๋ฝ‘์•„์คŒ
      • Distributed Tracing๋„ ๋œ๋‹ค
    • ๋‹ค ์ข‹์€๋ฐ ๊น”์•„์„œ ์“ฐ๋ฉด ํž˜๋“œ๋‹ˆ managed service๋ฅผ ์“ฐ์ž (GKE์”์‹œ๋‹ค)
    • 1.0 ๋‚˜์˜ด
  • DevOps
    • ๊ฐœ๋ฐœ์ž๋“ค์ด ์Šค์Šค๋กœ ์šด์˜์„ ํ•œ๋‹ค
    • DevOpsํŒ€์€ ๊ทธ๊ฒŒ ๊ฐ€๋Šฅํ•˜๋„๋ก ์‹œ์Šคํ…œ์„ ๋งŒ๋“ ๋‹ค
    • DevOps ํŒ€์˜ ๋ชฉํ‘œ๋Š” DevOps ํŒ€์ด ํ•„์š” ์—†๋Š” ๊ฒƒ์ธ๋ฐโ€ฆ๊ทธ๊ฒŒ ์ž˜ ์•ˆ ๋จ
  • SideCar ํŒจํ„ด
    • ๋ณดํ†ต App์ด ์žˆ๊ณ  fluentd, envoy ์ด๋Ÿฐ๊ฒŒ ๊ฐ™์ด ๋ถ™๋Š”๋‹ค
    • ์–ด์ฐจํ”ผ App์ด ๋ฐ”๋€Œ๋Š”๊ฑฐ๋‹ˆ๊นŒ ๊ทธ๋ƒฅ Pod ํ•˜๋‚˜์— ๋‹ค ๋†“๊ณ  ์•ฑ๋งŒ ๋ฐ”๊พผ๋‹ค
    • ๊ดœํžˆ k8s์—์„œ Pod ํ•˜๋‚˜์— ์ปจํ…Œ์ด๋„ˆ ์—ฌ๋Ÿฌ๊ฐœ ๋“ค์–ด๊ฐ€ ์žˆ๋Š”๊ฒŒ ์•„๋‹ˆ๋‹ค
  • Spinnaker
    • ํด๋Ÿฌ์Šคํ„ฐ ํ™˜๊ฒฝ์—์„œ ๋ฐฐํฌ / ๋กค๋ฐฑ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž๋™ํ™”ํ•ด์คŒ
      • ์Šค๋ชจํฌ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ณ  30๋ถ„๋™์•ˆ ๊ดœ์ฐฎ์œผ๋ฉด ๋„˜์–ด๊ฐ€์ž
      • ๋ฐค์—๋งŒ ๋ฐฐํฌ๋ฅผ ํ•˜์ž
      • ์ž๋™ ๋กค๋ฐฑ
  • StackDriver
    • ์žฅ๋น„ ๋ ˆ๋ฒจ, ์ปจํ…Œ์ด๋„ˆ ๋ ˆ๋ฒจ, ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ ˆ๋ฒจ์˜ ๋ชจ๋‹ˆํ„ฐ๋ง์ด ํ•œ ๋ฐฉ์—!
    • ๋ผ์šฐํŒ… ์šฉ๋„๋กœ ์“ฐ๊ณ  ์ €์žฅ์€ BigQuery์— ํ•˜๋ฉด ๋น„์šฉ์ด ๊ฒ๋‚˜ ์‹ธ๋‹ค
      • ๋ชจ ํšŒ์‚ฌ๋Š” ์˜คํ”ˆ์†Œ์Šค ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋‹ค๊ฐ€ (NELO ๊ฐ™์€ ํˆด์ด ์žˆ์—ˆ๋‚˜ ๋ด„) ์ด๊ฑฐ๋กœ ๋ฐ”๊ฟ”์„œ ๋น„์šฉ 1/10์œผ๋กœ ์ค„์ด๊ณ  ์šด์˜์ธ๋ ฅ ๋‹ค ํ•„์š” ์—†์–ด์ง
    • ๋„ค์ด๋ฒ„ / ์นด์นด์˜ค ์‚ฌ์ด์ฆˆ ์•„๋‹ˆ๋ฉด ์ง์ ‘ ๋ชจ๋‹ˆํ„ฐ๋ง ํ•˜์ง€ ๋ง๊ณ  DataDog์ด๋‚˜ ๊ธฐํƒ€ ์ œํ’ˆ์„ ์จ๋ผ
      • ์˜ˆ์ „์— Heapster์—์„œ Prometheus๋กœ ํ›… ๋„˜์–ด๊ฐ„ ์ ์ด ์žˆ๋‹ค. ์ด ๋ฆฌ์Šคํฌ๋ฅผ ์ž‘์€ ์กฐ์ง์ด ๊ฐ๋‹นํ•˜๊ธฐ๋Š” ๋ถ€๋‹ด์ด ๋œ๋‹ค
    • ์•ฑ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๊ทธ๋ž˜ํ”„๋กœ ๊ทธ๋ ค์ค€๋‹ค. ๋ถ„์‚ฐ ํŠธ๋ ˆ์ด์‹ฑ๋„ ๋‹น์—ฐํžˆ ์ง€์› (Zipkin, Jagger ๊ธฐ๋ฐ˜. ์Šคํ”„๋ง์—์„œ ์‰ฝ๊ฒŒ ๋ถ™์ผ ์ˆ˜ ์žˆ์Œ)
  • Knative
    • PaaS์˜ ์ผ์ข…
    • ์ฟ ๋ฒ  ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์ด ์ถ˜์ถ”์ „๊ตญ ์‹œ๋Œ€๋ฅผ ๊ฑฐ์ฒ˜์„œ K8s๋กœ ์™”๋“ฏ์ด PaaS ์†”๋ฃจ์…˜๋„ ์ด๊ฒŒ ๋Œ€์„ธ๊ฐ€ ๋  ๋Š๋‚Œ์ด ์˜จ๋‹ค
    • ๋‹ค๋ฅธ๊ฑด ๋ถˆ์•ˆํ•œ๋ฐ Run + Deployment ๊นŒ์ง€๋Š” ๊ทธ๋ž˜๋„ ์•ˆ์ •ํ™”๊ฐ€ ๋˜์–ด์žˆ๋‹ค
  • Kubeflow
    • ์ •๋ง์ •๋ง ์ข‹์€๋ฐ, ์•„์ง์€ ์“ฐ๋ฉด ์•ˆ๋œ๋‹ค
    • ML์€ ๋ชจ๋ธ๋ณด๋‹ค๋„ ๋ฐ์ดํ„ฐ - ๋นŒ๋“œ - ์„œ๋น™ ๋“ฑ๋“ฑ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•์ด ๊ฒ๋‚˜ ๋นก์„ธ๋‹ค.
    • K8S ๊ธฐ๋ฐ˜
    • Jupyter Labs๋ผ๊ณ  ๊ณต์šฉ Jupyter Notebook์ด ์žˆ๋‹ค
    • TF ๋ถ„์‚ฐ ํ™˜๊ฒฝ ์„ค์น˜์— ์žฅ์ ์ด ์žˆ๋‹ค
    • Seldon ์ด๋ผ๊ณ  TF serve ๋น„์Šทํ•˜๊ฒŒ ์—ฌ๋Ÿฌ ํ”„๋ ˆ์ž„์›Œํฌ ์ง€์›ํ•˜๋Š” ์„œ๋น™์šฉ ์—”์ง„๋„ ์ง€์›
  • Anthos
    • GKE๋ฅผ ๊ณ ๊ฐ์‚ฌ On premise ๋จธ์‹ ์— ๊น”์•„๋“œ๋ฆผ
    • AWS, Azure์—๋„ ์˜ฌ๋ผ๊ฐ
    • k8s ์šด์˜์„ ๋‹ค ํ•ด์คŒ
    • ๋น„์Œˆ
  • ๊ธฐํƒ€
    • ์—ฌ๊ธฐ ๋‚˜์˜จ ํˆด, ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ CNCF์—์„œ ํ•œ์ฐฝ ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ๋Š” ํˆด๋“ค์€ 1.0 ๋ฒ„์ „์ด ๋‚˜์˜ค๊ธฐ ์ „์—๋Š” ์“ฐ๋Š” ๊ฒƒ์„ ๋น„์ถ”. API๊ฐ€ ์ •๋ง ํ›…ํ›… ๋ฐ”๋€๋‹ค.
    • ๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ ์–˜๋„ค ์šด์˜ํ•˜๋ ค๋ฉด literally ๊นŠ์€ ๋นก์นจ์„ ๋Š๋‚„ ์ˆ˜ ์žˆ์Œ. (PPL) ๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ์“ฐ์‹œ๋ผ.
  • (๊ธ€์“ด์ด ์ฃผ)
    • GCP๊ฐ€ ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ์ ์–ด์„œ ๊ทธ๋ ‡์ง€ ํŠนํžˆ ์ปจํ…Œ์ด๋„ˆ ์ชฝ์œผ๋กœ ์ข‹์€๊ฒŒ ๋งŽ์€๋“ฏโ€ฆํ™•์‹คํžˆ k8s ์›์กฐ ๋ง›์ง‘.

Knative๋กœ ์„œ๋ฒ„๋ฆฌ์Šค ์›Œํฌ๋กœ๋“œ ๊ตฌํ˜„ (๊น€์ง„์›…๋‹˜)

  • Managed FaaS
    • Vendor lock-in์˜ ๋ฌธ์ œ
  • FaaS on k8s
    • ํ•œ 15๊ฐœ ์žˆ๋‹ค
    • Knative๊ฐ€ ๋‚˜์˜จ์ง€๋Š” ์–ผ๋งˆ ์•ˆ ๋ฌ๋Š”๋ฐ, ๊ฒ๋‚˜ ์œ ๋งํ•˜๋‹ค
  • Knative
    • ๋นŒ๋“œ - ๋ฐฐํฌ - ๊ด€๋ฆฌ๋ฅผ ํ•˜๋‚˜๋กœ
    • ์†Œ์Šค ์ค‘์‹ฌ, ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜์ด๋ผ์„œ ์–ธ์–ด ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ฐ€๋ฆฌ์ง€ ์•Š์Œ
    • ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ ์šฉ์œผ๋กœ Istio๋‚˜ Gloo๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค
    • Eventing์ด ์ข€ ์œ ์—ฐํ•œ๊ฑฐ ๊ฐ™๋‹ค
      • ์ด๊ฑฐ๋Š” ๊ทธ๋ƒฅ Service-Deployment-Pod์— ๋น„ํ•ด ์žฅ์ ์ด ๋  ๊ฑฐ ๊ฐ™์Œ
  • (๊ธ€์“ด์ด ์ฃผ 1) ์–˜๋Š” ์Šค์ผ€์ผ๋ง์ด ํŒํŒ ์ž˜ ๋ ๊นŒ?
    • Autoscale Sample App - Go | Knative
    • ์‚ฌ์‹ค k8s์˜ CPU ๊ธฐ๋ฐ˜์˜ HPA๊ฐ€ ๊ตผ๋– ์„œ ์ข€ ๋ชป๋งˆ๋•…ํ•˜๊ณ  ๋ถˆ์•ˆํ–ˆ๋Š”๋ฐ (๊ธฐ๋ณธ๊ฐ’์€ 15์ดˆ ์ฃผ๊ธฐ๋กœ CPU ์‚ฌ์šฉ๋Ÿ‰์˜ ํ‰๊ท ์„ ๋ƒ„)
    • ์–˜๋Š” ์ผ๋‹จ 1๋ถ„ ์œˆ๋„์šฐ๋ฅผ ๊ฐ€์ง€๊ณ  Pod๋ณ„ concurrency๋ฅผ ๊ณ„์‚ฐํ•ด์„œ target concurrency๋ž‘ ๋งž์ถ”๊ณ  (๋‹ค๋งŒ ์ด๊ฑด ๊ฐœ๋ฐœ์ž๊ฐ€ ์ •ํ•ด์•ผ๋˜๋‹ˆ๊นŒ ์ข€ ๋” ์ •ํ•˜๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๊ฒ ๋‹ค)
    • ๋˜ ํŒจ๋‹‰ ๋ชจ๋“œ๋ผ๊ณ  ์žˆ์–ด์„œ ๊ฐ‘์ž๊ธฐ ํŠธ๋ž˜ํ”ฝ์ด ํ™• ์น˜๊ณ  ์˜ฌ๋ผ์˜ค๋ฉด ๋ฐ”๋กœ Pod ๊ฐฏ์ˆ˜๋ฅผ 2๋ฐฐ๋กœ ์˜ฌ๋ฆฌ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์Œ
    • HPA ๋ณด๋‹ค๋Š” ํ™•์‹คํžˆ ์˜ต์…˜์ด ์ข‹๋‹ค
  • (๊ธ€์“ด์ด ์ฃผ 2)
    • ํ•œ๋™์•ˆ AWS ๋žŒ๋‹ค์—์„œ ์ด๊ฒƒ ์ €๊ฒƒ ๋Œ๋ฆฌ๋ ค๊ณ  AMI Linux์—์„œ ๋นŒ๋“œํ•˜๊ณ  ๊ทธ ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ๋žŒ๋‹ค์— ํƒœ์šฐ๋Š” ๋ฐฉ๋ฒ•๋“ค์„ ๋งŽ์ด ์ฐพ์•„๋ดค๋Š”๋ฐ, ์ด์ œ ๊ทธ๊ฒƒ๋„ ์˜›๋‚  ์–˜๊ธฐ๊ฐ€ ๋ ๊ฑฐ ๊ฐ™๋‹ค

Cloud Spanner (์ด์ •์šด๋‹˜)

  • CAP๋ฅผ ์ง„์งœ ๋‹ค ์ถฉ์กฑ ํ•˜๋Š๋ƒ?
    • CAP ์ด๋ก ์„ ์ฐฝ์‹œํ•˜์‹  ๋ถ„ (now at Google)์ด ์“ฐ์‹  Spanner, TrueTime & The CAP Theorem ์„ ์ฝ์–ด๋ณด๋ฉด ์–ผ์ถ” ๋‹ค ์ถฉ์กฑํ•œ๋‹ค๊ณ  ๋˜์žˆ๋‹ค
  • 99.999% SLA ๊ฒฝ์Ÿ DB๋ณด๋‹ค ๋†’์Œ
    • ์ด๋ฏธ ๊ตฌ๊ธ€์—์„œ 5๋…„ ๋„˜๊ฒŒ ์‚ฌ์šฉํ•จ
  • ์—„์ฒญ ๋น ๋ฅด์ง€๋Š” ์•Š์ง€๋งŒ ๋…ธ๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜๋Š” ์™€์ค‘์—๋„ ์ง€์†์ ์ธ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์คŒ
  • ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ, ํŠธ๋ฆฌ๊ฑฐ, ํ”„๋กœ์‹œ์ € ๋งŽ์€ ๊ฒฝ์šฐ๋Š” ๋ณ„๋กœ
  • ์‚ฌ๋ก€
    • ์—๋ฒ„๋…ธํŠธ
    • Streak - Next 19 https://www.youtube.com/watch?v=3aHBkfBRFEU
    • ๊ฒŒ์ž„ -
      • ๊ธ€๋กœ๋ฒŒ ๋Ÿฐ์นญํ•˜๋ฉด ๋ ˆ์ดํ„ด์‹œ, ๋…ธ๋“œ ๊ฐฏ์ˆ˜ ๋“ฑ๋“ฑ ๊ด€๋ฆฌ๊ฐ€ ์†์ด ๋งŽ์ด ๊ฐ„๋‹ค
      • ๊ทธ๋ฆฌ๊ณ  ๊ฒŒ์ž„์ด ์˜คํ”ˆ๋นจ์ด ๋น ์ง€๊ณ  ์ ‘์†์ž๊ฐ€ ์ค„๋ฉด ๋…ธ๋“œ๋ฅผ ์—„์ฒญ ์‰ฝ๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค
      • Colopl open sourced a Cloud Spanner driver for Laravel framework
  • ์˜ค๋กœ๋ผ๋ž‘ ๋น„๊ต
    • ์˜ค๋กœ๋ผ๋Š” MySQL compliant
    • ์–˜๋Š” ์•„๋‹ˆ๋‹ค
    • ๋Œ€์‹  ์ˆ˜ํ‰ ํ™•์žฅ์— ๊ตฌ์กฐ๊ฐ€ ๋” ์œ ์šฉํ•˜๋‹ค (์˜ค๋กœ๋ผ๋Š” ์ตœ๊ทผ์— ๋งˆ์Šคํ„ฐ - ๋งˆ์Šคํ„ฐ ๋ ˆํ”Œ๋ฆฌ์นด๊ฐ€ ๋๋Š”๋ฐ ์–˜๋Š” ์• ์ดˆ์— ๊ทธ๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ง. ๊ทผ๋ฐ ์–˜๋„ค๋“ค์€ ์ง€์—ฐ์ด ๊ฑฐ์˜ ์—†์–ด์„œ ๋ ˆํ”Œ๋ฆฌ์นด๊ฐ€ ๋ ˆํ”Œ๋ฆฌ์นด๊ฐ€ ์•„๋‹˜โ€ฆ)
  • (๊ธ€์“ด์ด ์ฃผ)
    • New SQL ์ด๋ผ๊ณ  TiDB, CockroachDB ์ด๋Ÿฐ๊ฒŒ ๋ง‰ ๋‚˜์˜ค๋Š”๋ฐ ์•„์ง ์šฐ๋ฆฌ๋‚˜๋ผ ์‚ฌ์ด์ฆˆ์—์„œ๋Š” ์ •๋ง ์ •๋ง transaction ํ•„์š”ํ•œ ๊ฑด ๊ทธ๋ƒฅ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒค๋”ฉ์„ ํ•ด๋ฒ„๋ฆฌ๊ณ  ๋‚˜๋จธ์ง€๋Š” NoSQL ์“ฐ๋Š”๊ฒŒ ๋” ์‹ธ๊ฒŒ ๋จนํžˆ๊ณ , ์Œ“์—ฌ์žˆ๋Š” ๊ฒฝํ—˜๋„ ๋งŽ์€๊ฑฐ ๊ฐ™์Œ
    • ์ €๊ฒŒ ๋˜๋ ค๋ฉด ์ผ๋‹จ ์ธํ”„๋ผ ๋‹จ์—์„œ ์Šคํ† ๋ฆฌ์ง€๋„ ์ข‹๊ณ  ๋„คํŠธ์›Œํฌ๋„ ์ข‹๊ณ , ์ผ๋‹จ ์‹œ๊ณ„๊ฐ€ ์ข‹์•„์•ผ ํ•œ๋‹ค.. ๊ตฌ๊ธ€์ด ๊ดœํžˆ ์˜คํ”ˆ์†Œ์Šค๋ฅผ ํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋‹ค

Published Apr 27, 2019

If I keep marking the dots, someday they will ๐Ÿ”—๐Ÿ”—