๐ How I Ran 11 Microservices with OpenChoreo
WSO2๊ฐ OpenChoreo๋ก 11๊ฐ ๋ง์ดํฌ๋ก์๋น์ค(Google Cloud ๋ฐ๋ชจ)๋ฅผ ๋ก์ปฌ ๋จธ์ ์ ๋ฐฐํฌํ์ฌ ๊ฐ๋ฐ์ ์ํฌํ๋ก์ฐ ํ์คํ ๋ฐ production ์ ์ฌ ํ๋ซํผ ๊ฒฝํ ์ ๊ณต
AI ์์ฝ
Context
๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ ๊ฐ๋ฐ ์ Kubernetes ํด๋ฌ์คํฐ ๊ด๋ฆฌ, CI/CD ํ์ดํ๋ผ์ธ ๊ตฌ์ถ, ์๋น์ค ๊ด์ฐฐ์ฑ ํ๋ณด์ ํ์ํ ์ฌ๋ฌ CNCF ๋๊ตฌ๋ค์ ๊ฐ๋ณ์ ์ผ๋ก ํตํฉํ๊ณ ์ ์ง๋ณด์ํ๋ ๋ณต์ก์ฑ์ด ์กด์ฌํ๋ค.
Technical Solution
- OpenChoreo ํ๋ซํผ ๋์ : Kubernetes ๊ธฐ๋ฐ์ ๊ฐ๋ฐ ํ๋ซํผ์ผ๋ก ๊ณ ์์ค API๋ฅผ ํตํ ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ธ๋ง ์ ๊ณต
- Control Plane ๊ตฌ์ฑ: ์ค๊ณ ์์ ์ ์๋๋ฅผ ๋ฐํ์์ ๊ฐ์ ํ๋ GitOps ๊ธฐ๋ฐ ์ ์ด ํ๋ฉด ์ด์
- ๋ด์ฅ CI/CD ์ํฌํ๋ก์ฐ ์์ง: ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ ํ์ดํ๋ผ์ธ ๋ฐ ์๋ํ ๊ธฐ๋ฅ ์ ๊ณต
- Backstage ๊ธฐ๋ฐ ๊ฐ๋ฐ์ ํฌํธ: ํ๋ก์ ํธ ๋ฐ ์ปดํฌ๋ํธ ์นดํ๋ก๊ทธ, ๋ฐฐํฌ ํ์ดํ๋ผ์ธ ๋ทฐ, ํ๊ฒฝ ์งํ ์ํฉ ๊ฐ์ํ
- ๋ณด์ยท๋คํธ์ํนยท๊ด์ฐฐ์ฑ ํตํฉ: ์ค์ ์์ด 11๊ฐ ๋ง์ดํฌ๋ก์๋น์ค(frontend, cartservice, productcatalogservice, currencyservice, paymentservice, shippingservice, emailservice, checkoutservice, recommendationservice, adservice, loadgenerator)์ ๋ํ ๊ธฐ๋ณธ ๊ฑฐ๋ฒ๋์ค ์ ์ฉ
Impact
Key Takeaway
Internal Developer Platform ๊ตฌ์ถ ์ CNCF ์ํ๊ณ ํ๋ก์ ํธ๋ฅผ ์กฐํฉํ๊ธฐ๋ณด๋ค ํตํฉ๋ ๋ฐฐํฌ ํ๋ซํผ(OpenChoreo)์ ์ฑํํ๋ฉด ํ๋ซํผ ์์ง๋์ด์ ์ปค์คํ ๋๊ตฌ ๊ฐ๋ฐ ๋น์ฉ์ ์ ๊ฐํ๊ณ ๊ฐ๋ฐ์์๊ฒ ์ผ๊ด๋ ์ถ์ํ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ ์ ์๋ค.
์ค์ฒ ํฌ์ธํธ
11๊ฐ ์ด์์ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์์ ๊ด๋ฆฌํด์ผ ํ๋ ํ์์๋ OpenChoreo๋ฅผ Docker ์ปจํ ์ด๋๋ก ์คํ(docker run + 4GB RAM, 2 CPU ์ต์ ํ ๋น)ํ์ฌ http://openchoreo.localhost:8080 ํฌํธ์ ํตํด ๋ฐฐํฌ ํ์ดํ๋ผ์ธ ๋ฐ ์๋น์ค ๊ด์ฐฐ์ฑ์ ํ ๊ณณ์์ ๊ด๋ฆฌํ ์ ์์ผ๋ฏ๋ก, ๊ฐ ์๋น์ค๋ณ ๋ณ๋ CI/CD ๋๊ตฌ ์ค์ ์ค๋ฒํค๋๋ฅผ ์ ๊ฑฐํ ์ ์๋ค.