TL; DR
๋ค์ ํ๋ฒ ์ค์ ๋ก DevOps ๋๊ตฌ๋ฅผ ๋ถ์ํด ๋ณด๊ฒ ์ต๋๋ค.
์ธ๋ถ ์ฌํญ ๋ฐ ํ๋ก๊ทธ๋จ์ ์ปท ์๋์ ์์ต๋๋ค.
Ivan Kruglov์ ํจ๊ป ๋ณ๋์ Slurm SRE๋ฅผ ์ค๋นํ๊ณ ์๊ธฐ ๋๋ฌธ์ SRE๊ฐ ํ๋ก๊ทธ๋จ์์ ์ ๊ฑฐ๋์์ต๋๋ค. ๋ฐํ๋ ๋์ค์ ์ฌ ์์ ์
๋๋ค.
์ฒซ ๋ฒ์งธ Slurm ์ดํ ํ์ํด ์ฃผ์ Selectel์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
์ฒ ํ, ํ์๋ก , ์์์น ๋ชปํ ์ฑ๊ณต์ ๋ํ์ฌ
์ ๋ XNUMX์ ๋ง ๋ชจ์คํฌ๋ฐ์์ ์ด๋ฆฐ DevOpsConf์ ์ฐธ์ํ์ต๋๋ค.
๋ด๊ฐ ๋ค์ ๋ด์ฉ ์์ฝ:
โ DevOps๋ ๋ชจ๋ ๊ท๋ชจ์ ๋๋ถ๋ถ์ ํ๋ก์ ํธ์ ํ์ํฉ๋๋ค.
โ DevOps๋ ๋ค๋ฅธ ๋ฌธํ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฌธํ์ด๋ฉฐ ํ์ฌ ๋ด๋ถ์์ ๋์์ผ ํฉ๋๋ค. DevOps ์์ง๋์ด๋ฅผ ๊ณ ์ฉํ๊ณ ๊ทธ๊ฐ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ ํ ๊ฒ์ด๋ผ๊ณ ๊ฟ๊ฟ ์๋ ์์ต๋๋ค.
โ DevOps ํ์ ์ ํ์ํ ๊ฒ ๋ชฉ๋ก์ ๋งจ ๋์๋ ๊ธฐ์ , ์ฆ ์ฐ๋ฆฌ๊ฐ ๊ฐ๋ฅด์น๋ ๋ฐ๋ก DevOps ๋๊ตฌ๊ฐ ์์ต๋๋ค.
DevOps ์ฒ ํ๊ณผ ๋ฌธํ๋ ์ฒด๊ณ์ ์ผ๋ก ๊ฐ๋ฅด์น ์ ์๊ธฐ ๋๋ฌธ์ ๊ณผ์ ์ ํฌํจํ์ง ์๋ ๊ฒ์ด ์ณ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. ํ์ํ ์ฌ๋์ ๋๊ตฌ๋ ์ฑ ์์ ์ฝ์ ๊ฒ์ ๋๋ค. ์๋๋ฉด ๊ทธ๋ ์์ ์ ์นด๋ฆฌ์ค๋ง์ ๊ถ์๋ก ๋ชจ๋ ์ฌ๋์ ์ค๋ํ ๋งค์ฐ ๋ฉ์ง ์ฝ์น๋ฅผ ์ฐพ์ ๊ฒ์ ๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ์ ๋ ํญ์ ๋๊ตฌ๋ฅผ ํตํด ๋ฌธํ๋ฅผ ๊ฒ๋ฆด๋ผ ๋ฐฉ์์ผ๋ก ๊ตฌํํ๋ '์๋๋ก๋ถํฐ์ ์ด๋'์ ์ง์งํด ์์ต๋๋ค. The Phoenix Project์์ ์ค๋ช ํ ๊ฒ๊ณผ ๋น์ทํฉ๋๋ค. Git์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋์ด ํ์ํฌ๊ฐ ํ์ฑ๋๋ฉด ์ฒ์ฒํ ๊ท์ ์ผ๋ก ๋ณด์ํ๊ณ ๊ฐ์น๊ฐ ๋์ฌ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ฐฌ๊ฐ์ง๋ก ๋๊ตฌ์ ๋ํด์๋ง ์ด์ผ๊ธฐํ๋ DevOps Slurm์ ์ค๋นํ ๋ ์ฐธ๊ฐ์๋ค์ ๋ฐ์์ด ๋๋ ค์ ์ต๋๋ค. โํ๋ฅญํ ๋ง์์ ํ์ จ์ต๋๋ค. ์ํ๊น์ง๋ง ๊ฒฐ์ฝ ๊ตฌํํ ์ ์์ต๋๋ค.โ ํ์๋ก ์ด ๋๋ฌด ๋ง์์ ์ฐ๋ฆฌ๋ ํ๋ก๊ทธ๋จ ๋ฐ๋ณต์ ์ฆ์ ์ค๋จํ์ต๋๋ค.
๊ทธ๋ฌ๋ ์ค๋ฌธ์กฐ์ฌ์ ์ฐธ์ฌํ ๋๋ค์์ ์ฐธ๊ฐ์๋ ์ป์ ์ง์์ด ์ค์ ๋ก ์ ์ฉ ๊ฐ๋ฅํ๋ฉฐ ๊ฐ๊น์ด ์์ผ ๋ด์ ์๊ตญ์์ ๋ฌด์ธ๊ฐ๋ฅผ ๊ตฌํํ ๊ฒ์ด๋ผ๊ณ ๋ตํ์ต๋๋ค. ๋์์ ์ฐ๋ฆฌ๊ฐ ์ค๋ช ํ๋ ๋ชจ๋ ๋ด์ฉ์ Git, Ansible, CI/CD, SRE ๋ฑ ์ ์ฉํ ํญ๋ชฉ ๋ชฉ๋ก์ ํฌํจ๋์์ต๋๋ค.
์ฒ์์ ๊ทธ๋ค์ Slurm Kubernetes์ ๋ํด k3s๋ฅผ 8์ผ ์์ ์ค๋ช ํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ค๊ณ ๋งํ๋ค๋ ๊ฒ์ ๊ธฐ์ตํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
SRE ์ฃผ์ ๋ฅผ ์ฃผ๋ํ Ivan Kruglov์ ๋ณ๋์ ํ๋ก๊ทธ๋จ์ ๋์ํ์ต๋๋ค. ํ์ฌ ์ธ๋ถ ์ฌํญ์ ๋ ผ์ ์ค์ด๋ฉฐ ๊ณง ๋ฐํํ๋๋ก ํ๊ฒ ์ต๋๋ค.
Slurm DevOps์์๋ ์ด๋ค ์ผ์ด ์ผ์ด๋ ๊น์?
ํ๋ก๊ทธ๋จ
์ฃผ์ #1: Git์ ์ฌ์ฉํ ํ์ํฌ
- ๊ธฐ๋ณธ ๋ช ๋ น git init, commit, add, diff, log, status, pull, push
- Git ํ๋ฆ, ๋ถ๊ธฐ ๋ฐ ํ๊ทธ, ๋ณํฉ ์ ๋ต
- ์ฌ๋ฌ ์๊ฒฉ ๋ด๋น์์ ํ๋ ฅ
- GitHub ํ๋ฆ
- ํฌํฌ, ์๊ฒฉ, ํ ์์ฒญ
- ํ๊ณผ ๊ด๋ จ๋ Gitflow ๋ฐ ๊ธฐํ ํ๋ฆ์ ๋ํ ์ถฉ๋, ๋ฆด๋ฆฌ์ค, ๋ค์ ํ ๋ฒ
์ฃผ์ #2: ๊ฐ๋ฐ ๊ด์ ์์ ์ ํ๋ฆฌ์ผ์ด์ ์์
- Python์ผ๋ก ๋ง์ดํฌ๋ก์๋น์ค ์์ฑ
- ํ๊ฒฝ ๋ณ์
- ํตํฉ ๋ฐ ๋จ์ ํ ์คํธ
- ๊ฐ๋ฐ ์ docker-compose ์ฌ์ฉ
์ฃผ์ #3: CI/CD: ์๋ํ ์๊ฐ
- ์๋ํ ์๊ฐ
- ๋๊ตฌ(bash, make, gradle)
- git-hooks๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ธ์ค ์๋ํ
- ๊ณต์ฅ ์กฐ๋ฆฝ ๋ผ์ธ ๋ฐ IT ๋ถ์ผ์ ์์ฉ
- "์ผ๋ฐ" ํ์ดํ๋ผ์ธ ๊ตฌ์ถ์ ์
- CI/CD์ฉ ์ต์ ์ํํธ์จ์ด: Drone CI, BitBucket Pipelines, Travis ๋ฑ
์ฃผ์ #4: CI/CD: Gitlab ์์
- ๊น๋ฉ CI
- Gitlab Runner, ์ ํ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
- Gitlab CI, ๊ตฌ์ฑ ๊ธฐ๋ฅ, ๋ชจ๋ฒ ์ฌ๋ก
- Gitlab CI ๋จ๊ณ
- Gitlab CI ๋ณ์
- ๋น๋, ํ ์คํธ, ๋ฐฐํฌ
- ์คํ ์ ์ด ๋ฐ ์ ํ: ๊ฒฝ์ฐ์๋ง
- ์ํฐํฉํธ ์์
- .gitlab-ci.yml ๋ด์ ํ ํ๋ฆฟ, ํ์ดํ๋ผ์ธ์ ๋ค๋ฅธ ๋ถ๋ถ์์ ์์ ์ ์ฌ์ฌ์ฉ
- ํฌํจ - ์น์
- gitlab-ci.yml์ ์ค์ ์ง์ค์ ๊ด๋ฆฌ(ํ์ผ XNUMX๊ฐ ๋ฐ ๋ค๋ฅธ ์ ์ฅ์๋ก ์๋ ํธ์)
์ฃผ์ #5: ์ฝ๋ํ ์ธํ๋ผ
- IaC: ์ธํ๋ผ๋ฅผ ์ฝ๋๋ก ์ ๊ทผ
- ์ธํ๋ผ ์ ๊ณต์๋ก์์ ํด๋ผ์ฐ๋ ์ ๊ณต์
- ์์คํ ์ด๊ธฐํ ๋๊ตฌ, ์ด๋ฏธ์ง ๊ตฌ์ถ(ํจ์ปค)
- Terraform์ ์์๋ก ์ฌ์ฉํ๋ IaC
- ๊ตฌ์ฑ ์ ์ฅ, ํ์ , ์ ํ๋ฆฌ์ผ์ด์ ์๋ํ
- Ansible ํ๋ ์ด๋ถ ์์ฑ ์ฐ์ต
- ๋ฉฑ๋ฑ์ฑ, ์ ์ธ์ฑ
- Ansible์ ์๋ก ์ฌ์ฉํ๋ IaC
์ฃผ์ #6: ์ธํ๋ผ ํ ์คํธ
- Molecule ๋ฐ Gitlab CI๋ฅผ ์ฌ์ฉํ ํ ์คํธ ๋ฐ ์ง์์ ์ธ ํตํฉ
- ๋ฐฉ๋์ ์ฌ์ฉ
์ฃผ์ #7: Prometheus๋ฅผ ์ฌ์ฉํ ์ธํ๋ผ ๋ชจ๋ํฐ๋ง
- ๋ชจ๋ํฐ๋ง์ด ํ์ํ ์ด์ ๋ ๋ฌด์์ ๋๊น?
- ๋ชจ๋ํฐ๋ง ์ ํ
- ๋ชจ๋ํฐ๋ง ์์คํ ์ ์๋ฆผ
- ๊ฑด๊ฐํ ๋ชจ๋ํฐ๋ง ์์คํ ์ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ
- ๋๊ตฌ๋ ์ฝ์ ์ ์๋ ์๋ฆผ
- ๊ฑด๊ฐ๊ฒ์ง, ์ฃผ์ํด์ผ ํ ์
- ๋ชจ๋ํฐ๋ง ๋ฐ์ดํฐ ๊ธฐ๋ฐ ์๋ํ
์ฃผ์ #8: ELK๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๋ก๊น
- ์ต๊ณ ์ ๋ก๊น ๋ฐฉ๋ฒ
- ELK ์คํ
์ฃผ์ #9: ChatOps๋ฅผ ํตํ ์ธํ๋ผ ์๋ํ
- DevOps ๋ฐ ChatOps
- ChatOps: ๊ฐ์
- Slack ๋ฐ ๋์
- ChatOps์ฉ ๋ด
- ํด๋ด๊ณผ ๋์
- ะะตะทะพะฟะฐัะฝะพััั
- ๋ชจ๋ฒ ์ฌ๋ก์ ์ต์ ์ฌ๋ก
์์น : ๋ชจ์คํฌ๋ฐ ์ธ๋ฐ์คํ ํด ํธํ ํ์์ค.
๋ ์ง : 30์ 1์ผ๋ถํฐ 3์ XNUMX์ผ๊น์ง XNUMX์ผ๊ฐ ์ด์ฌํ ์ผํ์ต๋๋ค.
์ถ์ฒ : habr.com