2023.10 ~ 2024.03
๋ฌธ์ ์
- Public Cloud์ ์ ๊ท ๊ธฐ๋ฅ ๋ฐฐํฌ ํ QA๊ฐ ์ํ๋๊ธฐ๊น์ง ์ค๋ ์๊ฐ์ด ์์๋จ
- QA ๊ฒฐ๊ณผ๊ฐ ๊ณต์ ๋๊ธฐ ์ ์ ์์คํ ์์ง๋์ด๋ ์์ฒด์ ์ผ๋ก ํด๋ผ์ฐ๋ ์์ ์ฑ์ ํ ์คํธ
- ์ฝ์ ํ๋ฉด์์ ์ผ์ผํ ๋ฆฌ์์ค๋ฅผ ์์ฑ, ํ ์คํธ ํ ์ญ์ ํ๋ ๋ฐ๋ณต์ ์ธ ์์ ์ ์ํํด์ผ ํ์
- ๋ฆฌ์ ์ด ๋ง์์ง์๋ก ์ ์ ๋ ๋ง์ ์๊ฐ์ด ์์๋์๊ณ , ์ด ์์ ์ ์๋ํํ๊ธฐ๋ก ๊ฒฐ์
ํด๊ฒฐ ๋ฐฉ๋ฒ
- Terraform์ ์ฌ์ฉํด NHN Cloud์ ๋ฆฌ์์ค๋ฅผ ์์ฑ, ํ ์คํธ, ์ญ์ ํ๋ ์ฝ๋ ์์ฑ
- Github Actions ์ํฌํ๋ก์ฐ๋ฅผ ํตํด ์ํ๋ ๋ฆฌ์ ์ Terraform apply ์ํ
- ์ฌ์ฉ์๊ฐ ์์ฝ๊ฒ ํ ์คํธํ ์ ์๋๋ก ์ฑ๋ด Slash command๋ฅผ ๊ฐ๋ฐํด ์ ๊ณต
๊ตฌ์กฐ

๊ธฐ์ ์คํ
- Python, Shell Script
- Terraform
- Openstack API
- Jenkins, Github Actions
- K8s
- Django
๋์
Jenkins ํ์ดํ๋ผ์ธ์ Github Actions๋ก ์ฎ๊ธฐ๋ ๊ฒ์ด ๊ฐ์ฅ ํฐ ๋์ ์ด์์ต๋๋ค.
๊ธฐ์กด ๋ฐฉ์์ผ๋ก ์ฌ์ฉํด๋ ๋ฌธ์ ๊ฐ ์๋ ์์คํ
์ ํจ์จ์ฑ์ ํฅ์์ํค๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ๋์ ํ ๋, ๋๋ถ๋ถ์ ์ฌ๋๋ค์ ๋ถํ์ํ ์์
์ด ์๋์ง ์์ฌ์ ๋์ด๋ฆฌ๋ฅผ ๋ณด๋ด๊ฒ ๋ฉ๋๋ค.
ํ์ง๋ง ์ฌ๋ด ๊ท์ ์ Jenkins๋ ๋์์ 5๊ฐ ์ด์์ Job์ ์ํํ ์ ์๊ณ , ์ผ๋ถ ๋ฆฌ์ ์ ์์ ํต์ ์ด ๋ถ๊ฐ๋ฅํด ๋ณ๋์ Jenkins ์๋ฒ๋ฅผ ์ด์ํด์ผํ๋ ๋จ์ ์ด ์์์ต๋๋ค.
์ด์ ๋ฐํด Github Actions๋ ํต์ ๊ตฌ๊ฐ์ด ๋น๊ต์ ์์ ๋ก์ ๊ณ Kubernetes๋ฅผ ์ฐ๋ํ๋ฉด ์์ฒญ์ ๋ฐ๋ผ Runner Pod์ ์์ฑํด ๋์์ ๋ชจ๋ ๋ฆฌ์ ์ ํ
์คํธํ ์ ์์ ๊ฒ์ผ๋ก ๊ธฐ๋ํ์ต๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ์ ์์์ ๋ง์๋จ์ด์ก๊ณ Actions Runner Controller (ARC)๋ฅผ ํ์ฉํด Runner Pod์ ๋์ ์ผ๋ก ์์ฑํ ์ ์๊ฒ ๋์์ต๋๋ค. ์ด๋ฅผ ํตํด Jenkins๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ๋๋น ์ต๋ 75%์ ์๊ฐ์ ์ ๊ฐํ ์ ์์์ต๋๋ค.
๊ฒฐ๊ณผ
- 20๊ฐ ์ด์์ ๋ฆฌ์ ์ ๋ํด 10๋ถ ๋ด๋ก ๊ธฐ๋ณธ ์ธํ๋ผ ์๋น์ค ํ
์คํธ ๊ฐ๋ฅ
- ์ธ์คํด์ค ์์ฑ, Load Balancer ์์ฑ ๋ฐ ์ธ์คํด์ค ๋ฉค๋ฒ ์ถ๊ฐ, ๊ณต์ธ IP๋ก ํต์ ํ์ธ
- ๋ฐฐํฌ ๊ฒ์ฆ์ ํ์ํ ์ค ์ ์ฒด์ ์ ๋ฌด ์๊ฐ์ ๋งค ์ ๊ธฐ์ ๊ฒ ๋น 5์๊ฐ ์ด์ ๊ฐ์
- ๋ฐฐํฌ ์์
์๋ง ์ฌ์ฉํ๋ ๊ฒ์ด ์๋๋ผ ๋งค์ผ ์๋น์ค๋ฅผ ๊ฒ์ฆํ๋ ๋ฐ ์ฌ์ฉํ๋๋ก ์ฉ๋ ํ๋
- ์๋น์ค ์ด์ ๊ฐ์ง๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ ๊ฐ์
- ์ํฌํ๋ก์ฐ ๋์ ํ 1400ํ ์ด์์ Job ์ํ (์ฃผ๋น 10 ~ 20ํ ์ด์)
๊ธฐ์ฌ๋
- Github Actions ์ํฌํ๋ก์ฐ ๊ฐ๋ฐ (100%)
- ๊ณต๊ณต, ํ์๋ง ํ๊ฒฝ ๋ฑ ๋ณตํฉ์ ์ธ ๋ฆฌ์ ๋ ํ ๋ฒ์ ์ํฌํ๋ก์ฐ๋ก ์ฒ๋ฆฌํ ์ ์๋๋ก ๊ฐ๋ฐ
- Schedule Job ๊ธฐ๋ฅ์ผ๋ก ๋งค์ผ ์ค์ ์ ์ ์ฒด์ ์ธ ์๋น์ค๋ฅผ ๊ฒ์ฆํ๋๋ก ๊ตฌ์ฑ
- K8s ์ฐ๋ ๋ฐ Actions Runner Controller ๋์
(100%)
- Terraform ๋ชจ๋์ ํฌํจํ ์ปค์คํ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํด Runner Pod ์์ฑ
- Terraform ์ฝ๋ ๊ฐ๋ฐ (30%)
- Openstack provider๋ฅผ ํ์ฉํด NHN Cloud ๋ฆฌ์์ค๋ฅผ ์์ฑํ ์ ์๋๋ก ๊ฐ๋ฐ
- ํ์๋ง์์๋ ํ ์คํธํ ์ ์๋๋ก Local provider ๊ตฌ์ฑ
- REST API ์๋ฒ ๊ฐ๋ฐ (30%)
- ๋ฉ์ธ์ง ์ฌ๋์ ์ปค๋งจ๋, ์นํ ๋ฑ ์์ฒญ์ ๋ฐ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํดํ๊ธฐ ์ํ Django ์๋ฒ ๊ฐ๋ฐ