Ansible ๊ธฐ๋ฐ์ ์๋ฒ ์ธํ๋ผ ๊ด๋ฆฌ์ฉ ์น ์ธํฐํ์ด์ค์ธ Polemarch 3.0.0์ด ์ถ์๋์์ต๋๋ค. ํ๋ก์ ํธ ์ฝ๋๋ Django ๋ฐ Celery ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ Python ๋ฐ JavaScript๋ก ์์ฑ๋์์ต๋๋ค. ํ๋ก์ ํธ๋ AGPLv3 ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค. ์์คํ ์ ์์ํ๋ ค๋ฉด ํจํค์ง๋ฅผ ์ค์นํ๊ณ ์๋น์ค 1๊ฐ๋ฅผ ์์ํ๋ฉด ๋ฉ๋๋ค. ์ฐ์ ์ฉ์ผ๋ก๋ MySQL/PostgreSQL, Redis/RabbitMQ+Redis(MQ ์บ์ ๋ฐ ๋ธ๋ก์ปค)๋ฅผ ์ถ๊ฐ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ฐ ๋ฒ์ ๋ง๋ค Docker ์ด๋ฏธ์ง๊ฐ ์์ฑ๋ฉ๋๋ค.
์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ :
- Rest API v4์ ์ ๋ฒ์ ๊ณผ Python 3.8์ ์ต์ ์ง์ ๋ฒ์ ์ผ๋ก ์ ํํ์ธ์. ์๋ก์ด ํ๋ฌ๊ทธ์ธ ๋ฐ ํ์ฅ ์์คํ ์ ๋ํ ์ง์์ ๊ฐ์ ํ๊ณ ๊ฐ๋ฐ ์๋๋ฅผ ๋์ด๊ธฐ ์ํด ์ ํ์ด ํ์ํ์ต๋๋ค. ํ ํ๋ฆฟ๊ณผ ์ผ์ ์ ๋ณด๋ค ๋ ผ๋ฆฌ์ ์ด๊ณ ์ง๊ด์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋๋ก ์ผ๋ถ ์ค๋ณต ์์๋ ๋จ์ํ๋์์ต๋๋ค.
- ์คํฌ๋ฆฝํธ ๋๋ ini/yaml/json ๋ฌธ์์ด๊ณผ ๊ฐ์ ํ์ค ์ธ๋ฒคํ ๋ฆฌ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ ์ ์๋๋ก ์๋ก์ด ์ธ๋ฒคํ ๋ฆฌ ํ๋ฌ๊ทธ์ธ์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ธ๋ฒคํ ๋ฆฌ ํ๋ฌ๊ทธ์ธ ์์คํ ์์ฒด๋ ๊ฐ๋ฐ๋์ด ๋ค์ํ ์์ค์์ ํ๋ฌ๊ทธ์ธ์ ์์ฑํ๋ ์์ฒด ๊ตฌํ์ ๊ตฌํํ ์ ์์ต๋๋ค.
- ์ด์ ๋ฆด๋ฆฌ์ค์์ ์ถ์๋ ์คํ ํ๋ฌ๊ทธ์ธ ์์คํ ์ด ๊ฐ์ ๋์์ต๋๋ค. ์ด์ bash ์คํฌ๋ฆฝํธ, terraform ๋๋ helm๊ณผ ๊ฐ์ ์ถ๊ฐ ๋ช ๋ น์ ์คํํ๊ธฐ ์ํ ๊ตฌํ์ ์ง์ ์์ฑํ ์ ์์ต๋๋ค. ๋ฆฌํฉํ ๋ง์ ์ผํ์ผ๋ก ํ ํ๋ฆฟ ๋ฐ ์ผ์ ์ ํ๋ฌ๊ทธ์ธ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ๋ํ ํ๋ฌ๊ทธ์ธ์์๋ ์ด์ ์ ์ฅ์์ ์๋น ์ด๊ธฐํ๋ฅผ ์ํ ํธ์ถ ์ฒด์ธ์ ์์ฑํ ์ ์์ต๋๋ค.
- ์ถ๋ ฅ์์ ๋ค์ํ ์ ์ฅ์๋ก ๋ฌธ์์ด์ ์ฐ๊ธฐ ์ํ ํ์ฅ ์์คํ ์ด ๊ตฌํ๋์์ต๋๋ค. ์ด์ ์ถ๋ ฅ์ stdout, ํ์ผ ๋๋ syslog๋ก ๋ณด๋ผ ์ ์๋ ๊ธฐ๋ฅ์ ๊ฐ์ถ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ๋ก ํ๋ฌ๊ทธ์ธ๊ณผ python-logger๊ฐ ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
- ์ด์ ๋ฉ์์ง ๋๊ธฐ์ด์ด ํผํด ๋์ json ๋ฉ์์ง๋ฅผ ๊ตํํฉ๋๋ค. ๋๊ธฐ์ด๋ก ๋ณด๋ด๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฅผ ์ง๋ ฌํ ๋ฐ ์ญ์ง๋ ฌํํ๋ ์์ ๋ ๊ฐ์ํ๋์์ต๋๋ค.
- ํฅ์๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ Centrifugo์์ ์๋ ์ ๋ฐ์ดํธ ํตํฉ์ด ํฅ์๋์์ต๋๋ค.
- ํ์ ์ข ์์ฑ ๋ชฉ๋ก์ ์ค์ด๊ธฐ ์ํด Django์ ๊ฐ์ ์ฃผ์ ์ข ์์ฑ์ด ์ ๋ฐ์ดํธ๋์์ต๋๋ค(์: ์บ์์ ๋ํ ๊ธฐ๋ณธ Redis ์ง์).
.
์ถ์ฒ : opennet.ru