์ฐ๋ฆฌ ๋ชจ๋๋ ์ด์ผ๊ธฐ๋ฅผ ์ข์ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋ถ ์ฃผ์์ ์์ ๊ณผ๊ฑฐ์ ์น๋ฆฌ, ์ ํฌ ๋๋ ๋จ์ํ ์
๋ฌด ๊ฒฝํ์ ๋ํด ์ด์ผ๊ธฐํ๋ ๊ฒ์ ์ข์ํฉ๋๋ค.
์ค๋์ด ๋ฐ๋ก ๊ทธ๋ฐ ๋ ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ง๊ธ ๋น์ฅ์ ํ์ฅ์ ์์ง ์๋๋ผ๋ ์ฌ๋ฌ๋ถ์ ์ํ ์ด์ผ๊ธฐ๊ฐ ์์ต๋๋ค. Tarantool์์ ์คํ ๋ฆฌ์ง ์์ ์ ์์ํ ์ด์ผ๊ธฐ์ ๋๋ค.
์๋ ์์ ์ ์ฐ๋ฆฌ ํ์ฌ์๋ ๋ ๊ฐ์ "๋ชจ๋๋ฆฌ์ค"์ ํ๋์ "์ฒ์ฅ"์ด ์์๋๋ฐ, ์ด๋ฌํ ๋จ์ผ์ฒด๋ ์ฒ์ฒํ ๊ทธ๋ฌ๋ ํ์คํ๊ฒ ์ ๊ทผํ์ฌ ํ์ฌ์ ๋นํ๊ณผ ๊ฐ๋ฐ์ ์ ํํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ถ๋ช
ํ ์ดํด๊ฐ ์์์ต๋๋ค. ์ธ์ ๊ฐ ์ฐ๋ฆฌ๋ ์ด ํ๊ณ์ ์ ๋๋ฌํ ๊ฒ์
๋๋ค.
์ด์ ๋ ์ฅ๋น๋ถํฐ ๋น์ฆ๋์ค ๋ก์ง๊น์ง ๋ชจ๋ ๊ฒ๊ณผ ๋ชจ๋ ์ฌ๋์ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ๋๋ฆฌ ํผ์ ธ ์๋ ์ด๋
์
๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์๋ฅผ ๋ค์ด ๋คํธ์ํฌ ์์ค์์ ์ค์ง์ ์ผ๋ก ๋
๋ฆฝ์ ์ธ ๋ ๊ฐ์ DC๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๊ฒ์ด ์์ ํ ๋ฌ๋์ต๋๋ค.
์ค๋๋ ์๋ CI/CD, K8S ๋ฑ์ ํํ๋ก ๋ณ๊ฒฝ์ ์ํํ ์ ์๋ ๋๊ตฌ์ ๋๊ตฌ๊ฐ ๋ง์ด ์์ต๋๋ค. โ๋ชจ๋๋ฆฌ์โ ์๋์๋ ์ธ๊ตญ์ด๊ฐ ๊ทธ๋ ๊ฒ ๋ง์ด ํ์ํ์ง ์์์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ "์ ์ฅ์"๋ฅผ ์์ ํ๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ต๋๋ค.
๊ทธ๋ฌ๋ ์๊ฐ์ด ํ๋ฅด๋ฉด์ ์์ฒญ ์๋ ํจ๊ป ๋์ด๋ ๋๋ก๋ ์ฐ๋ฆฌ ๋ฅ๋ ฅ์ ๋์ด์๋ RPS๋ฅผ ์คํํ๊ธฐ๋ ํ์ต๋๋ค. CIS ๊ตญ๊ฐ๊ฐ ์์ฅ์ ์ง์ถํ๋ฉด์ ์ฒซ ๋ฒ์งธ ๋ชจ๋๋ฆฌ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋ก์ธ์์ ๋ํ ๋ก๋๋ 90% ์ดํ๋ก ๋จ์ด์ง์ง ์์๊ณ RPS๋ 2400 ์์ค์ผ๋ก ์ ์ง๋์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ๋จ์ง ์์ ์ ํ๊ธฐ๊ฐ ์๋๋ผ ์์ฒญ๋ ์ฟผ๋ฆฌ์์ต๋๋ค. ๋๊ท๋ชจ IO๋ฅผ ๋ฐฐ๊ฒฝ์ผ๋ก ๋ฐ์ดํฐ์ ๊ฑฐ์ ์ ๋ฐ์ ๋ํด ์คํํ ์ ์๋ ์ฌ๋ฌ ๊ฒ์ฌ ๋ฐ JOIN์ ๋๋ค.
๋ณธ๊ฒฉ์ ์ธ ๋ธ๋ ํ๋ผ์ด๋ฐ์ด ํ๋งค๊ฐ ํ์ฅ์ ๋ํ๋๊ธฐ ์์ํ๊ณ Wildberries๊ฐ ๋ฌ์์์์ ์ฒ์์ผ๋ก ํ๋งค๋ฅผ ์งํํ์ ๋ ์ํฉ์ ์์ ํ ์ฌํผ์ก์ต๋๋ค. ๊ฒฐ๊ตญ ๊ทธ๋ฌํ ๋ ์ ๋ถํ๋ ์ธ ๋ฐฐ๋ก ์ฆ๊ฐํฉ๋๋ค.
์, ์ด "ํ์ผ์ ์ธ ์๋"! ๋๋ ๋น์ ์ด ๋น์ทํ ์ผ์ ๊ฒฝํํ๋ค๊ณ ํ์ ํ๋ฉฐ, ์ด๊ฒ์ด ๋น์ ์๊ฒ ์ด๋ป๊ฒ ์ผ์ด๋ ์ ์๋์ง ์์ง๋ ์ดํดํ์ง ๋ชปํฉ๋๋ค.
๋น์ ์ ๋ฌด์์ ํ ์ ์์ต๋๊น? ํจ์
์ ๊ธฐ์ ์ ๋ด์ฌ๋์ด ์์ต๋๋ค. ์ฝ 5๋
์ , ์ฐ๋ฆฌ๋ ์ฌ์ดํธ ์์ฒด์ ๋ชจ๋ ๋ก์ง์ ์ ์คํ๊ฒ ์ ์ฅํ .NET ๋ฐ MS SQL ์๋ฒ์ ๊ธฐ์กด ์ฌ์ดํธ ํํ๋ก ์ด๋ฌํ ๋ชจ๋ ์ค ํ๋๋ฅผ ๋ค์ ์๊ฐํด์ผ ํ์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ ๋๋ฌด ์กฐ์ฌ์ค๋ฝ๊ฒ ๋ณด๊ดํ์ฌ ๊ทธ๋ฌํ ๋จ์ผ์ฒด๋ฅผ ํฑ์งํ๋ ๊ฒ์ด ๊ธธ๊ณ ๊ฒฐ์ฝ ์ฌ์ด ์ฆ๊ฑฐ์์ด ์๋๋ผ๋ ๊ฒ์ด ๋ฐํ์ก์ต๋๋ค.
์์ ํจ๋ชฐ.
๋ค์ํ ํ์ฌ์์ ๋๋ "๋ชจ๋๋ฆฌ์ค๋ฅผ ๋ณด์ง ๋ชปํ๋ค๋ฉด ์ฑ์ฅํ์ง ์์ ๊ฒ์ ๋๋ค! "๋ผ๊ณ ๋งํฉ๋๋ค. ์ด ๋ฌธ์ ์ ๋ํ ๊ทํ์ ์๊ฒฌ์ด ๊ถ๊ธํฉ๋๋ค. ๋๊ธ์ ์ ์ด์ฃผ์ธ์.
๊ทธ๋ฆฌ๊ณ ์ฒ๋ฅ์ด ์น๋ค.
์ฐ๋ฆฌ์ "๋ชจ๋ฅ๋ถ"๋ก ๋์ ๊ฐ์. "๋ชจ๋๋ฆฌ์" ๊ธฐ๋ฅ์ ๋ถํ๋ฅผ ๋ถ์ฐํ๊ธฐ ์ํด ์ฐ๋ฆฌ๋ ์์คํ ์ ์คํ์์ค ๊ธฐ์ ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋ง์ดํฌ๋ก์๋น์ค๋ก ๋๋๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์๋ํ๋ฉด ์ต์ํ ํ์ฅ ๋น์ฉ์ด ๋ ์ ๋ ดํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ๊ท๋ชจ๋ฅผ ํ์ฅํด์ผ ํ๋ค๋ ์ ์ 100% ์ดํดํ์ต๋๋ค. ๊ฒฐ๊ตญ ๊ทธ ๋น์์๋ ์ด๋ฏธ ์ฃผ๋ณ ๊ตญ๊ฐ ์์ฅ์ ์ง์ถํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๊ณ ๋ฑ๋ก ๊ฑด์์ ์ฃผ๋ฌธ ๊ฑด์๊ฐ ๋์ฑ ํฌ๊ฒ ์ฆ๊ฐํ๊ธฐ ์์ํ์ต๋๋ค.
๋ชจ๋๋ฆฌ์ค์์ ๋ง์ดํฌ๋ก์๋น์ค๋ก์ ์ฒซ ๋ฒ์งธ ํ๋ณด๋ฅผ ๋ถ์ํ ๊ฒฐ๊ณผ, ์ฐ๋ฆฌ๋ ๊ทธ ๊ธ์ 80%๊ฐ ๋ฐฑ์คํผ์ค ์์คํ ์์ ๋์ค๊ณ ํ๋ก ํธ์คํผ์ค์์ ์ฝ๋๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. ์ฐ์ , ์ด๋ ์ฌ์ฉ์ ๋ฐ์ดํฐ์ ์ถ๊ฐ ๊ณ ๊ฐ ํ ์ธ ๋ฐ ์ฟ ํฐ์ ๋ํ ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ํ์ ์ต์ข ๋น์ฉ์ ๊ณ์ฐํ๋ ์์คํ ์ด๋ผ๋ ๋ ๊ฐ์ง ์ค์ํ ํ์ ์์คํ ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค.
๋ค์ฌ์ฐ๊ธฐ. ์ด์ ๋ ์์ํ๊ธฐ๊ฐ ๋ฌด์ญ์ง๋ง ์์์ ์ธ๊ธํ ํ์ ์์คํ ์ธ์๋ ์ ํ ์นดํ๋ก๊ทธ, ์ฌ์ฉ์ ์ฅ๋ฐ๊ตฌ๋, ์ ํ ๊ฒ์ ์์คํ , ์ ํ ์นดํ๋ก๊ทธ ํํฐ๋ง ์์คํ , ๋ค์ํ ์ข ๋ฅ์ ์ถ์ฒ ์์คํ ๋ ๋จ์ผ์ฒด์์ ์ ๊ฑฐ๋์์ต๋๋ค. ๊ฐ๊ฐ์ ์๋์ ์ํด ์ข๊ฒ ๋ง์ถคํ๋ ์์คํ ์ ๋ณ๋ ํด๋์ค๊ฐ ์์ง๋ง ์๋ ์๋ ๋ชจ๋ ํ๋์ "์ง"์ ์ด์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ฆ์ ๊ณ ๊ฐ์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ์ค๋ฉ ์์คํ ์ผ๋ก ์ ์กํ ๊ณํ์ ์ธ์ ์ต๋๋ค. ์ต์ข ์ํ ์๊ฐ ๊ณ์ฐ ๊ธฐ๋ฅ์ ์ ๊ฑฐํ๋ ค๋ฉด RPS ๋ถํ๊ฐ ๊ฐ์ฅ ํฌ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌํ์ด ๊ฐ์ฅ ์ด๋ ค์ ๊ธฐ ๋๋ฌธ์(๊ณ์ฐ ํ๋ก์ธ์ค์ ๋ง์ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋จ) ์ฝ๊ธฐ์ ์ข์ ํ์ฅ์ฑ์ด ํ์ํ์ต๋๋ค.
๊ทธ ๊ฒฐ๊ณผ, ์ฐ๋ฆฌ๋ Tarantool์ ์ ๋ง๋ ๊ตฌ์ฑํ๋ฅผ ์๊ฐํด๋์ต๋๋ค.
๋น์ ๋ง์ดํฌ๋ก์๋น์ค ์ด์์ ์ํด ๊ฐ์ ๋ฐ ํ๋์จ์ด ์์คํ ์์ ์ฌ๋ฌ ๋ฐ์ดํฐ ์ผํฐ์ ํ๋ ฅํ๋ ๋ฐฉ์์ด ์ ํ๋์์ต๋๋ค. ๊ทธ๋ฆผ์์ ๋ณผ ์ ์๋ฏ์ด Tarantool ๋ณต์ ์ต์ ์ ๋ง์คํฐ-๋ง์คํฐ ๋ชจ๋์ ๋ง์คํฐ-์ฌ๋ ์ด๋ธ ๋ชจ๋ ๋ชจ๋์ ์ ์ฉ๋์์ต๋๋ค.
๊ฑด์ถํ. ์ต์
1. ์ฌ์ฉ์ ์๋น์ค
ํ์ฌ 24๊ฐ์ ์ค๋๊ฐ ์์ผ๋ฉฐ ๊ฐ ์ค๋๋ 2๊ฐ์ ์ธ์คํด์ค(๊ฐ DC๋น ํ๋์ฉ)๋ฅผ ๊ฐ์ง๋ฉฐ ๋ชจ๋ ๋ง์คํฐ-๋ง์คํฐ ๋ชจ๋์ ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณต์ ๋ณธ์ ์ก์ธ์คํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ Tarantool Go ๋๋ผ์ด๋ฒ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ๋ง์ถคํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด Tarantool๊ณผ ํจ๊ป ์๋ํฉ๋๋ค. ๊ทธ๋ ๋ ๋ชจ๋ ๋ณต์ ๋ณธ์ ๋ณด๊ณ ๋ง์คํฐ์ ํจ๊ป ์ฝ๊ณ ์ธ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ณต์ ๋ณธ ์ ํ, ์ฌ์๋ ์ํ, ํ๋ก ์ฐจ๋จ๊ธฐ ๋ฐ ์๋ ์ ํ์ ์ํ ๋ ผ๋ฆฌ๋ฅผ ์ถ๊ฐํ๋ ๋ณต์ ๋ณธ ์ธํธ ๋ชจ๋ธ์ ๊ตฌํํฉ๋๋ค.
์ด ๊ฒฝ์ฐ ์ค๋ ์ปจํ ์คํธ์์ ๋ณต์ ๋ณธ ์ ํ ์ ์ฑ ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ผ์ด๋ ๋ก๋น์ ๋๋ค.
๊ฑด์ถํ. ์ต์
2. ์ต์ข
์ํ ์๊ฐ ๊ณ์ฐ ์๋น์ค
๋ช ๋ฌ ์ , ์ํ์ ์ต์ข ๋น์ฉ ๊ณ์ฐ์ ๋ํ ๋๋ถ๋ถ์ ์์ฒญ์ ์์น์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ด ์๋ํ๋ ์๋ก์ด ์๋น์ค๋ก ์ ๋ฌ๋์์ง๋ง ์ผ๋ง ์ ์๋ Tarantool์ด ํฌํจ๋ ์๋น์ค๋ฅผ ํตํด ๋ชจ๋ ๊ฒ์ด 100% ์ฒ๋ฆฌ๋์์ต๋๋ค.
์๋น์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋๊ธฐํ ์ฅ์น๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์งํ๋ 4๊ฐ์ ๋ง์คํฐ๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๊ฐ ๋ณต์ ๋ง์คํฐ๋ ์ฝ๊ธฐ ์ ์ฉ ๋ณต์ ๋ณธ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐฐํฌํฉ๋๋ค. ๊ฐ ๋ง์คํฐ์๋ ๋๋ต 15๊ฐ์ ๋ณต์ ๋ณธ์ด ์์ต๋๋ค.
์ฒซ ๋ฒ์งธ ๋ฐฉ์์ด๋ ๋ ๋ฒ์งธ ๋ฐฉ์์์ ํ๋์ DC๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ๋ฒ์งธ DC์์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ ์ ์์ต๋๋ค.
Tarantool์ ๋ณต์ ๋ ๋งค์ฐ ์ ์ฐํ๋ฉฐ ๋ฐํ์์ ๊ตฌ์ฑํ ์ ์๋ค๋ ์ ์ ์ฃผ๋ชฉํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๋ค๋ฅธ ์์คํ ์์๋ ์ด๋ ค์์ด ๋ฐ์ํ์ต๋๋ค. ์๋ฅผ ๋ค์ด PostgreSQL์์ max_wal_senders ๋ฐ max_replication_slots ๋งค๊ฐ๋ณ์๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด ๋ง๋ฒ์ฌ๋ฅผ ๋ค์ ์์ํด์ผ ํ๋ฉฐ, ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ DBMS ๊ฐ์ ์ฐ๊ฒฐ์ด ๋์ด์ง ์ ์์ต๋๋ค.
๊ฒ์ํ๊ณ ์ฐพ์๋ผ!
์ ์ฐ๋ฆฌ๋ '๋ณดํต ์ฌ๋๋ค์ฒ๋ผ' ํ์ง ์๊ณ ๋น์ ํ์ ์ธ ๋ฐฉ์์ ์ ํํ์๊น์? ์ ์์ผ๋ก ๊ฐ์ฃผ๋๋ ๊ฒ์ด ๋ฌด์์ธ์ง์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ๋ง์ ์ฌ๋๋ค์ด ์ผ๋ฐ์ ์ผ๋ก Mongo์์ ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค์ด ์ง๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋ XNUMX๊ฐ์ DC์ ๋ถ์ฐ์ํต๋๋ค.
๊ทธ ๋น์ ์ฐ๋ฆฌ์๊ฒ๋ ์ด๋ฏธ ๋ ๊ฐ์ Redis ํ๋ก์ ํธ๊ฐ ์์์ต๋๋ค. ์ฒซ ๋ฒ์งธ๋ ์บ์์๊ณ ๋ ๋ฒ์งธ๋ ๊ทธ๋ค์ง ์ค์ํ์ง ์์ ๋ฐ์ดํฐ๋ฅผ ์ํ ์๊ตฌ ์ ์ฅ์์์ต๋๋ค. ๊ทธ์๊ฒ๋ ๋ถ๋ถ์ ์ผ๋ก ์ฐ๋ฆฌ ์๋ชป ๋๋ฌธ์ ๊ฝค ์ด๋ ค์ ์ต๋๋ค. ๋๋ก๋ ์๋นํ ๋ง์ ์์ด ํค์ ํฌํจ๋์ด ์์๊ณ ๋๋๋ก ์ฌ์ดํธ๊ฐ ๋ถํธํด์ก์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ง์คํฐ-์ฌ๋ ์ด๋ธ ๋ฒ์ ์์ ์ด ์์คํ ์ ์ฌ์ฉํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์คํฐ์ ๋ฌด์จ ์ผ์ด ์๊ฒจ์ ๋ณต์ ๊ฐ ์ค๋จ๋๋ ๊ฒฝ์ฐ๋ ๋ง์์ต๋๋ค.
์ฆ, Redis๋ ์ํ ์ ์ฅ ์์ ์ด ์๋ ์ํ ๋น์ ์ฅ ์์ ์ ์ ํฉํฉ๋๋ค. ์์น์ ์ผ๋ก๋ ๋๋ถ๋ถ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ง๋ง ํ ์์ ์ธ๋ฑ์ค๊ฐ ์๋ ํค-๊ฐ ์๋ฃจ์ ์ธ ๊ฒฝ์ฐ์๋ง ๊ฐ๋ฅํฉ๋๋ค. ํ์ง๋ง ๋น์ Redis๋ ์ง์์ฑ๊ณผ ๋ณต์ ๊ฐ ์๋นํ ์์ฌ์ ์ต๋๋ค. ๊ฒ๋ค๊ฐ ์ฑ๋ฅ์ ๋ํ ๋ถ๋ง๋ ์์๋ค.
์ฐ๋ฆฌ๋ MySQL๊ณผ PostgreSQL์ ๋ํด ์๊ฐํ์ต๋๋ค. ํ์ง๋ง ์ฒซ ๋ฒ์งธ ์ ํ์ ์ ์ง ์ฐ๋ฆฌ์ ๊ด์ฌ์ ๋์ง ๋ชปํ๊ณ , ๋ ๋ฒ์งธ ์ ํ์ ๊ทธ ์์ฒด๋ก ๋ค์ ์ ๊ตํ ์ ํ์ด์ด์ ๊ฐ๋จํ ์๋น์ค๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ์ ๋ถ์ ์ ํ ๊ฒ์
๋๋ค.
์ฐ๋ฆฌ๋ RIAK, Cassandra, ์ฌ์ง์ด ๊ทธ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฌ์ฉํด ๋ณด์์ต๋๋ค. ์ด๊ฒ๋ค์ ๋ชจ๋ ์๋น์ค ์์ฑ์ ์ํ ์ผ๋ฐ์ ์ธ ๋ฒ์ฉ ๋๊ตฌ์ ์ญํ ์ ์ ํฉํ์ง ์์ ์๋นํ ํ์ ์๋ฃจ์
์
๋๋ค.
๊ฒฐ๊ตญ ์ฐ๋ฆฌ๋ Tarantool์ ์ ํํ์ต๋๋ค.
๋ฒ์ 1.6์ด์์ ๋ ์ฐ๋ฆฌ๋ ์ด๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ํค-๊ฐ์ ๊ณต์๊ณผ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ฅ์ ๊ด์ฌ์ด ์์์ต๋๋ค. ๋ณด์กฐ ์ธ๋ฑ์ค, ํธ๋์ญ์ ๋ฐ ๊ณต๊ฐ์ด ์์ต๋๋ค. ์ด๋ค์ ํ ์ด๋ธ๊ณผ ๋น์ทํ์ง๋ง ๋จ์ํ์ง๋ ์์ผ๋ฉฐ ๋ค์ํ ์์ ์ด์ ์ ์ฅํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ Tarantool์ ๊ฐ์ฅ ํฐ ํน์ง์ ํค-๊ฐ ๋ฐ ํธ๋์ญ์ ์ฑ๊ณผ ๊ฒฐํฉ๋ ๋ณด์กฐ ์ธ๋ฑ์ค์์ต๋๋ค.
์ฑํ ์ผ๋ก ๋์์ ์ค ์ค๋น๊ฐ ๋์ด ์๋ ๋ฐ์ํ ๋ฌ์์์ด ์ปค๋ฎค๋ํฐ๋ ํ๋ชซํ์ต๋๋ค. ์ด๋ฅผ ์ ๊ทน์ ์ผ๋ก ํ์ฉํ๊ณ ์ฑํ ์ผ๋ก ์ง์ ๋ผ์ด๋ธ๋ฅผ ์งํํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ช ๋ฐฑํ ์ค์๋ ์ค์ ์์ด ๊ด์ฐฎ์ ๋๊ธฐ๋ฅผ ์์ง ๋ง์ธ์. Tarantool์ ์ด๋ ฅ์ ๋ณด๋ฉด ๋ณต์ ์์ ์ ๋ง์ ์ด๋ ค์๊ณผ ์คํจ๊ฐ ์์์ง๋ง ๊ฒฐํจ์ผ๋ก ์ธํด ๋ฐ์ดํฐ๊ฐ ์์ค๋ ์ ์ ํ ๋ฒ๋ ์์ต๋๋ค!
๊ตฌํ์ด ํ๋ํ ์์์ ๋ง์ดํ์ต๋๋ค.
๋น์ ์ฐ๋ฆฌ์ ์ฃผ์ ๊ฐ๋ฐ ์คํ์ .NET์ด์๊ณ Tarantool์ฉ ์ปค๋ฅํฐ๊ฐ ์์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ฆ์ Go๋ก ๋ญ๊ฐ๋ฅผ ์์ํ์ต๋๋ค. Lua์์๋ ์ ์๋ํ์ต๋๋ค. ๊ทธ ๋น์ ๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ ๋๋ฒ๊น ์ด์์ต๋๋ค. .NET์์๋ ์ด๊ฒ์ผ๋ก ๋ชจ๋ ๊ฒ์ด ํ๋ฅญํ์ง๋ง ๊ทธ ํ์๋ ๋ก๊ทธ ์ธ์ ๋๋ฒ๊น ์ด ์์ ๋ ์๋ฒ ๋๋ Lua์ ์ธ๊ณ๋ก ๋ฐ์ด๋ค๊ธฐ๊ฐ ์ด๋ ค์ ์ต๋๋ค. ๊ฒ๋ค๊ฐ ์ด๋ค ์ด์ ๋ก ๋ณต์ ๊ฐ ์ฃผ๊ธฐ์ ์ผ๋ก ๋์ด์ ธ์ Tarantool ์์ง์ ๊ตฌ์กฐ๋ฅผ ์์ธํ ์กฐ์ฌํด์ผ ํ์ต๋๋ค. ์ฑํ ์ด ๋์์ด ๋์๊ณ , ๋ฌธ์๋ ์ด๋ ์ ๋ ๋์์ด ๋์์ผ๋ฉฐ, ๋๋๋ก ์ฐ๋ฆฌ๋ ์ฝ๋๋ฅผ ์ดํด๋ณด์์ต๋๋ค. ๋น์ ๋ฌธ์๋ ๊ทธ์ ๊ทธ๋ฌ์ต๋๋ค.
๊ทธ๋์ ๋ช ๋ฌ์ ๊ฑธ์ณ ์ ๋ Tarantool์ ์ฌ์ฉํ์ฌ ์์ ํ๋ฉด์ ์ ์ ์ ์ฐจ๋ฆฌ๊ณ ๊ด์ฐฎ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์๋ก์ด ๋ง์ดํฌ๋ก์๋น์ค ํ์ฑ์ ๋์์ด ๋๋ ์ฐธ์กฐ ๊ฐ๋ฐ์ git์์ ํธ์งํ์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ ๋ค๋ฅธ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์์ฑํด์ผ ํ๋ ์์ ์ด ๋ฐ์ํ์ ๋ ๊ฐ๋ฐ์๋ ์ ์ฅ์์ ์๋ ์ฐธ์กฐ ์๋ฃจ์ ์ ์์ค ์ฝ๋๋ฅผ ์ดํด๋ดค๊ณ , ์ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์์ฑํ๋ ๋ฐ๋ ์ผ์ฃผ์ผ๋ ์ฑ ๊ฑธ๋ฆฌ์ง ์์์ต๋๋ค.
ํน๋ณํ ์๊ฐ์ด์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ค์ ํ ์ด๋ธ์ ๊ด๋ฆฌ์์๊ฒ ๊ฐ์ "๊ฐ์ ๋จธ์ ์ ์ฃผ์ธ์."๋ผ๊ณ ๋ฌผ์ด๋ณผ ์ ์์ต๋๋ค. ์ฝ XNUMX๋ถ ํ์ ์ฐจ๋ ์ด๋ฏธ ๋น์ ๊ณผ ํจ๊ป ์์์ต๋๋ค. ๊ทํ๊ฐ ์ง์ ์ฐ๊ฒฐํ๊ณ ๋ชจ๋ ๊ฒ์ ์ค์นํ์ผ๋ฉฐ ํธ๋ํฝ์ด ๊ทํ์๊ฒ ์ ์ก๋์์ต๋๋ค.
ํ์ฌ๋ ๋ ์ด์ ์๋ํ์ง ์์ต๋๋ค. ์๋น์ค์ ๋ชจ๋ํฐ๋ง ๋ฐ ๋ก๊น ์ ์ถ๊ฐํ๊ณ , ํ ์คํธ๋ฅผ ํตํด ๊ธฐ๋ฅ์ ๋ค๋ฃจ๋ฉฐ, ๊ฐ์ ๋จธ์ ์ ์ฃผ๋ฌธํ๊ฑฐ๋ Kuber์ ์ ๋ฌํ๋ ๋ฑ์ ์์ ์ด ํ์ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ด๋ ๊ฒ ํ๋ฉด ์๊ฐ์ด ๋ ์ค๋ ๊ฑธ๋ฆฌ๊ณ ๋ฒ๊ฑฐ๋กญ๊ธฐ๋ ํ์ง๋ง ์ด ๋ฐฉ๋ฒ์ด ๋ ์ข์ต๋๋ค.
๋๋์ด์ ํต์นํ๋ผ. ๋ฃจ์๋ ๋ฌด์จ ์ฌ์ด์ผ?
์ฌ๊ฐํ ๋๋ ๋ง๊ฐ ์์์ต๋๋ค. ์ผ๋ถ ํ์ Lua์ ๋ง์ ๋ก์ง์ ์ฌ์ฉํ์ฌ ์๋น์ค์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ์์ ์ ์ผ๋ก ์ถ์ํ ์ ์์์ต๋๋ค. ์ด๋ ์ข ์ข ์๋น์ค๊ฐ ์๋ํ์ง ์๋ ๊ฒ๊ณผ ํจ๊ป ๋ฐ์ํ์ต๋๋ค.
์ฆ, ๊ฐ๋ฐ์๋ค์ ์ผ์ข ์ ๋ณํ๋ฅผ ์ค๋นํ๊ณ ์์ต๋๋ค. Tarantool์ด ๋ง์ด๊ทธ๋ ์ด์ ์ ์์ํ์ง๋ง ๋ณต์ ๋ณธ์๋ ์ฌ์ ํ ์ด์ ์ฝ๋๊ฐ ๋จ์ ์์ต๋๋ค. ์ผ๋ถ DDL์ด๋ ๋ค๋ฅธ ๊ฒ์ด ๋ณต์ ๋ฅผ ํตํด ๋์ฐฉํ๊ณ ์ฝ๋๋ ๊ณ ๋ ค๋์ง ์๊ธฐ ๋๋ฌธ์ ๋จ์ํ ๋ถ๋ฆฌ๋ฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌ์๋ฅผ ์ํ ์ ๋ฐ์ดํธ ์ ์ฐจ๋ A4 ์ํธ์ ์ ๋ฆฌ๋์์ต๋๋ค. ๋ณต์ ์ค์ง, ์ ๋ฐ์ดํธ, ๋ณต์ ํ์ฑํ, ์ฌ๊ธฐ์์ ๋๊ธฐ, ์ฌ๊ธฐ์์ ์ ๋ฐ์ดํธ. ์ ๋ชฝ!
๊ฒฐ๊ณผ์ ์ผ๋ก ์ด์ ์ฐ๋ฆฌ๋ Lua์์ ์๋ฌด๊ฒ๋ ํ์ง ์์ผ๋ ค๊ณ ํ๋ ๊ฒฝ์ฐ๊ฐ ๊ฐ์ฅ ๋ง์ต๋๋ค. iproto(์๋ฒ์ ์ํธ์์ฉํ๊ธฐ ์ํ ๋ฐ์ด๋๋ฆฌ ํ๋กํ ์ฝ)๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค. ์๋ง๋ ์ด๊ฒ์ ๊ฐ๋ฐ์๋ค์ ์ง์ ๋ถ์กฑ์ผ์ง๋ ๋ชจ๋ฅด์ง๋ง, ์ด๋ฌํ ๊ด์ ์์ ๋ณผ ๋ ์์คํ ์ ๋ณต์กํฉ๋๋ค.
์ฐ๋ฆฌ๋ ํญ์ ์ด ๋๋ณธ์ ๋งน๋ชฉ์ ์ผ๋ก ๋ฐ๋ฅด์ง๋ ์์ต๋๋ค. ์ค๋๋ ์๋ ํ๋ฐฑ์ด ์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด Lua์ ์๊ฑฐ๋ ๋ชจ๋ ๊ฒ์ด Go์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋์ค์ ๋ง์ด๊ทธ๋ ์ด์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์๋๋ก ์ด๋ค์ ๊ฒฐํฉํ๋ ๋ฐฉ๋ฒ์ ์ด๋ฏธ ์ดํดํ๊ณ ์์ต๋๋ค.
ํ๋ํด์ ์ง๊ธ ์ด๋์ ์๋์?
Tarantool์ "Promoter"๋ผ๊ณ ๋ ์๋ ค์ง ํ ์ธ ์ฟ ํฐ์ ๊ณ ๋ คํ์ฌ ์ํ์ ์ต์ข
๋น์ฉ์ ๊ณ์ฐํ๋ ์๋น์ค์ ์ฌ์ฉ๋ฉ๋๋ค. ์์ ๋งํ๋ฏ์ด ๊ทธ๋ ์ด์ ์ํดํ๊ณ ์์ต๋๋ค. ๊ฐ๊ฒฉ์ด ๋ฏธ๋ฆฌ ๊ณ์ฐ๋ ์๋ก์ด ์นดํ๋ก๊ทธ ์๋น์ค๋ก ๋์ฒด๋๊ณ ์์ง๋ง XNUMX๊ฐ์ ์ ์ ๋ชจ๋ ๊ณ์ฐ์ Promotizer์์ ์ด๋ฃจ์ด์ก์ต๋๋ค. ์ด์ ์๋ ๋
ผ๋ฆฌ์ ์ ๋ฐ์ด Lua๋ก ์์ฑ๋์์ต๋๋ค. XNUMX๋
์ ์๋น์ค๊ฐ ์ ์ฅ ์์ค๋ก ๋ฐ๋์๊ณ , ํ ์ธ ๋ฉ์ปค๋์ฆ์ด ์ฝ๊ฐ ๋ฐ๋์๊ณ ์๋น์ค ์ฑ๋ฅ์ด ๋ถ์กฑํ๊ธฐ ๋๋ฌธ์ Go์์ ๋ก์ง์ ๋ค์ ์์ฑํ์ต๋๋ค.
๊ฐ์ฅ ์ค์ํ ์๋น์ค ์ค ํ๋๋ ์ฌ์ฉ์ ํ๋กํ์
๋๋ค. ์ฆ, ๋ชจ๋ Wildberries ์ฌ์ฉ์๋ Tarantool์ ์ ์ฅ๋์ด ์์ผ๋ฉฐ ์ฝ 50์ฒ๋ง ๋ช
์ ๋๊ฐ ์ฌ์ฉ์ ID๋ณ๋ก ์ค๋ฉ๋์ด Go ์๋น์ค์ ์ฐ๊ฒฐ๋ ์ฌ๋ฌ DC์ ๋ถ์ฐ๋ ์์คํ
์
๋๋ค.
RPS์ ๋ฐ๋ฅด๋ฉด Promoter๋ ํ๋ 6๊ฑด์ ์์ฒญ์ ๋๋ฌํ ๋ฆฌ๋์์ต๋๋ค. ํ๋ ์ฐ๋ฆฌ๋ 50~60๊ฐ์ ์ฌ๋ณธ์ ๊ฐ์ง๊ณ ์์์ต๋๋ค. ์ด์ RPS์ ์ ๋์ฃผ์๋ ์ฝ 12๋ช
์ ์ฌ์ฉ์ ํ๋กํ์
๋๋ค. ์ด ์๋น์ค๋ ์ฌ์ฉ์ ID ๋ฒ์๋ก ๋๋์ด์ง ๋ง์ถคํ ์ค๋ฉ์ ์ฌ์ฉํฉ๋๋ค. ์ด ์๋น์ค๋ 20๋ ์ด์์ ๋จธ์ ์ ์ ๊ณตํ์ง๋ง ์ด๋ ๋๋ฌด ๋ง์ต๋๋ค. 4~5๋์ ๋จธ์ ์ด๋ฉด ์ถฉ๋ถํ๋ฏ๋ก ํ ๋น๋ ๋ฆฌ์์ค๋ฅผ ์ค์ผ ๊ณํ์
๋๋ค.
์ธ์ ์๋น์ค๋ vshard ๋ฐ Cartridge์ ๋ํ ์ฒซ ๋ฒ์งธ ์๋น์ค์ ๋๋ค. vshard๋ฅผ ์ค์ ํ๊ณ ์นดํธ๋ฆฌ์ง๋ฅผ ์ ๋ฐ์ดํธํ๋ ค๋ฉด ์ฝ๊ฐ์ ๋ ธ๋ ฅ์ด ํ์ํ์ง๋ง ๊ฒฐ๊ตญ ๋ชจ๋ ๊ฒ์ด ์ ์งํ๋์์ต๋๋ค.
์น์ฌ์ดํธ์ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ํ ๋ฐฐ๋๋ฅผ ํ์ํ๋ ์๋น์ค๋ Tarantool์์ ์ง์ ์ถ์๋ ์ต์ด์ ์๋น์ค ์ค ํ๋์์ต๋๋ค. ์ด ์๋น์ค๋ 6~7๋ ์ด ๋ ์๋น์ค์ธ๋ฐ๋ ์ฌ์ ํ ์๋ ์ค์ด๋ฉฐ ์ฌ๋ถํ ํ ์ ์ด ์๋ค๋ ์ ์์ ์ฃผ๋ชฉํ ๋งํฉ๋๋ค. ๋ง์คํฐ-๋ง์คํฐ ๋ณต์ ๊ฐ ์ฌ์ฉ๋์์ต๋๋ค. ์๋ฌด๊ฒ๋ ๊นจ์ง์ง ์์์ต๋๋ค.
์ด๋ค ๊ฒฝ์ฐ์๋ ์ ๋ณด๋ฅผ ์ ์ํ๊ฒ ๋ค์ ํ์ธํ๊ธฐ ์ํด ์ฐฝ๊ณ ์์คํ ์ ๋น ๋ฅธ ์ฐธ์กฐ ๊ธฐ๋ฅ์ Tarantool์ ์ฌ์ฉํ๋ ์๊ฐ ์์ต๋๋ค. ์ด๋ฅผ ์ํด Redis๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ์๋ํ์ง๋ง Tarantool๋ณด๋ค ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๊ฐ ๋ ๋ง์ ๊ณต๊ฐ์ ์ฐจ์งํ์ต๋๋ค.
๋๊ธฐ์ ๋ช ๋จ, ๊ณ ๊ฐ ๊ตฌ๋ , ํ์ฌ ์ ํํ๋ ์คํ ๋ฆฌ ๋ฐ ์ด์ฐ ์ํ ์๋น์ค๋ Tarantool์์ ์๋ํฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ์ ๋ง์ง๋ง ์๋น์ค๋ ์ฝ 120GB๋ฅผ ์ฐจ์งํฉ๋๋ค. ์ด๋ ์์ ์๋น์ค ์ค ๊ฐ์ฅ ํฌ๊ด์ ์ธ ์๋น์ค์ ๋๋ค.
๊ฒฐ๋ก
ํค-๊ฐ ๋ฐ ํธ๋์ญ์ ์ฑ๊ณผ ๊ฒฐํฉ๋ ๋ณด์กฐ ์ธ๋ฑ์ค ๋๋ถ์ Tarantool์ ๋ง์ดํฌ๋ก์๋น์ค ๊ธฐ๋ฐ ์ํคํ ์ฒ์ ๋งค์ฐ ์ ํฉํฉ๋๋ค. ๊ทธ๋ฌ๋ Lua์์ ๋ง์ ๋ก์ง์ ์ฌ์ฉํ์ฌ ์๋น์ค์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ ๋ ์ด๋ ค์์ ์ง๋ฉดํ์ต๋๋ค. ์๋น์ค๊ฐ ์๋์ ๋ฉ์ถ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฅผ ๊ทน๋ณตํ ์ ์์๊ณ ์๊ฐ์ด ์ง๋๋ฉด์ Lua์ Go์ ๋ค์ํ ์กฐํฉ์ ์ด๋ฅด๋ ์ต๋๋ค. ์ฐ๋ฆฌ๋ ํ ์ธ์ด๋ฅผ ์ด๋์ ์ฌ์ฉํด์ผ ํ๋์ง, ๋ค๋ฅธ ์ธ์ด๋ฅผ ์ด๋์ ์ฌ์ฉํด์ผ ํ๋์ง ์๊ณ ์์ต๋๋ค.
์ฃผ์ ์ ๋ํด ๋ ์ฝ์ ๋ด์ฉ
- Tarantool์ ์ฌ์ฉํ์ฌ ์ฒ์๋ถํฐ ๊ณ ๋ถํ ์ ํ๋ฆฌ์ผ์ด์
๋ง๋ค๊ธฐ
habr.com/ru/company/mailru/blog/510440 - Tarantool ์นดํธ๋ฆฌ์ง์ ์ ๋ขฐํ ์ ์๋ ๋ฆฌ๋ ์ ํ
habr.com/ru/company/mailru/blog/513912 - ์ ํ์ ๋ํ ์์์ด ๋ด๊ธด ํ
๋ ๊ทธ๋จ ์ฑ๋ Tarantool
t.me/tarantool_news - ์ปค๋ฎค๋ํฐ ์ฑํ
์์ Tarantool์ ๋ํด ํ ๋ก ํ์ธ์
t.me/tarantoolru
์ถ์ฒ : habr.com