๋คํ”„ ์ปจํผ๋Ÿฐ์Šค | grep '๋ฐฑ์—”๋“œ|devops'

์ง€๋‚œ ์ฃผ ์˜ˆ์นดํ…Œ๋ฆฐ๋ถ€๋ฅดํฌ์—์„œ ์—ด๋ฆฐ DUMP IT ์ปจํผ๋Ÿฐ์Šค(https://dump-ekb.ru/)์— ์ฐธ์„ํ–ˆ๋Š”๋ฐ, ๋ฐฑ์—”๋“œ ๋ฐ ๋ฐ๋ธŒ์˜ต์Šค ์„น์…˜์—์„œ ๋…ผ์˜๋œ ๋‚ด์šฉ๊ณผ ์ง€์—ญ IT ์ปจํผ๋Ÿฐ์Šค์— ์ฃผ๋ชฉํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š”์ง€ ์•Œ๋ ค๋“œ๋ฆฌ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋คํ”„ ์ปจํผ๋Ÿฐ์Šค | grep '๋ฐฑ์—”๋“œ|devops'
์„œ๋ฒ„๋ฆฌ์Šค์— ๋Œ€ํ•œ Evil Martians์˜ Nikolay Sverchkov

๋Œ€์ฒด ๊ฑฐ๊ธฐ์—” ๋ฌด์—‡์ด ์žˆ์—ˆ๋‚˜์š”?

์ปจํผ๋Ÿฐ์Šค์—๋Š” ๋ฐฑ์—”๋“œ, ํ”„๋ก ํŠธ์—”๋“œ, ๋ชจ๋ฐ”์ผ, ํ…Œ์ŠคํŠธ ๋ฐ QA, ๋ฐ๋ธŒ์˜ต์Šค, ๋””์ž์ธ, ๊ณผํ•™ ๋ฐ ๊ด€๋ฆฌ ๋“ฑ ์ด 8๊ฐœ์˜ ์„น์…˜์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ๊ฐ€์žฅ ํฐ ํ™€์€ Science and Management์— ์žˆ์Šต๋‹ˆ๋‹ค.)) ๊ฐ๊ฐ ์ตœ๋Œ€ 350๋ช…์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ์™€ ํ”„๋ก ํŠธ์—”๋“œ๋Š” ๊ทธ๋‹ค์ง€ ์ž‘์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Devops ๋ฃธ์€ ๊ฐ€์žฅ ์ž‘์ง€๋งŒ ํ™œ๋™์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

Devops ๋ฐ Backend ์„น์…˜์˜ ๋ณด๊ณ ์„œ๋ฅผ ๋“ฃ๊ณ  ๋ฐœํ‘œ์ž์™€ ์ž ์‹œ ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆด์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์ปจํผ๋Ÿฐ์Šค์—์„œ ๋‹ค๋ฃฌ ์ฃผ์ œ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์ด๋Ÿฌํ•œ ์„น์…˜์„ ๊ฒ€ํ† ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

SKB-Kontur, DataArt, Evil Martians, Ekaterinburg ์›น ์ŠคํŠœ๋””์˜ค Flag, Miro(RealTimeBoard)์˜ ๋Œ€ํ‘œ๊ฐ€ Devops ๋ฐ Backend ์„น์…˜์—์„œ ์—ฐ์„คํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฃจ๋Š” ์ฃผ์ œ๋Š” CI/CD, ๋Œ€๊ธฐ์—ด ์„œ๋น„์Šค ์ž‘์—…, ๋กœ๊น…, ์„œ๋ฒ„๋ฆฌ์Šค ์ฃผ์ œ ๋ฐ Go์—์„œ PostgreSQL ์ž‘์—… ๋“ฑ์ด ์ž˜ ๋‹ค๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค.

Avito, Tinkoff, Yandex, Jetstyle, Megafon, Ak Bars Bank์˜ ๋ณด๊ณ ์„œ๋„ ์žˆ์—ˆ์ง€๋งŒ ์‹ค์ œ๋กœ ์ฐธ์„ํ•  ์‹œ๊ฐ„์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณด๊ณ ์„œ์˜ ๋น„๋””์˜ค ๋…นํ™” ๋ฐ ์Šฌ๋ผ์ด๋“œ๋Š” ์•„์ง ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฉฐ 2์ฃผ ์ด๋‚ด์— ๊ฒŒ์‹œํ•˜๊ฒ ๋‹ค๊ณ  ์•ฝ์†ํ–ˆ์Šต๋‹ˆ๋‹ค. dump-ekb.ru์—์„œ).

๋ฐ๋ธŒ์˜ต์Šค ์„น์…˜

๋†€๋ผ์šด ์ ์€ ์ด ์„น์…˜์ด 50์„ ์ •๋„์˜ ๊ฐ€์žฅ ์ž‘์€ ํ™€์—์„œ ์ง„ํ–‰๋˜์—ˆ๋‹ค๋Š” ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ํ†ต๋กœ์—๋„ ์‚ฌ๋žŒ๋“ค์ด ์„œ ์žˆ์—ˆ์–ด์š” :) ์ œ๊ฐ€ ๋“ค์€ ๋ฆฌํฌํŠธ์— ๋Œ€ํ•ด ๋ง์”€๋“œ๋ฆด๊ฒŒ์š”.

ํŽ˜ํƒ€๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ํƒ„๋ ฅ์  ์ธก์ •

์ด ์„น์…˜์€ Kontur์˜ Elasticsearch์— ๋Œ€ํ•œ Vladimir Lil(SKB-Kontur)์˜ ๋ณด๊ณ ์„œ๋กœ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒ๋‹นํžˆ ํฌ๊ณ  ๋กœ๋“œ๋œ Elastic(์ตœ๋Œ€ 800TB์˜ ๋ฐ์ดํ„ฐ, ์ค‘๋ณต์„ฑ์„ ๊ณ ๋ คํ•˜๋ฉด ~1.3ํŽ˜ํƒ€๋ฐ”์ดํŠธ)์„ ๋ณด์œ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  Kontur ์„œ๋น„์Šค์— ๋Œ€ํ•œ Elasticsearch๋Š” ๋‹จ์ผ์ด๋ฉฐ 2๊ฐœ์˜ ํด๋Ÿฌ์Šคํ„ฐ(์„œ๋ฒ„ 7๊ฐœ ๋ฐ 9๊ฐœ)๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋งค์šฐ ์ค‘์š”ํ•˜๋ฏ€๋กœ Kontur์—๋Š” ํŠน๋ณ„ํ•œ Elasticsearch ์—”์ง€๋‹ˆ์–ด(์‚ฌ์‹ค Vladimir ์ž์‹ )๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Vladimir๋Š” ๋˜ํ•œ Elasticsearch์˜ ์ด์ ๊ณผ ๊ทธ๊ฒƒ์ด ๊ฐ€์ ธ์˜ค๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ž์‹ ์˜ ์ƒ๊ฐ์„ ๊ณต์œ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด์  :

  • ๋ชจ๋“  ๋กœ๊ทธ๊ฐ€ ํ•œ ๊ณณ์— ์žˆ์œผ๋ฏ€๋กœ ์‰ฝ๊ฒŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • XNUMX๋…„ ๋™์•ˆ ๋กœ๊ทธ๋ฅผ ์ €์žฅํ•˜๊ณ  ์‰ฝ๊ฒŒ ๋ถ„์„
  • ๋กœ๊ทธ ์ž‘์—… ์†๋„๊ฐ€ ๋น ๋ฆ…๋‹ˆ๋‹ค.
  • ์ฆ‰์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ‹์ง„ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”

๋ฌธ์ œ :

  • ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค๋Š” ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค(Kontur์˜ ๊ฒฝ์šฐ Kafka๊ฐ€ ํ•ด๋‹น ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•จ).
  • Elasticsearch Curator ์ž‘์—… ๊ธฐ๋Šฅ (Curator์˜ ์ผ๋ฐ˜ ์ž‘์—…์œผ๋กœ ์ธํ•ด ์ฃผ๊ธฐ์ ์œผ๋กœ ๋†’์€ ๋ถ€ํ•˜๊ฐ€ ๋ฐœ์ƒํ•จ)
  • ๋‚ด์žฅ๋œ ์Šน์ธ ์—†์Œ(๋ณ„๋„์˜ ๊ฝค ํฐ ๋ˆ์— ๋Œ€ํ•ด์„œ๋งŒ ๋˜๋Š” ๋‹ค์–‘ํ•œ ์ˆ˜์ค€์˜ ์ƒ์‚ฐ ์ค€๋น„๊ฐ€ ๊ฐ€๋Šฅํ•œ ์˜คํ”ˆ ์†Œ์Šค ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ๋งŒ)

Open Distro for Elasticsearch์— ๋Œ€ํ•ด์„œ๋Š” ๊ธ์ •์ ์ธ ๋ฆฌ๋ทฐ๋งŒ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. :) ๋™์ผํ•œ ์ธ์ฆ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํŽ˜ํƒ€๋ฐ”์ดํŠธ๋Š” ์–ด๋””์—์„œ ์˜ค๋Š”๊ฐ€?ํ•ด๋‹น ๋…ธ๋“œ๋Š” 12*8Tb SATA + 2*2Tb SSD๋ฅผ ๊ฐ–์ถ˜ ์„œ๋ฒ„๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. SATA์˜ ์ฝœ๋“œ ์Šคํ† ๋ฆฌ์ง€, ํ•ซ ์บ์‹œ ์ „์šฉ SSD(ํ•ซ ์Šคํ† ๋ฆฌ์ง€).
7+9 ์„œ๋ฒ„, (7 + 9) * 12 * 8 = 1536TB.
๊ณต๊ฐ„์˜ ์ผ๋ถ€๋Š” ์˜ˆ๋น„๋กœ ๋‚จ์•„ ์žˆ์œผ๋ฉฐ ์ค‘๋ณต ๋“ฑ์„ ์œ„ํ•ด ๋”ฐ๋กœ ๋ณด๊ด€๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
Kontur, Elba ๋“ฑ์˜ ๋ชจ๋“  ๋ณด๊ณ  ์„œ๋น„์Šค๋ฅผ ํฌํ•จํ•˜์—ฌ ์•ฝ 90๊ฐœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋กœ๊ทธ๊ฐ€ Elasticsearch๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.

์„œ๋ฒ„๋ฆฌ์Šค ๊ฐœ๋ฐœ์˜ ํŠน์ง•

๋‹ค์Œ์€ Serverless์— ๊ด€ํ•œ DataArt์˜ Ruslan Serkin์ด ์ž‘์„ฑํ•œ ๋ณด๊ณ ์„œ์ž…๋‹ˆ๋‹ค.

Ruslan์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์„œ๋ฒ„๋ฆฌ์Šค ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ ๊ฐœ๋ฐœ์ด ๋ฌด์—‡์ธ์ง€, ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ธฐ๋Šฅ์ด ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์„œ๋ฒ„๋ฆฌ์Šค๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ๋“  ์ธํ”„๋ผ๋ฅผ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๋Š” ๊ฐœ๋ฐœ ์ ‘๊ทผ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์˜ˆ - AWS Lambda ์„œ๋ฒ„๋ฆฌ์Šค, Kubeless.io(Kubernetes ๋‚ด๋ถ€์˜ ์„œ๋ฒ„๋ฆฌ์Šค), Google Cloud Functions.

์ด์ƒ์ ์ธ ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋‹จ์ˆœํžˆ ํŠน์ˆ˜ API ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„๋ฆฌ์Šค ๊ณต๊ธ‰์ž์—๊ฒŒ ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์ด์ƒ์ ์ธ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์ธ ๋™์‹œ์— AWS Lambda๋Š” ์ˆ˜๋งŽ์€ ์ตœ์‹  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ ์ œ๊ณต์—…์ฒด์˜ ๊ฒฝ์šฐ ์ธํ”„๋ผ ์œ ์ง€ ๋ฐ ๋ฐฐํฌ ๋น„์šฉ์ด 0.2์ด ๋˜๋ฉฐ, ์†Œ๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ง€์›ํ•˜๋Š” ๋น„์šฉ๋„ ๋งค์šฐ ์ €๋ ดํ•ฉ๋‹ˆ๋‹ค(AWS Lambda - $1 / ๋‹จ์ˆœ ์š”์ฒญ XNUMX๋งŒ ๊ฐœ).

์ด๋Ÿฌํ•œ ์‹œ์Šคํ…œ์˜ ํ™•์žฅ์„ฑ์€ ๊ฑฐ์˜ ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ ์ œ๊ณต์—…์ฒด๊ฐ€ ์ด๋ฅผ ์ž์ฒด์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  Kubeless๋Š” Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด์—์„œ ์ž๋™์œผ๋กœ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค.

๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค:

  • ๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ด ์ ์  ๋” ์–ด๋ ค์›Œ์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ”„๋กœํŒŒ์ผ๋งํ•˜๋Š” ๋ฐ ์–ด๋ ค์›€์ด ์žˆ์Šต๋‹ˆ๋‹ค(๋กœ๊ทธ์—๋งŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ผ๋ฐ˜์ ์ธ ์˜๋ฏธ์˜ ํ”„๋กœํŒŒ์ผ๋ง์€ ๋ถˆ๊ฐ€๋Šฅํ•จ).
  • ๋ฒ„์ „ ๊ด€๋ฆฌ ์—†์Œ

์†”์งํžˆ ๋งํ•ด์„œ ๋ช‡ ๋…„ ์ „์— Serverless์— ๋Œ€ํ•ด ๋“ค์—ˆ์ง€๋งŒ ์ˆ˜๋…„ ๋™์•ˆ ์ด๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋ช…ํ™•ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. Ruslan์˜ ๋ณด๊ณ  ์ดํ›„ ์ดํ•ด๊ฐ€ ๋‚˜ํƒ€๋‚ฌ๊ณ , Backend ์„น์…˜์˜ Nikolai Sverchkov(Evil Martians)์˜ ๋ณด๊ณ  ์ดํ›„ ํ†ตํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์ปจํผ๋Ÿฐ์Šค์— ์ฐธ์„ํ•œ ๊ฒƒ์€ ํ—›๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค :)

CI๋Š” ๊ฐ€๋‚œํ•œ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด ์›น ์ŠคํŠœ๋””์˜ค๋ฅผ ์œ„ํ•ด ์ž์‹ ๋งŒ์˜ CI๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์˜ˆ์นดํ…Œ๋ฆฐ๋ถ€๋ฅดํฌ์˜ Flag ์›น ์ŠคํŠœ๋””์˜ค ์ฑ…์ž„์ž์ธ Mikhail Radionov๋Š” ์ž์ฒด ์ž‘์„ฑ CI/CD์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ์˜ ์ŠคํŠœ๋””์˜ค๋Š” "์ˆ˜๋™ CI/CD"(SSH๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์— ๋กœ๊ทธ์ธํ•˜๊ณ  git pull์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ํ•˜๋ฃจ์— 100๋ฒˆ ๋ฐ˜๋ณต)์—์„œ Jenkins์™€ ์ฝ”๋“œ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ๋ฆด๋ฆฌ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ž์ฒด ์ž‘์„ฑ ๋„๊ตฌ์ธ Pullkins๋กœ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. .

Jenkins๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์€ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๊ธฐ๋ณธ์ ์œผ๋กœ ์ถฉ๋ถ„ํ•œ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์•˜๊ณ  ์‚ฌ์šฉ์ž ์ •์˜ํ•˜๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค.

"ํ”Œ๋ž˜๊ทธ"๋Š” Laravel(PHP ํ”„๋ ˆ์ž„์›Œํฌ)์—์„œ ๊ฐœ๋ฐœ๋ฉ๋‹ˆ๋‹ค. CI/CD ์„œ๋ฒ„๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ Mikhail๊ณผ ๊ทธ์˜ ๋™๋ฃŒ๋“ค์€ Telescope์™€ Envoy๋ผ๋Š” Laravel์˜ ๋‚ด์žฅ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ ๋“ค์–ด์˜ค๋Š” ์›นํ›„ํฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ํ”„๋ŸฐํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ , ๋‹ค๋ฅธ ์„œ๋ฒ„์— ๋ฐฐํฌํ•˜๊ณ , Slack์— ๋ณด๊ณ ํ•  ์ˆ˜ ์žˆ๋Š” PHP(์ฐธ๊ณ ) ์„œ๋ฒ„๊ฐ€ ํƒ„์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ธ”๋ฃจ/๊ทธ๋ฆฐ ๋ฐฐํฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ฐœ๋ฐœ-๋‹จ๊ณ„-ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ๊ท ์ผํ•œ ์„ค์ •์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋„๋ก Docker๋กœ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์žฅ์ ์€ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋˜๊ณ  ํ™˜๊ฒฝ์„ ๊ท ์งˆํ™”ํ•˜๊ณ  ์›ํ™œํ•œ ๋ฐฐํฌ ๊ฐ€๋Šฅ์„ฑ์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ Docker๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๋ ค๋ฉด Docker๋ฅผ ๋ฐฐ์›Œ์•ผ ํ•  ํ•„์š”์„ฑ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋Š” Github์— ์žˆ์Šต๋‹ˆ๋‹ค

์„œ๋ฒ„ ๋ฆด๋ฆฌ์Šค ๋กค๋ฐฑ ํšŸ์ˆ˜๋ฅผ 99%๊นŒ์ง€ ์ค„์ธ ๋ฐฉ๋ฒ•

Devops ์„น์…˜์˜ ๋งˆ์ง€๋ง‰ ๋ณด๊ณ ์„œ๋Š” Miro.com(์ด์ „ RealTimeBoard)์˜ ์ˆ˜์„ Devops ์—”์ง€๋‹ˆ์–ด์ธ Viktor Eremchenko๊ฐ€ ์ž‘์„ฑํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Miro ํŒ€์˜ ์ฃผ๋ ฅ ์ œํ’ˆ์ธ RealTimeBoard๋Š” ๋ชจ๋†€๋ฆฌ์‹ Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋™ ์ค‘์ง€ ์‹œ๊ฐ„ ์—†์ด ์ด๋ฅผ ์ˆ˜์ง‘, ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ค์šด ์ž‘์—…์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋กค๋ฐฑํ•  ํ•„์š”๊ฐ€ ์—†๋„๋ก ํ•ด๋‹น ๋ฒ„์ „์˜ ์ฝ”๋“œ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค(๋ฌด๊ฑฐ์šด ๋‹จ์ผ์ฒด์ž„).

์ด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ณผ์ •์—์„œ Miro๋Š” ์•„ํ‚คํ…์ฒ˜ ์ž‘์—…, ์‚ฌ์šฉ๋œ ๋„๊ตฌ(Atlassian Bamboo, Ansible ๋“ฑ), ํŒ€ ๊ตฌ์กฐ ์ž‘์—…(ํ˜„์žฌ ์ „๋‹ด Devops ํŒ€ + ๋‹ค์–‘ํ•œ ํ”„๋กœํ•„์˜ ๊ฐœ๋ฐœ์ž๋กœ ๊ตฌ์„ฑ๋œ ๋ณ„๋„์˜ Scrum ํŒ€).

๊ทธ ๊ธธ์€ ์–ด๋ ต๊ณ  ํ—˜๋‚œํ•œ ๊ฒƒ์œผ๋กœ ํŒ๋ช…๋˜์—ˆ๊ณ  Victor๋Š” ๊ฑฐ๊ธฐ์„œ ๋๋‚˜์ง€ ์•Š์€ ์ถ•์ ๋œ ๊ณ ํ†ต๊ณผ ๋‚™์ฒœ์ฃผ์˜๋ฅผ ๊ณต์œ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋คํ”„ ์ปจํผ๋Ÿฐ์Šค | grep '๋ฐฑ์—”๋“œ|devops'
์งˆ๋ฌธ์„ ํ•ด์„œ ์ฑ…์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค

๋ฐฑ์—”๋“œ ์„น์…˜

์ €๋Š” Nikolay Sverchkov(Evil Martians), ์„œ๋ฒ„๋ฆฌ์Šค์— ๊ด€ํ•œ ๋ณด๊ณ ์„œ, ๊ทธ๋ฆฌ๊ณ  ์›๊ฒฉ ์ธก์ •์— ๊ด€ํ•œ Grigory Koshelev(Kontur ํšŒ์‚ฌ)์˜ 2๊ฐœ ๋ณด๊ณ ์„œ์— ์ฐธ์„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹จ์ˆœํ•œ ํ•„์‚ฌ์ž๋ฅผ ์œ„ํ•œ ์„œ๋ฒ„๋ฆฌ์Šค

Ruslan Sirkin์ด Serverless๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ด์•ผ๊ธฐํ–ˆ๋‹ค๋ฉด Nikolay๋Š” Serverless๋ฅผ ์‚ฌ์šฉํ•œ ๊ฐ„๋‹จํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ณด์—ฌ์ฃผ๊ณ , AWS Lambda์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋น„์šฉ๊ณผ ์†๋„์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์„ธ๋ถ€ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค.

ํฅ๋ฏธ๋กœ์šด ์„ธ๋ถ€์ •๋ณด: ์ตœ์†Œ ์œ ๋ฃŒ ์š”์†Œ๋Š” 128Mb์˜ ๋ฉ”๋ชจ๋ฆฌ์™€ 100ms์˜ CPU์ด๋ฉฐ ๋น„์šฉ์€ $0,000000208์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ๋งค์›” 1๋งŒ ๊ฑด์˜ ์š”์ฒญ์ด ๋ฌด๋ฃŒ์ž…๋‹ˆ๋‹ค.

Nikolai์˜ ์ผ๋ถ€ ๊ธฐ๋Šฅ์€ ์ข…์ข… 100ms ์ œํ•œ์„ ์ดˆ๊ณผํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—(์ฃผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ Ruby๋กœ ์ž‘์„ฑ๋จ) Go๋กœ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๋ฉด ์ƒ๋‹นํ•œ ๋น„์šฉ ์ ˆ๊ฐ ํšจ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

Vostok Hercules โ€” ์›๊ฒฉ ์ธก์ •์„ ๋‹ค์‹œ ํ•œ๋ฒˆ ํ›Œ๋ฅญํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ๋ณด์„ธ์š”!

์›๊ฒฉ ์ธก์ •์— ๊ด€ํ•œ Grigory Koshelev(Kontur ํšŒ์‚ฌ)์˜ ๋ฐฑ์—”๋“œ ์„น์…˜์— ๋Œ€ํ•œ ์ตœ์‹  ๋ณด๊ณ ์„œ์ž…๋‹ˆ๋‹ค. ์›๊ฒฉ ์ธก์ •์€ ๋กœ๊ทธ, ๋ฉ”ํŠธ๋ฆญ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ถ”์ ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ์œ„ํ•ด Contour๋Š” Github์— ๊ฒŒ์‹œ๋œ ์ž์ฒด ์ž‘์„ฑ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ณด๊ณ ์„œ์˜ ๋„๊ตฌ - Hercules, github.com/vostok/hercules๋Š” ์›๊ฒฉ ์ธก์ • ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

Devops ์„น์…˜์— ์žˆ๋Š” Vladimir Lila์˜ ๋ณด๊ณ ์„œ์—์„œ๋Š” Elasticsearch์˜ ๋กœ๊ทธ ์ €์žฅ ๋ฐ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•ด ๋…ผ์˜ํ–ˆ์ง€๋งŒ, ์—ฌ์ „ํžˆ ์ˆ˜์ฒœ ๊ฐœ์˜ ์žฅ์น˜์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋กœ๊ทธ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์ž‘์—…์ด ๋‚จ์•„ ์žˆ์œผ๋ฉฐ Vostok Hercules์™€ ๊ฐ™์€ ๋„๊ตฌ๊ฐ€ ์ด๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

ํšŒ๋กœ๋Š” RabbitMQ์—์„œ Apache Kafka๊นŒ์ง€ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์•Œ๋ ค์ง„ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ž์ง€๋งŒ ๋ชจ๋“  ๊ฒƒ์ด ๊ทธ๋ ‡๊ฒŒ ๋‹จ์ˆœํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.) ๊ทธ๋“ค์€ Zookeeper, Cassandra ๋ฐ Graphite๋ฅผ ํšŒ๋กœ์— ์ถ”๊ฐ€ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด ๋ณด๊ณ ์„œ(๋‚ด ํ”„๋กœํ•„์ด ์•„๋‹˜)์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์™„์ „ํžˆ ๊ณต๊ฐœํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ด€์‹ฌ์ด ์žˆ์œผ์‹œ๋ฉด ์ปจํผ๋Ÿฐ์Šค ์›น ์‚ฌ์ดํŠธ์—์„œ ์Šฌ๋ผ์ด๋“œ์™€ ๋น„๋””์˜ค๋ฅผ ๊ธฐ๋‹ค๋ฆฌ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์ปจํผ๋Ÿฐ์Šค์™€ ๋น„๊ตํ•˜๋ฉด ์–ด๋–ค๊ฐ€์š”?

๋ชจ์Šคํฌ๋ฐ”์™€ ์ƒํŠธํŽ˜ํ…Œ๋ฅด๋ถ€๋ฅดํฌ์˜ ์ปจํผ๋Ÿฐ์Šค์™€ ๋น„๊ตํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ ์šฐ๋ž„ ์ง€์—ญ์˜ ๋‹ค๋ฅธ ํ–‰์‚ฌ์™€ ์‚ฌ๋งˆ๋ผ์˜ 404ํŽ˜์ŠคํŠธ์™€ ๋น„๊ตํ•  ์ˆ˜๋Š” ์žˆ์Šต๋‹ˆ๋‹ค.

DAMP๋Š” 8๊ฐœ์˜ ์„น์…˜์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ฐœ์ตœ๋˜๋Š”๋ฐ ์ด๋Š” ์šฐ๋ž„ ํšŒ์˜์˜ ๊ธฐ๋ก์ž…๋‹ˆ๋‹ค. ๋งค์šฐ ํฐ ๊ณผํ•™ ๋ฐ ๊ฒฝ์˜ ์„น์…˜๋„ ์ด๋ก€์ ์ž…๋‹ˆ๋‹ค. ์˜ˆ์นดํ…Œ๋ฆฐ๋ถ€๋ฅดํฌ์˜ ์ฒญ์ค‘์€ ๋งค์šฐ ์ฒด๊ณ„์ ์ž…๋‹ˆ๋‹ค. ์ด ๋„์‹œ์—๋Š” Yandex, Kontur, Tinkoff๋ฅผ ์œ„ํ•œ ๋Œ€๊ทœ๋ชจ ๊ฐœ๋ฐœ ๋ถ€์„œ๊ฐ€ ์žˆ์œผ๋ฉฐ ์ด๋Š” ๋ณด๊ณ ์„œ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ํฅ๋ฏธ๋กœ์šด ์ ์€ ๋งŽ์€ ํšŒ์‚ฌ๊ฐ€ ์ปจํผ๋Ÿฐ์Šค์— ๋™์‹œ์— 3~4๋ช…์˜ ์—ฐ์‚ฌ๋ฅผ ๊ฐ–๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(Kontur, Evil Martians, Tinkoff์˜ ๊ฒฝ์šฐ). ๊ทธ๋“ค ์ค‘ ๋‹ค์ˆ˜๋Š” ์Šคํฐ์„œ์˜€์ง€๋งŒ ๋ณด๊ณ ์„œ๋Š” ๋‹ค๋ฅธ ๋ณด๊ณ ์„œ์™€ ์ƒ๋‹นํžˆ ์œ ์‚ฌํ•˜๋ฉฐ ๊ด‘๊ณ  ๋ณด๊ณ ์„œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

๊ฐˆ ๊ฒƒ์ธ๊ฐ€ ๋ง ๊ฒƒ์ธ๊ฐ€? Urals ๋˜๋Š” ์ธ๊ทผ ์ง€์—ญ์— ์‚ด๊ณ  ์žˆ๋‹ค๋ฉด ๊ธฐํšŒ๊ฐ€ ์žˆ๊ณ  ์ฃผ์ œ์— ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ์žฅ๊ฑฐ๋ฆฌ ์—ฌํ–‰์„ ์ƒ๊ฐํ•˜์‹ ๋‹ค๋ฉด ์ง€๋‚œ ๋ช‡ ๋…„๊ฐ„์˜ ๋ฆฌํฌํŠธ์™€ ์˜์ƒ ๋ฆฌํฌํŠธ์˜ ์ฃผ์ œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. www.youtube.com/user/videoitpeople/videos ๊ทธ๋ฆฌ๊ณ  ๊ฒฐ์ •์„ ๋‚ด๋ ธ์Šต๋‹ˆ๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ ์ง€์—ญ ํšŒ์˜์˜ ๋˜ ๋‹ค๋ฅธ ์žฅ์ ์€ ๋ณด๊ณ  ํ›„ ๋ฐœํ‘œ์ž์™€ ์˜์‚ฌ์†Œํ†ต์ด ์‰ฝ๊ณ  ๊ทธ๋Ÿฌํ•œ ์˜์‚ฌ์†Œํ†ต์— ๋Œ€ํ•œ ์ง€์›์ž๊ฐ€ ์ ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋คํ”„ ์ปจํผ๋Ÿฐ์Šค | grep '๋ฐฑ์—”๋“œ|devops'

Dump์™€ Ekaterinburg์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! )

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€