์ง๊ธ ์ต๊ณ ์ DevOps ๋๊ตฌ๋ฅผ ์ฌ์ฉํด ๋ณด์ธ์!
DevOps ํ๋ช
์ด ๋ง์นจ๋ด ์ ์ธ๊ณ๋ฅผ ์ฅ์
ํ์ผ๋ฉฐ DevOps ๋๊ตฌ๋ ์์ฒญ๋๊ฒ ์ธ๊ธฐ๋ฅผ ์ป์์ต๋๋ค. ์๋น์ค์ ๋ฐ๋ฅด๋ฉด
DevOps ๋ฐฉ๋ฒ๋ก ์ ์ ์ฒด ์ํํธ์จ์ด ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๋ค๋ฃจ๋ฏ๋ก ์ ๋ฌธ๊ฐ๋ ๋ค์ํ ๋๊ตฌ ์ค์์ ์ ํํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์์๋ค์ํผ ์ด๋ค ๋๊ตฌ๋ ๋ชจ๋ ์ฌ๋์ ์ํ ๋ณดํธ์ ์ธ ๋๊ตฌ๊ฐ ๋ ์๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ผ๋ถ ์๋ฃจ์ ์ ๊ฑฐ์ ๋ชจ๋ ์์ ์ ์ฒ๋ฆฌํ ์ ์๋ ๊ด๋ฒ์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
DevOps ๋๊ตฌ๋ฅผ ๋ฒ์ฃผ๋ก ๋๋๊ณ ์ด๋ฅผ ์ ์ฌ ๋๊ตฌ์ ๋น๊ตํด ๋ณด๊ฒ ์ต๋๋ค.
- ๊ฐ๋ฐ ๋ฐ ๋น๋ ๋๊ตฌ
- ํ ์คํธ ์๋ํ ๋๊ตฌ
- ๋ฐฐํฌ ๊ตฌ์ฑ ๋๊ตฌ
- ๋ฐํ์ ๋๊ตฌ
- ํ์ ๋๊ตฌ.
์ฑ๊ณต์ ์ด๊ณ ์ฌ๋ ค ๊น์ ๊ตฌํ
๊ฐ๋ฐ ๋ฐ ๋น๋ ๋๊ตฌ
์ด๋ CI/CD ํ์ดํ๋ผ์ธ ์คํ์ ๊ธฐ์ด์
๋๋ค. ๋ชจ๋ ๊ฒ์ด ๋ฐ๋ก ์ฌ๊ธฐ์ ์์๋ฉ๋๋ค! ์ด ์นดํ
๊ณ ๋ฆฌ์ ์ต๊ณ ์ ๋๊ตฌ๋ ์ฌ๋ฌ ์ด๋ฒคํธ ์คํธ๋ฆผ์ ๊ด๋ฆฌํ๊ณ ๋ค๋ฅธ ์ ํ๊ณผ ์ฝ๊ฒ ํตํฉํ ์ ์์ต๋๋ค.
๊ฐ๋ฐ ๋ผ์ดํ์ฌ์ดํด์ ์ด ๋จ๊ณ์๋ ์ธ ๊ฐ์ง ๋๊ตฌ ๊ทธ๋ฃน์ด ์์ต๋๋ค.
- ๋ฒ์ ๊ด๋ฆฌ ์์คํ (SCM)
- ์ง์์ ํตํฉ(CI)
- ๋ฐ์ดํฐ ๊ด๋ฆฌ
GIT๋ 2020๋ ์ ๊ธ์ ์ ์ธ ๊ฒ์ผ๋ก ์ ์ฆ๋์์ผ๋ฏ๋ก SCM ๋๊ตฌ๋ GIT๋ฅผ ์๋ฒฝํ๊ฒ ์ง์ํด์ผ ํฉ๋๋ค. CI์ ์ ์ ์กฐ๊ฑด์ ๊ฒฉ๋ฆฌ๋ ์ปจํ ์ด๋ ํ๊ฒฝ์์ ๋น๋๋ฅผ ์คํํ๊ณ ์คํํ ์ ์๋ ๋ฅ๋ ฅ์ ๋๋ค. ๋ฐ์ดํฐ ๊ด๋ฆฌ์ ์์ด์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ์ง ๊ด๋ฆฌํ๋ ๋ฅ๋ ฅ์ด ํ์ํฉ๋๋ค.
SCM + CI ๋๊ตฌ #1
์์์ : GitLab ๋ฐ GitLab-CI
2020๋
DevOps ์ฃผ๊ธฐ์ ์ต๊ณ ์ ๋๊ตฌ๋ ์์ฌํ ์ฌ์ง ์์ด GitLab์ด๋ฉฐ ๊ฐ๊น์ด ๋ฏธ๋์๋ ๊ณ์ํด์ ํ์ ์ ์ฃผ๋ํ ๊ฒ์
๋๋ค.
GitLab์ ์ฃผ์ ๊ธฐ๋ฅ์ Git ์ ์ฅ์๋ฅผ ํธ์ํ๊ฒ ๊ด๋ฆฌํ๋ ๊ฒ์ ๋๋ค. ์น ์ธํฐํ์ด์ค๋ ์ง๊ด์ ์ด๊ณ ์ฌ์ฉํ๊ธฐ ์ฝ์ต๋๋ค. GitLab์ ๋ฌด๋ฃ ๋ฒ์ ์ผ๋ก ํ์ํ ๋ชจ๋ ๊ฒ์ ์ ๊ณตํ๋ฉฐ SaaS ๋ฐ ์จํ๋ ๋ฏธ์ค(์์ฒด ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ํํธ์จ์ด ํธ์คํ )๋ก ์ ๊ณต๋ฉ๋๋ค.
๋ค๋ฅธ ์ด๋ค SCM ๋๊ตฌ๋ ์ ์ฅ์์์ CI(์ง์์ ํตํฉ)๋ฅผ ์ง์ ์ฌ์ฉํ์ง ์์์ผ๋ฉฐ GitLab์ ์ค๋ซ๋์ ์ด ์์ ์ ์ํํด ์์ต๋๋ค. GitLab-CI๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์์ค ์ฝ๋ ๋ฃจํธ์ .gitlab-ci.yml ํ์ผ์ ์ถ๊ฐํด์ผ ํ๋ฉฐ, ํ๋ก์ ํธ์ ๋ํ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ ํํ ์ง์ ํ ๋ด์ฉ์ ๋ฐ๋ผ ์์ ์ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค. GitLab๊ณผ GitLab-CI๋ ์ง์์ ํตํฉ(CI-as-code) ๋ถ์ผ์ ๋ฆฌ๋๋ก ๋น์ฐํ ์ธ์ ๋ฐ๊ณ ์์ต๋๋ค.
์ฃผ์ ์ด์
- ์ ๋ขฐ์ฑ - ์ด ์ ํ์ 2013๋ ๋ถํฐ ์์ฅ์ ์ถ์๋์์ต๋๋ค. ์์ ์ ์ธ; ์ ์ง์๋ฉ๋๋ค.
- ์คํ ์์ค - GitLab์ ๋ฌด๋ฃ ๋ฒ์ ์ ๊ฐ๋ฐ ํ์ ํ์ํ ํต์ฌ ๊ธฐ๋ฅ์ ์ ํํ์ง ์์ต๋๋ค. ์ ๋ฃ ์๋น์ค ํจํค์ง๋ ๋ค์ํ ๊ท๋ชจ์ ์๊ตฌ ์ฌํญ์ ๊ฐ์ง ํ์ฌ์ ์ ์ฉํ ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- ๊ธฐ๋ฐ CI - ์์ฅ์ ๋์ ์๋ ๋ค๋ฅธ ์ด๋ค ๋๊ตฌ๋ GitLab-CI์ฒ๋ผ SCM์ ์ง์ ์ง์์ ์ธ ํตํฉ์ ๊ตฌ์ถํ์ง ๋ชปํ์ต๋๋ค. Docker๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฒ๊ฑฐ๋ก์ ์์ด ๊ฒฉ๋ฆฌ๋ ๋น๋๊ฐ ๋ณด์ฅ๋๋ฉฐ, ๋ด์ฅ๋ ๋ณด๊ณ ์๋ฅผ ํตํด ๋๋ฒ๊น ์ด ์ฌ์์ง๋๋ค. ๋์์ ์ฌ๋ฌ ๋๊ตฌ๋ฅผ ๋ณต์กํ๊ฒ ํตํฉํ๊ณ ๊ด๋ฆฌํ ํ์๊ฐ ์์ต๋๋ค.
- ๋ฌด์ ํ ํตํฉ - GitLab์ ํ์ํ ๋ชจ๋ DevOps ๋๊ตฌ๋ฅผ ์ฝ๊ฒ ํตํฉํฉ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ ๋ฐ ์ ์ง ๊ด๋ฆฌ ํ์ ๋ชจ๋ ํ๊ฒฝ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ๋จ์ผ ์ ๋ณด ์์ค๋ฅผ ๊ฐ๊ฒ ๋ฉ๋๋ค.
๊ฒฝ์
์ ํฌ์ ์ฐธ๊ฐํ์ผ๋ ์น๋ฆฌํ์ง ๋ชปํจ
์ด ๋ฒ์ฃผ์๋ ๋ค๋ฅธ ์ธ๊ธฐ ์๋ ๋๊ตฌ๊ฐ ์์ง๋ง GitLab๋งํผ ์ข์ง๋ ์์ต๋๋ค. ๊ทธ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
GitHub์ โ ์๊ท๋ชจ ๊ธฐ์ ๊ณผ ๊ฐ๋ฐ ์ด๊ธฐ ๋จ๊ณ๋ฅผ ์ํ ํ์ํ SaaS ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ๋๋ค. ์์ฒด ๋คํธ์ํฌ์ IP ์ฃผ์๋ฅผ ์ ์งํ๋ ๊ฒ์ด ์ค์ํ ๋๊ธฐ์ ์ ๊ฒฝ์ฐ GitHub์ ์ ์ผํ ์๋ฃจ์ ์ ๊ณ ๊ฐ์ฉ์ฑ ์์คํ ์ ์ง์ํ์ง ์๋ .OVA ๊ฐ์ ๋จธ์ ์ด์์ต๋๋ค. ์ด๋ก ์ธํด ์จํ๋ ๋ฏธ์ค ์ ์ง ๊ด๋ฆฌ๊ฐ ์ด๋ ค์์ง๊ณ , ๊ฒ๋ค๊ฐ .OVA๋ ์ค๊ฐ ๊ท๋ชจ ๊ธฐ์ ์๋ง ์ ํฉํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์๋ฒ๊ฐ ๋ ํฐ ๋ถํ๋ก ์ธํด ์ถฉ๋ํ๊ฒ ๋ฉ๋๋ค. GitHub Actions(์ต๊ทผ๊น์ง, ์์ง ์จํ๋ ๋ฏธ์ค ๋ฒ์ ์ ์๋) ๋๋ CI-as-code๊ฐ ๋ถ์กฑํ๋ค๋ ๊ฒ์ ๋ณ๋์ CI ๋๊ตฌ๋ฅผ ์ ํํ ๋ค์ ํด๋น ํตํฉ์ ๊ด๋ฆฌํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก GitHub๋ GitLab์ ๋ ๋ฒ์ ๋ณด๋ค ํจ์ฌ ๋น์๋๋ค.
์ ํจ์ค โ Jenkins๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์์ ์ธ ํตํฉ ๋๊ตฌ ์ค ํ์ค์ผ๋ก ๊ฐ์ฃผ๋์ง๋ง ํญ์ ๋ฒ์ ์ ์ด ๊ธฐ๋ฅ์ด ๋ถ์กฑํ์ต๋๋ค. Jenkins์ ์ผ์ข ์ SCM ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. GitLab์ด ๋ ๊ฐ์ง๋ฅผ ๋ชจ๋ ์ํํ ์ ์์ผ๋ฉด ๋๋ฌด ์ด๋ ต์ต๋๋ค. ํ๋ฒํ UX ๋์์ธ์ ์ต์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํฉํ์ง ์์ผ๋ฉฐ ์์ฌ์ด ์ ์ด ๋ง์ต๋๋ค.
BitBucket/๋๋๋ฌด โ ๋๋ ๊ทธ๋ฅผ ์๋ ํจ์๋ก ์ธ์ํด์ผ ํฉ๋๋ค. GitLab์ด ๋ชจ๋ ๊ฒ์ ์์ ํ ๋ ๋ฆฝ์ ์ผ๋ก ์ํํ ๋ ๋๊ตฌ๊ฐ ๋ ๊ฐ์ธ ์ด์ ๋ ๋ฌด์์ ๋๊น? BitBucket Cloud๋ GitLab-CI/GitHub Action ๊ธฐ๋ฅ์ ์ง์ํ์ง๋ง, ์คํํธ์ ๋ณด๋ค ํฐ ํ์ฌ๋ ์ด๋ฅผ ์ฝ๊ฒ ๊ตฌํํ ์ ์์ต๋๋ค. ์จํ๋ ๋ฏธ์ค BitBucket ์๋ฒ๋ BitBucket ํ์ดํ๋ผ์ธ๋ ์ง์ํ์ง ์์ต๋๋ค!
#1 ๋ฐ์ดํฐ ๊ด๋ฆฌ ๋๊ตฌ
์์์ : ํ๋ผ์ด์จ์ดDB
์น ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ํ๋ ์ผ๋ฐ์ ์ผ๋ก ์ค์ํ์ง ์์ต๋๋ค. ์ ๋ฒ์ ์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐฐํฌํ๋ค๋ ์์ด๋์ด๊ฐ ๋ฆ์ด์ก์ต๋๋ค. ์คํค๋ง ๋ณ๊ฒฝ์ผ๋ก ์ธํด ์ด์ด๋ ํ
์ด๋ธ์ด ์ถ๊ฐ๋๊ฑฐ๋ ์ด๋ฆ์ด ๋ฐ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
๋ฒ์ ์ด ์คํค๋ง ๋ฒ์ ๊ณผ ์ผ์นํ์ง ์์ผ๋ฉด ์ ํ๋ฆฌ์ผ์ด์
์ด ์ค๋จ๋ ์ ์์ต๋๋ค. ๋ํ ๋ ๊ฐ์ ์๋ก ๋ค๋ฅธ ์์คํ
์ด ์๊ธฐ ๋๋ฌธ์ ์ ํ๋ฆฌ์ผ์ด์
์ ์
๋ฐ์ดํธํ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณ๊ฒฝ ์ฌํญ์ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ด๋ ค์ธ ์ ์์ต๋๋ค. FlyWayDB๋ ์ด๋ฌํ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
์ฃผ์ ์ด์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฒ์ ๊ด๋ฆฌ - Flyway๋ฅผ ์ฌ์ฉํ๋ฉด ์ถ๊ฐ ๋๊ตฌ ์์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฒ์ ์ ์์ฑํ๊ณ , ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง์ด๊ทธ๋ ์ด์ ์ ์ถ์ ํ๊ณ , ์คํค๋ง ๋ณ๊ฒฝ ์ฌํญ์ ์ฝ๊ฒ ์ ์กํ๊ฑฐ๋ ๋๋๋ฆด ์ ์์ต๋๋ค.
- ๋ฐ์ด๋๋ฆฌ ๋๋ ์๋ฒ ๋๋ - Flyway๋ฅผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ผ๋ถ๋ก ์คํํ๊ฑฐ๋ ๋ฐ์ด๋๋ฆฌ ์คํ ํ์ผ๋ก ์คํํ๋๋ก ์ ํํ ์ ์์ต๋๋ค. Flyway๋ ์์ ์ ๋ฒ์ ํธํ์ฑ์ ํ์ธํ๊ณ ์ ์ ํ ๋ง์ด๊ทธ๋ ์ด์ ์ ์์ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ์ ๋๊ธฐํํฉ๋๋ค. cmd line ad-hoc ๋ช ๋ น์ ์คํํ๋ฉด ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ ๊ตฌ์ถํ์ง ์๊ณ ๋ ๊ธฐ์กด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฐ์ฑ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
๊ฒฝ์
์ ํฌ์ ์ฐธ๊ฐํ์ผ๋ ์น๋ฆฌํ์ง ๋ชปํจ
์ด ์์ญ์๋ ๋๊ตฌ๊ฐ ๋ง์ง ์์ต๋๋ค. ๊ทธ ์ค ์ผ๋ถ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค:
๋ฆฌํด๋ฒ ์ด์ค โ Liquibase๋ FlywayDB์ ์ ์ฌํฉ๋๋ค. ๋ด ํ์ Liquibase์ ๋ํ ๊ฒฝํ์ด ๋ ๋ง์ ์ฌ๋์ด ์๋ค๋ฉด Flyway ์์ ์ด๋ฅผ ์ค์ ํ๊ณ ์ถ์ต๋๋ค.
ํ๋ก์ปค - ์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ง ์๋ํ ์ ์์ต๋๋ค. ์ปจํ ์ด๋ํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์คํํ๋ ค๋ฉด ๋ชจ๋ ๊ฒ์ด ์๋ฒฝํ๊ฒ ๊ณํ๋์ด์ผ ํฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ RDS(๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋น์ค)๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ผ๋ฉฐ ์ค์ํ ์ ๋ณด๋ฅผ ์ปจํ ์ด๋์ ์ ์ฅํ๋ ๊ฒ์ ๊ถ์ฅํ์ง ์์ต๋๋ค.
ํ ์คํธ ์๋ํ ๋๊ตฌ
ํ
์คํธ ํผ๋ผ๋ฏธ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ถ๋ฅํ์ฌ ํ
์คํธ ์๋ํ ๋๊ตฌ์ ๋ํ ๋
ผ์๋ฅผ ์์ํ๊ฒ ์ต๋๋ค.
ํ ์คํธ ํผ๋ผ๋ฏธ๋(ํ ์คํธ)์๋ 4๊ฐ์ง ์์ค์ด ์์ต๋๋ค.
- ๋จ์ ํ ์คํธ - ์ด๋ ์ ์ฒด ์๋ํ ํ ์คํธ ํ๋ก์ธ์ค์ ๊ธฐ์ด์ ๋๋ค. ๋ค๋ฅธ ์ ํ์ ํ ์คํธ์ ๋นํด ๋ ๋ง์ ๋จ์ ํ ์คํธ๊ฐ ์์ด์ผ ํฉ๋๋ค. ๊ฐ๋ฐ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ผ๋ถ("์ ๋"์ด๋ผ๊ณ ํจ)๊ฐ ํด๋น ๋์์ธ์ ์ค์ํ๊ณ ์์๋๋ก ์๋ํ๋์ง ํ์ธํ๊ธฐ ์ํด ์ ๋ ํ ์คํธ๋ฅผ ์์ฑํ๊ณ ์คํํฉ๋๋ค.
- ๊ตฌ์ฑ ์์ ํ ์คํธ - ๊ตฌ์ฑ ์์ ํ ์คํธ์ ์ฃผ์ ๋ชฉ์ ์ ํ ์คํธ ๊ฐ์ฒด์ ์ ๋ ฅ/์ถ๋ ฅ ๋์์ ํ์ธํ๋ ๊ฒ์ ๋๋ค. ํ ์คํธ ๊ฐ์ฒด์ ๊ธฐ๋ฅ์ด ์ฌ์์ ๋ฐ๋ผ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌํ๋์๋์ง ํ์ธํด์ผ ํฉ๋๋ค.
- ํตํฉ ํ ์คํธ - ๊ฐ๋ณ ์ํํธ์จ์ด ๋ชจ๋์ ๊ทธ๋ฃน์ผ๋ก ๊ฒฐํฉํ๊ณ ํ ์คํธํ๋ ํ ์คํธ ์ ํ์ ๋๋ค.
- ์๋ ํฌ ์๋ ํ ์คํธ - ์ด ๋จ๊ณ๋ ์ค๋ช ์ด ํ์ํ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ํฐ๋งํ๊ณ ๊ณํ๋๋ก ์๋ํ๋์ง ํ์ธํฉ๋๋ค.
๋จ์ ํ ์คํธ ๋ฐ ๊ตฌ์ฑ ์์ ํ ์คํธ๋ ๊ฐ๋ฐ์์ ์ํด์๋ง ์ํ๋๊ณ ์ข ์ข ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ณ๋ก ์ํ๋๋ฏ๋ก DevOps ๋๋ฉ์ธ์ ๋ํด ์ด๋ฌํ ๋๊ตฌ๋ฅผ ํ๊ฐํ์ง ์์ต๋๋ค.
#1 ํตํฉ ํ ์คํธ ๋๊ตฌ
์์์ : ์ค์ด
Cucumber๋ ์ฌ์๊ณผ ํ
์คํธ ๋ฌธ์๋ฅผ ํ๋์ ์ด์์๋ ๋ฌธ์๋ก ๊ฒฐํฉํฉ๋๋ค. ์ฌ์์ Cucumber์ ์ํด ์๋์ผ๋ก ํ
์คํธ๋๋ฏ๋ก ํญ์ ์ต์ ์ํ๋ก ์ ์ง๋ฉ๋๋ค. ์ฒ์๋ถํฐ ์๋ํ๋ ํ
์คํธ ํ๋ ์์ํฌ๋ฅผ ๊ตฌ์ถํ๊ณ ์น ์ ํ๋ฆฌ์ผ์ด์
์์ ์ฌ์ฉ์ ๋์์ ๋ชจ๋ธ๋งํ๋ ค๋ ๊ฒฝ์ฐ Java ๋ฐ Cucumber BDD๊ฐ ํฌํจ๋ Selenium WebDriver๋ ํ๋ก์ ํธ์์ Cucumber๋ฅผ ๋ฐฐ์ฐ๊ณ ๊ตฌํํ๋ ์ข์ ๋ฐฉ๋ฒ์
๋๋ค.
์ฃผ์ ์ด์
- BDD ์ ๊ทผ ๋ฐฉ์(ํ๋ ์ค์ฌ ๊ฐ๋ฐ - "ํ ์คํธ ์ค์ฌ ๊ฐ๋ฐ" ์ ๊ทผ ๋ฐฉ์๊ณผ ๋ฐ๋๋๋ "ํ๋์ ํตํ ๊ฐ๋ฐ") - Cucumber๋ BDD ํ ์คํธ์ฉ์ผ๋ก ์ค๊ณ๋์์ผ๋ฉฐ ์๋ ๋ฐ๋ก ์ด ์์ ์ ์ํด ๋ง๋ค์ด์ก์ต๋๋ค.
- Living Documentation - ๋ฌธ์ํ๋ ์ธ์ ๋ ๊ณ ํต์ค๋ฝ์ต๋๋ค! ํ ์คํธ๋ ์ฝ๋๋ก ์์ฑ๋๋ฏ๋ก Cucumber๋ ์๋์ผ๋ก ์์ฑ๋ ๋ฌธ์๋ฅผ ํ ์คํธํ์ฌ ํ ์คํธ์ ๋ฌธ์๊ฐ ๋๊ธฐํ๋์๋์ง ํ์ธํฉ๋๋ค.
- ์ง์ - ๋ค์ํ ๋๊ตฌ ์ค์์ ์ ํํ ์ ์์ง๋ง Cucumber๋ ์ด๋ ค์ด ์ํฉ์์ ์ฌ์ฉ์๋ฅผ ๋์ธ ์ ์๋ ํ์ํ ์ฌ์ ์์๊ณผ ์ ์กฐ์ง๋ ์ง์ ์์คํ ์ ๊ฐ์ถ๊ณ ์์ต๋๋ค.
๊ฒฝ์
์ ํฌ์ ์ฐธ๊ฐํ์ผ๋ ์น๋ฆฌํ์ง ๋ชปํจ
๋ค๋ฅธ ํ๋ ์์ํฌ์ ํน์ ๊ธฐ์ ๋๊ตฌ ์ค์์ Cucumber๋ง์ด ๋ณดํธ์ ์ธ ์๋ฃจ์
์ผ๋ก ๊ฐ์ฃผ๋ ์ ์์ต๋๋ค.
์๋ ํฌ ์๋ ํ ์คํธ ๋๊ตฌ
์๋ํฌ์๋ ํ ์คํธ๋ฅผ ์ํํ ๋ ๋ค์ ๋ ๊ฐ์ง ํต์ฌ ์ฌํญ์ ์ค์ ์ ๋์ด์ผ ํฉ๋๋ค.
- ๊ธฐ๋ฅ ํ ์คํธ
- ์คํธ๋ ์ค ํ ์คํธ.
๊ธฐ๋ฅ ํ ์คํธ์์๋ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๋ชจ๋ ์ผ์ด ์ค์ ๋ก ์ผ์ด๋๋์ง ํ์ธํฉ๋๋ค. ์๋ฅผ ๋ค์ด, SPA(๋จ์ผ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ )์ ํน์ ์์๋ฅผ ํด๋ฆญํ๊ณ ์์์ ์์ฑํ ๋ค์ "์ ์ถ"์ ์ ํํ๋ฉด ๋ฐ์ดํฐ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ๋๊ณ "์ฑ๊ณต!"์ด๋ผ๋ ๋ฉ์์ง๊ฐ ํ๋ฉด์ ๋ํ๋ฉ๋๋ค.
๋์ผํ ์๋๋ฆฌ์ค๋ฅผ ์คํํ๋ ํน์ ์์ ์ฌ์ฉ์๊ฐ ์ค๋ฅ ์์ด ์ฒ๋ฆฌ๋ ์ ์๋์ง ํ์ธํ๋ ๊ฒ๋ ์ค์ํฉ๋๋ค.
์ด๋ฌํ ๋ ๊ฐ์ง ์ ํ์ ํ ์คํธ๊ฐ ์์ผ๋ฉด CI/CD ํ์ดํ๋ผ์ธ์ ์ฌ๊ฐํ ๋จ์ ์ด ๋ฉ๋๋ค.
์ต๊ณ ์ ์๋ํฌ์๋ ํ ์คํธ ๋๊ตฌ์ ๋๋ค. ๊ธฐ๋ฅ ํ ์คํธ
์์์ : SoapUI ํ๋ก
SoapUI๋ SOAP ๊ธฐ๋ฐ ์น ์๋น์ค๊ฐ ํ์ค์ด ๋ ์ดํ ์ค๋ซ๋์ API ํ
์คํธ ๊ณต๊ฐ์ ์์์ต๋๋ค. ๋ ์ด์ ์๋ก์ด SOAP ์๋น์ค๋ฅผ ๋ง๋ค์ง ์๊ณ ๋๊ตฌ ์ด๋ฆ๋ ๋ณ๊ฒฝ๋์ง ์์์ง๋ง ์ด๊ฒ์ด ๋ฐ์ ํ์ง ์์๋ค๋ ์๋ฏธ๋ ์๋๋๋ค. SoapUI๋ ์๋ํ๋ ๋ฐฑ์๋ ๊ธฐ๋ฅ ํ
์คํธ๋ฅผ ์์ฑํ๊ธฐ ์ํ ํ์ํ ํ๋ ์์ํฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ํ
์คํธ๋ ์ง์์ ์ธ ํตํฉ ๋๊ตฌ์ ์ฝ๊ฒ ๊ฒฐํฉ๋์ด CI/CD ํ์ดํ๋ผ์ธ์ ์ผ๋ถ๋ก ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
์ฃผ์ ์ด์
- ์์ธํ ๋ฌธ์ - SoapUI๋ ๊ฝค ์ค๋ซ๋์ ์์ฅ์ ์ถ์๋์์ผ๋ฏ๋ก ํ ์คํธ ์ค์ ๋ฐฉ๋ฒ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋๋ ์จ๋ผ์ธ ๋ฆฌ์์ค๊ฐ ๋ง์ด ์์ต๋๋ค.
- ์ฌ์ฉ ์ฉ์ด์ฑ - ๋๊ตฌ๊ฐ API ํ ์คํธ๋ฅผ ์ํ ์ฌ๋ฌ ํ๋กํ ์ฝ์ ์ง์ํ์ง๋ง SoapUI์๋ ์ฌ๋ฌ ์๋น์ค์ ๋ํ ๊ณตํต ์ธํฐํ์ด์ค๊ฐ ์์ผ๋ฏ๋ก ํ ์คํธ ์์ฑ์ด ๋ ์ฌ์์ง๋๋ค.
๊ฒฝ์
์ ํฌ์ ์ฐธ๊ฐํ์ผ๋ ์น๋ฆฌํ์ง ๋ชปํจ
์ ๋ ๋์ ์ด ๊ทธ๋ฃน์ ๋ ๋ค๋ฅธ ํ๋ฅญํ ์ ๊ธฐ์ ๋๋ค. Java ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ณ ์คํํ๋ ๊ฒฝ์ฐ ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌ๋ฌ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ์์ ํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๊ฒฝ์ฐ Java๊ฐ ์๋ ๊ตฌ์ฑ ์์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค๋ฃจ๊ธฐ ์ด๋ ค์ธ ์ ์์ต๋๋ค.
์ต๊ณ ์ ์๋ํฌ์๋ ํ ์คํธ ๋๊ตฌ์ ๋๋ค. ์คํธ๋ ์ค ํ ์คํธ
์์์ : LoadRunner
์ค๋ช
: ์ ํ๋ฆฌ์ผ์ด์
์ ๋ชจ๋ ์์๋ฅผ โโ๋ก๋ ํ
์คํธํด์ผ ํ ๋๊ฐ ๋๋ฉด LoadRunner๋ง์ด ์์
์ ์๋ฃํ ์ ์์ต๋๋ค. ์, ์ฒ์์๋ ๋น์ฉ์ด ๋ง์ด ๋ค๊ณ ์ด๋ ต์ต๋๋ค. ๊ทธ๋ฌ๋ LoadRunner๋ ๊ธฐ์ ์ค๊ณ์๋ก์ ์๋ก์ด ์ฝ๋๊ฐ ๊ทนํ์ ๋ถํ ์กฐ๊ฑด์์๋ ์๋ํ ๊ฒ์ด๋ผ๋ ์์ ํ ํ์ ์ ์ฃผ๋ ์ ์ผํ ๋๊ตฌ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด์ ๋ LoadRunner๋ฅผ ํ
์คํธํ์ด ์๋ ๊ฐ๋ฐํ์ด ์ธ์ํด์ผ ํ ๋๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฃผ์ ์ด์
- ๊ด๋ฒ์ํ ๋ฌธ์ - LoadRunner๋ ๊ฝค ์ค๋ซ๋์ ์์ฅ์ ์ถ์๋์์ผ๋ฏ๋ก ๋ถํ ํ ์คํธ ์ค์ ๋ฐฉ๋ฒ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋๋ ์จ๋ผ์ธ ๋ฆฌ์์ค๊ฐ ๋ง์ด ์์ต๋๋ค.
- ํ๋กํ ์ฝ ์ง์ - Load Runner๋ ODBC์์ AJAX, HTTPS ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉํ ์ ์๋ ๊ธฐํ ์ค์ํ ํ๋กํ ์ฝ๊น์ง ๋ชจ๋ ๊ฒ์ ์ง์ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋ถํ ํ ์คํธ๋ฅผ ์ํด ์ฌ๋ฌ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ ค๊ณ ๋ ธ๋ ฅํฉ๋๋ค. ์ด๋ ํ๋ก์ธ์ค๋ฅผ ๋ณต์กํ๊ฒ ๋ง๋ค ๋ฟ์ ๋๋ค.
๊ฒฝ์
์ ํฌ์ ์ฐธ๊ฐํ์ผ๋ ์น๋ฆฌํ์ง ๋ชปํจ
๋ค์ ๋งํ์ง๋ง, ์ด ๋ถ์ผ์๋ ๋ณดํธ์ ์ธ ๋๊ตฌ๊ฐ ๋ง์ง ์๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ์ข์ ์๋ฃจ์ ์ ์ด๋ค ๊ธฐ์ ์ ์ฌ์ฉํ๋ ๋ชจ๋ ํ๊ฒฝ์์ ์๋ํ๋ ์๋ฃจ์ ์ ๋๋ค.
๋ฐฐํฌ ๋๊ตฌ
๋ฐฐํฌ ๋๊ตฌ๋ ์๋ง๋ ๊ฐ๋ฐ์ ๋ํด ๊ฐ์ฅ ์ ์ดํด๋์ง ์๋ ์ธก๋ฉด์ผ ๊ฒ์
๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
์ ์ฝ๋์ ๊ธฐ๋ฅ์ ๋ํ ๊น์ ์ดํด๊ฐ ์๋ ์ด์ํ์ ๊ฒฝ์ฐ ์ด๋ฌํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค. ๊ฐ๋ฐ์์๊ฒ ๋ฐฐํฌ ๊ด๋ฆฌ๋ ์๋ก์ด ์ฑ
์์ด๋ฏ๋ก ์์ง ์ด๋ฌํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ๊ฒฝํ์ด ์ถฉ๋ถํ์ง ์์ต๋๋ค.
์ฐ์ ๋ชจ๋ ๋ฐฐํฌ ๋๊ตฌ๋ฅผ ์ธ ๊ฐ์ง ํ์ ๋ฒ์ฃผ๋ก ๋๋์ด ๋ณด๊ฒ ์ต๋๋ค.
- ์ ๋ฌผ ๊ด๋ฆฌ
- ๊ตฌ์ฑ ๊ด๋ฆฌ
- ๋ฐฐํฌ.
#1 ์ ๋ฌผ ๊ด๋ฆฌ ๋๊ตฌ
์์์ : Nexus
Nexus ์ํฐํฉํธ ์ ์ฅ์๋ Java์์ NPM, Docker์ ์ด๋ฅด๊ธฐ๊น์ง ๊ฑฐ์ ๋ชจ๋ ์ฃผ์ ๊ธฐ์ ์ ์ง์ํฉ๋๋ค. ์ด ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ๋ชจ๋ ์ํฐํฉํธ๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค. ๋ํ ์๊ฒฉ ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ํ๋ก์ฑํ๋ฉด CI ๋น๋ ํ๋ก์ธ์ค ์๋๊ฐ ํฌ๊ฒ ํฅ์๋์ด ํจํค์ง์ ๋ํ ๋น๋ ์ก์ธ์ค๊ฐ ๋ ์ฌ์์ง๋๋ค. ๋ ๋ค๋ฅธ ์ฅ์ ์ ์ฌ๋ฌ ์ํํธ์จ์ด ํ๋ก์ ํธ์ ์ฌ์ฉ๋๋ ๋ชจ๋ ํจํค์ง๋ฅผ ์ ์ฒด์ ์ผ๋ก ๋ณผ ์ ์์ด ์์ ํ์ง ์์ ์คํ ์์ค ํจํค์ง๋ฅผ ์ฐจ๋จํ ์ ์๋ค๋ ๊ฒ์
๋๋ค(๊ณต๊ฒฉ ๋ฒกํฐ๋ก ์์ฉํ ์ ์์).
์ฃผ์ ์ด์
- ๊ธฐ์ ์ง์ - ์ ๋ขฐํ ์ ์๋ ์ ํ; ์ ์ง์๋ฉ๋๋ค.
- ์คํ ์์ค - ๋ฌด๋ฃ ๋ฒ์ ์ ๊ฐ๋ฐ ํ์ ํ์ํ ํต์ฌ ๊ธฐ๋ฅ์ ์ ํํ์ง ์์ต๋๋ค.
#1 ๊ตฌ์ฑ ๊ด๋ฆฌ ๋๊ตฌ
์์์ : ์ฑ ์๊ฐ์๋
Ansible์ ํ ๊ฐ์ง ๊ฐ๋จํ ์ด์ ๋ก ๋ฆฌ๋์ ๋๋ค. ๋ฐ๋ก Stateless์ ๋๋ค. ์ด์ ์๋ ์ ์ฌํ ๋๊ตฌ๊ฐ ๊ตฌ์ฑ ์ํ ๊ด๋ฆฌ์ ์ค์ ์ ๋์์ต๋๋ค. ์ํ๋ ๊ตฌ์ฑ์ ๋ฐ์ ์ด๋ฌํ ๋๊ตฌ๊ฐ ์คํ๋๋ฉด ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ฑ์ ์์ ํ๋ ค๊ณ ์๋ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ก์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ์ํ ๋น์ ์ฅ ๊ตฌ์ฑ ์์๋ง ์กด์ฌํฉ๋๋ค. ์ ๋ฒ์ ์ ์ฝ๋๋ ๊ธฐ์กด ์ฝ๋๋ฅผ ๋์ฒดํ๊ธฐ ์ํด ๋ฐฐํฌ๋๋ ์ํฐํฉํธ์ ๋๋ค. ์ด๋ ์ผ์ข ์ ์์์ ์ด๊ณ ๋จ๊ธฐ์ ์ธ ํ๊ฒฝ์ผ๋ก ๊ฐ์ฃผ๋ ์ ์์ต๋๋ค.
์ฃผ์ ์ด์
- Stateless - ํ๋ ์ด๋ถ์ ๋ฐฐํฌ ๋จธ์ ์์ ์์๋๊ณ ๋์ ์๋ฒ์์ ์คํ๋ฉ๋๋ค. Packer์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐํฌ ๊ฐ๋ฅํ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ฉด ์๊ฒฉ ๊ฐ์ฒด์ ์ํ์ ๋ํด ๊ฑฑ์ ํ ํ์๊ฐ ์์ต๋๋ค.
- ์คํ ์์ค - CentOS์ ๋ง์ฐฌ๊ฐ์ง๋ก Ansible๋ RedHat์์ ์ง์๋ฉ๋๋ค. ์ปค๋ฎค๋ํฐ๋ฅผ ์ ์งํ๋ ๋ฐ ๋์์ด ๋๋ฉฐ ๊ณ ํ์ง์ ์ฌ์ฉํ๊ธฐ ์ฌ์ด ๋ชจ๋์ ์ ๊ณตํฉ๋๋ค.
- Molecule(Ansible ํ๋ ์์ํฌ)์ ์ฌ์ฉํ ํ ์คํธ - ๊ตฌ์ฑ ๊ด๋ฆฌ๋ ๋ค๋ฅธ ๋ชจ๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฝ๋์ด๋ฏ๋ก ํ ์คํธ๊ฐ ํ์์ ์ ๋๋ค. Molecule์ Ansible ์ญํ ํ ์คํธ ํ๋ ์์ํฌ๋ ์๋ฒฝํ๊ฒ ์๋ํ์ฌ ๊ตฌ์ฑ์ ํ์ง์ด ๋์ผํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋์ ๋์ผํ CI/CD ํ์ดํ๋ผ์ธ์ ๋ฐ๋ฅด๋๋ก ๋ณด์ฅํฉ๋๋ค.
- YAML - ๋ค๋ฅธ ๋๊ตฌ์ ๋นํด YAML์ ์ดํดํ๊ธฐ ์ฝ์ต๋๋ค. ๊ตฌ์ฑ ๊ด๋ฆฌ๋ ์ผ๋ฐ์ ์ผ๋ก DevOps ๋ฐฉ์์ ๊ตฌํํ๋ ์ฌ๋๋ค์๊ฒ ์๋ก์ด ๊ณผ์ ์ด๋ฏ๋ก ๋จ์์ฑ์ด ๋น์ฅ์ ์นด๋์ ๋๋ค.
๊ฒฝ์
์ ํฌ์ ์ฐธ๊ฐํ์ผ๋ ์น๋ฆฌํ์ง ๋ชปํจ
OpsCode ์ ฐํ โ ์ ๋ ์๋ฆฌ์ฑ ๊ฐ๋ฐ์๋ก์ DevOps ๊ฒฝ๋ ฅ์ ์์ํ์ต๋๋ค. ๋ฌผ๋ก Ruby์ Chef๋ ์ ๋ง์์ ์ ๋ค์ง๋ง ํ๋์ ์ํ ๋น์ ์ฅ ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง๋ ๋ชปํฉ๋๋ค. OpsCode Chef๋ ๋ณด๋ค ์ ํต์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ํ๋ฅญํ ๋๊ตฌ์ด์ง๋ง ์ด ๋ฌธ์์์๋ ๋ฏธ๋์ ์ค์ ์ ๋ก๋๋ค.
์ธํ โ Puppet์ ํนํ Chef ๋ฐ Ansible๊ณผ ๋น๊ตํ ๋ ํฌ์ด ๋ง์ง ์์์ต๋๋ค. ํ๋์จ์ด ํ๋ก๋น์ ๋ ๋ฐ ์์ ์๋ ์ ํฉํ์ง๋ง ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์ต์ ๊ตฌ์ฑ ๊ด๋ฆฌ ์ง์์ด ๋ถ์กฑํฉ๋๋ค.
๋ฐฐํฌ ๋๊ตฌ #1
์์์ : ํ ๋ผ ํผ
Terraform์ ๋คํธ์ํฌ ๊ตฌ์ฑ ์์๋ถํฐ ์ ์ฒด ์๋ฒ ์ด๋ฏธ์ง๊น์ง ์ธํ๋ผ๋ฅผ ์ฝ๋๋ก ์ค๋ช
ํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ์ด ์ ํ์ ์ด๊ธฐ ์ถ์ ์ดํ ๋ง์ ๋ฐ์ ์ ์ด๋ฃจ์์ต๋๋ค. ์๋ง์ ํ๋ฌ๊ทธ์ธ์ด ์์ฑ๋๊ณ ๊ฐ๋ ฅํ ์ปค๋ฎค๋ํฐ๊ฐ ๊ตฌ์ถ๋์ด ์ด๋ค ๋ฐฐํฌ ์๋๋ฆฌ์ค์์๋ ํ์คํ ๋์์ ๋ฐ์ ์ ์์ต๋๋ค. ๋ชจ๋ ์ ํ์ ํ๊ฒฝ(์จํ๋ ๋ฏธ์ค, ํด๋ผ์ฐ๋ ๋ฑ)์ ์ง์ํ๋ ๋ฅ๋ ฅ์ ํ์ ์ถ์ข
์ ๋ถํํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก ์ต์ ๋ฒ์ ์ HCL์์ ๋ค๋ฅธ ๊ธฐ์กด ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋์ผํ ๋
ผ๋ฆฌ ํจ์ ๋ฐ ํด๋์ค๋ฅผ ๋๋ถ๋ถ ์ ๊ณตํ๋ฏ๋ก ๊ฐ๋ฐ์๊ฐ Terraform์ ๋น ๋ฅด๊ณ ์ฝ๊ฒ ์ดํดํ ์ ์์ต๋๋ค.
์ฃผ์ ์ด์
- ํ๊ฒฝ์ ๊ตฌ์ ๋ฐ์ง ์์ - Terraform์ Terraform ์ฝ๋, ๋ชจ๋ API ๋ฐ ๋ด๋ถ ๋ ผ๋ฆฌ ๊ฐ์ ์ธํฐํ์ด์ค ์ญํ ์ ํ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ์ธํ๋ผ ์ ๊ณต์์ ํต์ ํฉ๋๋ค. ์ฆ, ํ๋์ ๋๊ตฌ๋ง ์ตํ๋ฉด ์ด๋์์๋ ์ผํ ์ ์๋ค๋ ์๋ฏธ์ ๋๋ค.
- ์คํ ์์ค - ๋ฌด๋ฃ ๋๊ตฌ๋ฅผ ์ด๊ธฐ๋ ๊ฒ์ ์ด๋ ต์ต๋๋ค! ์ต๊ณ ์์ค์ ์ปค๋ฎค๋ํฐ ์ง์.
๊ฒฝ์
์ ํฌ์ ์ฐธ๊ฐํ์ผ๋ ์น๋ฆฌํ์ง ๋ชปํจ
AWS ํด๋ผ์ฐ๋ ํฌ๋ฉ์ด์ โ AWS ํด๋ผ์ฐ๋ ํ๊ฒฝ์์๋ง ์์ ํ๋๋ผ๋ ๋ค์ ์์ ์์๋ ๋ค๋ฅธ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ชจ๋ ์๊ฐ๊ณผ ์๋์ง๋ฅผ ๋จ ํ๋์ ํ๋ซํผ์ ํฌ์ํ๋ ๊ฒ์ ๊ทผ์์์ ์ธ ๊ฒฐ์ ์ ๋๋ค. ๋ํ ๋ง์ ์๋ก์ด AWS ์๋น์ค๋ CloudFormation์์ ์ฌ์ฉ ๊ฐ๋ฅํ๊ธฐ ์ ์ Terraform ๋ชจ๋๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
๋ฐํ์ ๋๊ตฌ
๋ชจ๋ ๊ฐ๋ฐ ํ๋ก์ ํธ์ ๊ถ๊ทน์ ์ธ ๋ชฉํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ก๋์ ํ๊ฒฝ์ ์ถ์ํ๋ ๊ฒ์ ๋๋ค. DevOps ์ธ๊ณ์์ ์ฐ๋ฆฌ๋ ํ๊ฒฝ์์ ๋ฐ์ํ ์ ์๋ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ์์ ํ ์ธ์ํ๊ณ ์ถ๊ณ ์๋ ๊ฐ์ ์ ์ต์ํํ๊ณ ์ถ์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ด์ฑ์ ์ผ๋ก ๋ฌ์ฑํ๋ ค๋ฉด ์ฌ๋ฐ๋ฅธ ๋ฐํ์ ๋๊ตฌ ์ธํธ๋ฅผ ์ ํํ๋ ๊ฒ์ด ํ์์ ์ ๋๋ค.
๋ฐํ์ ๋๊ตฌ์ ํ์ ๋ฒ์ฃผ:
- XaaS(X-as-a-Service)
- ๊ดํ์ ๋ฒ
- ๋ชจ๋ํฐ๋ง
- ๋ฒ์ฑ ๋ฐ์ถ.
X-tool-as-a-service #1
์์์ : Amazon Web Services
Amazon์ ํญ์ ํด๋ผ์ฐ๋ ๊ธฐ์ ์ ์ ๋์ฃผ์์์ง๋ง ์ฌ๊ธฐ์ ๋๋์ง ์์ต๋๋ค. ๊ฐ๋ฐ์๋ฅผ ์ํ ๋ค์ํ ์๋ก์ด ์๋น์ค๊ฐ ๋์ ๋จ๊ฒ ํฉ๋๋ค. ๋ชจ๋ ๊ธฐ์ ๊ณผ ํ
ํ๋ฆฟ์ AWS๋ก ๊ฐ์ ธ์ค๋ฉด ๊ตฌ์ถ๋์ด ์คํ๋ฉ๋๋ค. ๋๊ตฌ ๋น์ฉ์ ์๋นํ ํฉ๋ฆฌ์ ์
๋๋ค. ์์ฒด ๋ฐ์ดํฐ ์ผํฐ์์ ์ฅ๋น๋ฅผ ์กฐ๋ฆฝ, ๊ด๋ฆฌ ๋ฐ ์ ์งํ๋ ๊ฒ๊ณผ ๋น๊ตํด ๋ณด์ธ์. ๋ฌด๋ฃ ๋ฒ์ ์ ์ฌ์ฉํ๋ฉด ๋์ ์ฐ๊ธฐ ์ ์ ์คํํ๊ณ ์ฌ๋ฐ๋ฅธ ๊ฒฐ์ ์ ๋ด๋ฆด ์ ์์ต๋๋ค.
์ฃผ์ ์ด์
- ๋ณด๊ธ๋ฅ - AWS์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ๊ฒฝํ์ด ์์ผ๋ฉด ์ด๋์์๋ ์ผํ ์ ์์ต๋๋ค. ๊ธฐ์ ์ AWS๋ฅผ ์ข์ํ๊ณ ์คํํธ์ ๋ AWS์ ์ ๋ ดํ ๋น์ฉ์ ๋์ด ํ๊ฐํฉ๋๋ค.
- ๋ฌด๋ฃ ๋ฒ์ ์ AWS๋ฅผ ๋์ข ์ ํ๊ณผ ์ฐจ๋ณํํ๋ ์ ๋ง ์ค์ํ ์์์ ๋๋ค. ๊ตฌ๋งค ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ธฐ ์ ์ ์๋น์ค๋ฅผ ์ํํด๋ณด๊ณ ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๋ถํ์ํ ๊ฒ์ ์์ฒ ๋ฌ๋ฌ๋ฅผ ์ฐ๊ณ ์ถ์ง ์์ต๋๋ค. ๋ฌด๋ฃ ๋ฒ์ ์ ์ด๋ค ๊ฐ๋ ์ด๋ ํ ์คํธํ๊ธฐ์ ํญ์ ์ถฉ๋ถํฉ๋๋ค.
๊ฒฝ์
์ ํฌ์ ์ฐธ๊ฐํ์ผ๋ ์น๋ฆฌํ์ง ๋ชปํจ
ํ๋๋น โAzure๋ ์ฒซ ๋ฒ์งธ ์ถ์ ์ดํ ๋ง์ ๋ฐ์ ์ ์ด๋ฃจ์์ผ๋ฉฐ ์ด๋ ์นญ์ฐฌํ ๋งํ ์ผ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ฌ๋ผ์ง๋ ค๋ ์๊ตฌ๋ก ์ธํด ์๋น์ค์ ์ด์ํ ์ด๋ฆ์ด ์๊ฒจ ์ข ์ข ์์ ์ด ๋ณต์กํด์ก์ต๋๋ค. "BLOB ์ ์ฅ์"๋ ๋ฌด์์ ์๋ฏธํ๋์? .NET ์ฝ๋๋ Microsoft ์์ฝ์์คํ ์์ ๋ ๋์ ์ฑ๋ฅ์ ๋ฐํํ์ง๋ง ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ชจ๋ ๊ตฌ์ฑ ์์์ .NET๋ง ์ฌ์ฉํ ๊ฐ๋ฅ์ฑ์ ๊ฑฐ์ ์์ต๋๋ค.
ํค๋ก ๊พธ โ Heroku์์๋ ์ ๋ขฐ์ฑ๊ณผ ํฌ๋ช ์ฑ์ด ๋ฎ๊ธฐ ๋๋ฌธ์ ๊ฐ์ธ ํ๋ก์ ํธ ์ธ์๋ ์ ๋ ์คํํ์ง ์์ ๊ฒ์ด๋ฏ๋ก ํ์ฌ์์๋ ์ด๋ฅผ ํ๋ซํผ์ผ๋ก ์ฌ์ฉํด์๋ ์ ๋ฉ๋๋ค. Heroku๋ ๋ธ๋ก๊ทธ์์ ๋ฌด์ธ๊ฐ๋ฅผ ์์ฐํ๋ ๋ฐ ์ ํฉํ์ง๋ง ์ค์ ์ฌ์ฉ์๋ "์๋์, ๊ฐ์ฌํฉ๋๋ค!"
#1 ์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ
์์์ : ์คํ์ํํธ
์๋ง๋ ์ ํ๋ฆฌ์ผ์ด์
์คํ์์ Docker๋ ๋ค๋ฅธ ์ปจํ
์ด๋๋ฅผ ์ฌ์ฉํ๊ณ ์์ ๊ฒ์
๋๋ค. ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์
์ ํ๋ฅญํ์ง๋ง ๋ชจ๋ ์ํคํ
์ฒ์ ์ ํฉํ์ง ์์ ์ ์์ต๋๋ค. ์ค์ผ์คํธ๋ ์ด์
ํ๋ซํผ ์์ด ์ปจํ
์ด๋๋ฅผ ์คํํ๋ฉด ์๋ํ์ง ์์ต๋๋ค. Kubernetes Core(K8s)๋ ๋ณด์ ๋ฐ ๋๊ตฌ ์ธก๋ฉด์์ ๋
๋ณด์ ์
๋๋ค. OpenShift๋ Source2Image๋ฅผ ์์งํ๊ณ ํฌ๋์ ๋ํ ์๋ํ๋ ๋ฐฐํฌ๋ฅผ ์ง์ํ๋ฉฐ ์ถ์ ๋ฐ ๋ชจ๋ํฐ๋ง์ ์ง์ํ๋ ์ ์ผํ Kubernetes ๊ธฐ๋ฐ ํ๋ซํผ์
๋๋ค. OpenShift๋ ์จํ๋ ๋ฏธ์ค, ํด๋ผ์ฐ๋ ๋๋ ์จํ๋ ๋ฏธ์ค์ ํด๋ผ์ฐ๋์์ ๋์์ ์คํํ ์ ์์ต๋๋ค.
์ฃผ์ ์ด์
- ๋ด์ฅ๋ ๋ณด์ - K8s ๋ณด์์ ๊ด๋ฆฌํ๋ ค๋ฉด ๊ณ ๊ธ ํ์๊ฐ ํ์ํ ์ ์์ต๋๋ค. ๋ชจ๋ ์ธ๋ถ ์ฌํญ์ ์ ์คํ๊ฒ ์๊ฐํ๊ณ ๊ณ ๋ คํด์ผ ํฉ๋๋ค! OpenShift์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ด์ฅ๋ ๋ณด์ ๋ฉ์ปค๋์ฆ์ ๊ฐ๋ฐ์์ ๋ถ๋ด์ ๋์ด์ฃผ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๋ณด๋ค ์์ ํ ํ๋ซํผ์ ์ ๊ณตํฉ๋๋ค.
- ์ฌ์ธ์ ์๋ฃจ์ - ๊ธฐ๋ณธ์ ์ผ๋ก ๋ก๋ ๋ฐธ๋ฐ์ฑ ๋๊ตฌ๊ฐ ํฌํจ๋์ง ์์ ๊ธฐ๋ณธ K8๊ณผ ๋ฌ๋ฆฌ OpenShift๋ ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ฐ์ถ๊ณ ์์ต๋๋ค. ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋ ์์ฑ ๋ฐ ํธ์คํ , CI/CD ๋๊ตฌ ์คํ, ์ธ๋ถ ํ๋ก์ธ์ค ๊ด๋ฆฌ, ํค ๊ด๋ฆฌ ๋ฑ์ ์ํํ ์ ์์ต๋๋ค. ๊ทธ๋ํฝ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ ์์ง ์๋ฒฝํ์ง ์์ง๋ง API ๊ธฐ๋ฐ ์ ๊ทผ ๋ฐฉ์์ ๋ชจ๋ ๊ฒ์ ์คํฌ๋ฆฝํธ๋ก ์ค๋ช ํ ์ ์์์ ์๋ฏธํฉ๋๋ค. ๋ค๋ฅธ K8์ฉ GUI์ ๋ฌ๋ฆฌ OpenShift๋ฅผ ์ฌ์ฉํ๋ฉด Kubernetes์ ๊ธฐ๋ณธ ์ฌํญ์ ํจ์ฌ ์ฝ๊ฒ ๋ฐฐ์ธ ์ ์์ต๋๋ค. ํ์๋ฅผ ์ทจ๋ํ ํ์๋ ์์ต๋๋ค!
๊ฒฝ์
์ ํฌ์ ์ฐธ๊ฐํ์ผ๋ ์น๋ฆฌํ์ง ๋ชปํจ
๋์ปค ์ค์ โ Docker Swarm์ ๋ง์ ๊ฒ์ ์ ๊ฑฐํ์ฌ K8์ ๋จ์ํํ๋ ค๊ณ ํ์ต๋๋ค. ์๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์๋ ์ ํฉํ์ง๋ง ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ ์๋ ์๋ํ์ง ์์ต๋๋ค. ๋ํ AWS ECS์ ๊ฐ์ ์๋ฃจ์ ์ ๋น์ทํ ์ ๊ทผ ๋ฐฉ์์ ์ทจํ์ง๋ง ์ํธ ์์ฉํ ์ ์๋ ๋ค๋ฅธ ์๋น์ค(Lambda, IAM ๋ฑ)์ ๋ ์ฝ๊ฒ ์์ ํ ์ ์๋๋ก ํด์ค๋๋ค.
๋ชจ๋ํฐ๋ง ๋๊ตฌ #1
์์์ : ์๋ก์ด ์ ๋ฌผ
New Relic์ ์ด๊ธฐ ๋ฆด๋ฆฌ์ค๋ APM(Application Performance Monitoring) ๋ชจ๋ํฐ๋ง์ด๋ผ๋ ํ ๊ฐ์ง ๊ธฐ๋ฅ์ ์ ์ํํ์ต๋๋ค. ์ด์ ์๋ฒ, ์ปจํ
์ด๋, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅ, ์ต์ข
์ฌ์ฉ์ ๊ฒฝํ ๋ชจ๋ํฐ๋ง์ ๋ฌผ๋ก ์ ํ๋ฆฌ์ผ์ด์
์ฑ๋ฅ ๋ชจ๋ํฐ๋ง๊น์ง ๋ชจ๋ํฐ๋งํ ์ ์๋ ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ฐ์ถ ๋ชจ๋ํฐ๋ง ๋๊ตฌ์
๋๋ค.
์ฃผ์ ์ด์
- ์ฌ์ฉ ์ฉ์ด์ฑ - ์์คํ ์์ง๋์ด๋ก ์ผํ ๋ ๋ง์ ๋ชจ๋ํฐ๋ง ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ง๋ง New Relic๋งํผ ๊ฐ๋จํ๊ณ ์ฌ์ฉํ๊ธฐ ์ฌ์ด ๋๊ตฌ๋ ๋ณธ ์ ์ด ์์ต๋๋ค. SaaS์ด๋ฏ๋ก ์ง์ ์ค์นํ ํ์๊ฐ ์์ต๋๋ค.
- ์๋ ํฌ ์๋ ๊ฐ์์ฑ - ๋ค๋ฅธ ๋๊ตฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํน์ ์์ ํ๋๋ฅผ ๋ชจ๋ํฐ๋งํ๋ ค๊ณ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํ๋ก์ธ์ ์ฌ์ฉ๋์ด๋ ๋คํธ์ํฌ ํธ๋ํฝ์ ๋ํ ์งํ๊ฐ ์์ง๋ง ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋ ค๋ฉด ์ด ๋ชจ๋ ๊ฒ์ ํฌ๊ด์ ์ผ๋ก ๋ชจ๋ํฐ๋งํด์ผ ํฉ๋๋ค. New Relic์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ํ๋๋ก ๋ชจ์ ํ์ฌ ์ํฉ์ ๋ํ ํฌ๊ด์ ์ธ ์๊ฐ์ ์ป์ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
๊ฒฝ์
์ ํฌ์ ์ฐธ๊ฐํ์ผ๋ ์น๋ฆฌํ์ง ๋ชปํจ
์ ๋น์ธ โ ์ ๊ฐ ์ฒ์์ด์ ๊ฐ์ฅ ์ข์ํ๋ ๋ชจ๋ํฐ๋ง ์์คํ ์ด์ง๋ง ํด๋ผ์ฐ๋ ๊ธฐ์ ์ ๊ฐ๋ฐ ๋ถ์กฑ๊ณผ APM ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ๋ถ์ผ๋ก ์ธํด ๊ณผ๊ฑฐ์ ๋จ์ ์์์ต๋๋ค. Zabbix๋ ์ฌ์ ํ ์ ํต์ ์ธ ์๋ฒ ์ธํ๋ผ ๋ชจ๋ํฐ๋ง์ ์ ์ํํ์ง๋ง ๊ทธ๊ฒ ์ ๋ถ์ ๋๋ค.
๋ฐ์ดํฐ ๋๊ทธ โ ์ฝ๋ ์์ฒด๊ฐ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ก๋์ ํ๊ฒฝ์ ๊ด๋ฆฌํ๋ ํ๋ก์ธ์ค์ ๋๋ฌด ์ง์คํฉ๋๋ค. ๊ฐ๋ฐ์๊ฐ ์ฐธ์ฌํ๋ DevOps ํ์ ์ฌ์ฉํ๋ฉด ์ต๊ณ ์์ค์ ์ง์์ ์ ๊ณตํ๊ธฐ ์ํด ์ฌ์ฉํ๊ธฐ ์ด๋ ค์ด ๋๊ตฌ์ ์์กดํ ํ์๊ฐ ์์ต๋๋ค.
๋ก๊น ๋๊ตฌ #1
์์์ : ์คํ ๋ ํฌ
Splunk์ ๊ฒฝ์ํ๊ธฐ๋ ์ด๋ ต์ต๋๋ค! ์ค๋ซ๋์ ๊ทธ๋ ๋ฒ๋ชฉ ๋ถ์ผ์ ์ ๋์ฃผ์๋ก ๋จ์ ์์ผ๋ฉฐ, ๋๊ตฌ๋ณด๋ค ๋ ๋์ ์ผ์ ๊ณ์ํ๊ณ ์์ต๋๋ค. ์จํ๋ ๋ฏธ์ค ๋ฐ SaaS ์ ํ์ ํตํด ์ด๋์๋ Splunk๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ฐ์ฅ ํฐ ๋จ์ ์ ๊ฐ๊ฒฉ์
๋๋ค. Splunk๋ ์ฌ์ ํ ์์ฒญ๋๊ฒ ๋น์๋๋ค!
์ฃผ์ ์ด์
- ๋ณด๊ธ์ฑ - ๊ธฐ์ ์ Splunk๋ฅผ ์ข์ํ๋ฉฐ ๊ธฐ์ ์ Splunk๋ฅผ ๊ตฌ์ ํ ๋์ด ์์ต๋๋ค.
- ์คํํธ์ ์ด ๋น์ฉ์ ํ์ํ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ง๋ง ์คํ ์์ค ์๋ ๋ก๊ทธ ๋๋ถ์ ๋ง์ ๊ธฐ๋ฅ์ ํด๊ฒฐํ ์ ์์ต๋๋ค.
- ์ ์ง ๊ด๋ฆฌ ์ฉ์ด์ฑ - ๊ฐ๋จํ ๋งํด์ Splunk๋ ์ ์๋ํ๊ณ ์ ์๋ํฉ๋๋ค. ๋ฐ๋ก ์ฌ์ฉํ ์ ์๋ ๋ค์ํ ๊ธฐ๋ณธ ์ค์ ๊ณผ ๊ธฐ๋ฅ์ด ํจ๊ป ์ ๊ณต๋ฉ๋๋ค. ๋ฌธ์๋ฅผ ์ฝ๊ณ Splunk๋ฅผ ์๋์ํค๊ฑฐ๋ ํด๋ ํ๋ ๋ฐ ์๊ฐ์ ๋ญ๋นํ ํ์๊ฐ ์์ต๋๋ค.
๊ฒฝ์
์ ํฌ์ ์ฐธ๊ฐํ์ผ๋ ์น๋ฆฌํ์ง ๋ชปํจ
ELK ์คํ(ElasticSearch, LogStash ๋ฐ Kibana) "์ด๋ฌํ ๋๊ตฌ๋ ์ฌ์ฉํ๊ธฐ ์ํด ๊ฐ์ ํ ํ์์กฐ์ฐจ ์๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ์ข์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค." ๊ทธ๋ฌ๋ ๋ก๊ทธ ์ธํธ๊ฐ ๋์ด๋๊ณ ํ์ฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์๊ฐ ๋์ด๋๋ฉด ์์ ์ด ์ ์ ๋ ์ด๋ ค์์ง๋๋ค. Splunk์ ๋น๊ตํ ๋ ELK Stack์ ์ฌ์ฉํ๋ฉด ๋์๋ณด๋๋ฅผ ๋ง๋ค๊ธฐ ์ ์ ๋๊ตฌ๋ฅผ ์ค์ ํ๋ ๋ฐ ์ด์ ๋ณด๋ค ํจ์ฌ ๋ ๋ง์ ์๊ฐ์ด ์์๋์์ต๋๋ค.
ํ์ ๋๊ตฌ
DevOps๋ ์ฃผ๋ก ์กฐ์ง ๋ด ๋ฌธํ๋ฅผ ๋ฐ๊พธ๋ ๊ฒ์
๋๋ค. ๋๊ตฌ๋ฅผ ๊ตฌ์
ํ๋ค๊ณ ํด์ ํ๋ฃจ์์นจ์ ํ์ฌ์ ๊ดํ์ด ๋ฐ๋์ง๋ ์์ง๋ง ํ์คํ ํ์
๊ณผ ์๋ก์ด ์ํธ ์์ฉ ๋ฐฉ์์ ์ฅ๋ คํ ์ ์์ต๋๋ค.
ํ์ ๋๊ตฌ์ ํ์ ์นดํ ๊ณ ๋ฆฌ:
- ์์ ์ถ์
- ChatOps
- ์ ์ ์๋ฅ ๋น์น.
#1 ๋ฌธ์ ์ถ์ ๋๊ตฌ
์์์ : ๋ฝ์ค
์ด ๋ถ์ผ์ ๊ฒฝ์์ด ์น์ดํด์ง๊ณ ์์์๋ ๋ถ๊ตฌํ๊ณ Jira๋ ์ ๋ ์์น๋ฅผ ์ ์งํ๊ณ ์์ต๋๋ค. Jira์ ๋๋ผ์ด ์ ์ฐ์ฑ์ ํตํด ๊ฐ๋ฐ ๋ฐ ์ ์ง ๊ด๋ฆฌ ํ์ ํ๋ก์ ํธ ์์
๊ณผ ์คํ๋ฆฐํธ ์์
์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. Agile ์ฉ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ์ ๊ณต ํ์ค์ ์ฌ์ฉํ๋ฉด ๊ธฐ์กด ์์
๋ฐฉ์์์ ๋ณด๋ค ํจ์จ์ ์ธ ํ๋ก์ธ์ค๋ก ์ฝ๊ฒ ์ด๋ํ ์ ์์ต๋๋ค.
์ฃผ์ ์ด์
- ์ธ๊ธฐ - ๋ค๋ฅธ ๋ง์ ๋๊ตฌ์ ๋ง์ฐฌ๊ฐ์ง๋ก Jira๋ ๊ฑฐ์ ๋ชจ๋ ๊ณณ์์ ์ฌ์ฉ๋ฉ๋๋ค. ์๊ท๋ชจ ํ์ ๋ ์ ๋ ดํ๊ณ ์ ๊ทผํ๊ธฐ ์ฌ์ด ๋ฒ์ ์ ์ฌ์ฉํ์ฌ ํ์ํ ๋ชจ๋ ๊ฒ์ ์ป์ ์ ์๋ ๋ฐ๋ฉด, ๋๊ธฐ์ ์ ๋ ๋น์ผ ๋ผ์ด์ ์ค๋ฅผ ๊ฐ๋นํ ์ ์์ต๋๋ค.
- ํตํฉ - Jira๋ ํด๋น ๋ถ์ผ์ ์ ๊ตฌ์์ ๋๋ค. ์ด๋ฌํ ์ฌ์ค๊ณผ ์ ํ์ ๊ธ์ํ ๊ฐ๋ฐ๋ก ์ธํด ๋ค๋ฅธ ํ์ฌ์์๋ ์์ฒด ํตํฉ์ ์์ฑํ๊ธฐ ์ํด Jira๋ฅผ ์ ํํ์ฌ ๋๊ตฌ์ ๊ฐ์น๊ฐ ๋์์ก์ต๋๋ค. ์ฝ๊ฐ์ ๊ตฌ์ฑ์ ํตํด Jira๋ฅผ ์ด ๋ฌธ์์ ๋์ด๋ ๋ชจ๋ ๋๊ตฌ์ ์ฆ์ ํตํฉํ ์ ์์ต๋๋ค.
๊ฒฝ์
์ ํฌ์ ์ฐธ๊ฐํ์ผ๋ ์น๋ฆฌํ์ง ๋ชปํจ
Trello โ Trello๋ ๋ฌด๋ฃ Kanban ๋๊ตฌ ๋๋ถ์ ๋น ๋ฅด๊ฒ ์ธ๊ธฐ๋ฅผ ์ป์์ต๋๋ค. ๊ทธ๋ฌ๋ ํ๋ก์ธ์ค๊ฐ ํ์ฅ๋๊ณ ์์ ์ด ์์ญ ๊ฐ์์ ์์ฒ ๊ฐ๋ก ๋์ด๋๋ฉด Trello์์๋ ํ์, ๊ฒ์ ๋ฐ ๋ณด๊ณ ๊ฐ ์ด๋ ค์์ง๋๋ค.
ํผ๋ฒ ํธ๋์ปค โ ์ ๋ ์คํํธ์ ์์ ์ผํ ๋ ์ด ๋๊ตฌ์ ์ด๋ ฌํ ํฌ์ด์์ต๋๋ค. ๊ทธ๋ฌ๋ Pivotal Tracker๋ ๊ธฐ์ ์ ์ธ ์์ ๋ณด๋ค๋ ์ ํ ๊ด๋ฆฌ์ ๋ ์ค์ ์ ๋๊ณ ์์ต๋๋ค. Jira์ ์ ํ ๊ด๋ฆฌ๋ ์กฐ๊ธ ๋ ๋ณต์กํ์ง๋ง ์ถ๊ฐ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ Jira์์ ๊ตฌํํ ์ ์์ต๋๋ค.
ChatOps ๋๊ตฌ #1
์์์ : MatterMost
์ค๋ช
: ์๋ง๋ ์ ๊ฐ ์ ํํ ๊ฒ ์ค ๊ฐ์ฅ ๋๋ผ์ด ์ ์ ์ข์ ์์์ผ ๊ฒ์
๋๋ค! MatterMost๋ ์ด์ ๋๊ตฌ์ ์ฅ์ ์ ์ต๋ํ ํ์ฉํ๋ฉด์๋ ์ด๋ฅผ ์จํ๋ ๋ฏธ์ค์ ๋ฐฐ์นํจ์ผ๋ก์จ ์ธ๊ธฐ๋ฅผ ์ป์์ต๋๋ค. ์ด๋ ๊ธฐ์
์๊ฒ ๋งค์ฐ ์ค์ํฉ๋๋ค. MatterMost๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ ์ดํ ์ ์์ผ๋ฉฐ ๋ก์ปฌ์์ ์คํ๋๋ ๋๊ตฌ์ ๋ฐ์ดํฐ๋ฅผ ํตํฉํ ์๋ ์์ต๋๋ค. ๋ ์ด์ ์
๋ฌด ์ฑํ
์ ํ์ธํ๊ธฐ ์ํด ๋ฐฉํ๋ฒฝ ๋ฐ์ผ๋ก ๋๊ฐ ํ์๊ฐ ์์ต๋๋ค.
์ฃผ์ ์ด์
- ์คํ ์์ค โ MatterMost์ ์คํ ์์ค ๋ฒ์ ์ ์ค๊ฐ ๊ท๋ชจ ํ๊ณผ ๋๊ท๋ชจ ํ ๋ชจ๋์ ์ ํฉํฉ๋๋ค. ๋ฉ์์ง ๊ธฐ๋ก์ ์ญ์ ํ๋ Slack์ ๋ฌด๋ฃ ์๊ธ์ ์ ๋ฌ๋ฆฌ ์์ฒด ์๋ฒ๋ฅผ ์ด์ํ๋ฉด ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์ ์ง๋ฉ๋๋ค.
- ํตํฉ - API๋ ๊ฑฐ์ 100% Slack API๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๊ธฐ ๋๋ฌธ์ ๊ฑฐ์ ๋ชจ๋ Slack ํตํฉ์ MatterMost์ ์ง์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ฒฝ์
์ ํฌ์ ์ฐธ๊ฐํ์ผ๋ ์น๋ฆฌํ์ง ๋ชปํจ
๋์จํ๊ฒ โ ์ฌ๋๋ ๋ฉ์๋๋ฐ ์ด ์น๊ตฌ๋ค์ ๋๋ฌด ์ฑ์ฅํด์ ์์ต์ ๋ ธ๋ฆฌ๊ธฐ ์์ํ์ด์. ๋น์ฆ๋์ค์ ํฌ์ ํ์ ๋จ๊ณ๊ฐ ๋ค๊ฐ์ค๊ณ ์์ผ๋ฉฐ ์ด๋ก ์ธํด ์ฃผ์ ๊ฐ์น๊ฐ ์ฌ๋ผ์ง๋๋ค. Slack์ ์๋น์ค๋ฅผ ๋ฌด๋ฃ๋ก ์ ๊ณตํ์ต๋๋ค. ๋ฌด๋ฃ ๋ฒ์ ์ ๊ฐ์ฅ ์ค์ํ ๋จ์ ์ ์ฑํ ๊ธฐ๋ก์ด ์ญ์ ๋๋ค๋ ์ ์ ๋๋ค.
Microsoft ํ โ Microsoft ์ ํ์ Microsoft ์์ ๊ฐ ์๋ ์ ํ๊ณผ ํตํฉํด ๋ณด์ญ์์ค... ํ์ด์ ๋น๋๋ค! ์ด๊ฒ์ด ์ด ๋๊ตฌ์ ๋ํด ๋ด๊ฐ ๋งํด์ผ ํ ์ ๋ถ์ ๋๋ค!
๋ฌธ์ํ ๋๊ตฌ #1
์์์ : ํฉ๋ฅ
์ด๋ค ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๊ณ ํ์ง ๊ธฐ์ ๋ฌธ์๋ฅผ ์์ฑํ๊ณ ์ ์งํ๋ ๊ฒ์ ๋ณต์กํ ํ๋ก์ธ์ค์
๋๋ค. ์ต๊ทผ ๋ง์ SaaS ๋ฌธ์ํ ๋๊ตฌ๊ฐ ์์ฅ์ ์ถ์๋์์ง๋ง ๋ฏธ์
ํฌ๋ฆฌํฐ์ปฌ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ํ ๊ธฐ์ ๋ฌธ์์ ์ ์ฅ์ ์ XNUMX์์๊ฒ ์์์์ฑํ๋ ๊ฒ์ ์ด๋ ต๋ค๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค. ๋ฐ์ดํฐ์ ๋ฌธ์๋ฅผ ์จํ๋ ๋ฏธ์ค์ ์ ์ฅํ๋ ๊ฒ์ด ๋ฐ๋์งํ๋ฉฐ ์ด๊ฒ์ด Confluence๊ฐ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์
๋๋ค.
์ฃผ์ ์ด์
- ์๋ ์ฉ์ด์ฑ - ๋๋ถ๋ถ์ ๋ ๋ฆฝํ ๋๊ตฌ๋ ์ค์ ๋ฐ ์๋์ด ์ฝ๊ฐ ๋ณต์กํ ์ ์์ผ๋ฉฐ ์ ์ง ๊ด๋ฆฌ์๋ ์ฝ๊ฐ์ ์ง์์ด ํ์ํฉ๋๋ค. Confluence Server๋ 10๋ช ๋๋ 10,000๋ช ์ ์ฌ์ฉ์๋ฅผ ์ํด ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅํ๋๋ก ํ๋ฅญํ๊ฒ ์๋ํฉ๋๋ค.
- ํ๋ฌ๊ทธ์ธ - ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ฆ๋ต๊ณ ์ฌ์ฉํ๊ธฐ ์ฌ์ด ํ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ ๋ํ ํ๋ฌ๊ทธ์ธ์ ์ถ๊ฐํ๋ ๊ธฐ๋ฅ์ผ๋ก Wiki์ ์ ์ฌํ ์ ์ฌ๋ ฅ์ ๋ฐํํ๋ Confluence์ ์ฐฌ์ฌ๋ฅผ ๋ณด๋ ๋๋ค.
๊ฒฝ์
์ ํฌ์ ์ฐธ๊ฐํ์ผ๋ ์น๋ฆฌํ์ง ๋ชปํจ
๋ฌธ์ ์ฝ๊ธฐ โ ์คํ ์์ค์๋ ๋ฉ์ง์ง๋ง ์ฌ๊ธฐ์ ์ค์ํ ์ง์์ ์ ์ฅํ ์๊ฐ์กฐ์ฐจ ํ์ง ๋ง์ญ์์ค.
๊ฐ๊ฒฉ ์ธํ - ์ฝ๋๋ฅผ ๋ฌธ์ํํ๋ ๋ฐ ์ ํฉํ์ง๋ง MarkDown์ ํน์ ํ์์ผ๋ก ์ธํด ์ํคํ ์ฒ, ํ๋ก์ธ์ค ๋๋ ๊ธฐํ ์ ํ์ ๋ฌธ์๋ฅผ ๊ฒ์ํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค.
์งํฌ โ ๊ธฐ์ ์ง์์ ๋ฌธ์ํํ ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ ๋๋ง๋ค ๋ฐฐํฌ๋๋ ์๋ก์ด ์ ์ ์ฌ์ดํธ๋ฅผ ๋ง๋ค๊ณ ์ถ์ง ์์ต๋๋ค. Confluence์ ๊ฐ๋จํ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ๋ด๋ถ ๋ฌธ์ํ๋ฅผ ํฌ๊ฒ ๋จ์ํํฉ๋๋ค.
ํฉ๊ณํ๋ค
์์ฅ์๋ ๋ง ๊ทธ๋๋ก ์๋ฐฑ ๊ฐ์ง์ DevOps ๋๊ตฌ๊ฐ ์์ผ๋ฏ๋ก ์ด๋ค ๋๊ตฌ๋ฅผ ์ฌ์ฉํด์ผ ํ๋์ง, ์ธ์ ๊ตฌํํด์ผ ํ๋์ง ์๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค. ์์ ํ CI/CD ํ์ดํ๋ผ์ธ์ ์ํ DevOps ๋๊ตฌ๋ฅผ ์ ํํ๋ ค๋ฉด ์ด ๊ฐ๋จํ ๊ฐ์ด๋๋ฅผ ๋ฐ๋ฅด์ธ์.
๋ค์ฏ ๊ฐ์ง ๋ฒ์ฃผ ๋ชจ๋์์ ๋๊ตฌ๋ฅผ ์ ํํ์ญ์์ค.
- ๊ฐ๋ฐ ๋ฐ ๋น๋ ๋๊ตฌ
- ํ ์คํธ ์๋ํ ๋๊ตฌ
- ๋ฐฐํฌ ๋๊ตฌ
- ๋ฐํ์ ๋๊ตฌ
- ํ์ ๋๊ตฌ.
์ฃผ์ ์ถ์ฒ์ฌํญ: ๋ชจ๋ ๊ฒ์ ์๋ํํ์ธ์!
์ญ ์คํผ๋ก์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
์ถ์ฒ : habr.com