DevOps๋?
- ์๋น์ค ๊ฐ๋ฐ๊ณผ ์ด์์ ํตํฉ
- ์ ํ์ํ ๊น?
- ๊ฐ๋ฐ๊ณผ ์ด์์ด ๋ถ๋ฆฌ๋ ์ ํต์ ๋ฐฉ์
- ๊ฐ๋ฐํ, ์ด์ํ ๋ถ๋ฆฌ ๋์ด ์์
- ๊ฐ๋ฐํ์์ ๋ฐฐํฌ ํ์ผ์ ์ด์ํ์ ์ ๋ฌ
- ์ด์ํ์์ ๋ฐฐํฌ
- ์ด์ํ์ ๋ชจ๋ํฐ๋ง์ ํตํด ๊ฐ๋ฐํ์๊ฒ ํผ๋๋ฐฑ ์ ๋ฌ
- ์ด๋ ๊ฒ ๋๋ ๊ฒฝ์ฐ ๋ฐฐํฌ์ฌ์ด ๊ฐ๋ฐํ๊ณผ ์ด์ํ์ ์ปค๋ฎค๋์ผ์ด์ ๋น์ฉ ์ฆ๊ฐ
- ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ํ์/์์ธ ํ์
์ด ์ด๋ ค์
- ์๋น์ค ๊ฐ๋ฐ์๋ ์๋น์ค ์ฝ๋๋ฅผ ์ ์์ง๋ง ์ด์ ํ๊ฒฝ์ ์ต์ํ์ง ์์
- ์์คํ ์ด์์๋ ์ด์ ํ๊ฒฝ์ ์ต์ํ์ง๋ง ์๋น์ค ์ฝ๋๋ฅผ ์ ๋ชจ๋ฆ
- ๊ธด ์ฃผ๊ธฐ ๋ฐฐํฌ
- ํ์ง๋ง ๊ฐ ๋ถ์ผ ์ ๋ฌธ๊ฐ๊ฐ ๋ฐฐ์น๋์ด ์์ด ๋ณด๋ค ์์ ํ๋ค๊ณ ํ ์ ์์
- ํ์ฌ๋ ๋น ๋ฅด๊ฒ ๋ณํํ๋ ์๋น์ค ํ๊ฒฝ ๋๋ฌธ์ ๋ค๋ฅธ ๋ฐฉ์์ด ํ์
- ๊ฐ๋ฐ๊ณผ ์ด์์ด ๋ถ๋ฆฌ๋ ์ ํต์ ๋ฐฉ์
- DevOps
- ๊ฐ๋ฐ์๊ฐ ์๋น์ค ๊ฐ๋ฐ๊ณผ ์ด์์ ๊ฐ์ด ์ํ
- ์ปค๋ฎค๋์ผ์ด์ ๋น์ฉ ์ต์ํ
- ๊ฐ๋ฐ โ ๋ฐฐํฌ โ ์ด์ ํ๋ก์ธ์ค ๊ฒฝ๋ํ
- ๋ฌธ์ ๋ฐ์์ ์์ธ/ํ์ ํ์
์ด ์ฌ์
- ๋ชจ๋ ์ ์๋ ๊ฐ๋ฐ์๊ฐ ํด๊ฒฐ
- ์๋ํ๋ฅผ ํตํด ์ด์ ๊ณต์๋ฅผ ์ค์
- ์งง์ ์ฃผ๊ธฐ ๋ฐฐํฌ ๊ฐ๋ฅ
- ์ ์ง์ ์ํ์๊น?
- ์ด์ ์๋ ์๋น์ค ์ด์์ ์๋น์ค ๊ฐ๋ฐ๋งํผ ํน์ ๋ ๋ง์ ์ง์๊ณผ ๊ณต์๋ฅผ ์๊ตฌํ์
- ํด๋ผ์ฐ๋ ํ๊ฒฝ ๋ณดํธํ
- ์ธํ๋ผ ์ถ์ํ ๋ ๋ฒจ์ ์์น
- ์์ฌ์ด ์ด์ ํ๊ฒฝ ๊ตฌ์ฑ
- ์ธํ๋ผ์ ์ดํ๋ฆฌ์ผ์ด์ ๊ฒฝ๊ณ๊ฐ ํฌ๋ฏธํด ์ง
- ์๋ํ ์ง์ DevOps ๋๊ตฌ๋ค์ ๊ฐ๋ฐ
- ๋ชจ๋ํฐ๋ง ๋๊ตฌ/๋ฐฉ์์ ๋ฐ์
- ์ด์ ๊ณต์ ๊ฒฝ๊ฐ
- DevOps์ ๋ฒ์
- ์ฝ๋ ๋ณํฉ ๋ฐ ํ๋ฆฌํฐ ์ ์ง
- ์๋ํ๋ ์ฝ๋ ๋ฐฐํฌ
- ๋ชจ๋ํฐ๋ง ๋ฐ ์๋ฆผ
- ๊ฒฐ๊ตญ ํต์ฌ์ ๋ชจ๋ ๊ฐ๋ฐ์๊ฐ DevOps๊ฐ ๋๋ ๊ฒ์ด ๋ง๋ค!
Continuous Integration
- ์ฝ๋ ๋ณํฉ ๋ฐ ํ๋ฆฌํฐ ์ ์ง
- ๋ฌธ์ ๊ฐ ์๋ ์ฝ๋๋ฅผ ๋ฐฐํฌํ์ง ์์ผ๋ฉด ์ด์ ๊ณต์๋ฅผ ์์ฃผ ๋ง์ด ์ค์ผ ์ ์์
- ๋ฌธ์ ์ํฉ์ ๋นจ๋ฆฌ ์ฒดํฌํ๊ธฐ ์ํ ์์คํ
- ๋ฐฉ๋ฒ
- ํ
์คํธ ์ฝ๋ ์์ฑ
- ํ ์คํธ ์ฝ๋๋ ํน์ ์ฝ๋๊ฐ ๋ณ๊ฒฝ๋์์ ๋ ์๋ ฅ ๋ฐํ
- ์ฝ๋ ๋ฆฌ๋ทฐ
- ์ฌ๋์ด ์ง์ ๊ฒ์ฆ
- ๋ฆฌ๋ทฐ๋ ์๋ํ ์ด๋ ค์
- ๊ด๋ จ ์ค์ ์ ์ ํด๋์.
- ์๋ํ (CI Tools)
- ์ฝ๋ ์ปดํ์ผ ๋ฐ ํ ์คํธ ์ฝ๋ ์คํ
- ์ฝ๋ฉ ์ปจ๋ฒค์ ์ค์ ํ์ธ
- ์ ์ฌ ๊ฒฐํจ ๋ถ์
- ์ข
๋ฅ
- Jenkins
- ์ค์นํ CI ๋๊ตฌ
- ์ค์นํ์ด๊ธฐ ๋๋ฌธ์ ์ค์น๋ ์๋ฒ๋ฅผ ๊ฐ๋ฐ์๊ฐ ๊ด๋ฆฌํด ์ฃผ์ด์ผ ํจ
- Github hook ์ฐ๋
- PR ์์ฑ/์์ /๋จธ์ง ๋ฑ ์ด๋ฒคํธ ๋ฐ์์ ๋น๋
- ๋ค์ํ ํ๋ฌ๊ทธ์ธ
- ํ๋ฌ๊ทธ์ธ ๋ฐ ์๋ฒ ๊ด๋ฆฌ ํ์
- ์ค์นํ CI ๋๊ตฌ
- Jenkins
- ํ
์คํธ ์ฝ๋ ์์ฑ
- ๊ถ์ฅํ๋ CI Flow
- PR ์ด๊ธฐ ์ ์ฝ๋ ์์ฑ์๊ฐ ๊ด๋ จ ํ ์คํธ๋ ํจ๊ป ์์ฑ
- PR ์ด ๋ ๋ฆฌ๋ทฐ์ด ์ง์ , ๋ฆฌ๋ทฐ์ด๋ ์ฝ๋ ๋ฆฌ๋ทฐ
- PR open, commit ์ CI Tool์์ ์๋ PR ๋น๋ ์ํ ๋ฐ ๋ฆฌํฌํธ
- Tips
- ๊ฐ๋ฐ์๊ฐ ์๋ ์ํ ์์ ์ ๊ฒฐ๊ณผ๋ฅผ ์ฝ๊ฒ ์๊ณ ํ์ธํ ์ ์์ด์ผ ํจ
Continuous Delivery
- ์๋ํ๋ ์ฝ๋ ๋ฐฐํฌ
- ์ ์ ๊ณต์๋ก ์ฝ๊ฒ ๋ฐฐํฌํ ์ ์๋๋ก ํจ
- ์ด๋์ ๋ฐฐํฌํ ๊ฒ์ธ๊ฐ?
- Virtual Machine/ Phisical Machine
- ๋ฐฐํฌํ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ฐฐํฌ ๋๊ตฌ ์ ํ
- ์ฌ์ฉ ์
- develop ๋ธ๋์น์ ์ฝ๋๊ฐ ๋จธ์ง๋๋ฉด ์๋์ผ๋ก ๊ทธ ์์ ์ ์ฝ๋๋ฅผ ๋น๋ํด์ dev ํ๊ฒฝ์ ๋ฐฐํฌ
- main ๋ธ๋์น์ ์ฝ๋๊ฐ ๋จธ์ง๋๋ฉด ์๋์ผ๋ก ๊ทธ ์์ ์ ์ฝ๋๋ฅผ ๋น๋ํด์ alpha ํ๊ฒฝ์ ๋ฐฐํฌ
- deploy-beta pipeline์ ์ ํํ๋ฉด ์ ํํ ์ด๋ฏธ์ง๋ฅผ beta ํ๊ฒฝ์ ๋ฐฐํฌ
- deploy-real pipeline์ ์ ํํ๋ฉด ์ ํํ ์ด๋ฏธ์ง๋ฅผ real ํ๊ฒฝ์ ๋ฐฐํฌ
- main ๋ธ๋์น์ ์ฝ๋๊ฐ ๋จธ์ง๋๋ฉด ์๋์ผ๋ก deploy workflow ์คํ
- deploy workflow๋ ๊ทธ ์์ ์ ์ฝ๋๋ฅผ ๋น๋ํด์ alpha/beta/real ํ๊ฒฝ์ ๋ฐฐํฌ
- ๊ฐ ํ๊ฒฝ์ ๋ฐฐํฌํ๋ ๋์์ ์๋ approve ์๊ตฌ
Observablity
- ๋ชจ๋ํฐ๋ง ๋ฐ ์๋ฆผ
- ์์คํ ์ปดํฌ๋ํธ์ ๊ฐ ๋ถ๋ถ์์ ๋ฐ์ํ๋ ์ผ์ ์ธ๋ถ์์ ์ผ๋ง๋ ์ ๊ด์ธกํ ์ ์๋์ง
- ํ๋ณด ๋ฐฉ๋ฒ
- ๋ค์ํ ๋ฐฉ์์ ๋ชจ๋ํฐ๋ง
- ๋ก๊ทธ
- ํธ๋ ์ด์ค
- ๋งคํธ๋ฆญ
- ์ธํ๋ผ ์ํ
- ์ด์ ๋ฐ๊ฒฌ์ ์๋ ์๋ฆผ
- DevOps์ ๋ฏธ์น๋ ์ํฅ
- ๋ชจ๋ํฐ๋ง ์๋ํ
- ๋ฌธ์ ๋ฐ์์ ๋น ๋ฅธ ๋์ ๊ฐ๋ฅ
- ๋ค์ํ ๋ฐฉ์์ ๋ชจ๋ํฐ๋ง
- ์๋ฆผ Tip
- ์๋ฆผ ์ ์
- ์ค์ ์ดํ ์ง์์ ์ธ ๋ฃฐ ์์ ํ์
- ์๋ฆผ ๋ถ๋ฅ
- ์ธ์ง๋ ํ๋ ๋ฐ๋ก ์์ ํ๊ฑฐ๋ ๋์ํ์ง ์์๋ ๋๋ ์๋ฆผ
- ๋ฐ๋ก ๋์ํด์ผ ํ๋ ์๋ฆผ
- ํผ๋ก๋๊ฐ ์์ด์ง ์๋๋ก ํ๋ ๊ฒ์ด ์ค์
- ๊ฐ๋ฐ ํ๊ฒฝ์๋ ์๋ฆผ ๊ฑธ์ด ๋๊ธฐ
- ๊ฐ๋ฐํ๊ฒฝ์ ์๊ทธ๋์ ๋ฌด์ํ์ง ์๊ธฐ
- ์๋ฆผ ์ ์
์์ฝ
- DevOps ํ๋ก์ธ์ค ๊ตฌ์ถ
- ์ฝ๋ ๋ณํฉ ๋ฐ ํ๋ฆฌํฐ ์ ์ง (CI)
- ์๋ํ๋ ์ฝ๋ ๋ฐฐํฌ (CD)
- ๋ชจ๋ํฐ๋ง ๋ฐ ์๋ฆผ
- ๋ถ์กฑํ ๋ถ๋ถ์ ๊ทธ๋๊ทธ๋ ์๊ธฐ์๋ณ ํ DevOps ํ๋ก์ธ์ค์ ๋ น์ด์
- ๋ค์ํ ํ๋ซํผ์ ์ ๊ทน์ ์ผ๋ก ํ์ฉํด์ ๊ณต์๋ฅผ ์ค์ด์