์ธ์์ ๊ฐ๋งํ ์์ง ์์ต๋๋ค. ์ง๋ณด๋ ์๋ก์ด ๊ธฐ์ ์ ๊ณผ์ ๋ฅผ ์ฐฝ์ถํฉ๋๋ค. ๋ณํํ๋ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ์ ๋ณด ์์คํ ์ ์ํคํ ์ฒ๋ ๋ฐ์ ํด์ผ ํฉ๋๋ค. ์ค๋ ์ฐ๋ฆฌ๋ ์ด๋ฒคํธ ์ค์ฌ ์ํคํ ์ฒ, ๋์์ฑ, ๋์์ฑ, ๋น๋๊ธฐ์ฑ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ Erlang์์ ์ด ๋ชจ๋ ๊ฒ์ ํํ๋กญ๊ฒ ์ด ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค.
์๊ฐ
์ค๊ณ๋ ์์คํ ์ ํฌ๊ธฐ์ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ๊ฐ๋ฐ์๋ ์์คํ ์์ ์ ๋ณด๋ฅผ ๊ตํํ๋ ๋ฐฉ๋ฒ์ ์ ํํฉ๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์๋น์ค ์ํธ ์์ฉ์ ๊ตฌ์ฑํ๊ธฐ ์ํ ์์ ์ต์ ์ RabbitMQ ๋๋ kafka๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋ธ๋ก์ปค๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ผ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฒคํธ ํ๋ฆ, SLA ๋ฐ ์์คํ ์ ์ด ์์ค์ผ๋ก ์ธํด ๊ธฐ์ฑ ๋ฉ์์ง์ด ์ ํฉํ์ง ์์ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ๋ฌผ๋ก ZeroMQ๋ nanomsg ๋ฑ์ ์ฌ์ฉํ์ฌ ์ ์ก ๊ณ์ธต๊ณผ ํด๋ฌ์คํฐ ํ์ฑ์ ๋ด๋นํ๋ฉด ์์คํ ์ด ์ฝ๊ฐ ๋ณต์กํด์ง ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์์คํ ์ ํ์ค Erlang ํด๋ฌ์คํฐ์ ์ฒ๋ฆฌ๋๊ณผ ๊ธฐ๋ฅ์ด ์ถฉ๋ถํ๋ค๋ฉด ์ถ๊ฐ ์ํฐํฐ๋ฅผ ๋์ ํ๋ ๋ฌธ์ ์๋ ์์ธํ ์ฐ๊ตฌ์ ๊ฒฝ์ ์ ํ๋น์ฑ์ด ํ์ํฉ๋๋ค.
๋ฐ์ํ ๋ถ์ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฃผ์ ๋ ์๋นํ ๊ด๋ฒ์ํฉ๋๋ค. ๊ธฐ์ฌ์ ํ์์ ์ ์งํ๊ธฐ ์ํด ์ค๋ ๋ ผ์ ์ฃผ์ ๋ Erlang/Elixir๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ ๋์ข ํ๊ฒฝ์ ๋ํด์๋ง ๋ค๋ฃฐ ๊ฒ์ ๋๋ค. Erlang/OTP ์ํ๊ณ๋ฅผ ์ฌ์ฉํ๋ฉด ์ต์ํ์ ๋ ธ๋ ฅ์ผ๋ก ๋ฐ์ํ ์ํคํ ์ฒ๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ค ๊ฒฝ์ฐ์๋ ๋ฉ์์ง ๊ณ์ธต์ด ํ์ํฉ๋๋ค.
์ด๋ก ์ ๊ธฐ์ด
๋์์ธ์ ๋ชฉํ์ ์ ์ฝ ์กฐ๊ฑด์ ์ ์ํ๋ ๊ฒ๋ถํฐ ์์๋ฉ๋๋ค. ์ฃผ์ ๋ชฉํ๋ ๊ฐ๋ฐ์ ์ํ ๊ฐ๋ฐ ์์ญ์ ์์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ค์ํ ์์ค์ ์ต์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ๊ณ ๊ฐ๋ฐํ ์ ์๋ ์์ ํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ๋๊ตฌ๋ฅผ ํ๋ณดํด์ผ ํฉ๋๋ค. ์๊ท๋ชจ ์ฌ์ฉ์์๊ฒ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๋จ์ผ ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์์ํ์ฌ ๋์ค์ ์ต๋ 50๋ช ์ ํด๋ฌ์คํฐ๋ก ๋ฐ์ ํ ์ ์์ต๋๋ค. -60๊ฐ์ ๋ ธ๋, ํด๋ฌ์คํฐ ํ๋๋ ์ด์ ์ผ๋ก ๋๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ต์ข ์์คํ ์ ๊ฐ๋ฐ ๋น์ฉ๊ณผ ์์ ๋น์ฉ์ ์ค์ฌ ์์ต์ ๊ทน๋ํํ๋ ๊ฒ์ด ์ฃผ์ ๋ชฉํ์ ๋๋ค.
์ต์ข ์์คํ ์ ๋ํ 4๊ฐ์ง ์ฃผ์ ์๊ตฌ ์ฌํญ์ ๊ฐ์กฐํ๊ฒ ์ต๋๋ค.
- ะก์ด๋ฒคํธ ์งํฅ์ ์
๋๋ค.
์์คํ ์ ํญ์ ์ด๋ฒคํธ ํ๋ฆ์ ํต๊ณผํ๊ณ ํ์ํ ์์ ์ ์ํํ ์ค๋น๊ฐ ๋์ด ์์ต๋๋ค. - ะํ์ฅ์ฑ.
๊ฐ๋ณ ๋ธ๋ก์ ์์ง ๋ฐ ์ํ์ผ๋ก ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ์ ์์ต๋๋ค. ์ ์ฒด ์์คํ ์ ๋ฌดํํ ์ํ์ ์ฑ์ฅ์ด ๊ฐ๋ฅํด์ผ ํฉ๋๋ค. - ะ๊ฒฐํจ ํ์ฉ.
๋ชจ๋ ์์ค๊ณผ ๋ชจ๋ ์๋น์ค๋ ์ฅ์ ๋ก๋ถํฐ ์๋์ผ๋ก ๋ณต๊ตฌํ ์ ์์ด์ผ ํฉ๋๋ค. - ะ๋ณด์ฅ๋ ์๋ต ์๊ฐ.
์๊ฐ์ ์์คํ๋ฏ๋ก ์ฌ์ฉ์๋ ๋๋ฌด ์ค๋ ๊ธฐ๋ค๋ ค์๋ ์ ๋ฉ๋๋ค.
โํ ์ ์๋ ์์ ์์งโ์ ๊ดํ ์ ๋ํ๋ฅผ ๊ธฐ์ตํ์๋์? ์ค๊ณ๋ ์์คํ ์ด ํ๋กํ ํ์ ๋จ๊ณ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์ข ๋ฃํ๊ณ ๋ฐ์ ํ๋ ค๋ฉด ๊ทธ ๊ธฐ๋ฐ์ด ์ต์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํด์ผ ํฉ๋๋ค. ์ค๋ชจ๊ทธ.
๋ฉ์์ง์๋ ์ธํ๋ผ ๋๊ตฌ์ด์ ๋ชจ๋ ์๋น์ค์ ๊ธฐ์ด๋ก์ ํ๋ก๊ทธ๋๋จธ์ ์ฌ์ฉ ์ฉ์ด์ฑ์ด ํ ๊ฐ์ง ๋ ์ถ๊ฐ๋์์ต๋๋ค.
์ด๋ฒคํธ ์ค์ฌ
์ ํ๋ฆฌ์ผ์ด์ ์ด ๋จ์ผ ์๋ฒ์์ ํด๋ฌ์คํฐ๋ก ์ฑ์ฅํ๋ ค๋ฉด ํด๋น ์ํคํ ์ฒ๊ฐ ๋์จํ ๊ฒฐํฉ์ ์ง์ํด์ผ ํฉ๋๋ค. ๋น๋๊ธฐ์ ๋ชจ๋ธ์ ์ด ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํฉ๋๋ค. ๊ทธ ์์์ ๋ฐ์ ์์ ์์ ์๋ ๋ฉ์์ง์ ์ ๋ณด ๋ก๋์ ๊ด์ฌ์ ๊ฐ๊ณ ์์คํ ๋ด ์ ์ก ๋ฐ ๋ผ์ฐํ ์ ๋ํด ๊ฑฑ์ ํ์ง ์์ต๋๋ค.
ํ์ฅ์ฑ
ํ์ฅ์ฑ๊ณผ ์์คํ ํจ์จ์ฑ์ ์๋ก ๋ฐ์ ํ ๊ด๋ จ์ด ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ฑ ์์๋ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ํ์ฉํ ์ ์์ด์ผ ํฉ๋๋ค. ์ฉ๋์ ๋์ฑ ํจ์จ์ ์ผ๋ก ํ์ฉํ๊ณ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ๋์ฑ ์ต์ ํํ ์๋ก ์ฅ๋น์ ์ง์ถํ๋ ๋น์ฉ์ด ์ค์ด๋ญ๋๋ค.
๋จ์ผ ์์คํ
๋ด์์ Erlang์ ๊ฒฝ์์ด ์น์ดํ ํ๊ฒฝ์ ์กฐ์ฑํฉ๋๋ค. ๋์์ฑ๊ณผ ๋ณ๋ ฌ์ฑ ์ฌ์ด์ ๊ท ํ์ Erlang VM์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ด์ ์ฒด์ ์ค๋ ๋ ์์ ์ด๋ฌํ ์ค๋ ๋๋ฅผ ํ์ฉํ๋ ์ค์ผ์ค๋ฌ ์๋ฅผ ์ ํํ์ฌ ์ค์ ํ ์ ์์ต๋๋ค.
Erlang ํ๋ก์ธ์ค๋ ์ํ๋ฅผ ๊ณต์ ํ์ง ์์ผ๋ฉฐ ๋น์ฐจ๋จ ๋ชจ๋์์ ์๋ํฉ๋๋ค. ์ด๋ ๊ธฐ์กด ์ฐจ๋จ ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
๋ณด๋ค ์๋์ ์ผ๋ก ๋ฎ์ ๋๊ธฐ ์๊ฐ๊ณผ ๋์ ์ฒ๋ฆฌ๋์ ์ ๊ณตํฉ๋๋ค. Erlang์ ์ค์ผ์ค๋ฌ๋ CPU์ IO์ ๊ณต์ ํ ํ ๋น์ ๋ณด์ฅํ๋ฉฐ, ์ฐจ๋จ์ด ์๊ธฐ ๋๋ฌธ์ ์ต๋ ๋ถํ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๋์์๋ ์ ํ๋ฆฌ์ผ์ด์
์ด ์๋ตํ ์ ์์ต๋๋ค.
ํด๋ฌ์คํฐ ์์ค์์๋ ํ๊ธฐ ๋ฌธ์ ๋ ์กด์ฌํฉ๋๋ค. ํด๋ฌ์คํฐ์ ๋ชจ๋ ์์คํ
์ด ๊ท ๋ฑํ๊ฒ ๋ก๋๋๊ณ ๋คํธ์ํฌ๊ฐ ๊ณผ๋ถํ๋์ง ์๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ํฉ์ ์์ํด ๋ด
์๋ค. ์ฌ์ฉ์ ํธ๋ํฝ์ด ๋ค์ด์ค๋ ๋ฐธ๋ฐ์(haproxy, nginx ๋ฑ)์ ๋๋ฌํ๊ณ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฐฑ์๋ ์งํฉ ๊ฐ์ ์ฒ๋ฆฌ ์์ฒญ์ ์ต๋ํ ๊ท ๋ฑํ๊ฒ ๋ฐฐํฌํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
์ธํ๋ผ ๋ด์์ ํ์ํ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ์๋น์ค๋ ๋ง์ง๋ง ๋จ๊ณ์ ๋ถ๊ณผํ๋ฉฐ ์ด๊ธฐ ์์ฒญ์ ์๋ตํ๊ธฐ ์ํด ์ฌ๋ฌ ๋ค๋ฅธ ์๋น์ค๋ฅผ ์์ฒญํด์ผ ํฉ๋๋ค. ๋ด๋ถ ์์ฒญ์๋ ๋ผ์ฐํ
๊ณผ ๋ฐธ๋ฐ์ฑ์ด ํ์ํฉ๋๋ค.
๋ฐ์ดํฐ ํ๋ฆ์ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ค๋ฉด ๋ฉ์์ง์ ๊ฐ๋ฐ์์๊ฒ ๋ผ์ฐํ
๋ฐ ๋ก๋ ๊ท ํ ์กฐ์ ์ ๊ด๋ฆฌํ ์ ์๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํด์ผ ํฉ๋๋ค. ๋๋ถ์ ๊ฐ๋ฐ์๋ ๋ง์ดํฌ๋ก์๋น์ค ํจํด(์งํฉ์, ํ๋ก์, ์ฒด์ธ, ์ง์ ๋ฑ)์ ์ฌ์ฉํ์ฌ ํ์ค ๋ฌธ์ ์ ๊ฑฐ์ ๋ฐ์ํ์ง ์๋ ๋ฌธ์ ๋ฅผ ๋ชจ๋ ํด๊ฒฐํ ์ ์์ต๋๋ค.
๋น์ฆ๋์ค ๊ด์ ์์ ํ์ฅ์ฑ์ ์ํ ๊ด๋ฆฌ ๋๊ตฌ ์ค ํ๋์ ๋๋ค. ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ฅ๋น๋ฅผ ์ต์ ์ผ๋ก ์ฌ์ฉํ์ฌ ๊ณ ๊ฐ ์์ฒญ์ ์ถฉ์กฑ์ํค๋ ๊ฒ์ ๋๋ค.
- ์งํ์ ๋ฐ๋ผ ์ฅ๋น์ ์๋ ฅ์ด ์ฆ๊ฐํ๋ ๊ฒฝ์ฐ. ๋ถ์์ ํ ์ํํธ์จ์ด๋ก ์ธํด ์ ํด ์ํ๊ฐ ๋์ง ์์ต๋๋ค. Erlang์ ์์ง์ ์ผ๋ก ์ ํ์ฅ๋๋ฉฐ ํญ์ ๋ชจ๋ CPU ์ฝ์ด์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค.
- ํด๋ผ์ฐ๋ ํ๊ฒฝ์์๋ ํ์ฌ ๋๋ ์์๋๋ ๋ถํ์ ๋ฐ๋ผ ์ฅ๋น์ ์๋์ ๊ด๋ฆฌํ๊ณ SLA๋ฅผ ๋ณด์ฅํ ์ ์์ต๋๋ค.
๊ฒฐํจ ํ์ฉ
๋ ๊ฐ์ง ์์น, ์ฆ "์คํจ๋ ์ฉ๋ฉ๋ ์ ์์ต๋๋ค"์ "ํญ์ ์คํจ๋ ์์ ๊ฒ์ ๋๋ค"๋ฅผ ๊ณ ๋ คํด ๋ณด๊ฒ ์ต๋๋ค. ๋น์ฆ๋์ค์ ์์ด ์ํํธ์จ์ด ์ค๋ฅ๋ ๊ธ์ ์ ์์ค์ ์๋ฏธํ๋ฉฐ, ๋ ๋์ ๊ฒ์ ํํ ์์ค์ ์๋ฏธํฉ๋๋ค. ๊ฐ๋ฅํ ์์ค๊ณผ ๋ด๊ฒฐํจ์ฑ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋น์ฉ ๊ฐ์ ๊ท ํ์ ๋ง์ถ๋ฉด ์ ์ถฉ์์ ์ฐพ์ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
๋จ๊ธฐ์ ์ผ๋ก ๋ด๊ฒฐํจ์ฑ์ ํตํฉํ ์ํคํ
์ฒ๋ ๊ธฐ์ฑ ํด๋ฌ์คํฐ๋ง ์๋ฃจ์
๊ตฌ์
๋น์ฉ์ ์ ์ฝํด ์ค๋๋ค. ๊ฐ๊ฒฉ๋ ๋น์ธ๊ณ ๋ฒ๋ ๋ ์์ด์.
์ฅ๊ธฐ์ ์ผ๋ก ๋ด๊ฒฐํจ์ฑ ์ํคํ
์ฒ๋ ๊ฐ๋ฐ์ ๋ชจ๋ ๋จ๊ณ์์ ์ฌ๋ฌ ๋ฐฐ์ ๊ฐ์น๋ฅผ ๋ฐํํฉ๋๋ค.
์ฝ๋ ๋ฒ ์ด์ค ๋ด์ ๋ฉ์์ง์ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ ๋จ๊ณ์์ ์์คํ
๋ด ๊ตฌ์ฑ ์์์ ์ํธ ์์ฉ์ ์์ธํ ํด๊ฒฐํ ์ ์์ต๋๋ค. ์ด๋ ๋ชจ๋ ์ค์ํ ๊ตฌ์ฑ ์์๊ฐ ์ค๋ฅ๋ฅผ ์ฒ๋ฆฌํ๊ณ ๊ฒฐ๊ณผ ์์คํ
์ด ์ค๊ณ์ ์ค๋ฅ ๋ฐ์ ํ ์๋์ผ๋ก ์ ์์ผ๋ก ๋์๊ฐ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์๊ธฐ ๋๋ฌธ์ ์ค๋ฅ ๋์ ๋ฐ ๊ด๋ฆฌ ์์
์ ๋จ์ํํฉ๋๋ค.
๋ฏผ๊ฐ๋
์ค๋ฅ์ ๊ด๊ณ์์ด ์ ํ๋ฆฌ์ผ์ด์
์ ์์ฒญ์ ์๋ตํ๊ณ SLA๋ฅผ ์ถฉ์กฑํด์ผ ํฉ๋๋ค. ํ์ค์ ์ฌ๋๋ค์ด ๊ธฐ๋ค๋ฆฌ๊ณ ์ถ์ดํ์ง ์๊ธฐ ๋๋ฌธ์ ๊ธฐ์
์ ์ด์ ๋ง์ถฐ ์ ์ํด์ผ ํฉ๋๋ค. ์๋ต์ฑ์ด ๋ฐ์ด๋ ์ ํ๋ฆฌ์ผ์ด์
์ด ์ ์ ๋ ๋ง์์ง ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค.
๋ฐ์ํ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฑฐ์ ์ค์๊ฐ์ผ๋ก ์๋ํฉ๋๋ค. Erlang VM์ ์ํํธ ์ค์๊ฐ ๋ชจ๋๋ก ์๋ํฉ๋๋ค. ์ฃผ์ ๊ฑฐ๋, ์์ฝํ, ์ฐ์
์ค๋น ์ ์ด ๋ฑ ์ผ๋ถ ๋ถ์ผ์์๋ ํ๋ ์ค์๊ฐ ๋ชจ๋๊ฐ ์ค์ํฉ๋๋ค.
๋ฐ์ํ ์์คํ
์ UX๋ฅผ ๊ฐ์ ํ๊ณ ๋น์ฆ๋์ค์ ๋์์ด ๋ฉ๋๋ค.
์๋น ์์ฝ
์ด ๊ธ์ ๊ธฐํํ๋ฉด์ ๋ฉ์์ง ๋ธ๋ก์ปค๋ฅผ ๋ง๋ค๊ณ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ณต์กํ ์์คํ
์ ๊ตฌ์ถํ ๊ฒฝํ์ ๊ณต์ ํ๊ณ ์ถ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ก ์ , ๋๊ธฐ ๋ถ์ฌ ๋ถ๋ถ์ ์๋นํ ๊ด๋ฒ์ํ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.
๊ธฐ์ฌ์ ๋ ๋ฒ์งธ ๋ถ๋ถ์์๋ ๊ตํ ์ง์ ๊ตฌํ์ ๋์์ค, ๋ฉ์์ง ํจํด ๋ฐ ์ ์ฉ์ ๋ํด ์ค๋ช
ํ๊ฒ ์ต๋๋ค.
์ธ ๋ฒ์งธ ๋ถ๋ถ์์๋ ์๋น์ค ๊ตฌ์ฑ, ๋ผ์ฐํ
๋ฐ ๋ฐธ๋ฐ์ฑ๊ณผ ๊ด๋ จ๋ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ๋ฅผ ๊ณ ๋ คํ ๊ฒ์
๋๋ค. ์์คํ
์ ํ์ฅ์ฑ๊ณผ ๋ด๊ฒฐํจ์ฑ์ ์ค์ง์ ์ธ ์ธก๋ฉด์ ๋ํด ์ด์ผ๊ธฐํด ๋ณด๊ฒ ์ต๋๋ค.
์ฒซ ๋ฒ์งธ ๋ถ๋ถ์ ๋.
ะคะพัะพ
์ถ์ฒ : habr.com