Bare Metal Overview
๋๋ถ๋ถ์ ๋ฒค์น๋งํฌ ์ถ์ ๋๊ตฌ๋ ๋จ์ผ ํ๊ฒฝ์์๋ง ๋ฒค์น๋งํฌ๋ฅผ ์คํํ ์ ์์ต๋๋ค. ๋ก์ปฌ์์ ๋ฒค์น๋งํฌ๋ฅผ ์คํํ๊ฑฐ๋ CI์์ ์คํํ๋ ๊ฒ ์ค ํ๋๋ง ๊ฐ๋ฅํฉ๋๋ค. ๋ก์ปฌ๊ณผ CI ์คํ์ ๋ชจ๋ ์ง์ํ๋๋ผ๋, ๋ ํ๊ฒฝ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋น๊ตํ ์ ์์ต๋๋ค.
Bencher Bare Metal์ ์ฌ์ฉํ๋ฉด ๋ ๊ฐ์ง ์ฅ์ ์ ๋ชจ๋ ๋๋ฆด ์ ์์ต๋๋ค. ๋ก์ปฌ ๋จธ์ ์์ ๋ฒค์น๋งํฌ๋ฅผ ์คํํ๋ฉด์ ์ ์ฉ ํ๋์จ์ด์์ ์คํ๋๋๋ก ํ ์ ์์ผ๋ฉฐ, CI์์ ๋ฒค์น๋งํฌ๋ฅผ ์คํํ๋ฉด์ ์์ ํ ๋์ผํ ์ ์ฉ ํ๋์จ์ด์์ ์คํ๋๋๋ก ํ ์๋ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ฒค์น๋งํฌ๋ฅผ ์ด๋์์ ์คํํ๋ ์ผ๊ด๋ ๋ฒค์น๋งํฌ ์คํ ํ๊ฒฝ์ ํ๋ณดํ ์ ์์ต๋๋ค.
Bencher Bare Metal์ ๋ฒ ์ด ๋ฉํ ํ๋์จ์ด์์ ์คํ๋์ด ๋ณ๋์ฑ์ ์ ๊ฑฐํ๊ณ ๋ ์ ํํ๊ณ ์ ๋ขฐํ ์ ์๋ ๋ฒค์น๋งํฌ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํฉ๋๋ค.
Runner
Runner๋ ์ ์ฉ Bare Metal ํ๋์จ์ด์์ ์คํ๋๋ ์๊ฒฉ ๋ฒค์น๋งํฌ ์คํ๊ธฐ์ ๋๋ค. Runner๋ ์ฐ๊ฒฐ๋ Spec์ ๊ธฐ๋ฐ์ผ๋ก ๋๊ธฐ ์ค์ธ Job์ Bencher API ์๋ฒ์ ํด๋งํฉ๋๋ค. Job์ด ํ ๋น๋๋ฉด Runner๋ ํด๋น Job์ ์ง์ ๋ Image๋ฅผ ๊ฐ์ ธ์ค๊ณ , Image๋ฅผ ์ธํจํนํ๊ณ , ๋ฒค์น๋งํฌ ๋ช ๋ น์ ์คํํ ํ, ๊ฒฐ๊ณผ๋ฅผ Bencher API ์๋ฒ๋ก ์ ์กํฉ๋๋ค. ๋ฒค์น๋งํฌ๊ฐ ๋ค๋ฅธ ์ํฌ๋ก๋์ ์ํฅ์ ๋ฐ์ง ์๋๋ก ํ ๋ฒ์ ํ๋์ Job๋ง ์คํ๋ฉ๋๋ค.
| Runner | ํ๋ซํผ | ๋ฒ์ | ๊ด๋ฆฌ ์ฃผ์ฒด | Sandbox | ๋คํธ์ํฌ ์ ๊ทผ | ํฐ์ด |
|---|---|---|---|---|---|---|
| Shared | Bencher Cloud | ์๋ฒ | Bencher | ํ์ | ๋ถ๊ฐ | Free, Team, Enterprise |
| Dedicated | Bencher Cloud | ์กฐ์ง | Bencher | ์ ํ | ๋ถ๊ฐ | Enterprise |
| Custom | Bencher Cloud | ์กฐ์ง | ์ฌ์ฉ์ | ์ ํ | ์ ํ | Enterprise |
| Self-Hosted Server | Bencher Self-Hosted | ์๋ฒ | ์ฌ์ฉ์ | ์ ํ | ์ ํ | Free, Team, Enterprise |
| Self-Hosted Organization | Bencher Self-Hosted | ์กฐ์ง | ์ฌ์ฉ์ | ์ ํ | ์ ํ | Enterprise |
Spec
Spec์ Runner์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฆฌ์์ค๋ฅผ ์ค๋ช ํ๋ ํ๋์จ์ด ์ฌ์์ ๋๋ค:
- ์ด์ ์ฒด์ (OS)
- Linux
- macOS
- Windows
- CPU ์ํคํ
์ฒ
- x86_64
- ARM64
- Sandbox
- Firecracker microVM
- Sandbox ์์
- CPU ์
- ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ (RAM)
- ๋์คํฌ ํฌ๊ธฐ
- ๋คํธ์ํฌ ์ ๊ทผ
Spec์ ์๋ฒ ๋ฒ์ ๋๋ ์กฐ์ง ๋ฒ์๋ก ์ค์ ๋๋ฉฐ, ๋์ผํ Spec์ ๊ฐ์ ์๋ฒ์ ์ฌ๋ฌ Testbed์์ ๊ณต์ ํ๊ฑฐ๋ ๊ฐ์ ์กฐ์ง ๋ด์์ ๊ณต์ ํ ์ ์์ต๋๋ค.
bencher run ์ฌ์ฉ ์ Spec ์ ํ ์ฐ์ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
--spec์ต์ - Testbed์ ํ ๋น๋ Spec
- ๊ธฐ๋ณธ ์กฐ์ง ๋ฒ์ Spec
- ๊ธฐ๋ณธ ์๋ฒ ๋ฒ์ Spec
์ ํ๋ Spec์ ํ์ฌ Testbed์ ํ ๋น๋ฉ๋๋ค.
Sandbox
Sandbox๋ Runner์์ ์์ ํ ๋ฉํฐ ํ
๋์๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ ๊ฒฉ๋ฆฌ ๋ฉ์ปค๋์ฆ์
๋๋ค.
Bencher Bare Metal์ ๊ธฐ๋ณธ Sandbox ๊ตฌํ์ผ๋ก Firecracker microVM์ ์ฌ์ฉํฉ๋๋ค.
Sandbox ์์ด ์คํํ๋ ค๋ฉด Bencher Cloud์ Dedicated ๋๋ Custom Runner๊ฐ ํ์ํ๊ฑฐ๋ (์์ธํ ๋ด์ฉ์ Bencher Plus ์ง์์ ๋ฌธ์ํ์ธ์) Bencher Self-Hosted๊ฐ ํ์ํฉ๋๋ค.
Runner๊ฐ Sandbox๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ, ๊ฐ Job์ ํด๋น Sandbox ๋ด์์ ์คํ๋ฉ๋๋ค.
์ ์ฒด ๊ฐ์๋ runner ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Job
Job์ ์๊ฒฉ ๋ฒค์น๋งํฌ ์คํ ์์ฒญ์ ์๋ช
์ฃผ๊ธฐ๋ฅผ ์ถ์ ํฉ๋๋ค.
--job-timeout ์ต์
์ ์ฌ์ฉํ์ฌ Job๋ณ๋ก ์ฌ์ฉ์ ์ ์ ํ์์์์ ์์ฒญํ ์ ์์ต๋๋ค.
๋จ, ๋ค์ Job ํ์์์๊ณผ ๋์ ์คํ ์ ์ ํ์ ํญ์ ์ ์ฉ๋ฉ๋๋ค:
| ํฐ์ด | Job ํ์์์ | Job ๋์ ์คํ ์ |
|---|---|---|
| Unclaimed | 1๋ถ | ์์ค IP๋น 1 |
| Free | 5๋ถ | ์กฐ์ง๋น 1 |
| Team | ๋ฌด์ ํ (๊ธฐ๋ณธ๊ฐ: 60๋ถ) | ๋ฌด์ ํ |
| Enterprise | ๋ฌด์ ํ (๊ธฐ๋ณธ๊ฐ: 60๋ถ) | ๋ฌด์ ํ |
์ ์ฒด ๊ฐ์๋ Job ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Image
Image๋ ๋ฒค์น๋งํฌ ์ฝ๋์ ๊ทธ ์์กด์ฑ์ ํฌํจํ๋ OCI ์ปจํ ์ด๋ ์ด๋ฏธ์ง์ ๋๋ค. Runner๊ฐ Job์ ์คํํ ๋, Image๋ฅผ ๊ฐ์ ธ์ค๊ณ , Image๋ฅผ ์ธํจํนํ ํ, Job์ ์ง์ ๋ ๋ฒค์น๋งํฌ ๋ช ๋ น์ ์คํํฉ๋๋ค. ํ๋ก์ ํธ์ฉ Image๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ Image ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.