Community

๐ŸŽ‰ 2022๋…„ ์ตœ๊ณ ์˜ ์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด

IT ๊ธฐ์ˆ  ์ „๋ฌธ ์ฑ„๋„ InfoWorld ์—์„œ 2022๋…„ ์ตœ๊ณ ์˜ ์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋ชจ์€ '2022 Bossie Awards' ๋ฅผ ๊ณต๊ฐœ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. 2010๋…„๋ถ€ํ„ฐ ๋งค๋…„๋งˆ๋‹ค InfoWorld ์—์„œ ๊ทธ ํ•ด๋ฅผ ๋น›๋ƒˆ๋˜ ์ตœ๊ณ ์˜ ์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ž์ฒด์ ์œผ๋กœ ์„ ์ •ํ•˜์—ฌ ์†Œ๊ฐœํ•˜์˜€๋Š”๋ฐ์š”, ์˜ฌํ•ด๋Š” ์–ด๋–ค ์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์„ ์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด 28๊ฐœ์˜ ์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์†Œ๊ฐœ๋˜์—ˆ๋Š”๋ฐ ์ด ์ค‘ ์ œ๊ฐ€ ํ‰์†Œ ๊ด€์‹ฌ์ด ์žˆ์—ˆ๊ฑฐ๋‚˜ ํฅ๋ฏธ๋กœ์› ๋˜ ์†Œํ”„ํŠธ์›จ์–ด ๋ช‡๊ฐ€์ง€๋ฅผ ์†Œ๊ฐœํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ“Œ AlmaLinux ๋งŽ์€ ์ƒ์šฉ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ RHEL(Red Hat Enterprise Linux)๋กœ ํ‘œ์ค€ํ™” ๋˜์—ˆ๊ณ , RHEL ์˜ ๋ฌด๋ฃŒ ๋ฒ„์ „์œผ๋กœ ์ œ๊ณต๋˜๋˜๊ฒŒ CentOS ์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€๋งŒ CentOS ๋Š” ๋ ˆ๋“œํ–‡์—์„œ ์ธ์ˆ˜ํ•œ ํ›„ ์ง€์›์„ ์ค‘๋‹จํ•ด๋ฒ„๋ ค ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์‹ค๋งํ–ˆ์—ˆ์ฃ . ์ด๋Ÿฌํ•œ CentOS ์˜ ๋นˆ์ž๋ฆฌ๋ฅผ ์ฑ„์šฐ๊ธฐ ์œ„ํ•ด Rocky Linux ์™€ ํ•จ๊ป˜ ๋“ฑ์žฅํ•œ๊ฒŒ AlmaLinux ์ž…๋‹ˆ๋‹ค. AlmaLinux ๋Š” RHEL ๊ณผ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜ธํ™˜์„ฑ ๋ฐ ์ปค๋ฎค๋‹ˆํ‹ฐ ์†Œ์œ ๊ถŒ์„ ์žฅ์ ์œผ๋กœ ๋‚ด์„ธ์šฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“Œ Play With Docker ๋…ธํŠธ๋ถ์ด๋‚˜ EKS, GKE ๋“ฑ์œผ๋กœ ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ช‡ ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์š”๊ธดํ•œ ๊ฒƒ์ด ๋ฐ”๋กœ ํ”Œ๋ ˆ์ด ์œ„๋“œ ๋„์ปค(Play with Docker) ์ž…๋‹ˆ๋‹ค. 5๊ฐœ ์ธ์Šคํ„ด์Šค, 4์‹œ๊ฐ„ ์ œํ•œ ๋•Œ๋ฌธ์— ๋ณด์•ˆ, AI, ๋ถ„์„ ๋“ฑ์— ํ™œ์šฉํ•˜๊ธฐ๋Š” ํž˜๋“ค์ง€๋งŒ, ๋„์ปค๋ฅผ ๋„์ž…ํ•˜๊ธฐ ์ „์— ํ…Œ์ŠคํŠธ ๋ฐ ํ”„๋กœํ† ํƒ€์ž…์„ ์ง„ํ–‰ํ•˜๊ธฐ์— ์ข‹์€ ํˆด์ž…๋‹ˆ๋‹ค. ๐Ÿ“Œ OpenTelemetry ๋ถ„์‚ฐํ˜• ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ฐ€์‹œ์„ฑ์„ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ธฐ์กด์˜ ๋‹จ์ˆœํ•œ ๋กœ๊ทธ์™€ ์ง€ํ‘œ๋กœ๋Š” ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์ด ๋งŽ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋” ์‹ฌ์ธต์ ์ธ ์ˆ˜์ค€์—์„œ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋„๋ก Zipkin ๊ณผโ€ฏJaeger ๋“ฑ ๊ฐ€๊ด€์ธก์„ฑ ๋„๊ตฌ์™€ Honeycomb ๋“ฑ์˜ ์œ ๋ฃŒ ์„œ๋น„์Šค๊ฐ€ ๋“ฑ์žฅํ–ˆ์ง€๋งŒ, ์ด๋Ÿฐ ๋„๊ตฌ๋“ค์˜ ํ™•์‚ฐ์˜ ๋‹จ์ ์€ ๋ชจ๋‘ ์ž‘๋™ ๋ฐฉ์‹์ด ์กฐ๊ธˆ์”ฉ ๋‹ค๋ฅด๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. OpenTelemetry ๋Š” ์ผ๋ จ์˜ ํ‘œ์ค€ API์™€ ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ๊ฐ€๊ด€์ธก์„ฑ ์‹œ์Šคํ…œ ์‚ฌ์ด์˜ ๊ณต๋ฐฑ์„ ๋ฉ”์›Œ์ค๋‹ˆ๋‹ค. ์ƒ์„ฑ, ๋ฐฐ์ถœ, ์ˆ˜์ง‘, ์ฒ˜๋ฆฌ, ์›๊ฒฉ ์ธก์ • ๋ฐ์ดํ„ฐ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์–ด๋–ค ๋ถ„์„๋„๊ตฌ๋ฅผ ์จ๋„ ๋™์ผํ•œ ๊ตฌ์กฐ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— ๋ถ„์„๋„๊ตฌ ๋ณ€๊ฒฝ๋„ ๊ฐ„ํŽธํ•˜๊ณ  ์„œ๋น„์Šค ์ฝ”๋“œ๋Š” ์–ด๋–ค ๋ถ„์„๋„๊ตฌ๋ฅผ ์“ฐ๋Š”์ง€ ์•Œํ•„์š”๊ฐ€ ์—†์–ด์ ธ ๋น„์ง€๋‹ˆ์Šค ๋กœ์ง๊ณผ ์ธํ”„๋ผ์˜ ๊ฒฝ๊ณ„๋ฅผ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“Œ Grafana Grafana ์˜ ๊ฐœ๋ฐœ์ž๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๊ด€๋ฆฌํ•˜๋Š” ํ•˜๋‚˜์˜ ์˜คํ”ˆ์†Œ์Šค ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ–ˆ๋‹ค๊ณ  ํ•˜๋„ค์š”. ๊ทธ ๊ฒฐ๊ณผ ์™„์ „ํ•œ ์ƒ์šฉ ์ œํ’ˆ ํ˜น์€ ๋ถ€๋ถ„ ์œ ๋ฃŒ ์˜ต์…˜์ด ์žˆ๋Š” ์˜คํ”ˆ์†Œ์Šค ์ค‘์—์„œ Grafana ์™€ ์œ ์‚ฌํ•œ ์ œํ’ˆ์€ ๊ฑฐ์˜ ์ฐพ๊ธฐ๊ฐ€ ํž˜๋“ญ๋‹ˆ๋‹ค. Grafana 8.0์€ Prometheus ๊ฒฝ๊ณ  ์‹œ๊ฐํ™”์™€ Grafana ์˜ ๋„ค์ดํ‹ฐ๋ธŒ ๊ฒฝ๊ณ ๋ฅผ ๋ณ‘ํ•ฉํ•˜๊ณ , Prometheus Alertmanager ์ฒ˜๋ฆฌ๋กœ ์ด๋ฅผ ๊ฐ•ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. Grafana 9.0์€ Prometheus PromQL๊ณผ Loki LogQL ์ฟผ๋ฆฌ ์–ธ์–ด๋ฅผ ์œ„ํ•œ ์ฟผ๋ฆฌ ๊ตฌ์ถ• ๋„๊ตฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉฐ, ๋‹จ์ˆœํ•œ ์„ค๋ช… ๋Œ€์‹  ์ธ๋„ค์ผ์„ ํ†ตํ•ด ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ๋ฏธ๋ฆฌ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์—…์šฉ ๋ฒ„์ „์˜ ๊ฒฝ์šฐ ์—ญํ•  ๊ธฐ๋ฐ˜ ์•ก์„ธ์Šค ๊ด€๋ฆฌ๊นŒ์ง€ ์ง€์›ํ•œ๋‹ค๊ณ  ํ•˜๋„ค์š”. ์ตœ๊ทผ์— Loki ๋ฅผ ์‚ฌ์šฉํ•ด๋ณผ์ผ์ด ์žˆ์—ˆ๋Š”๋ฐ Log ์ˆ˜์ง‘ ๋ฐ ์‹œ๊ฐํ™”์— ํƒ์›”ํ•œ ๋„๊ตฌ๋กœ ๋А๊ปด์กŒ์Šต๋‹ˆ๋‹ค. ๊ธฐํšŒ๊ฐ€ ๋œ๋‹ค๋ฉด Loki ๋Š” ๋‹ค์Œ์— ์ถ”๊ฐ€๋กœ ์„ค๋ช…๋“œ๋ฆฌ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ“Œ Redpanda Redpanda ๋Š” Seastar ๋น„๋™๊ธฐ ํ”„๋ ˆ์ž„์›Œํฌ์™€ Raft ํ•ฉ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ C++ ๋กœ ๊ตฌํ˜„๋œ Kafka ๋ฅผ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋Š” ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. C++ ๋กœ ์ž‘์„ฑ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— Redpanda ๋Š” Kafka ๋ณด๋‹ค ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ํ›จ์”ฌ ์งง๊ณ  ์„ฑ๋Šฅ์ด ์ข‹๋‹ค๊ณ  ํ•˜๋Š”๋ฐ์š”, ์ตœ๋Œ€ 10๋ฐฐ ๋‚ฎ์€ ํ‰๊ท  ์ง€์—ฐ ์†๋„์™€ ์ตœ๋Œ€ 6๋ฐฐ ๋น ๋ฅธ ์นดํ”„์นด ํŠธ๋žœ์žญ์…˜์„ ์ œ๊ณตํ•˜๋ฉด์„œ ๋” ์ ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. Redpanda ๋Š” ZooKeeper ๋‚˜ JVM์„ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐโ€ฏ์†Œ์Šค๋Š” ๊นƒํ—ˆ๋ธŒ์—์„œโ€ฏBSL(Business Source License)๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. Redpanda ๋Š” ์นดํ”„์นด ํ”„๋กœํ† ์ฝœ์„ ๋„˜์–ด ์ธ๋ผ์ธ ์›น์–ด์…ˆ๋ธ”๋ฆฌ ์ „ํ™˜๊ณผ ์ง€๋ฆฌ์  ๋ณต์ œ ๊ณ„์ธตํ™” ์Šคํ† ๋ฆฌ์ง€/์‰๋„์šฐ(Shadow) ์ธ๋ฑ์‹ฑ๊นŒ์ง€ ์ ์  ๋” ๋ฐœ์ „ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“Œ Apache Iceberg ์ดˆ๋Œ€์šฉ๋Ÿ‰ ๋ถ„์„ ํ…Œ์ด๋ธ”์„ ์œ„ํ•œ ๊ณ ์„ฑ๋Šฅ ํ˜•์‹์ธโ€ฏ์•„ํŒŒ์น˜ Apache Iceberg ๋Š” ๋น…๋ฐ์ดํ„ฐ์— SQL ํ…Œ์ด๋ธ”์˜ ์‹ ๋ขฐ์„ฑ๊ณผ ๊ฐ„๊ฒฐ์„ฑ์„ ์ œ๊ณตํ•˜๋ฉฐ, Trino, Spark, Sonar, Presto, Hive, Flink, Impala ๋“ฑ์˜ ์—”์ง„์ด ๋™์‹œ์— ๊ฐ™์€ ํ…Œ์ด๋ธ”์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Iceberg ๋Š” ์œ ์—ฐํ•œ SQL ๋ช…๋ น์„ ์ง€์›ํ•ด ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ‘ํ•ฉํ•˜๊ณ  ๊ธฐ์กด์˜ ์—ด์„ ์—…๋ฐ์ดํŠธํ•˜๋ฉฐ ํ‘œ์ ํ™” ๋œ ์‚ญ์ œ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ณ , ์ฝ๊ธฐ ์„ฑ๋Šฅ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์ฝ๊ธฐ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ์—ด์‹ฌํžˆ ์žฌ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜ ๋” ๋น ๋ฅธ ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•ด ์‚ญ์ œ ๋ธํƒ€๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ๊ธฐ๋ณธ์ ์œผ๋กœ ์Šคํ‚ค๋งˆ ํ˜์‹ , ์ž๋™ ํŒŒํ‹ฐ์…”๋‹, TTQ(Time Travel Query), ๋ฒ„์ „ ๋กค๋ฐฑ, ๋ฐ์ดํ„ฐ ๋‹จ์ถ•์„ ์ง€์›ํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ“Œ Apache Druid Apache Druid ๋Š” Kafka, Kinesis ๋ฐ ๊ธฐํƒ€ ํ”Œ๋žซํผ์˜ ์ŠคํŠธ๋ฆผ ์ˆ˜์ง‘์— ๋Œ€ํ•ด 1์ดˆ ๋ฏธ๋งŒ์˜ ์ฟผ๋ฆฌ, ๋†’์€ ๋™์‹œ์„ฑ, ์‹ค์‹œ๊ฐ„ ๋ฐ ์ด๋ ฅ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž…๋‹ˆ๋‹ค. ์ดโ€ฏ๊ธฐ์ˆ ์€ 10๋…„ ์น˜์˜ ๋ฆด๋ฆฌ์ฆˆ, 400๋ช… ์ด์ƒ์˜ ๊ธฐ์—ฌ์ž, ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค, ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๊ฒ€์ƒ‰ ์‹œ์Šคํ…œ์˜ ์•„์ด๋””์–ด๋ฅผ ๊ฒฐํ•ฉํ•œโ€ฏ๋ถ„์‚ฐํ˜• ๋ฐ์ดํ„ฐ ์Šคํ† ์–ด ์•„ํ‚คํ…์ฒ˜์— ๊ธฐ๋ฐ˜์„ ๋‘๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค๋‹ค. Netflix, Salesforce, Walmart ๋“ฑ ์ˆ˜์ฒœ ๊ฐœ ๊ธฐ์—…์ดโ€ฏDruid ๋กœ ๋ถ„์„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ง€์›ํ•˜๊ณ  ์žˆ๊ณ , ํด๋ฆญ์ŠคํŠธ๋ฆผ ๋ถ„์„, ์œ„ํ—˜ ๋ฐ ์‚ฌ๊ธฐ ๋ถ„์„, ๊ณต๊ธ‰๋ง ๋ถ„์„ ๋“ฑ์˜ ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์•Œ๋ฆผ

์•Œ๋ฆผ์ด ์—†์Šต๋‹ˆ๋‹ค