4์ 6~XNUMX์ผ ์ํธํํ ๋ฅด๋ถ๋ฅดํฌ์ Selectel ์ปจํผ๋ฐ์ค ํ์์ XNUMX์ผ๊ฐ .

์ฐ๋ฆฌ๋ ๋๊ตฌ ๋งค๋ด์ผ๊ณผ ๊ฐ์ DevOps์ ์ด๋ก ์ ์์ ์ ๋๊ตฌ๋ ์ค์ค๋ก ์ฝ์ ์ ์๋ค๋ ์๊ฐ์ ๋ฐํ์ผ๋ก ํ๋ก๊ทธ๋จ์ ๊ตฌ์ถํ์ต๋๋ค. ์ค์ง ๊ฒฝํ๊ณผ ์ค์ฒ๋ง์ด ํฅ๋ฏธ๋กญ์ต๋๋ค. ์ด๋ป๊ฒ ํด์ผ ํ๋์ง, ๋ฌด์์ ํ๋ฉด ์ ๋๋์ง์ ๋ํ ์ค๋ช , ๊ทธ๋ฆฌ๊ณ ์ด๋ป๊ฒ ํด์ผ ํ๋์ง์ ๋ํ ์ด์ผ๊ธฐ์ ๋๋ค.
๋ชจ๋ ํ์ฌ, ๋ชจ๋ ๊ด๋ฆฌ์ ๋๋ ๊ฐ๋ฐ์๋ ๊ณ ์ ํ DevOps ์์ค์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ด๋ค ์ฌ๋๋ค์ Git์ ์๋ชป ์ฌ์ฉํ๊ณ ๋ค๋ฅธ ์ฌ๋๋ค์ SRE๋ฅผ ๊ตฌํํฉ๋๋ค. ์ด ๊ณผ์ ์ ๋ชจ๋ ์ฌ๋์ด ์ง๊ธ ์ฌ๊ธฐ์์ ์คํํ ์ ์๋ ๊ด๋ จ์ฑ์ ์ฐพ์ ์ ์๋๋ก ๊ตฌ์ฑ๋์์ต๋๋ค.
Git์ผ๋ก ์์ํ ๋ค์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ, ์ฝ๋์ ์ธํ๋ผ ๊ฐ์ ์ํธ ์์ฉ, CI/CD ๊ตฌ์ถ, ์ฝ๋ํ ์ธํ๋ผ(IaC) ์ค๋ช , ๊ฒฐ๊ณผ ์๋ฃจ์ ํ ์คํธ, ๋ชจ๋ํฐ๋ง ์ค์ , ๋ก๊ทธ ์์ง ๋ฐ ์ฐ๊ตฌ๋ฅผ ๊ฑฐ์ณ ๋ง์ง๋ง์ผ๋ก SRE๋ก: ์ ๋ขฐ์ฑ์ ์ธก์ ๊ฐ๋ฅํ๊ณ ๊ด๋ฆฌ ๊ฐ๋ฅํ ์คํ ๋ฆฌ๋ก ์ ํํฉ๋๋ค.
ํ๋ด
์์ฆ Git์ ์ฌ์ฉํ์ง ์๋ ์ฌ๋์ ์ด์ ์ฒ์์ผ๋ก ๋ ธํธ๋ถ์ ๊ตฌ์ ํ ์ฌ๋๋ฟ์ด๋ค. ์ด๊ฒ์ ์ฌ์ํ๊ณ ์ด๋์๋ ์๋ ๋๊ตฌ์ด์ง๋ง ๋ง์คํฐ์ ๊ฐ์ ๋ก ํธ์ํ๋ ๊ฒ๋ถํฐ Ctrl-C, Ctrl-V๋ฅผ ํตํด Git์์ ์๋ฒ๋ก ํ์ผ์ ๋ณต์ฌํ๋ ๊ฒ๊น์ง ์ค์ฉ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์ฌ์ฐ์ค๋ธ๋ฆฌ์ง์์ ํ๋ ๊ฒ์ฒ๋ผ, ํ์ง ๋ง์์ผ ํ ๊ฒ๊ณผ ์ด๋ป๊ฒ ํด์ผ ํ๋์ง ์๋ ค๋๋ฆฝ๋๋ค.
์ฐ๋ฆฌ๋ ๊ธฐํ์ ๊ธฐ๋ณธ, ํ์ํฌ๋ฅผ ์ฐ์ตํ๊ณ ์์ต๋๋ค.
์ฃผ์ #1: Git ๊ธฐ์ด
- ๊ธฐ๋ณธ ๋ช ๋ น git init, commit, add, diff, log, status, pull, push
- Git ํ๋ฆ, ๋ถ๊ธฐ ๋ฐ ํ๊ทธ, ๋ณํฉ ์ ๋ต
- ์ฌ๋ฌ ์๊ฒฉ ์ ์ฅ์๋ก ์์ ํ๊ธฐ
์ฃผ์ #2: Git์ ์ฌ์ฉํ ํ์ํฌ
- GitHub ํ๋ฆ
- ํฌํฌ, ์๊ฒฉ, ํ ์์ฒญ
- ํ๊ณผ ๊ด๋ จ๋ Gitflow ๋ฐ ๊ธฐํ ํ๋ฆ์ ๋ํ ์ถฉ๋, ๋ฆด๋ฆฌ์ค, ๋ค์ ํ ๋ฒ
๊ด๋ฆฌ์์ ๊ฐ๋ฐ์๊ฐ ์ ๋ฌด์ ์์ด ๋ชจ๋ ์ค๋ฌด๋ฅผ ์ฆ์ ๊ตฌํํ ์ ์๋๋ก ์๋ฃ๊ฐ ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
DevOps ๊ด์ ์์ Git์ ์ ์ ํ๊ฒ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ ๋ฐ ๊ด๋ฆฌ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํ ๋ฐ ์๋ํํ๊ณ ๋ฐ๋ณต๋๋ ์ฌ๋ฌ ๋ฌธ์ ๋ฅผ ์ ๊ฑฐํ๋ฉฐ ์์ฐ์ฑ์ ๋์ผ ์ ์์ต๋๋ค.
DevOps ๊ฐ๋ฐ์
์ฐ๋ฆฌ๋ ๊ฐ๋ฐ์์ ๋์ผ๋ก DevOps๋ฅผ ๋ด ๋๋ค. ๋ก์ปฌ ํ๊ฒฝ์ ์์ํ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ๊ณ , ๋ชจ๋ํฐ๋ง ๋ฐ ๋ก๊น ์ ์ค์ ํ๊ณ , ๋ก์ปฌ์์ ํ ์คํธํ๊ณ , ๋ณ์/๋น๋ฐ ๋ฐ ์๋น์ค ๊ฒ์ ์ ์ฅ์๋ฅผ ๊ตฌ์ฑํ๊ณ , ์คํ ํธ๋ ์ด์ฑ์ ๊ด์ฐฐํฉ๋๋ค.
์ฃผ์ #3: ๊ฐ๋ฐ ๊ด์ ์์ ์ ํ๋ฆฌ์ผ์ด์ ์์
- ๋ก์ปฌ ํ๊ฒฝ ์ค์ : ์ค์ ๊ถ์ฅ ์ฌํญ
- Python์ผ๋ก ๋ง์ดํฌ๋ก์๋น์ค ์์ฑ(ํ ์คํธ ํฌํจ)
- ๊ฐ๋ฐ ์ docker-compose ์ฌ์ฉ
์ฃผ์ #4: ์ฝ๋์ ์ธํ๋ผ ๊ฐ์ ์ํธ ์์ฉ
- ๊ตฌ์ฑ ์์ ์ฐ์ต
๊ฒฐ๊ณผ์ ์ผ๋ก ๊ฐ๋ฐ์๋ ์ฝ๋๊ฐ ๋ก๊ทธ๋ฅผ ๋ณด๋ด๋ ๋ฐฉ๋ฒ, ํ ์คํธํ๋ ๋ฐฉ๋ฒ, ํฅํ ๋๋ฒ๊น ํ๋ ๋ฐฉ๋ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ๊ด๋ฆฌ์๋ ์ฝ๋์ ์ด๋ค ์ค๋ฅ๊ฐ ์๋์ง, ๊ฐ๋ฐ์๋ฅผ ์ํ ํ ์คํธ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ, ํ๋ก์ ํธ ์์ฒด๋ฅผ ํ ์คํธํ๋ ๋ฐฉ๋ฒ ๋ฑ ๊ฐ๋ฐ์์ ์๊ตฌ ์ฌํญ์ ์ดํดํฉ๋๋ค.
์ด ๋จ๊ณ์์๋ DevOps์ ์ฃผ์ ์๋ฌด๊ฐ ํด๊ฒฐ๋ฉ๋๋ค. Dev์ Ops ๊ฐ์ ์ํธ ์ดํด์ ๊ณต๋ ์์ ์ด ๊ตฌ์ถ๋ฉ๋๋ค. ์ด๋ ์์ ๊ณต์ ์์ ์ฑ ์ ์๋ ํ์ ์ผ๋ก ์ ํํ๋ ํต์ฌ ๋จ๊ณ์ ๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ์์ ์๋์ ํ์ง์ด ํฅ์๋ฉ๋๋ค.
CI / CD
ํ๋ ์๋ํ์๋ CI/CD๊ฐ ํฌํจ๋ฉ๋๋ค. makefile, githook, ์คํฌ๋ฆฝํธ ๋ฑ ์๋ ์๋ํ๋ถํฐ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ด๋ฌํ ๋๊ตฌ๊ฐ ์ฌ์ ํ ๊ด๋ จ์ฑ์ด ์๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํด์๋ ์ ๋๋ ๊ฒฝ์ฐ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๊ทธ๋ผ Gitlab์ ์๋ก ๋ค์ด ํ๋ CI์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ฃผ์ #5: ์๋ํ์ ๋ํ CI/CD ์๊ฐ
- ์๋ํ ์๊ฐ
- ๋๊ตฌ(bash, make, gradle)
- git-hooks๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ธ์ค ์๋ํ
- ๊ณต์ฅ ์กฐ๋ฆฝ ๋ผ์ธ ๋ฐ IT ๋ถ์ผ์ ์์ฉ
- "์ผ๋ฐ" ํ์ดํ๋ผ์ธ ๊ตฌ์ถ์ ์
- CI/CD์ฉ ์ต์ ์ํํธ์จ์ด: Drone CI, BitBucket Pipelines, Travis ๋ฑ
์ฃผ์ #6: CI/CD: Gitlab ์์
- Gitlab CI - ์ผ๋ฐ
- Gitlab Runner, ์ ํ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
- Gitlab CI, ๊ตฌ์ฑ ๊ธฐ๋ฅ, ๋ชจ๋ฒ ์ฌ๋ก
- Gitlab CI ๋จ๊ณ
- Gitlab CI ๋ณ์
- ๋น๋, ํ ์คํธ, ๋ฐฐํฌ
- ์คํ ์ ์ด ๋ฐ ์ ํ: ๊ฒฝ์ฐ์๋ง
- ์ํฐํฉํธ ์์
- .gitlab-ci.yml ๋ด์ ํ ํ๋ฆฟ, ํ์ดํ๋ผ์ธ์ ๋ค๋ฅธ ๋ถ๋ถ์์ ์์ ์ ์ฌ์ฌ์ฉ
- ํฌํจ - ์น์
- gitlab-ci.yml์ ์ค์ ์ง์ค์ ๊ด๋ฆฌ(ํ์ผ XNUMX๊ฐ ๋ฐ ๋ค๋ฅธ ์ ์ฅ์๋ก ์๋ ํธ์)
๊ด๋ฆฌ์์ ๊ฐ๋ฐ์ ๊ฐ์ ํ์ ์ด ์๋ก์ด ์์ค์ ๋๋ฌํ์ต๋๋ค. ๊ด๋ฆฌ์๋ CI ํ ํ๋ฆฟ์ ์์ฑํ๊ณ ๊ฐ๋ฐ์๋ ์ด๋ฅผ ํธ์งํ์ฌ ๊ด๋ฆฌ์์ ๋ ๋ฆฝ์ ์ผ๋ก CI๋ฅผ ๊ตฌ์ถํฉ๋๋ค.
๊ฐ๋ฐ์์ ๊ด๋ฆฌ์์ ๋ํ ์์กด๋๊ฐ ์ค์ด๋ค๊ณ , ์์์ ๋์ด ์ค์ด๋ค๋ฉฐ, โmake ํ์ผ์ ๋ค๋ฃฐ ์ค ์๋ ์ ์ผํ ์ฌ๋โ์ด๋ผ๋ ๋ฌธ์ ๋ ์ฌ๋ผ์ง๋ค. ์ถ์๋ ์์ ์ ์ด๊ณ ์ ์ํ๊ฒ ์ด๋ฃจ์ด์ง๋๋ค.
IAC
Terraform์ ์๋ก ๋ค์ด ์ฝ๋๋ก์์ ์ธํ๋ผ ์ฃผ์ ์ ๋ํด์๋ Selectel ํด๋ผ์ฐ๋ ๊ด๋ฆฌ์ Alexey Stepanenko๊ฐ ๋ ผ์ํฉ๋๋ค. ๊ทธ๋ ์๋ฒ๋ฅผ ์๋์ผ๋ก ์ ์ํ๊ฒ ๋ฐฐํฌํ๊ณ ํ์ฅํ๋ ๋ฐฉ๋ฒ, ์ด๋ฏธ์ง๋ฅผ ์๋์ผ๋ก ํจํค์งํ๋ ๋ฐฉ๋ฒ, ๊ตฌ์ฑ ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ฌ ์ฆ์ ๊ตฌ์ฑ๋ ์์คํ ์ ์ป๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
์์ฒ ๊ฐ์ IaC ์๋ฃจ์ ์ ๋ง๋ ์ฌ๋์ด ์ด๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ํํ๋ ๋ฐฉ๋ฒ๊ณผ ํ์ง ๋ง์์ผ ํ ๊ฒ์ ์๋ ค์ค ๊ฒ์ ๋๋ค.
Selectel ํด๋ผ์ฐ๋ ์๋ฃจ์ ์ ์ต์ํ์ ์์ ๋ง์ผ๋ก Google ๋ฐ Amazon ํด๋ผ์ฐ๋์ ์ ํฉํฉ๋๋ค.
Southbridge ์ง์ Nikolai Mesropyan์ Ansible์ ์๋ก ๋ค์ด ๋ค์ดํ์ ์์ด ์๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๊ณ ์ฑ๋ฅ์ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
์ธํ๋ผ๋ฅผ ์๋์ผ๋ก ํธ์งํ๋ ๊ฒฝ์ฐ(์๋ฒ ์ค์ , ํ์์ ๋ฐ๋ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ํจํค์ง ์ค์น) ํ๊ฒฝ ๋ณต์ฌ๋ณธ์ ์์ฑํ๋ ค๊ณ ํ ๋ ๋ชจ๋ ์์ ์ ๊ธฐ์ตํ๊ณ ์ฌํํด์ผ ํฉ๋๋ค. ์ด ์์ ์ 3~5์ผ์ด ์์๋ฉ๋๋ค. ์ฝ๋ํ ์ธํ๋ผ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ช ๋ถ ์์ ๋ฐฐํฌํ ์ ์๋ ํ๊ฒฝ์ ๋ํ ์ต์ ์ค๋ช ์ ์ป์ ์ ์์ต๋๋ค.
Nikolay๋ ํ๋ ์ด๋ถ์ ์์ฑํ๋ ๋ฐฉ๋ฒ, ์ด๋ค ์ค์๊ฐ ๋ฐ์ํ๋์ง, ํ๋ ์ด๋ถ์ด ๋๋๋ก ์์๋๋ก ๋๋ฆฌ๊ฒ ์๋ํ๊ฑฐ๋ ์๋ํ์ง ์๋ ์ด์ ๋ฅผ ์๋ ค์ค ๊ฒ์ ๋๋ค. ์ด๋ Southbridge์์ ์๋ ๊ฐ IaC๋ฅผ ์ฌ์ฉํด ๋ณธ ๊ฒฝํ์ ๋๋ค.
์ฃผ์ #7: ์ฝ๋ํ ์ธํ๋ผ
- IaC: ์ธํ๋ผ๋ฅผ ์ฝ๋๋ก ์ ๊ทผ
- ์ธํ๋ผ ์ ๊ณต์๋ก์์ ํด๋ผ์ฐ๋ ์ ๊ณต์
- ์์คํ ์ด๊ธฐํ ๋๊ตฌ, ์ด๋ฏธ์ง ๊ตฌ์ถ(ํจ์ปค)
- Terraform์ ์์๋ก ์ฌ์ฉํ๋ IaC
- ๊ตฌ์ฑ ์ ์ฅ, ํ์ , ์ ํ๋ฆฌ์ผ์ด์ ์๋ํ
- Ansible ํ๋ ์ด๋ถ ์์ฑ ์ฐ์ต
- ๋ฉฑ๋ฑ์ฑ, ์ ์ธ์ฑ
- Ansible์ ์๋ก ์ฌ์ฉํ๋ IaC
- ์ฝ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค/PostgreSQL ๋ด๊ฒฐํจ์ฑ
์ธํ๋ผ๋ ์ ์ธ์ ์ด๊ณ ๋ฉฑ๋ฑ์ฑ์ด ์๊ฒ ๋ฉ๋๋ค.
๊ด๋ฆฌ์๋ ๋ณต์กํ ์ธํ๋ผ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋๋ค. ์๋ก์ด ํ๊ฒฝ์ ๋น ๋ฅด๊ฒ ์์ฑํ๊ณ , ๋ชจ๋ ํ๊ฒฝ์ ํต์ผ์ฑ์ ์ ์งํ๊ณ , ๋ณ๊ฒฝ ๋ด์ญ์ ํ์ธํ๋ ๋ฑ ์ฌ๋ฌ ํ์ด ํ๋ก์ ํธ๋ฅผ ์งํํ ๋ ๋งค์ฐ ์ค์ํฉ๋๋ค.
๊ฐ๋ฐ์๋ ์ธํ๋ผ๋ฅผ ์ฐ๊ตฌํ๊ณ ์์ ์ ํ๊ฒฝ์ ๋
๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐํ ์ ์์ต๋๋ค.
์น์ ๋ณด๋์ค: PostgreSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฅ์ ์กฐ์น ํด๋ฌ์คํฐ ์์ฑ ๋ฐ ๊ตฌ์ฑ. ์ฐ๋ฆฌ๋ Southbridge์์ ์ฌ์ฉํ ์ ์๋ ๊ธฐ์ฑ ํ๋ ์ด๋ถ์ ์ ๊ณตํ ๊ฒ์ด๋ฉฐ, ๊ทํ๋ ๊ต์ก ์คํ ๋์ ํด๋ฌ์คํฐ๋ฅผ ๋ฐฐํฌํ๊ณ ํ์ฌ์์ ์ด ์๋ฃจ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ธํ๋ผ ํ ์คํธ ๋ฐ ๋ชจ๋ํฐ๋ง
์๋ํ๋ฅผ ์ฌ์ฉํ๋ฉด ํ ๋ฒ์ ์์ฒ ๋์ ์๋ฒ์ ์ค๋ฅ๋ฅผ ๋กค์์ํ ์ ์์ต๋๋ค. ๋ชจ๋ ๋ณ๊ฒฝ์๋ ํ ์คํธ๊ฐ ํ์ํฉ๋๋ค. ๋ฐ๋ฉด ์๋ ํ ์คํธ์๋ ์๊ฐ์ด ๋๋ฌด ๋ง์ด ๊ฑธ๋ ค ์๋ํ์ ์ด์ ์ด ๋ฌดํจํ๋ฉ๋๋ค.
์ญํ ํ ์คํธ๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์ค์ ๋ก ๋ณด์ฌ ๋๋ฆฌ๊ฒ ์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก, ๊ทํ๋ ๊ทํ์ ํ์ฌ์ ๋ํ ํ ์คํธ๋ฅผ ์์ฑํ ์ ์๊ฒ ๋ฉ๋๋ค. ๋ ์ด์ ์ค์ ์ ๊ธฐ์ตํ ํ์๊ฐ ์์ต๋๋ค. ํ ์คํธ์์ ์ค์ ์ ์ค๋ช ํ๊ณ ์ด์ ์๋ฃจ์ ๊ณผ ๋ชฉ๋ฐ์ด ๋ชจ๋ ์ ์๋ฆฌ์ ์๋์ง ์๋์ผ๋ก ํ์ธํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ๋ชจ๋ ์ ์๋ฒ๋ฅผ ๋ชจ๋ํฐ๋ง์ ์๋์ผ๋ก ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ ์์๋ด ๋๋ค. ์ธํ๋ผ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ํฐ๋ง์ ๋ณ๋๋ก ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋์ ๊ดํ๊ณผ ์ข์ ๊ดํ์ ๋ณด์ฌ์ค ๊ฒ์ ๋๋ค.
์ฃผ์ #8: ์ธํ๋ผ ํ ์คํธ
- Molecule ๋ฐ Gitlab CI๋ฅผ ์ฌ์ฉํ ํ ์คํธ ๋ฐ ์ง์์ ์ธ ํตํฉ
- ๋ฐฉ๋์ ์ฌ์ฉ
์ฃผ์ #9: Prometheus๋ฅผ ์ฌ์ฉํ ์ธํ๋ผ ๋ชจ๋ํฐ๋ง
- ๋ชจ๋ํฐ๋ง์ด ํ์ํ ์ด์ ๋ ๋ฌด์์ ๋๊น?
- ๋ชจ๋ํฐ๋ง ์ ํ
- ๋ชจ๋ํฐ๋ง ์์คํ ์ ์๋ฆผ
- ๊ฑด๊ฐํ ๋ชจ๋ํฐ๋ง ์์คํ ์ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ
- ๋๊ตฌ๋ ์ฝ์ ์ ์๋ ์๋ฆผ
- ๊ฑด๊ฐ๊ฒ์ง, ์ฃผ์ํด์ผ ํ ์
- ๋ชจ๋ํฐ๋ง ๋ฐ์ดํฐ ๊ธฐ๋ฐ ์๋ํ
์ ๋๋ก ์๋ํ์ง ์๋ ๋ชจ๋ํฐ๋ง์ ๋ชจ๋ํฐ๋ง์ด ์๋๋๋ค. ๊ธฐ์ ์์๋ ๊ฒฐ์ ์์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋๋ผ๋ ์จ๋ผ์ธ ์์ ์ ๋ฉ์ธ ํ์ด์ง์ ์ก์ธ์คํ ์ ์๋์ง ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค.
๊ฐ๋ฐ์์ ๊ด๋ฆฌ์๋ ๋ชจ๋ํฐ๋ง ์ค์ ๋ฐ ๋ฌธ์ ํด๊ฒฐ์ ๋๋ฑํ๊ฒ ์ฐธ์ฌํฉ๋๋ค. ๋ํ ์ ํต์ ์ผ๋ก ๋ชจ๋ํฐ๋ง ์์ ์ ๊ด๋ฆฌ์์๊ฒ ๋งก๊ฒจ์ก์ต๋๋ค. ์ฐ๋ฆฌ ๊ณผ์ ์์๋ ๊ฐ๋ฐ์๋ค์ด ํจ๊ณผ์ ์ธ ๋ชจ๋ํฐ๋ง์ ์์ฑํ๋ ๋ฐ ์ด๋ค ์ญํ ์ ํ๋์ง ๋ณด์ฌ์ค ๊ฒ์ ๋๋ค. ๊ด๋ฆฌ์๋ Southbridge ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๊ฒ ๋ฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์น์ฌ์ดํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค๋ฅ์ ์๋ ์ ํ๋ก ์ธํ ์์ค์ด ๋น ๋ฅด๊ฒ ์ค์ด๋ค ๊ฒ์ ๋๋ค.
์น์ ๋ณด๋์ค: ๋ชจ๋ํฐ๋ง ๊ธฐ๋ฐ ์๋ํ. ์๋ฅผ ๋ค์ด, ๋ชจ๋ํฐ๋ง์ ์ฌ์ดํธ์ ๋ก๋๊ฐ ๋๋ฌํ์์ ๋ณด๊ณ ํ๊ณ ์น ์๋ฒ ํ์ฅ์ด ์๋์ผ๋ก ์์๋ฉ๋๋ค.
๋ฒ์ฑ ๋ฐ์ถ
๋ก๊ทธ ์์ ์ ๊ฐ์ฅ ํฐ ์ค์๋ ๊ด๋ฆฌ์์ ๊ฐ๋ฐ์๊ฐ ์๋ฒ์์ ์ง์ ๋ก๊ทธ๋ฅผ ๋ณธ๋ค๋ ๊ฒ์ ๋๋ค. ์๋ฒ๊ฐ ๋ ๊ฐ ์ด์์ธ ๊ฒฝ์ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฝ๋๋ค. ์ด๋ ์์ ํ์ง ์์ต๋๋ค. ๊ฐ๋ฐ์๊ฐ ์์ด์๋ ์๋๋ ์๋ฒ์ ๋ก๊ทธ์ธํฉ๋๋ค.
DevOps์๋ ์ค์ ์ง์ค์ ๋ก๊ทธ ์์ง, ์ฒ๋ฆฌ ๋ฐ ๋ถ์์ด ํ์ํฉ๋๋ค.
์ฃผ์ #10: ELK๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๋ก๊น
- Elastic์ ๊ธฐ๋ณธ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ๊ธฐ๋ฅ(๊ฒ์, ์ ์ฅ, ํ์ฅ ๊ธฐ๋ฅ, ์ฌ์ฉ์ ์ ์ ์ ์ฐ์ฑ)
- Kibana ๊ฐ์(์ฃผ์ ๊ธฐ๋ฅ, ์ฟผ๋ฆฌ ์ธ์ด, ๋์๋ณด๋ ๊ด๋ฆฌ, ์ฐจํธ ์์ฑ)
- ํ์ฑ ๊ธฐ๋ฐ ์ ํ ๋ฐ ์์ฉ ๊ฒํ
- APM์์ ์งํ ์์ง(์ ํ๋ฆฌ์ผ์ด์ ์ถ์ )
- ์ถ๊ฐ: ์ ์ ํ ๋ฆฌ๋ทฐ - SIEM
์ด ์ ๊ทผ ๋ฐฉ์์ ๋์ ํ๋ฉด ๋ก๊ทธ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ธํ๋ผ๋ฅผ ๋ถ์, ๊ตฌ์ฑ ๋ฐ ๋๋ฒ๊น ํ๊ธฐ ์ํ ๊ฐ๋จํ๊ณ ์ดํดํ๊ธฐ ์ฌ์ด ๋๊ตฌ๊ฐ ๋ ๊ฒ์ ๋๋ค.
SRE
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ Southbridge๊ฐ ์ฃผ๋ชฉํ๊ณ ์๋ ์ฃผ์ ์ ๋ค๋ฅธ ์ฐ์ฌ๋ค์ด Slurm์ ๋ง์ง๋ง ๋ ์ ๋จธ๋ฌผ๊ธฐ๋ฅผ ์ํ๋ ์ฃผ์ ์ ๋๋ฌํ์ต๋๋ค. Booking.com์ Ivan Kruglov๊ฐ ์ด ๊ธ์ ์ฝ๋ ๋ฐ ๋์ํด์ฃผ์ ์ ๊ธฐ์๊ฒ ์๊ฐํฉ๋๋ค.
์ด ํ๋ก์ ํธ๋ ์ ๋ขฐ์ฑ์ด ๊ฒฐ์ฝ ์ ๋์ ์ด์ง ์๊ณ ๋ชจ๋ ๊ฒฐ์ ์ ๋น์ฉ์ด ๋๋ ํ์ค ์ธ๊ณ์ ์กด์ฌํฉ๋๋ค.
๋ณต์กํ ํ๋ก์ ํธ์ ๊ด๋ จ๋ SLA๋ ๋ฌด์์ ๋๊น? ์ฌ์ดํธ์ ์ก์ธ์คํ ์ ์์ง๋ง ์ด๋ฏธ์ง๊ฐ ์ง์ฐ๋์ด ๋ก๋๋๋์ง ํ๊ฐํ๋ ๋ฐฉ๋ฒ์ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. SLA ์ธก์ ํญ๋ชฉ์ ๋ฌด์์ด๋ฉฐ, ์ด๋์์, ์ด๋ป๊ฒ ๊ฐ์ ธ๊ฐ ์ ์๋์?
SLA๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ์ด๋ป๊ฒ ๊ฒฌ๋์ผ ํ ๊น์?
์ฃผ์ #11: SRE
SRE ์ธ๊ณ์ SLA, SLO, ์ค๋ฅ ์์ฐ ๋ฐ ๊ธฐํ ๋ฌด์์ด ์ฉ์ด์ ์ ์
SRE: SLI ๋ฐ SLO ๋ชจ๋ํฐ๋ง ๋ฐฉ์
SRE: Error Budget ํ์ฉ ์ค์ต
SRE: ์ธํฐ๋ฝํธ ๋ฐ ์ด์ ๋ถํ ๊ด๋ฆฌ(apigateway, ์๋น์ค ๋ฉ์, ํ๋ก ์ฐจ๋จ๊ธฐ)
๊ธฐ์
์ SRE๋ฅผ ์ํฉ๋๋ค. ์ต์ํ ๊ฐ์ฅ ๊ฐ๋จํ ์์ค์์๋ ๋ฐฑ์
์๋ฒ๋ฅผ ๊ฐ์ ธ์์ผ ํ ๊น์, ์๋๋ฉด ๋ฐฑ์
์์ ๋ค์ด ์ฌ๋ ค์ผ ํ ๊น์? ๋จ์ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ ํด๋ฌ์คํฐ? DDoS ๋ณดํธ ๊ธฐ๋ฅ์ ์ฌ์ ์ ์ค์นํด์ผ ํฉ๋๊น, ์๋๋ฉด ๊ณต๊ฒฉ ์์๋ง ์ค์นํด์ผ ํฉ๋๊น?
์์ฅ์ ๊ณ ๊ฐ์ด ์ ํ๋ฅผ ๊ฑธ์ด ์ฃผ๋ฌธ ์์์ด ์ด๋ฆฌ์ง ์๋๋ค๊ณ ๋ณด๊ณ ํ๋ฉด "์ฌ์ดํธ๊ฐ ์๋ ์ค"์ด๋ผ๋ ์ด์ผ๊ธฐ์ ๋ง์กฑํ์ง ์์ ๊ฒ์ ๋๋ค.
๋ฐ๋ผ์ DevOps ์์ง๋์ด๊ฐ SRE์ ์๊ตฌ ์ฌํญ์ ๋ํด ๋น์ฆ๋์ค์ ์ ์ ํ๊ฒ ๋ํํ๋ ค๋ฉด ์ต์ํ ํ๋ฉด์ ์ผ๋ก SRE๋ฅผ ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
ํฉ๊ณ
๋์ ๊ด๋ฆฌ์์ ๊ฐ๋ฐ์๋ ๋ค์์ ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค.
โ Git์ผ๋ก ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํฉ๋๋ค.
โ ์ง์ญ ๊ฐ๋ฐ์ ์กฐ์งํฉ๋๋ค.
โ CI/CD ๊ตฌ์ฑ(๊ด๋ฆฌ์) ๋ฐ ์ฌ์ฉ(๊ฐ๋ฐ์)
โ ์ฝ๋์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ธํ๋ผ๋ฅผ ์ฌ์ฉํ์ฌ ์์
ํฉ๋๋ค.
โ ์ธํ๋ผ๋ฅผ ํ
์คํธํฉ๋๋ค.
โ ์ธํ๋ผ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ชจ๋ํฐ๋งํฉ๋๋ค.
โ ๋ก๊น
์ ๊ตฌ์ฑํฉ๋๋ค.
โ SRE๋ฅผ ์ดํดํ๊ณ ์ด์์ ์ผ๋ก ์ฌ์ฉํ์ญ์์ค.
์ธ์ฌํ ๋ ์๋ฅผ ์ํด habrapost ํ๋ก๋ชจ์ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ 15% ํ ์ธ์ ๋ฐ์ผ์ธ์.
๋ชจ๋ ํฌ์ธํธ์ ๋ํ ์ฐ์ต๊ณผ ๋๊ตฌ๋ฅผ ์ค๋นํ๊ณ ์์ต๋๋ค. ๋ฐ๋ผ์ ๊ฐ ์ฐธ๊ฐ์๋ Slurm์์ ๋์์ ํ์ฌ๋ฅผ DevOps์ ๋ค์ ๋จ๊ณ๋ก ๋์ด์ฌ๋ฆด ์ ์์ต๋๋ค.
๋น์ฆ๋์ค์ ๊ฒฝ์ฐ ์ด๋ ๊ด๋ฆฌ ๋ฐ ๊ฐ๋ฐ ๋น์ฉ ์ ๊ฐ, ๊ฐ๋ ์ค์ง ์๊ฐ ๊ฐ์, ์์ ์ฑ ํฅ์, ๊ธฐ๋ฅ ์ ๊ณต ์๋ ํฅ์ ๋ฐ ๋ฒ๊ทธ ์ ๊ฑฐ๋ฅผ ์๋ฏธํฉ๋๋ค.
์ถ์ฒ : habr.com
