ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
๐Ÿš€ Python for SRE/DevOps: Building SDKs + Jenkins Automations
Dev.toDev.to
DevOps

๐Ÿš€ Python for SRE/DevOps: Building SDKs + Jenkins Automations

SRE/DevOps ์—”์ง€๋‹ˆ์–ด๊ฐ€ Python SDK๋ฅผ ๋‚ด๋ถ€ ํŒจํ‚ค์ง€๋กœ ๊ตฌ์ถ•ํ•˜๊ณ  Jenkins ํŒŒ์ดํ”„๋ผ์ธ์— ํ†ตํ•ฉํ•ด ์ž๋™ํ™” ์›Œํฌํ”Œ๋กœ์šฐ ์žฌ์‚ฌ์šฉ์„ฑ ํ™•๋ณด

Danish Khan2026๋…„ 3์›” 25์ผ12๋ถ„intermediate

Context

SRE์™€ DevOps ํŒ€์€ ์ธํ”„๋ผ ์ž๋™ํ™”, ์•Œ๋ฆผ ๊ด€๋ฆฌ, API ์—ฐ๋™ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์ผํšŒ์šฉ ์Šคํฌ๋ฆฝํŠธ์— ์˜์กดํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์Šคํฌ๋ฆฝํŠธ๋Š” ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์ด ์–ด๋ ต๊ณ  ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฉฐ ํŒ€ ๊ฐ„ ๊ณต์œ ๊ฐ€ ๋ณต์žกํ–ˆ๋‹ค.

Technical Solution

  • Python ๊ฐ€์ƒํ™˜๊ฒฝ(venv)๊ณผ pip๋ฅผ ํ™œ์šฉํ•œ ์˜์กด์„ฑ ๊ฒฉ๋ฆฌ: ํ”„๋กœ์ ํŠธ๋ณ„๋กœ ๋…๋ฆฝ์ ์ธ ํŒจํ‚ค์ง€ ํ™˜๊ฒฝ ๊ตฌ์„ฑ
  • HTTP API ํ†ต์‹  ๊ณ„์ธต ๊ตฌํ˜„: requests ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ GET, POST, DELETE ๋ฉ”์„œ๋“œ ๋ฐ ์ธ์ฆ, ํƒ€์ž„์•„์›ƒ, ์žฌ์‹œ๋„ ๋กœ์ง ์ž‘์„ฑ
  • BaseClient ํŒจํ„ด์˜ SDK ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„: client.py, base_client.py, models.py, exceptions.py๋กœ ๊ตฌ์กฐํ™”๋œ ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ SDK ๊ฐœ๋ฐœ
  • pyproject.toml๊ณผ python -m build๋ฅผ ํ†ตํ•œ Python ํŒจํ‚ค์ง€ํ™”: ๋ฒ„์ „ ๊ด€๋ฆฌ ๋ฐ wheel ํ˜•์‹์œผ๋กœ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ์ „ํ™˜
  • Jenkins ํŒŒ์ดํ”„๋ผ์ธ์— Python SDK ํ†ตํ•ฉ: pip install๋กœ ํŒจํ‚ค์ง€ ์„ค์น˜ ํ›„ Python ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰, cron ์Šค์ผ€์ค„๋ง ์ ์šฉ
  • pytest์™€ mocking์„ ํ™œ์šฉํ•œ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ: API ํ˜ธ์ถœ ์—†์ด ํด๋ผ์ด์–ธํŠธ ๋ฉ”์„œ๋“œ ๊ฒ€์ฆ ๋ฐ ์•ˆ์ „ํ•œ ์‹คํ–‰ ํŒจํ„ด ํ™•๋ณด

Key Takeaway

๋‚ด๋ถ€ ์ž๋™ํ™” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ Python SDK๋กœ ํŒจํ‚ค์ง•ํ•˜๊ณ  Jenkins ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์€ ํ”Œ๋žซํผ ์—”์ง€๋‹ˆ์–ด๋ง์˜ ํ‘œ์ค€ ํŒจํ„ด์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ณ„ ํŒ€์ด ์ž‘์„ฑํ•œ ๋„๊ตฌ๋ฅผ ํšŒ์‚ฌ ์ „์ฒด์—์„œ ์ผ๊ด€๋˜๊ฒŒ ๋ฐฐํฌํ•˜๊ณ  ์œ ์ง€๋ณด์ˆ˜ํ•  ์ˆ˜ ์žˆ๋‹ค.


์˜จํ”„๋ ˆ๋ฏธ์Šค ๋˜๋Š” AWS ํ™˜๊ฒฝ์—์„œ ๋ฐ˜๋ณต์ ์ธ ์ธํ”„๋ผ ์ž๋™ํ™” ์ž‘์—…(์ด๋ฒคํŠธ ์ƒ์„ฑ, ๋ฆฌ์†Œ์Šค ์ •๋ฆฌ, ๋ชจ๋‹ˆํ„ฐ๋ง)์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํŒ€์—์„œ, BaseClient ํŒจํ„ด์œผ๋กœ SDK๋ฅผ ์„ค๊ณ„ํ•˜๊ณ  pyproject.toml์œผ๋กœ ํŒจํ‚ค์ง•ํ•œ ํ›„ Jenkins ํŒŒ์ดํ”„๋ผ์ธ์˜ cron ํŠธ๋ฆฌ๊ฑฐ์—์„œ pip install ๋ฐ Python ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ๋ฐฉ์‹์„ ๋„์ž…ํ•˜๋ฉด, ์Šคํฌ๋ฆฝํŠธ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ณ  ๋ฒ„์ „ ๊ด€๋ฆฌ ๋ฐ ๋กค๋ฐฑ ๊ฐ€๋Šฅ์„ฑ์„ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ๋‹ค.

์›๋ฌธ ์ฝ๊ธฐ