๐งถ Spring | Spring Boot/Spring Cloud & MSA
12 Factors + 3 Factors
- -
12 Factors
- Heroku ํ๋ซํผ์ ํตํด ๋ฐฉ๋ํ ์ฑ์ ๊ฐ๋ฐ, ์ด์, ํ์ฅ ๋ฑ์ ๊ด์ฐฐํ ๋ง์ ์ฌ๋๋ค์ด ๊ณ ์ํด๋ธ SaaS ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก
- ์๊ฐ์ด ์ง๋๋ฉด์ ์ฑ์ด ์ ๊ธฐ์ ์ผ๋ก ์ฑ์ฅํ๋ ๋ถ๋ถ, ์ฑ ์ฝ๋๋ฒ ์ด์ค์์ ์์ ํ๋ ๊ฐ๋ฐ์๋ค ๊ฐ์ ํ์ , ์๊ฐ์ด ์ง๋๋ฉด์ ๋ง๊ฐ์ง๋ ์ํํธ์จ์ด ์ ์ง๋น์ฉ์ ์ค์ด๋ ๋ฒ์ ์ง์ค
12 Factors์ ๋ชฉ์
์๋์ ๊ฐ์ ํน์ง์ ๊ฐ์ง SaaS ์ฑ์ ๋ง๋ค๊ธฐ ์ํจ
- ์ค์ ์๋ํ๋ฅผ ์ํ ์ ์ฐจ(declarative) ๋ฅผ ์ฒด๊ณํ ํ์ฌ ์๋ก์ด ๊ฐ๋ฐ์๊ฐ ํ๋ก์ ํธ์ ์ฐธ์ฌํ๋๋ฐ ๋๋ ์๊ฐ๊ณผ ๋น์ฉ์ ์ต์ํ
- OS์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ ๋ถ๋ถ์ ๋ช ํํํ๊ณ , ์คํ ํ๊ฒฝ ์ฌ์ด์ ์ด์์ฑ์ ๊ทน๋ํ
- ํด๋ผ์ฐ๋ ํ๋ซํผ ๋ฐฐํฌ์ ์ ํฉํ๊ณ , ์๋ฒ์ ์์คํ ์ ๊ด๋ฆฌ๊ฐ ํ์์์
- ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ์ด์ ํ๊ฒฝ์ ์ฐจ์ด๋ฅผ ์ต์ํํ๊ณ ๋ฏผ์ฒฉ์ฑ์ ๊ทน๋ํํ๊ธฐ ์ํด ์ง์์ ์ธ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅ
- ํด, ์ํคํ ์ฒ, ๊ฐ๋ฐ ๋ฐฉ์์ ํฌ๊ฒ ๋ฐ๊พธ์ง ์๊ณ ํ์ฅ(scale up) ๊ฐ๋ฅ
๊ตฌ์ฑ์์
1. ์ฝ๋๋ฒ ์ด์ค (Code Base)
- ์ ํ๋ฆฌ์ผ์ด์ ์ 1๊ฐ์ ์ฝ๋ ๋ฒ ์ด์ค(Git, SVN)๋ฅผ ํตํด ๊ด๋ฆฌ๋์ด์ผ ํ๋ฉฐ, ๋์ผํ ์ฝ๋๋ก ์ด์/๊ฐ๋ฐ์ ๋ฐฐํฌ๋์ด์ฌ ํจ
- ์ฝ๋๋ฒ ์ด์ค๊ฐ ์ฌ๋ฌ๊ฐ ์๋ ๊ฒฝ์ฐ, ์ฑ์ด ์๋๋ผ ๋ถ์ฐ ์์คํ ์ผ๋ก ๊ฐ์ฃผํ๊ณ ์ฝ๋๋ฒ ์ด์ค ๋ณ๋ก Twelve-Factor๋ฅผ ์ ์ฉ
- ์ฌ๋ฌ๊ฐ ์ฑ์ด ๋์ผํ ์ฝ๋๋ฅผ ๊ณต์ ํ๋ค๋ฉด Twelve-Factor๋ฅผ ์๋ฐํ๋ ๊ฒ์ด๋ฏ๋ก ๊ณต์ ํ๋ ์ฝ๋๋ฅผ ๋ผ์ด๋ธ๋ฌ๋ฆฌํ ์์ผ ๊ฐ ์ฑ์ ์ข ์์ฑ์ ์ฃผ์ ํ์ฌ ์ฌ์ฉ
- ๋ค์ํ ๋ฒ์ ์ ์ฑ ๋ฐฐํฌ๋ ํ๋์ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ํตํด ์ด๋ฃจ์ด์ ธ์ผ ํจ → Git Branch ์ด์ฉ
2. ์ข ์์ฑ ๊ฒฉ๋ฆฌ(Dependency Isolation)
- ์ ์ฒด ์์คํ ์ ํน์ ํจํค์ง๊ฐ ์๋ฌต์ ์ผ๋ก ์กด์ฌํ๋ ๊ฒ์ ์ ๋ ์์กดํ์ง ์๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ ์ข ์์ฑ์ ๋ช ์์ ์ผ๋ก ์ ์ธํ์ฌ ์ฌ์ฉํด์ผ ํจ
- ํ์๋ก ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ dependency manifest ํ์ผ์ (Gemfile, POM ๋ฑ) ๋ช ์์ ์ผ๋ก ์ ์ธํ์ฌ ์คํํ๊ฒฝ๊ณผ ๋ถ๋ฆฌ์์ผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ๋ค์ํ ํ๊ฒฝ์์๋ SaaS๊ฐ ์ ์์๋ํ๋ ๊ฒ์ ๋ณด์ฅํ ์ ์์
- Java ํ๋ก์ ํธ๋ค์ Maven์ด๋ Gradle์ ์ด์ฉํ์ฌ ์ข ์์ฑ์ ๋ช ์์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์
3. ์ค์ (Configurations)
- ์ค์ ์ด๋, ๋ฐฐํฌ์ ์ข
๋ฅ๋ง๋ค ๋ฌ๋ผ์ง ์ ์๋ ํ๊ฒฝ ๊ด๋ จ ํญ๋ชฉ์ ๋์์ผ๋ก ํจ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฐ๊ฒฐ ์ ๋ณด, Amazon S3 ๋ฑ์ ์ธ๋ถ ์๋น์ค ์ธ์ฆ ์ ๋ณด, ํธ์คํธ ์ด๋ฆ ๋ฑ
- ๋ชจ๋ ์ค์ ์ ๋ณด๋ ์ฝ๋๋ก๋ถํฐ ๋ถ๋ฆฌ๋ ๊ณต๊ฐ์ ์ ์ฅ๋์ด์ผ ํ๊ณ , ๋ฐํ์์์ ์ฝ๋์ ์ํด ์ฝํ์ผ ํจ
- ์ค์ ์ ์์๋ก ์ ์ฅํ๋ ๊ฒ์ Tweleve-Factor๋ฅผ ์๋ฐํ๋ ๊ฒ
- ์ค์ ์ ํ๊ฒฝ ๋ณ์์ ์ ์ฅํ๊ณ , ๊ฐ ๋ฐฐํฌ๋ง๋ค ๋
๋ฆฝ์ ์ผ๋ก ๊ด๋ฆฌํด์ผ ํจ
- ์ด๋ ๊ฒ ๊ด๋ฆฌํ๋ฉด ์ฝ๋ ๋ณ๊ฒฝ์์ด ๊ฐ ๋ฐฐํฌ์ ๋ํด์ ์ฝ๊ฒ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํด์ง
- Java์์๋ Spring Cloud Config๋ฅผ ํ์ฉ
4. ๋ฐฑ์๋ ์๋น์ค (Linkable Backing Services)
- ๋ฐฑ์๋ ์๋น์ค๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋์ ์ค ๋คํธ์ํฌ๋ฅผ ํตํด ์ด์ฉํ๋ ๋ชจ๋ ์๋น์ค๋ฅผ ์๋ฏธํ๋ฉฐ, ์๋ํํฐ ์๋น์ค๋ ํฌํจ
- ๋ก์ปฌ ์๋น์ค์ ์๋ํํฐ ์๋น์ค๋ฅผ ๋ชจ๋ ๊ตฌ๋ถ ์์ด ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ฐ๊ฒฐ๋ ๋๋ฑํ ๋ฆฌ์์ค๋ก ์ทจ๊ธํด์ผํจ
- ๋ฐฑ์๋ ์๋น์ค๋ฅผ ์์ ๋กญ๊ฒ ์ฐ๊ฒฐ ๋ฐ ๋ถ๋ฆฌ๊ฐ ๊ฐ๋ฅํด์ผํ๊ณ ์ฝ๋ ์์ ์์ด ์ ํ์ด ๊ฐ๋ฅํด์ผํจ
- Config์ ์ด๋ฌํ ๋ฐฑ์๋ ์๋น์ค์ ์ ๋ณด๋ฅผ ์ ์ฅํ์ฌ ๊ด๋ฆฌ
5. ๋น๋, ๋ฆด๋ฆฌ์ฆ, ์คํ (Build, Release, Run)
- ์ฝ๋ ๋ฒ ์ด์ค๋ build > release > run์ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ๋ฐฐํฌ๋ก ๋ณํ๋๋ฉฐ, ๊ฐ ๋จ๊ณ๋ ์๊ฒฉํ๊ฒ ๋ถ๋ฆฌ
- ๋น๋ ๋จ๊ณ
- ์ ์ฅ์์ ์ฝ๋๋ก๋ถํฐ ์ข ์์ฑ์ ๊ฒฐํฉํ์ฌ ์คํ ๊ฐ๋ฅํ ๋ฒ๋ค๋ก ๋ณํ
- ์ค์ง ๋น๋ ๋จ๊ณ์์๋ง ๋ณ๊ฒฝ์ด ๊ฐ๋ฅ
- ์๋ก์ด ์ฝ๋๊ฐ ๋ฐฐํฌ๋ ๋๋ง๋ค ๊ฐ๋ฐ์์ ์ํด ์์๋๋ค
- ๋ฆด๋ฆฌ์ฆ ๋จ๊ณ
- ๋น๋ ๋จ๊ณ์์ ๋ง๋ค์ด์ง ๋น๋์ ๋ฐฐํฌ์ ํ๊ฒฝ ์ค์ ์ ๊ฒฐํฉ, ์์ฑ๋ ๋ฆด๋ฆฌ์ฆ๋ ๋น๋์ ์ค์ ์ ๋ชจ๋ ํฌํจํ๋ฉฐ ์คํ ํ๊ฒฝ์์ ๋ฐ๋ก ์คํ๋ ์ ์๋๋ก ์ค๋น๋์ด์ผ ํจ
- ๋ชจ๋ ๋ฆด๋ฆฌ์ฆ๋ ๊ฐ๊ฐ ์ ๋ํฌํ ์์ด๋๋ฅผ ๊ฐ์ ธ์ผํ๋ฉฐ, ๋ฆด๋ฆฌ์ฆ๋ ์ถ๊ฐ๋ง ๊ฐ๋ฅํ๊ณ ๋ณ๊ฒฝ๋ ์ ์์
- ์ด์ ๋ฆด๋ฆฌ์ฆ๋ก ๋กค๋ฐฑ์ด ๊ฐ๋ฅ
- ์คํ ๋จ๊ณ(๋ฐํ์)
- ์ ํ๋ ๋ฆด๋ฆฌ์ฆ์ ๋ํ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก์ธ์ค์ ์งํฉ์ ์์ํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํ ํ๊ฒฝ์์ ๋์๊ฐ๋๋ก ํจ
- ๋น๋ ๋จ๊ณ
6. ๋ฌด์ํ ํ๋ก์ธ์ค (Stateless Process)
- ์ ํ๋ฆฌ์ผ์ด์
์ ํ๋ ํน์ ์ฌ๋ฌ๊ฐ์ ๋ฌด์ํ(stateless) ํ๋ก์ธ์ค๋ก ์คํํด์ผ ํ๋ฉฐ ์๋ฌด๊ฒ๋ ๊ณต์ ํ์ง ์์์ผ ํจ
- SaaS๋ Scale out์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ๊ฐ์ ์ธ์คํด์ค๋ก ๋ฐฐํฌ๋ ์ ์๋๋ฐ ์ด ์ธ์คํด์ค ๊ฐ์ ์ํ๋ฅผ ๊ณต์ ํด์๋ ์๋จ
- ํ๋์ ๋ง์ดํฌ๋ก์๋น์ค๋ ๋ค๋ฅธ ๋ง์ดํฌ๋ก์๋น์ค์ ๋ ๋ฆฝ๋์ด์ ์คํ๋์ด์ผ ํจ
- ์ ์ง๋ ํ์๊ฐ ์๋ ๋ฐ์ดํฐ๋ค์ ์ธ์คํด์ค์ ๋ฉ๋ชจ๋ฆฌ๋ ํ์ผ์ ์ ์ฅํ๋ ๊ฒ์ด ์๋ ์บ์๋ DB ๊ฐ์ ์์ ๋ ๋ฐฑ์๋ ์๋น์ค์ ์ ์ฅ๋์ด์ผ ํจ
- ๋ฉ๋ชจ๋ฆฌ/ํ์ผ์ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋จ์ผ ํธ๋์ญ์ ๋ด์์ ์ฝ๊ณ , ์ฐ๊ณ ๋ฑ์ ๋ชจ๋ ์์ ์ ์ฒ๋ฆฌ
7. Port Binding
- ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐํ์ ์ธ์ ์ ์ด ์๋ HTTP ์๋น์ค๋ก ์ ๊ทผํ ์ ์๋๋ก ํฌํธ ๋ฐ์ธ๋ฉ์ ํตํด ์๋น์ค๋ฅผ ๊ณต๊ฐ
- ํฌํธ ๋ฐ์ธ๋ฉ์ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ํ๋์ ์ฑ์ด ๋ค๋ฅธ ์ฑ์ ์ํ ๋ฐฑ์๋ ์๋น์ค๊ฐ ๋ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธ
8. ๋์์ฑ (Concurrency)
- ์ ํ๋ฆฌ์ผ์ด์ ์ Scale-out์ด ๊ฐ๋ฅํด์ผํ๋ฉฐ, ๋ฌด์ํ ํ๋ก์ธ์ค์ ์ํด ๋์์ฑ์ ๋์ผ ์ ์์
- ๋ชจ๋ ์ผ์ ์ฒ๋ฆฌํ๋ ํ๋์ ํ๋ก์ธ์ค ๋์ ๊ธฐ๋ฅ๋ณ๋ก ๋ถ๋ฆฌ๋ ํ๋ก์ธ์ค ์คํ(micro service)
- ํ๋ก์ธ์ค๊ฐ ๋ฐ๋ชฌํํ๊ฐ ์๋์ด์ผ ํจ
- OS ํ๋ก์ธ์ค ๊ด๋ฆฌ์/๋ถ์ฐ ํ๋ก์ธ์ค ๋งค๋์ /Foreman ๊ฐ์ ํด์ ์์กดํด์ output stream์ ๊ด๋ฆฌํ๊ณ , ์ถฉ๋์ด ๋ฐ์ํ ํ๋ก์ธ์ค์ ๋์, ์ฌ์์๊ณผ ์ข ๋ฃ๋ฅผ ์ฒ๋ฆฌํด์ผ ํจ
9. ํ๊ธฐ ๊ฐ๋ฅ (Disposability)
- ํ๋ก์ธ์ค๋ shut down ์ ํธ๋ฅผ ๋ฐ์์ ๋ graceful shut down ํด์ผํจ
- ํ๋ก์ธ์ค๋ ๊ฐ๋จํ๊ฒ ํ๊ธฐ๊ฐ ๊ฐ๋ฅํ๋ฉฐ ๋ฐ๋ก ์์ํ๊ฑฐ๋ ์ข ๋ฃ๋ ์ ์์ด์ผ ํจ
- ์ข
๋ฃ ์ ํธ๋ฅผ ๋ฐ์ ์ ํ๋ฆฌ์ผ์ด์
์ ์๋ก์ด ์์ฒญ์ ๋ฐ์ง์๊ณ ๊ธฐ์กด ์์ฒญ์ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ดํ ์ข
๋ฃ๋์ด์ผ ํจ (์ ์์ ์ข
๋ฃ)
- Message Queue์ Worker์ ๊ฒฝ์ฐ, ํ์ฌ ์ฒ๋ฆฌ์ค์ธ ์์ ์ ํ๋ฅผ ๋๋๋ฆฐ๋ค๋์ง, Lock-based ์์คํ ์ ๊ฒฝ์ฐ, Lock์ ํ๊ณ ์ข ๋ฃ๋๋ค๋์ง, ํธ๋์ญ์ ์ ํตํด ์ ์ฒด ์์ ์ด ์ ๋ถ ์ทจ์๋๋ค๋์ง
- SaaS๋ ์์ฒญ์ ์ํด Scale up/down์ด ๋น๋ฒํ ๋ฐ์ํ๋๋ฐ Disposability๋ฅผ ์ค์ํจ์ผ๋ก์จ ์ฌ์ฉ์ ์์ ์ฑ์ ์ป์ ์ ์์
- ์๊ธฐ์น ๋ชปํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ข ๋ฃ ์์๋ ๊ฒฌ๊ณ ํด์ผํ๋ฉฐ, Java์์๋ Spring Cloud Circuit Breaker๋ฅผ ํตํด ์ฅ์ ๋ฅผ ๋๋นํ ์ ์์
- Docker์ Container๋ฅผ ์ด์ฉํด ์ฝ๊ฒ ์๋น์ค๋ฅผ ๋ฑ๋กํ๊ณ ์ญ์ ํ ์ ์์
10. ๊ฐ๋ฐ / ํ๋ก๋์ ํ๊ฒฝ ์ผ์น (Dev/Prod parity)
- development, staging, production ํ๊ฒฝ์ ์ต๋ํ ๋น์ทํ๊ฒ ์ ์งํด์ผ ํจ
- ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ production ํ๊ฒฝ์ ์ฐจ์ด๋ฅผ ์๊ฒ ์ ์งํ์ฌ ์ง์์ ์ธ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ๋๋ก ๋์์ธ
- ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ์คํ ์ด์ง ํ๊ฒฝ์์๋ ๋์ํ๊ณ ํ ์คํธ์ ํต๊ณผ๋ ์ฝ๋๊ฐ production ํ๊ฒฝ์์ ์ค๋ฅ๋ฅผ ์ผ์ผํฌ ์ ์๊ธฐ ๋๋ฌธ
- ์ค์๋ฐฉ๋ฒ
- ์๊ฐ์ ์ฐจ์ด๋ฅผ ์ต์ํ: ๊ฐ๋ฐ์๊ฐ ์์ฑํ ์ฝ๋๋ ๋ช ์๊ฐ ๋๋ ๋ช ๋ถ ํ์ ๋ฐฐํฌ๋์ด์ผ ํจ
- ๋ด๋น์์ ์ฐจ์ด๋ฅผ ์ต์ํ: ์ฝ๋๋ฅผ ์์ฑํ ๊ฐ๋ฐ์๋ค์ด ๋ฐฐํฌ์ production์์์ ๋ชจ๋ํฐ๋ง์ ๊น๊ฒ ๊ด์ฌํจ
- ํด์ ์ฐจ์ด๋ฅผ ์ต์ํ: ๊ฐ๋ฐ๊ณผ production ํ๊ฒฝ์ ์ต๋ํ ๋น์ทํ๊ฒ ์ ์ง
- ๊ฐ๋ฐ ์์๋ H2, ๋ฐฐํฌ ์์๋ MySQL ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์๋ ๋์ผํ๊ฒ MySQL์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅ → Docker๋ฅผ ์ด์ฉํด ์์ฝ๊ฒ ํด๊ฒฐ ๊ฐ๋ฅ
11. ๋ก๊ทธ (Logs)
- ๋ก๊ทธ๋ฅผ ์ด๋ฒคํธ ์คํธ๋ฆผ์ผ๋ก ์ทจ๊ธ
- ์ ํ๋ฆฌ์ผ์ด์
์์ ๋ก๊ทธ ํ์ผ์ ์์ฑํ๊ฑฐ๋, ๊ด๋ฆฌํ๋ ค๊ณ ํด์๋ ์๋๋ค.
- SaaS๋ ์ธ์ ๋ ์ง ์ธ์คํด์ค๊ฐ ์์ฑ/์ญ์ ๋ ์ ์๋ ๊ฐ๋ฅ์ฑ์ด ์๊ธฐ์ ๋ก์ปฌ์ ์ ์ฅ๋ ๋ก๊ทธ๋ ์ด๊ธฐํ๋์ด ์ฌ๋ผ์ง
- ๋ก๊ทธ๋ ์คํธ๋ฆผ์ผ๋ก ์ทจ๊ธํ์ฌ ๋ณ๋์ ์ ์ฅ์ ๋ฐ ๋๊ตฌ๋ฅผ ์ด์ฉํ์ฌ ๋ณด๊ด
12. ๊ด๋ฆฌ์ ํ๋ก์ธ์ค (Admin Process)
- ์ด๋๋ฏผ ๋๋ ์ ์ง๋ณด์ ์์
์ ์ผํ์ฑ ํ๋ก์ธ์ค๋ก ์คํํด์ผํจ
- DB ๋ง์ด๊ทธ๋ ์ด์ , ์ผํ์ฑ ์คํฌ๋ฆฝํธ ์คํ ๋ฑ
- ๊ด๋ฆฌ/์ ์ง๋ณด์ ์์ ์ release์ ํจ๊ป ์คํ
- release์ ๋์ผํ ํ๊ฒฝ์์ ์คํํ๊ณ , ๊ฐ์ ์ฝ๋ ๋ฒ ์ด์ค์ config๋ฅผ ์ฌ์ฉ
- admin ์ฝ๋๋ ๋๊ธฐํ ๋ฌธ์ ๋ฅผ ํผํ๊ธฐ ์ํด ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋์ ํจ๊ป ๋ฐฐํฌ
3 Factors
- Pivotal์์ ๊ธฐ์กด 12 Factors ์ ์ธ๊ฐ์ง ์์๋ฅผ ์ถ๊ฐ
1. API first
- ์ฌ์ฉ์๊ฐ ์์ฒญ ๋ฐ ์๋ต์ด ๋ฌด์์ ๊ธฐ๋ํ๋์ง ์ดํดํ ์ ์๋๋ก API๋ฅผ ๋จผ์ ์ ์ํ๋ ๊ฒ์ ์๋ฏธ
- ์ดํด ๊ด๊ณ์์์ ํ์ ์ ํตํด ์ด๋ฃจ์ด์ง
- ํ์ ํ๋ ๊ฐ๋ฐ ํ๋ก์ธ์ค์์ API๋ฅผ ์ฒซ ๋ฒ์งธ ์ฐ์ ์์๋ก ๊ฐ์ ธ๊ฐ๋ ๊ฒ
- ์ด์
- ํ๋ซํผ ๊ฐ ํธํ ๊ฐ๋ฅ
- ๋ณ๋ ฌ ๊ฐ๋ฐ ๊ฐ๋ฅ
- ์ฌ์ฌ์ฉ์ฑ ์ฆ๊ฐ
2. Telemetry
- ์ธ์คํด์ค๋ค์ ์๊ฒฉ์ผ๋ก ๋ชจ๋ํฐ๋ง์ด ๋์ด์ผ ํจ
- ๋ชจ๋ ์งํ๋ ์์นํ, ์๊ฐํ๊ฐ ๋์ด ๊ด๋ฆฌ
- ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง(APM) — ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ์ ๋ชจ๋ํฐ๋งํ๋ ์ด๋ฒคํธ ์คํธ๋ฆผ
- ๋๋ฉ์ธ๋ณ ์๊ฒฉ ์ธก์ - ๋ถ์ ๋ฐ ๋ณด๊ณ ๋ฅผ ์ํ ์ด๋ฒคํธ ๋ฐ ๋ฐ์ดํฐ ์คํธ๋ฆผ
- ์ํ ๋ฐ ์์คํ ๋ก๊ทธ - ์ ํ๋ฆฌ์ผ์ด์ ์์, ์ข ๋ฃ, ํ์ฅ, ์น ์์ฒญ ์ถ์ ๋ฐ ์ฃผ๊ธฐ์ ์ธ ์ํ ํ์ธ ๊ฒฐ๊ณผ์ ๊ฐ์ ์ด๋ฒคํธ ์คํธ๋ฆผ
3. Authentication & Authorization
- ์ธ์ฆ ๋ฐ ์ธ๊ฐ๋ฅผ ํตํด ๋ณด์์ ๊ฐํํด์ผ ํจ
- JWT ๋ฑ์ ์ฌ์ฉ
์ฐธ๊ณ ์๋ฃ
https://medium.com/dtevangelist/12-factors-๋-b39c7ef1ed30
https://logical-code.tistory.com/174
https://developer.ibm.com/articles/15-factor-applications/
https://happy-coding-day.tistory.com/entry/1-API-First-Design-์ค๊ณ์-์ ์ํ
'๐งถ Spring | Spring Boot > Spring Cloud & MSA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
MSA Structures (0) | 2022.10.27 |
---|---|
SOA vs MSA (0) | 2022.10.27 |
Cloud Native Application (0) | 2022.10.26 |
Cloud Native Architecture (0) | 2022.10.26 |
On-Premise์ Cloud (0) | 2022.10.26 |
Contents
๋น์ ์ด ์ข์ํ ๋งํ ์ฝํ ์ธ
์์คํ ๊ณต๊ฐ ๊ฐ์ฌํฉ๋๋ค