์šฐ๋ฆฌ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ๋Œ€ํ•ด ๋ฌด์—‡์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š”! ์ œ ์ด๋ฆ„์€ Vadim Madison์ด๊ณ  Avito ์‹œ์Šคํ…œ ํ”Œ๋žซํผ ๊ฐœ๋ฐœ์„ ์ด๋Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํšŒ์‚ฌ ๋‚ด์—์„œ ๋ชจ๋†€๋ฆฌ์‹ ์•„ํ‚คํ…์ฒ˜์—์„œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋กœ ์ „ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์—ฌ๋Ÿฌ ๋ฒˆ ์–ธ๊ธ‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜๊ณ  ๊ทธ ์†์—์„œ ๊ธธ์„ ์žƒ์ง€ ์•Š๋„๋ก ์ธํ”„๋ผ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ณ€ํ™”์‹œ์ผฐ๋Š”์ง€ ๊ณต์œ ํ•  ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ PaaS๊ฐ€ ์–ด๋–ป๊ฒŒ ๋„์›€์ด ๋˜๋Š”์ง€, ๋ฐฐํฌ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์ƒ์„ฑ์„ ํด๋ฆญ ํ•œ ๋ฒˆ์œผ๋กœ ์ค„์ด๋Š” ๋ฐฉ๋ฒ•์„ ์ฝ์–ด๋ณด์„ธ์š”. ์•„๋ž˜์— ์ œ๊ฐ€ ์“ด ๋ชจ๋“  ๋‚ด์šฉ์ด Avito์—์„œ ์™„์ „ํžˆ ๊ตฌํ˜„๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ฉฐ, ๊ทธ ์ค‘ ์ผ๋ถ€๋Š” ํ”Œ๋žซํผ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

(๊ทธ๋ฆฌ๊ณ  ์ด ๊ธฐ์‚ฌ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์—์„œ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜ ์ „๋ฌธ๊ฐ€ Chris Richardson์˜ XNUMX์ผ๊ฐ„ ์„ธ๋ฏธ๋‚˜์— ์ฐธ์„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.)

์šฐ๋ฆฌ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ๋Œ€ํ•ด ๋ฌด์—‡์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์šฐ๋ฆฌ๊ฐ€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ๋„๋‹ฌํ•œ ๋ฐฉ๋ฒ•

Avito๋Š” ์„ธ๊ณ„์—์„œ ๊ฐ€์žฅ ํฐ ๊ธฐ๋ฐ€ ์‚ฌ์ดํŠธ ์ค‘ ํ•˜๋‚˜์ด๋ฉฐ ๋งค์ผ 15๋งŒ ๊ฐœ ์ด์ƒ์˜ ์ƒˆ๋กœ์šด ๊ด‘๊ณ ๊ฐ€ ๊ฒŒ์‹œ๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๋ฐฑ์—”๋“œ๋Š” ์ดˆ๋‹น 20๋งŒ ๊ฐœ๊ฐ€ ๋„˜๋Š” ์š”์ฒญ์„ ๋ฐ›์•„๋“ค์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ์ˆ˜๋ฐฑ ๊ฐœ์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ˆ˜๋…„ ๋™์•ˆ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌ์ถ•ํ•ด ์™”์Šต๋‹ˆ๋‹ค. ์ •ํ™•ํžˆ ์–ด๋–ป๊ฒŒ - ์šฐ๋ฆฌ ๋™๋ฃŒ๋“ค์ด ์ž์„ธํžˆ ๋งํ•œ RIT++ 2017 ์„น์…˜์—์„œ. CodeFest 2017์—์„œ(์ฐธ์กฐ: ๋น„๋””์˜ค), Sergey Orlov์™€ Mikhail Prokopchuk์€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋กœ์˜ ์ „ํ™˜์ด ํ•„์š”ํ•œ ์ด์œ ์™€ ์—ฌ๊ธฐ์—์„œ Kubernetes์˜ ์—ญํ• ์„ ์ž์„ธํžˆ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์šฐ๋ฆฌ๋Š” ๊ทธ๋Ÿฌํ•œ ์•„ํ‚คํ…์ฒ˜์— ๋‚ด์žฌ๋œ ํ™•์žฅ ๋น„์šฉ์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์„ ์„ ๋‹คํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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

์šฐ๋ฆฌ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ๋Œ€ํ•ด ๋ฌด์—‡์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์ด์ œ PaaS CLI ์œ ํ‹ธ๋ฆฌํ‹ฐ์—์„œ ํ•˜๋‚˜์˜ ๋ช…๋ น์œผ๋กœ ์ƒˆ ์„œ๋น„์Šค๊ฐ€ ์ƒ์„ฑ๋˜๊ณ , ๋‘ ๊ฐœ์˜ ๋ช…๋ น์œผ๋กœ ์ƒˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ถ”๊ฐ€๋˜์–ด Stage์— ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ๋Œ€ํ•ด ๋ฌด์—‡์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

'๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋‹จํŽธํ™”' ์‹œ๋Œ€๋ฅผ ๊ทน๋ณตํ•˜๋Š” ๋ฐฉ๋ฒ•

๋ชจ๋†€๋ฆฌ์‹ ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” ์ œํ’ˆ ๋ณ€๊ฒฝ์˜ ์ผ๊ด€์„ฑ์„ ์œ„ํ•ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์ด์›ƒ์—์„œ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ํŒŒ์•…ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ž‘์—…ํ•  ๋•Œ ์„œ๋น„์Šค ์ปจํ…์ŠคํŠธ๋Š” ๋” ์ด์ƒ ์„œ๋กœ ์˜์กดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๊ฐ€ ํšจ๊ณผ์ ์ด๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋งŽ์€ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌ์ถ•ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

โ€ข ๋กœ๊น…;
โ€ข ์š”์ฒญ ์ถ”์ (Jaeger);
โ€ข ์˜ค๋ฅ˜ ์ง‘๊ณ„(Sentry);
โ€ข Kubernetes์˜ ์ƒํƒœ, ๋ฉ”์‹œ์ง€, ์ด๋ฒคํŠธ(์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ);
โ€ข ๋ ˆ์ด์Šค ์ œํ•œ/์„œํ‚ท ๋ธŒ๋ ˆ์ด์ปค(Hystrix๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ);
โ€ข ์„œ๋น„์Šค ์—ฐ๊ฒฐ ์ œ์–ด(Netramesh ์‚ฌ์šฉ)
โ€ข ๋ชจ๋‹ˆํ„ฐ๋ง(Grafana);
โ€ข ์กฐ๋ฆฝ(TeamCity);
โ€ข ํ†ต์‹  ๋ฐ ์•Œ๋ฆผ(Slack, ์ด๋ฉ”์ผ);
โ€ข ์ž‘์—… ์ถ”์ ; (์ง€๋ผ)
โ€ข ๋ฌธ์„œ ์ค€๋น„.

์‹œ์Šคํ…œ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ์žƒ์ง€ ์•Š๊ณ  ํ™•์žฅ์— ๋”ฐ๋ฅธ ํšจ์œจ์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” Avito์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ตฌ์„ฑ์„ ์žฌ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•

๋‹ค์Œ์€ ๋งŽ์€ Avito ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐ„์— ํ†ตํ•ฉ๋œ "๋‹น์‚ฌ์ž ์ •์ฑ…"์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

  • ์ธํ”„๋ผ๋ฅผ ์—ฌ๋Ÿฌ ๊ณ„์ธต์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ;
  • PaaS(Platform as a Service) ๊ฐœ๋…;
  • ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์—์„œ ์ผ์–ด๋‚˜๋Š” ๋ชจ๋“  ์ผ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.

์ธํ”„๋ผ ์ถ”์ƒํ™” ๊ณ„์ธต์—๋Š” ์„ธ ๊ฐœ์˜ ๊ณ„์ธต์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์œ„์—์„œ ์•„๋ž˜๋กœ ๊ฐ€์ž.

A. ์ƒ๋‹จ - ์„œ๋น„์Šค ๋ฉ”์‹œ. ์ฒ˜์Œ์— Istio๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์•˜์ง€๋งŒ ๋„ˆ๋ฌด ๋งŽ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณผ๋ฅจ์— ๋น„ํ•ด ๋น„์šฉ์ด ๋งŽ์ด ๋“œ๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฑด์ถ• ํŒ€ Alexander Lukyanchenko์˜ ์ˆ˜์„ ์—”์ง€๋‹ˆ์–ด๋Š” ์ž์‹ ๋งŒ์˜ ์†”๋ฃจ์…˜์„ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ๋„คํŠธ๋ผ๋ฉ”์‹œ (์˜คํ”ˆ ์†Œ์Šค์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ) ํ˜„์žฌ ํ”„๋กœ๋•์…˜์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ Istio๋ณด๋‹ค ๋ช‡ ๋ฐฐ ๋” ์ ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์†Œ๋น„ํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋Ÿฌ๋‚˜ Istio๊ฐ€ ์ž๋ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค).
B. ์ค‘๊ฐ„ - Kubernetes. ์šฐ๋ฆฌ๋Š” ์—ฌ๊ธฐ์— ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•˜๊ณ  ์šด์˜ํ•ฉ๋‹ˆ๋‹ค.
C. ํ•˜๋‹จ - ๋ฒ ์–ด๋ฉ”ํƒˆ. ์šฐ๋ฆฌ๋Š” ํด๋ผ์šฐ๋“œ๋‚˜ OpenStack ๊ฐ™์€ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ „์ ์œผ๋กœ ๋ฒ ์–ด๋ฉ”ํƒˆ์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ๋ ˆ์ด์–ด๋Š” PaaS๋กœ ๊ฒฐํ•ฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ํ”Œ๋žซํผ์€ ์„ธ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

I. ๋ฐœ์ „๊ธฐ, CLI ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ํ†ตํ•ด ์ œ์–ด๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ตœ์†Œํ•œ์˜ ๋…ธ๋ ฅ์œผ๋กœ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ๊ฒƒ์€ ๋ฐ”๋กœ ๊ทธ๋…€์ž…๋‹ˆ๋‹ค.

II. ํ†ตํ•ฉ ์ˆ˜์ง‘๊ธฐ ๊ณตํ†ต ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ๋„๊ตฌ๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

III. ์ €์žฅ. ์ค‘์š”ํ•œ ์ž‘์—…์— ๋Œ€ํ•œ ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ์ž๋™์œผ๋กœ ์„ค์ •ํ•˜๋Š” ์Šค์ผ€์ค„๋Ÿฌ์™€ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‹œ์Šคํ…œ ๋•๋ถ„์— ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ Jira์—์„œ ์ž‘์—… ์„ค์ •์„ ์žŠ์–ด๋ฒ„๋ ธ๋‹ค๊ณ  ํ•ด์„œ ๋‹จ ํ•˜๋‚˜์˜ ์ž‘์—…๋„ ๋†“์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด Atlas๋ผ๋Š” ๋‚ด๋ถ€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ๋Œ€ํ•ด ๋ฌด์—‡์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

Avito์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ตฌํ˜„์€ ๊ฐœ๋ฐœ ๋ฐ ๋ฆด๋ฆฌ์Šค์˜ ๊ฐ ๋‹จ๊ณ„์—์„œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ œ์–ด๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๋Š” ๋‹จ์ผ ์ฒด๊ณ„์— ๋”ฐ๋ผ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

ํ‘œ์ค€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐœ๋ฐœ ํŒŒ์ดํ”„๋ผ์ธ์€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋‚˜์š”?

์ผ๋ฐ˜์ ์œผ๋กœ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์ƒ์„ฑ ์ฒด์ธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

CLI ํ‘ธ์‹œ โ†’ ์ง€์†์ ์ธ ํ†ตํ•ฉ โ†’ ๊ตฝ๊ธฐ โ†’ ๋ฐฐํฌ โ†’ ์ธ๊ณต ํ…Œ์ŠคํŠธ โ†’ ์นด๋‚˜๋ฆฌ์•„ ํ…Œ์ŠคํŠธ โ†’ ์Šคํ€ด์ฆˆ ํ…Œ์ŠคํŠธ โ†’ ์ƒ์‚ฐ โ†’ ์œ ์ง€ ๊ด€๋ฆฌ.

์ •ํ™•ํžˆ ์ด ์ˆœ์„œ๋Œ€๋กœ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

CLI ํ‘ธ์‹œ

โ€ข ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์ƒ์„ฑ.
์šฐ๋ฆฌ๋Š” ๋ชจ๋“  ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์ˆ˜ํ–‰ ๋ฐฉ๋ฒ•์„ ๊ฐ€๋ฅด์น˜๊ธฐ ์œ„ํ•ด ์˜ค๋žซ๋™์•ˆ ๋…ธ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” Confluence์— ์ž์„ธํ•œ ์ง€์นจ์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ํฌํ•จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ณ„ํš์ด ๋ณ€๊ฒฝ๋˜๊ณ  ๋ณด์™„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ ์—ฌ์ • ์ดˆ๊ธฐ์— ๋ณ‘๋ชฉ ํ˜„์ƒ์ด ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ํ›จ์”ฌ ๋” ๋งŽ์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ๊ณ  ์—ฌ์ „ํžˆ ์ƒ์„ฑ ์ค‘์— ๋ฌธ์ œ๊ฐ€ ์ž์ฃผ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ ์šฐ๋ฆฌ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๊ธฐ๋ณธ ๋‹จ๊ณ„๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ๊ฐ„๋‹จํ•œ CLI ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ด๋Š” ์ฒซ ๋ฒˆ์งธ git push๋ฅผ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋…€๊ฐ€ ์ •ํ™•ํžˆ ํ•˜๋Š” ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

โ€” "๋งˆ๋ฒ•์‚ฌ" ๋ชจ๋“œ์—์„œ ๋‹จ๊ณ„๋ณ„๋กœ ํ…œํ”Œ๋ฆฟ์— ๋”ฐ๋ผ ์„œ๋น„์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. Avito ๋ฐฑ์—”๋“œ์—๋Š” PHP, Golang ๋ฐ Python๊ณผ ๊ฐ™์€ ์ฃผ์š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋Œ€ํ•œ ํ…œํ”Œ๋ฆฟ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

- ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ๋ช…๋ น์œผ๋กœ ํŠน์ • ์‹œ์Šคํ…œ์— ๋กœ์ปฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. - Minikube๊ฐ€ ์‹œ์ž‘๋˜๊ณ  Helm ์ฐจํŠธ๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜์–ด ๋กœ์ปฌ kubernetes์—์„œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

โ€” ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ๋กœ์ปฌ, ์Šคํ…Œ์ด์ง€, ํ”„๋กœ๋•์…˜ ๋“ฑ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•ด IP, ๋กœ๊ทธ์ธ ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•Œ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋‚ด๊ฒฐํ•จ์„ฑ ๊ตฌ์„ฑ๊ณผ ๊ท ํ˜• ์กฐ์ •์„ ํ†ตํ•ด ์ฆ‰์‹œ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

โ€” ๋ผ์ด๋ธŒ ์–ด์…ˆ๋ธ”๋ฆฌ ์ž์ฒด๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž์‹ ์˜ IDE๋ฅผ ํ†ตํ•ด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผ ์ˆ˜์ •ํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ™•์ธํ•˜๊ณ  ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(Golang์šฉ)์„ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. PHP์˜ ๊ฒฝ์šฐ ํ๋ธŒ ๋‚ด๋ถ€์— ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ์‹ค์‹œ๊ฐ„ ๋‹ค์‹œ ๋กœ๋“œ๊ฐ€ "์ž๋™์œผ๋กœ" ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

โ€” ์ž๋™ ํ…Œ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ณต๋ฐฑ ํ˜•ํƒœ์ด์ง€๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ์— ๋งค์šฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

โ€ข ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋ฐฐํฌ.

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์€ ์šฐ๋ฆฌ์—๊ฒŒ ์•ฝ๊ฐ„์˜ ๊ท€์ฐฎ์€ ์ผ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.

I. ๋„์ปคํŒŒ์ผ.

II. ๊ตฌ์„ฑ.
III. Helm ์ฐจํŠธ๋Š” ๊ทธ ์ž์ฒด๋กœ ๋ณต์žกํ•˜๋ฉฐ ๋‹ค์Œ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

- ์ฐจํŠธ ์ž์ฒด
โ€” ํ…œํ”Œ๋ฆฟ;
โ€” ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์„ ๊ณ ๋ คํ•œ ํŠน์ • ๊ฐ’.

Kubernetes ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ์žฌ์ž‘์—…ํ•˜๋Š” ์ˆ˜๊ณ ๋ฅผ ๋œ์–ด ์ด์ œ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋ฐฐํฌ๋ฅผ ์ตœ๋Œ€ํ•œ ๋‹จ์ˆœํ™”ํ–ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์ œ๋ถ€ํ„ฐ Dockerfile์ด ์žˆ๊ณ  ๊ฐœ๋ฐœ์ž๋Š” ํ•˜๋‚˜์˜ ์งง์€ app.toml ํŒŒ์ผ์— ์ „์ฒด ๊ตฌ์„ฑ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ๋Œ€ํ•ด ๋ฌด์—‡์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

๋„ค, app.toml ์ž์ฒด์—์„œ๋Š” ์ž ์‹œ ๋™์•ˆ ํ•  ์ผ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋ฐœ์ƒ์‹œํ‚ฌ ์„œ๋น„์Šค ๋ณต์‚ฌ๋ณธ์˜ ์œ„์น˜์™€ ์ˆ˜(๊ฐœ๋ฐœ ์„œ๋ฒ„, ์ค€๋น„ ๋‹จ๊ณ„, ํ”„๋กœ๋•์…˜ ๋‹จ๊ณ„)๋ฅผ ์ง€์ •ํ•˜๊ณ  ํ•ด๋‹น ์ข…์†์„ฑ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. [engine] ๋ธ”๋ก์—์„œ ์ค„ ํฌ๊ธฐ = "small"์„ ํ™•์ธํ•˜์„ธ์š”. ์ด๋Š” Kubernetes๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค์— ํ• ๋‹น๋˜๋Š” ํ•œ๋„์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ตฌ์„ฑ์— ๋”ฐ๋ผ ํ•„์š”ํ•œ ๋ชจ๋“  Helm ์ฐจํŠธ๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

โ€ข ๊ธฐ๋ณธ ๊ฒ€์ฆ. ์ด๋Ÿฌํ•œ ๊ฒ€์‚ฌ๋„ ์ž๋™ํ™”๋ฉ๋‹ˆ๋‹ค.
์ถ”์ ํ•ด์•ผ ํ•  ์‚ฌํ•ญ:
โ€” Dockerfile์ด ์žˆ์Šต๋‹ˆ๊นŒ?
โ€” app.toml์ด ์žˆ์Šต๋‹ˆ๊นŒ?
โ€” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฌธ์„œ๊ฐ€ ์žˆ๋‚˜์š”?
โ€” ์ข…์†์„ฑ์ด ์˜ฌ๋ฐ”๋ฅธ๊ฐ€์š”?
โ€” ๊ฒฝ๊ณ  ๊ทœ์น™์ด ์„ค์ •๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€.
๋งˆ์ง€๋ง‰์œผ๋กœ, ์„œ๋น„์Šค ์†Œ์œ ์ž๋Š” ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ œํ’ˆ ์ธก์ •ํ•ญ๋ชฉ์„ ์ง์ ‘ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

โ€ข ๋ฌธ์„œ ์ค€๋น„.
์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์˜์—ญ์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋ช…๋ฐฑํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ๋™์‹œ์— "์ž์ฃผ ์žŠํ˜€์ง€๋Š”" ๊ธฐ๋ก์ด๊ธฐ๋„ ํ•˜๋ฏ€๋กœ ์ฒด์ธ์˜ ์ทจ์•ฝํ•œ ์—ฐ๊ฒฐ๊ณ ๋ฆฌ์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๋ฌธ์„œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค์Œ ๋ธ”๋ก์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

I. ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์„ค๋ช…. ๋ง ๊ทธ๋Œ€๋กœ ์ด ๊ธฐ๋Šฅ์ด ๋ฌด์—‡์ธ์ง€, ์™œ ํ•„์š”ํ•œ์ง€์— ๋Œ€ํ•œ ๋ช‡ ๋ฌธ์žฅ์ž…๋‹ˆ๋‹ค.

II. ์•„ํ‚คํ…์ฒ˜ ๋‹ค์ด์–ด๊ทธ๋žจ ๋งํฌ. ์˜ˆ๋ฅผ ๋“ค์–ด ์บ์‹ฑ์„ ์œ„ํ•ด Redis๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€, ์ง€์† ๋ชจ๋“œ์—์„œ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋กœ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๋“ฑ์„ ํ•œ๋ˆˆ์— ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ Avito์—์„œ๋Š” Confluence์— ๋Œ€ํ•œ ๋งํฌ์ž…๋‹ˆ๋‹ค.

III. ๋Ÿฐ๋ถ. ์„œ๋น„์Šค ์‹œ์ž‘๊ณผ ์„œ๋น„์Šค ์ฒ˜๋ฆฌ์˜ ๋ณต์žก์„ฑ์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์•ˆ๋‚ด์„œ์ž…๋‹ˆ๋‹ค.

IV. ์ž์ฃผํ•˜๋Š” ์งˆ๋ฌธ, ๋™๋ฃŒ๊ฐ€ ์„œ๋น„์Šค ์ž‘์—… ์‹œ ์ง๋ฉดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋ฅผ ์˜ˆ์ƒํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

V. API ์—”๋“œํฌ์ธํŠธ์— ๋Œ€ํ•œ ์„ค๋ช…. ๊ฐ‘์ž๊ธฐ ๋ชฉ์ ์ง€๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ท€ํ•˜์™€ ๊ด€๋ จ๋œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ๋™๋ฃŒ๊ฐ€ ๊ทธ์— ๋Œ€ํ•œ ๋น„์šฉ์„ ๊ฑฐ์˜ ํ™•์‹คํžˆ ์ง€๋ถˆํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์ œ ์ด๋ฅผ ์œ„ํ•ด Swagger์™€ Brief๋ผ๋Š” ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

XNUMX. ๋ผ๋ฒจ. ๋˜๋Š” ํ•ด๋‹น ์„œ๋น„์Šค๊ฐ€ ์†ํ•œ ํšŒ์‚ฌ์˜ ์ œํ’ˆ, ๊ธฐ๋Šฅ ๋˜๋Š” ๊ตฌ์กฐ์  ๋ถ€์„œ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ํ‘œ์‹์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋™๋ฃŒ๊ฐ€ ์ผ์ฃผ์ผ ์ „์— ๋™์ผํ•œ ์‚ฌ์—…๋ถ€์— ์ถœ์‹œํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ฑฐํ•˜๊ณ  ์žˆ๋Š”์ง€ ์—ฌ๋ถ€ ๋“ฑ์„ ๋น ๋ฅด๊ฒŒ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

โ…ฆ. ์„œ๋น„์Šค ์†Œ์œ ์ž ๋˜๋Š” ์†Œ์œ ์ž. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ PaaS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž๋™์œผ๋กœ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์•ˆ์ „์„ ์œ„ํ•ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์ˆ˜๋™์œผ๋กœ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ, ์ฝ”๋“œ ๊ฒ€ํ† ์™€ ์œ ์‚ฌํ•˜๊ฒŒ ๋ฌธ์„œ๋ฅผ ๊ฒ€ํ† ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ง€์†์ ์ธ ํ†ตํ•ฉ

  • ์ €์žฅ์†Œ๋ฅผ ์ค€๋น„ ์ค‘์ž…๋‹ˆ๋‹ค.
  • TeamCity์—์„œ ํŒŒ์ดํ”„๋ผ์ธ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ๊ถŒํ•œ ์„ค์ •.
  • ์„œ๋น„์Šค ์†Œ์œ ์ž๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” PaaS์˜ ์ˆ˜๋™ ํ‘œ์‹œ์™€ ์ตœ์†Œํ•œ์˜ ์ž๋™ํ™”๋ผ๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ฒด๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€์›์„ ์œ„ํ•ด ์„œ๋น„์Šค๊ฐ€ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ ํŒ€์œผ๋กœ ์ด์ „๋˜๊ฑฐ๋‚˜, ์˜ˆ๋ฅผ ๋“ค์–ด ์„œ๋น„์Šค ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ทธ๋งŒ๋‘” ๊ฒฝ์šฐ ์™„์ „ ์ž๋™ ์ฒด๊ณ„๋Š” ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.
  • Atlas์— ์„œ๋น„์Šค ๋“ฑ๋ก (์œ„ ์ฐธ์กฐ). ๋ชจ๋“  ์†Œ์œ ์ž์™€ ์ข…์†์„ฑ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
  • ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ํ™•์ธ ์ค‘์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ ์ค‘ ์ž ์žฌ์ ์œผ๋กœ ์œ„ํ—˜ํ•œ ๊ฒƒ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ทธ ์ค‘ ํ•˜๋‚˜์—์„œ ๋‹ค๋ฅธ ์„œ๋น„์Šค ๋ฒ„์ „ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ํ˜ธํ™˜์„ฑ์„ ๊นจ๋œจ๋ฆด ์ˆ˜ ์žˆ๋Š” ๋ณ€๊ฒฝ ํ…Œ์ด๋ธ”์ด๋‚˜ ๊ธฐํƒ€ ํ•ญ๋ชฉ์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์ˆ˜ํ–‰๋˜์ง€ ์•Š๊ณ  ๊ตฌ๋…์— ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค. PaaS๋Š” ์‚ฌ์šฉ์ด ์•ˆ์ „ํ•  ๋•Œ ์„œ๋น„์Šค ์†Œ์œ ์ž์—๊ฒŒ ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋นต ๊ตฝ๊ธฐ

๋‹ค์Œ ๋‹จ๊ณ„๋Š” ๋ฐฐํฌ ์ „ ์„œ๋น„์Šค ํŒจํ‚ค์ง•์ž…๋‹ˆ๋‹ค.

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค. ๊ณ ์ „์— ๋”ฐ๋ฅด๋ฉด - Docker ์ด๋ฏธ์ง€์—์„œ.
  • ์„œ๋น„์Šค ์ž์ฒด ๋ฐ ๊ด€๋ จ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ Helm ์ฐจํŠธ ์ƒ์„ฑ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ์บ์‹œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. CLI ํ‘ธ์‹œ ๋‹จ๊ณ„์—์„œ ์ƒ์„ฑ๋œ app.toml ๊ตฌ์„ฑ์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
  • ๊ด€๋ฆฌ์ž๊ฐ€ ํฌํŠธ๋ฅผ ์—ด ์ˆ˜ ์žˆ๋Š” ํ‹ฐ์ผ“ ๋งŒ๋“ค๊ธฐ (ํ•„์š”ํ•œ ๊ฒฝ์šฐ).
  • ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์‹คํ–‰ ๋ฐ ์ฝ”๋“œ ์ ์šฉ ๋ฒ”์œ„ ๊ณ„์‚ฐ. ์ฝ”๋“œ ์ ์šฉ ๋ฒ”์œ„๊ฐ€ ์ง€์ •๋œ ์ž„๊ณ„๊ฐ’๋ณด๋‹ค ๋‚ฎ์œผ๋ฉด ์„œ๋น„์Šค๊ฐ€ ๋” ์ด์ƒ ๋ฐฐํฌ๋˜์ง€ ์•Š์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•œ ์ˆ˜์ค€์— ๋„๋‹ฌํ•˜๋ฉด ์„œ๋น„์Šค์— "๋น„๊ด€์ " ๊ณ„์ˆ˜๊ฐ€ ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋„ ์ง€ํ‘œ๊ฐ€ ๊ฐœ์„ ๋˜์ง€ ์•Š์œผ๋ฉด ๊ฐœ๋ฐœ์ž๋Š” ํ…Œ์ŠคํŠธ ์ธก๋ฉด์—์„œ ์ง„์ „์ด ์—†๋‹ค๋Š” ์•Œ๋ฆผ์„ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค( ์ด์— ๋Œ€ํ•ด ๋ญ”๊ฐ€ ์กฐ์น˜๋ฅผ ์ทจํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค).
  • ๋ฉ”๋ชจ๋ฆฌ ๋ฐ CPU ์ œํ•œ ๊ณ ๋ ค. ์šฐ๋ฆฌ๋Š” ์ฃผ๋กœ Golang์œผ๋กœ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์ž‘์„ฑํ•˜๊ณ  Kubernetes์—์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Golang ์–ธ์–ด์˜ ํŠน์„ฑ๊ณผ ๊ด€๋ จ๋œ ํ•œ ๊ฐ€์ง€ ๋ฏธ๋ฌ˜ํ•จ: ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹œ์ž‘ ์‹œ GOMAXPROCS ๋ณ€์ˆ˜๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์„ค์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์‹œ์Šคํ…œ์˜ ๋ชจ๋“  ์ฝ”์–ด๊ฐ€ ์‚ฌ์šฉ๋˜๋ฉฐ ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค๊ฐ€ ๋™์ผํ•œ ์‹œ์Šคํ…œ์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ ์‹œ์ž‘๋˜๋ฉด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์ž์›์„ ๋†“๊ณ  ๊ฒฝ์Ÿํ•˜๋ฉฐ ์„œ๋กœ ๊ฐ„์„ญํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ๊ทธ๋ž˜ํ”„๋Š” ๊ฒฝํ•ฉ ์—†์ด ๋ฆฌ์†Œ์Šค ๊ฒฝ์Ÿ ๋ชจ๋“œ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ๊ฒฝ์šฐ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๋Š” ์ง€ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. (๊ทธ๋ž˜ํ”„ ์ถœ์ฒ˜๋Š” ์—ฌ๊ธฐ์—).

์šฐ๋ฆฌ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ๋Œ€ํ•ด ๋ฌด์—‡์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์‹คํ–‰ ์‹œ๊ฐ„์€ ์ ์„์ˆ˜๋ก ์ข‹์Šต๋‹ˆ๋‹ค. ์ตœ๋Œ€: 643ms, ์ตœ์†Œ: 42ms. ์‚ฌ์ง„์€ ํด๋ฆญ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ๋Œ€ํ•ด ๋ฌด์—‡์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์ˆ˜์ˆ  ์‹œ๊ฐ„์€ ์ ์„์ˆ˜๋ก ์ข‹์Šต๋‹ˆ๋‹ค. ์ตœ๋Œ€: 14091ns, ์ตœ์†Œ: 151ns. ์‚ฌ์ง„์€ ํด๋ฆญ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์–ด์…ˆ๋ธ”๋ฆฌ ์ค€๋น„ ๋‹จ๊ณ„์—์„œ ์ด ๋ณ€์ˆ˜๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๋™ ์ตœ๋Œ€ ํ”„๋กœ์‹œ์ € Uber ์ง์›๋“ค๋กœ๋ถ€ํ„ฐ์š”.

๋ฐฐํฌ

โ€ข ๊ทœ์น™์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์˜๋„ํ•œ ํ™˜๊ฒฝ์— ์„œ๋น„์Šค ์–ด์…ˆ๋ธ”๋ฆฌ ์ œ๊ณต์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๋‹ค์Œ ์‚ฌํ•ญ์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
- API ์—”๋“œํฌ์ธํŠธ.
โ€” API ์—”๋“œํฌ์ธํŠธ ์‘๋‹ต์ด ์Šคํ‚ค๋งˆ๋ฅผ ์ค€์ˆ˜ํ•ฉ๋‹ˆ๋‹ค.
โ€” ๋กœ๊ทธ ํ˜•์‹.
โ€” ์„œ๋น„์Šค ์š”์ฒญ์— ๋Œ€ํ•œ ํ—ค๋” ์„ค์ •(ํ˜„์žฌ๋Š” netramesh์— ์˜ํ•ด ์ˆ˜ํ–‰๋จ)
โ€” ์ด๋ฒคํŠธ ๋ฒ„์Šค์— ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ผ ๋•Œ ์†Œ์œ ์ž ํ† ํฐ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฒ„์Šค ์ „์ฒด์˜ ์„œ๋น„์Šค ์—ฐ๊ฒฐ์„ ์ถ”์ ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ์—ฐ๊ฒฐ์„ ์ฆ๊ฐ€์‹œํ‚ค์ง€ ์•Š๋Š” ๋ฉฑ๋“ฑ์„ฑ ๋ฐ์ดํ„ฐ(์ข‹์€ ์ )์™€ ์„œ๋น„์Šค ์—ฐ๊ฒฐ์„ ๊ฐ•ํ™”ํ•˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋ฐ์ดํ„ฐ(๋งค์šฐ ๋‚˜์œ ์ )๋ฅผ ๋ชจ๋‘ ๋ฒ„์Šค๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ์—ฐ๊ฒฐ์„ฑ์ด ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ์‹œ์ ์— ๋ˆ„๊ฐ€ ๋ฒ„์Šค๋ฅผ ์“ฐ๊ณ  ์ฝ๋Š”์ง€ ์ดํ•ดํ•˜๋ฉด ์„œ๋น„์Šค๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ๋ถ„๋ฆฌํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์•„์ง Avito์—๋Š” ์ปจ๋ฒค์…˜์ด ๋งŽ์ง€ ์•Š์ง€๋งŒ ํ’€์€ ํ™•์žฅ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํŒ€์ด ์ดํ•ดํ•˜๊ณ  ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ๋กœ ๊ทธ๋Ÿฌํ•œ ๊ณ„์•ฝ์ด ๋” ๋งŽ์ด ์ œ๊ณต๋ ์ˆ˜๋ก ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐ„์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค.

ํ•ฉ์„ฑ ํ…Œ์ŠคํŠธ

โ€ข ํ์‡„ ๋ฃจํ”„ ํ…Œ์ŠคํŠธ. ์ด๋ฅผ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ์ด์ œ ์˜คํ”ˆ ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Hoverfly.io. ๋จผ์ € ์„œ๋น„์Šค์˜ ์‹ค์ œ ๋กœ๋“œ๋ฅผ ๊ธฐ๋กํ•œ ๋‹ค์Œ ํ์‡„ ๋ฃจํ”„์—์„œ ์ด๋ฅผ ์—๋ฎฌ๋ ˆ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

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

๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ ์ค‘์— ๋ฆฌ์†Œ์Šค ์†Œ๋น„๊ฐ€ ์„ค์ •๋œ ํ•œ๋„๋ฅผ ์ถฉ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ์ฃผ๋กœ ๊ทน๋‹จ์ ์ธ ๊ฒƒ์— ์ดˆ์ ์„ ๋งž์ถฅ๋‹ˆ๋‹ค.

a) ์ด ๋ถ€ํ•˜๋ฅผ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.
- ๋„ˆ๋ฌด ์ž‘์Œ - ๋ถ€ํ•˜๊ฐ€ ๊ฐ‘์ž๊ธฐ ์—ฌ๋Ÿฌ ๋ฒˆ ๋–จ์–ด์ง€๋ฉด ๋ฌด์–ธ๊ฐ€๊ฐ€ ์ „ํ˜€ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.
- ๋„ˆ๋ฌด ํฌ๋ฉด ์ตœ์ ํ™”๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

b) RPS์— ๋”ฐ๋ฅธ ์ปท์˜คํ”„๋ฅผ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์„œ๋Š” ํ˜„์žฌ ๋ฒ„์ „๊ณผ ์ด์ „ ๋ฒ„์ „์˜ ์ฐจ์ด์™€ ์ด ์ˆ˜๋Ÿ‰์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์„œ๋น„์Šค๊ฐ€ 100rps๋ฅผ ์ƒ์„ฑํ•œ๋‹ค๋ฉด ์„œ๋น„์Šค๊ฐ€ ์ œ๋Œ€๋กœ ์ž‘์„ฑ๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ์ด๊ฒƒ์ด ํŠน์ด์„ฑ์ด์ง€๋งŒ ์–ด์จŒ๋“  ์ด๋Š” ์„œ๋น„์Šค๋ฅผ ๋งค์šฐ ๋ฉด๋ฐ€ํžˆ ์‚ดํŽด๋ด์•ผ ํ•˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค.
๋ฐ˜๋Œ€๋กœ RPS๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์œผ๋ฉด ์ผ์ข…์˜ ๋ฒ„๊ทธ๊ฐ€ ์žˆ์–ด์„œ ์ผ๋ถ€ ์—”๋“œํฌ์ธํŠธ๊ฐ€ ํŽ˜์ด๋กœ๋“œ ์‹คํ–‰์„ ์ค‘์ง€ํ–ˆ์ง€๋งŒ ๋‹ค๋ฅธ ์—”๋“œํฌ์ธํŠธ๋Š” ๋‹จ์ˆœํžˆ ํŠธ๋ฆฌ๊ฑฐ๋˜์—ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. return true;

์นด๋‚˜๋ฆฌ์•„ ํ…Œ์ŠคํŠธ

ํ•ฉ์„ฑ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•œ ํ›„ ์†Œ์ˆ˜์˜ ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์ƒ์œผ๋กœ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์„œ๋น„์Šค์˜ ๋Œ€์ƒ ๊ณ ๊ฐ ์ค‘ 0,1% ๋ฏธ๋งŒ์˜ ์ž‘์€ ๋ถ€๋ถ„๋ถ€ํ„ฐ ์‹ ์ค‘ํ•˜๊ฒŒ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ์„œ๋น„์Šค์˜ ๋ฌธ์ œ๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋„๋ก ์˜ฌ๋ฐ”๋ฅธ ๊ธฐ์ˆ  ๋ฐ ์ œํ’ˆ ์ง€ํ‘œ๊ฐ€ ๋ชจ๋‹ˆํ„ฐ๋ง์— ํฌํ•จ๋˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์นด๋‚˜๋ฆฌ์•„ ํ…Œ์ŠคํŠธ์˜ ์ตœ์†Œ ์‹œ๊ฐ„์€ 5๋ถ„์ด๊ณ , ๊ธฐ๋ณธ ํ…Œ์ŠคํŠธ ์‹œ๊ฐ„์€ 2์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ์„œ๋น„์Šค์˜ ๊ฒฝ์šฐ ์‹œ๊ฐ„์„ ์ˆ˜๋™์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
์šฐ๋ฆฌ๋Š” ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค :
โ€” ์–ธ์–ด๋ณ„ ์ธก์ •ํ•ญ๋ชฉ, ํŠนํžˆ php-fpm ์ž‘์—…์ž;
โ€” Sentry์˜ ์˜ค๋ฅ˜;
- ์‘๋‹ต ์ƒํƒœ
- ์‘๋‹ต ์‹œ๊ฐ„, ์ •ํ™•ํ•˜๊ณ  ํ‰๊ท ์ ์ธ ์‘๋‹ต ์‹œ๊ฐ„;
- ์ง€์—ฐ ์‹œ๊ฐ„;
โ€” ์˜ˆ์™ธ, ์ฒ˜๋ฆฌ ๋ฐ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์Œ
โ€” ์ œํ’ˆ ์ง€ํ‘œ.

์••์ฐฉ ํ…Œ์ŠคํŠธ

์Šคํ€ด์ฆˆ ํ…Œ์ŠคํŠธ๋Š” "์Šคํ€ด์ง•" ํ…Œ์ŠคํŠธ๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ์ˆ ์˜ ์ด๋ฆ„์€ Netflix์— ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๋ณธ์งˆ์€ ๋จผ์ € ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํŒจ ์ง€์ ๊นŒ์ง€ ์‹ค์ œ ํŠธ๋ž˜ํ”ฝ์œผ๋กœ ์ฑ„์šฐ๊ณ  ์ œํ•œ์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ด ์Œ์„ ๋‹ค์‹œ ์ตœ๋Œ€๊ฐ’๊นŒ์ง€ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ "์••์ฐฉ"์œผ๋กœ ์ฒœ์žฅ๊ณผ ๋ธํƒ€๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ  ๋ณ€ํ™” ํŒจํ„ด์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
"์••์ฐฉ"์„ ํ†ตํ•œ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋Š” ๊ณตํ†ต ๋ฉ”ํŠธ๋ฆญ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ํ˜๋Ÿฌ ๋“ค์–ด๊ฐ€ ์ธ๊ณต ๋กœ๋“œ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ•ํ™”ํ•˜๊ฑฐ๋‚˜ "ํ•ฉ์„ฑ"์„ ๋Œ€์ฒดํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒ์‚ฐ

โ€ข ํ™•์žฅ. ์„œ๋น„์Šค๋ฅผ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์œผ๋กœ ์ถœ์‹œํ•  ๋•Œ ๊ทœ๋ชจ๊ฐ€ ์–ด๋–ป๊ฒŒ ํ™•์žฅ๋˜๋Š”์ง€ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝํ—˜์ƒ CPU ํ‘œ์‹œ๊ธฐ๋งŒ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ฒƒ์€ ํšจ๊ณผ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ˆœ์ˆ˜ํ•œ ํ˜•ํƒœ์˜ RPS ๋ฒค์น˜๋งˆํ‚น์„ ์‚ฌ์šฉํ•œ ์ž๋™ ํฌ๊ธฐ ์กฐ์ •์€ ์ž‘๋™ํ•˜์ง€๋งŒ ์˜จ๋ผ์ธ ์ŠคํŠธ๋ฆฌ๋ฐ๊ณผ ๊ฐ™์€ ํŠน์ • ์„œ๋น„์Šค์—๋งŒ ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋จผ์ € ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋ณ„ ์ œํ’ˆ ์ง€ํ‘œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ์ ์œผ๋กœ ์šฐ๋ฆฌ๋Š” ํ™•์žฅ ์‹œ ๋‹ค์Œ์„ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.
- CPU ๋ฐ RAM ํ‘œ์‹œ๊ธฐ,
โ€” ๋Œ€๊ธฐ์—ด์— ์žˆ๋Š” ์š”์ฒญ ์ˆ˜
- ์‘๋‹ต ์‹œ๊ฐ„,
โ€” ์ถ•์ ๋œ ๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์˜ˆ์ธกํ•ฉ๋‹ˆ๋‹ค.

์„œ๋น„์Šค๋ฅผ ํ™•์žฅํ•  ๋•Œ ์ฒด์ธ์˜ ์ฒซ ๋ฒˆ์งธ ์„œ๋น„์Šค๋ฅผ ํ™•์žฅํ•˜์ง€ ์•Š๊ณ  ์•ก์„ธ์Šคํ•˜๋Š” ์„œ๋น„์Šค๊ฐ€ ๋กœ๋“œ ์‹œ ์‹คํŒจํ•˜์ง€ ์•Š๋„๋ก ์ข…์†์„ฑ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ์„œ๋น„์Šค ํ’€์— ๋Œ€ํ•ด ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•œ ๋กœ๋“œ๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด "๊ฐ€์žฅ ๊ฐ€๊นŒ์šด" ์ข…์† ์„œ๋น„์Šค์˜ ๊ธฐ๋ก ๋ฐ์ดํ„ฐ(CPU ๋ฐ RAM ํ‘œ์‹œ๊ธฐ ์กฐํ•ฉ๊ณผ ์•ฑ๋ณ„ ์ธก์ •ํ•ญ๋ชฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•จ)๋ฅผ ์‚ดํŽด๋ณด๊ณ  ์ด๋ฅผ ๊ธฐ๋ก ๋ฐ์ดํ„ฐ์™€ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐํ™” ์„œ๋น„์Šค ๋“ฑ "์ข…์†์„ฑ ์ฒด์ธ" ์ „๋ฐ˜์— ๊ฑธ์ณ ์œ„์—์„œ ์•„๋ž˜๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

ะžะฑัะปัƒะถะธะฒะฐะฝะธะต

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๊ฐ€ ์ž‘๋™๋˜๋ฉด ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ์ƒํ™ฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
โ€” ์ž ์žฌ์ ์œผ๋กœ ์œ„ํ—˜ํ•œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ๊ฐ์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
โ€” ๋ณด์•ˆ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
โ€” ์„œ๋น„์Šค ์ž์ฒด๊ฐ€ ์˜ค๋žซ๋™์•ˆ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
โ€” ์„œ๋น„์Šค ๋ถ€ํ•˜๊ฐ€ ๋ˆˆ์— ๋„๊ฒŒ ๊ฐ์†Œํ–ˆ๊ฑฐ๋‚˜ ์ผ๋ถ€ ์ œํ’ˆ ์ง€ํ‘œ๊ฐ€ ์ •์ƒ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค.
โ€” ์„œ๋น„์Šค๊ฐ€ ๋” ์ด์ƒ ์ƒˆ๋กœ์šด ํ”Œ๋žซํผ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ผ๋ถ€ ํŠธ๋ฆฌ๊ฑฐ๋Š” ์šด์˜ ์•ˆ์ •์„ฑ์„ ๋‹ด๋‹นํ•˜๊ณ , ์ผ๋ถ€๋Š” ์‹œ์Šคํ…œ ์œ ์ง€ ๊ด€๋ฆฌ์˜ ๊ธฐ๋Šฅ์œผ๋กœ, ์˜ˆ๋ฅผ ๋“ค์–ด ์ผ๋ถ€ ์„œ๋น„์Šค๊ฐ€ ์˜ค๋žซ๋™์•ˆ ๋ฐฐํฌ๋˜์ง€ ์•Š์•˜๊ณ  ํ•ด๋‹น ๊ธฐ๋ณธ ์ด๋ฏธ์ง€๊ฐ€ ๋ณด์•ˆ ๊ฒ€์‚ฌ๋ฅผ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ณ„๊ธฐ๋ฐ˜

๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ ๋Œ€์‹œ๋ณด๋“œ๋Š” ์ „์ฒด PaaS์˜ ์ œ์–ดํŒ์ž…๋‹ˆ๋‹ค.

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

์šฐ๋ฆฌ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ๋Œ€ํ•ด ๋ฌด์—‡์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?
์šฐ๋ฆฌ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ๋Œ€ํ•ด ๋ฌด์—‡์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?
์šฐ๋ฆฌ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ๋Œ€ํ•ด ๋ฌด์—‡์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?
์šฐ๋ฆฌ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ๋Œ€ํ•ด ๋ฌด์—‡์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์ „์ฒด๋กœ

PaaS๋ฅผ ๋„์ž…ํ•˜๊ธฐ ์ „์— ์ƒˆ๋กœ์šด ๊ฐœ๋ฐœ์ž๋Š” Kubernetes, Helm, ๋‚ด๋ถ€ TeamCity ๊ธฐ๋Šฅ, ๋‚ด๊ฒฐํ•จ์„ฑ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ์บ์‹œ์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ ์„ค์ • ๋“ฑ ํ”„๋กœ๋•์…˜์—์„œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๋„๊ตฌ๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋ช‡ ์ฃผ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋น ๋ฅธ ์‹œ์ž‘์„ ์ฝ๊ณ  ์„œ๋น„์Šค ์ž์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ๋ช‡ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

์ €๋Š” HighLoad++ 2018์—์„œ ์ด ์ฃผ์ œ์— ๋Œ€ํ•œ ๋ณด๊ณ ์„œ๋ฅผ ์ œ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹œ์ฒญํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„๋””์˜ค ะธ ๋ฐœํ‘œ.

๋๊นŒ์ง€ ์ฝ์–ด์ฃผ์‹  ๋ถ„๋“ค์„ ์œ„ํ•œ ๋ณด๋„ˆ์Šค ํŠธ๋ž™

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

ํ›ˆ๋ จ์€ 5์›” 7์ผ๋ถ€ํ„ฐ XNUMX์ผ๊นŒ์ง€ ๋ชจ์Šคํฌ๋ฐ”์—์„œ ์ง„ํ–‰๋œ๋‹ค. ์ด๋Š” ์™„์ „ํžˆ ์ฑ„์›Œ์ง€๋Š” ๊ทผ๋ฌด์ผ์ž…๋‹ˆ๋‹ค. ์ ์‹ฌ ๋ฐ ๊ต์œก์€ ์‚ฌ๋ฌด์‹ค์—์„œ ์ง„ํ–‰๋˜๋ฉฐ, ์„ ์ •๋œ ์ฐธ๊ฐ€์ž๋Š” ๊ตํ†ต๋น„์™€ ์ˆ™๋ฐ•๋น„๋ฅผ ์ง์ ‘ ์ง€๋ถˆํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ฐ€์‹ ์ฒญ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ์ด ๊ตฌ๊ธ€ํผ์œผ๋กœ. ๊ท€ํ•˜๋กœ๋ถ€ํ„ฐ - ๊ต์œก์— ์ฐธ์„ํ•ด์•ผ ํ•˜๋Š” ์ด์œ ์— ๋Œ€ํ•œ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€๊ณผ ๊ท€ํ•˜์—๊ฒŒ ์—ฐ๋ฝํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ •๋ณด์ž…๋‹ˆ๋‹ค. Chris๊ฐ€ ๊ต์œก์— ์ฐธ์„ํ•  ์ฐธ๊ฐ€์ž๋ฅผ ์ง์ ‘ ์„ ํƒํ•˜๋ฏ€๋กœ ์˜์–ด๋กœ ๋Œ€๋‹ตํ•˜์„ธ์š”.
์ด ๊ฒŒ์‹œ๋ฌผ ์—…๋ฐ์ดํŠธ์™€ ๊ฐœ๋ฐœ์ž์šฉ ์†Œ์…œ ๋„คํŠธ์›Œํฌ Avito(AvitoTech in ะคะตะนัะฑัƒะบะต, Vkontakte, ํŠธ์œ„ํ„ฐ) ๋Šฆ์–ด๋„ 19์›” XNUMX์ผ๊นŒ์ง€.

์ถœ์ฒ˜ : habr.com

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