Abstract.
ํด๋ผ์ฐ๋ ์ธ์์์ ์ธ๋ชจ์๋ ์ธ์ฌ๊ฐ ๋๊ธฐ ์ํด ๋ ธ๋ ฅํ๋ 4๋ ์ฐจ ํด๋ผ์ฐ๋ ๊ฐ๋ฐ์์ ๋๋ค. Kubernetes ๊ธฐ๋ฐ ํด๋ผ์ฐ๋ ํ๋ซํผ ๊ตฌ์ถ, ์ด์ ๋ฐ ๊ฐ๋ฐ์ ๋ด๋นํ๊ณ ์์ผ๋ฉฐ, API Gateway ๊ฐ๋ฐ, ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ Oauth2 ์ธ์ฆ ๊ฐ๋ฐ, hypercloud ์น์๋ฒ ๋ฐฑ์๋ ๊ฐ๋ฐ ๋ฐ CI&CD ํ์ดํ๋ผ์ธ ๊ตฌ์ถ์ ์ฃผ๋ ์ญํ ์ ๋งก๊ณ ์์ต๋๋ค.
-
Golang๊ธฐ๋ฐ hypercloud backend ์น์๋ฒ ๊ฐ๋ฐ๊ณผ kubernetes-operator ๊ฐ๋ฐ ๊ฒฝํ์ ๋ณด์ ํ๊ณ ์์ผ๋ฉฐ, kubespray(ansible-playbook)์ผ๋ก HA kubernetes cluster๋ฅผ ๊ตฌ์ถํ ์ ์์ต๋๋ค. Kubernetes๋ฅผ ๋ช ํํ ์ดํดํ๊ณ ์์ผ๋ฉฐ, ํด๋ฌ์คํฐ ๊ตฌ์ถ, trouble shooting ๋ฅ๋ ฅ์ ๋ณด์ ํ๊ณ ์์ต๋๋ค. CNCF ์คํ์์ค ํ๋ก์ ํธ(ArgoCD Helm, Cert-manager)์ keycloak, oauth2-proxy, dex ๋ฑ์ ์คํ์์ค ํ๋ก์ ํธ๋ฅผ ์ฌ์ฉํด ๋ฌธ์ ํด๊ฒฐํ ์ ์์ผ๋ฉฐ, ์์ค์ฝ๋๋ฅผ ์์ ํ์ฌ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
-
kubernetes ์ธ์ฆ๊ณผ ์ธ๊ฐ๋ฅผ ์ ํํ ์ดํดํ๊ณ ์์ผ๋ฉฐ, ์ธ๋ถ ์ธ์ฆ์๋ฒ(keycloak, google ๋ฑ)๋ฅผ ํตํ ์ธ์ฆ ํ๊ฒฝ์ ๊ตฌ์ถํ ์ ์๋ ๋ฅ๋ ฅ์ ๋ณด์ ํ๊ณ ์์ต๋๋ค. ํ์ฌ kubernetes ํด๋ฌ์คํฐ์ ๋ณด์ ๊ฐํ๋ฅผ ์ํด OPA๋ฅผ ์ฐ๊ตฌ ์ค์ ์์ต๋๋ค.
-
API Gateway ๊ฐ๋ฐ ๊ฒฝํ์ ํ ๋๋ก API ์์ฒญ๊ณผ ๋ณด์, tracing์ ๋ํ ๊ฐ๋ ์ ์ ์ดํดํ๊ณ ์์ผ๋ฉฐ, ํ์ฌ backend ์๋ฒ ๊ฐ service mesh (isio, linkderd)๋ฅผ ์ฐ๊ตฌํ์ฌ ์ ํ์ ๋์ ํ๊ณ ์์ต๋๋ค.
์ ๊ฐ์ ์ง๋ฌด ์ญ๋๊ณผ ๊ฒฝํ์ ํ ๋๋ก ํ์ด๋ธ๋ฆฌ๋ ํด๋ผ์ฐ๋ ํ๊ฒฝ์ kubernetes๋ฅผ ์ ์ฉํ๊ณ ๋ฐฐํฌ๋ถํฐ ์ด์๊น์ง ์๋ํํ ์ ์์ผ๋ฉฐ, ์ฌ๋ฌ ํด๋ฌ์คํฐ ๋ณด์์ ๊ตฌ์ถํ๊ณ ๊ด๋ฆฌํ ์ ์๋ ๊ธฐ๋ฐ์ ๋ง๋ จํ ์ ์์ต๋๋ค. ๋ ํ ๋ํ์ ๊ณต๋ถํ ์ ํ๋์, ํ๋ฅ , ๋จธ์ ๋ฌ๋ ๊ฐ์ ๋ฑ์ ์ง์๊ณผ ์ค๋ฌด์์ ์์ ์ฟ ๋ฒ๋คํฐ์ค ํ์ฉ์ ์ตํฉํ์ฌ MLOps ๊ฐ๋ฐ์์๋ ๋ง์ ๊ธฐ์ฌ๋ฅผ ํ ์ ์์ต๋๋ค.
Introduction.
์ ์์ ์ ํ ๋จ์ด๋ก โ์?โ ์
๋๋ค.
์๋ฏธ์ ์ง์ค์ ์ถ๊ตฌํ๊ธฐ์ ํ๊ตฌ์ฑํฅ์ด ๊ฐํ๋ฉฐ, ์ดํด๊ฐ ๋๋๊ธฐ ์ ์ ํ๋์ ์ ์คํ ํธ์
๋๋ค. ์ด๋ฅผ ํตํด ์ ์ ํน์ง์ ์๊ฐ ํฉ๋๋ค.
- ์ ํ๊ณผ ์ง์ค์ ํตํด ๋ฌธ์ ๋ฅผ ์ดํดํ๊ณ ํด๊ฒฐํ๊ธฐ์ํด ๋ ธ๋ ฅํฉ๋๋ค. ํต์ฌ์ ํ ๋๋ก ํจ์จ์ ์ธ ์ผ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
- ์๋ฏธ์ ์ง์ค์ด ์ค์ํ๊ธฐ์ ๋งก์ ์ผ์ ๋ณด๋ค ์ ์คํ๊ฒ ํ๋จํ๋ ค ๋ ธ๋ ฅํฉ๋๋ค.
- “์๋ ๊ฒ์ ์๋คํ๊ณ , ๋ชจ๋ฅด๋ ๊ฒ์ ๋ชจ๋ฅธ๋ค” ํฉ๋๋ค. ๋ชจ๋ฅด๋ ๊ฒ์ ์๊ธฐ์ํด ํ์ธ์๊ฒ ๊ณ ๊ฐ๋ฅผ ์์ด๋ ์ผ์ ๋ถ๋๋ฌ์ํ์ง ์์ต๋๋ค.
- ๋ฌด์์ ํด์ผํ๋์ง ์๊ธฐ๋๋ฌธ์ ์ฃผ๋์ ์ผ๋ก ์ผ์ ๋งก์ ํด๊ฒฐํฉ๋๋ค.
- ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ฐ ์์ด ์ค์ํ ๊ฒ์ด ํ๋ ฅ์์ ์ ์ดํดํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์๋๋ฐฉ์๊ฒ ํญ์ ์์๋ฅผ ๊ฐ์ถ๊ณ ๊ฒธ์ํฉ๋๋ค.
์์ ๊ฐ์ ํน์ง์ ํตํด ์ ๊ฐ ํ ํ์ฌ์ ์ ๋ฌด ์ํํ๋ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ฌด์์ด ์ค์ํ์ง ์ค์ค๋ก ํ๊ตฌํ๊ธฐ์ ํ์ฌ์์ ์ฃผ์ด์ง ์ ๋ฌด์ ๋ณ๊ฐ๋ก Kubernetes๋ฅผ ์ค์ฌ์ผ๋ก ๊ตฌ์ฑ๋ CNCF ๋จ์ฒด์ ์ ํ์ ๊ณต๋ถํ์ผ๋ฉฐ, Cloud ํ๊ฒฝ์ devops์ ํ์์ฑ์ ์๊ฐํ๊ณ ์ ํ์ helm, argocd๋ฑ์ ์ ๊ทน ๋์ ํ์ผ๋ฉฐ ํ์ฌ์์ ์ ๋ฌด๋ฅผ ๋ด๋ ค์ฃผ๊ธฐ๋ณด๋ค ์ค์ค๋ก ์ ๋ฌด๋ฅผ ๋ง๋ค์ด ์ผ์ ์งํํ์์ต๋๋ค. ํ์ฌ ๋์ฑ ๋ cncf ์ ํ ์ค์ฌ์ผ๋ก devops ํ๊ฒฝ์ ๋ํ ๊ณต๋ถ๋ฅผ ์ง์์ ์ผ๋ก ํ๋ฉฐ ์ฑ์ฅ์ ํ์ฐ๊ณ ์์ต๋๋ค. ๋ถ์กฑํจ์ ์๊ณ ๋์์์ด ์ฑ์ฅํ๋ ค ๋ ธ๋ ฅํฉ๋๋ค. ์ค์ค๋ก ์ฐพ์ ๊ณต๋ถํ๋ฉฐ, ๊ณต๋ถํ ๋ด์ฉ์ ์ค๋ฌด์ ์ ์ฉํ์ฌ ํ์ฉํด ๋ณด๋ ๊ฒ์ ์ข์ํฉ๋๋ค. ํ์ฌ DevOps ๊ด๋ จํด ์ฑ ์ ์ฐพ์ ์ฝ๊ณ , ๊ฐ์๋ฅผ ๋ค์ผ๋ฉฐ ๋ ์๊ณ ์ดํดํ๋ ค๊ณ ๋ ธ๋ ฅํฉ๋๋ค. ๊ทํ์ ํ์ฌ์ ์ ์ฌํ์ฌ ์๋ก ๋ฐ์ ์ ๋๋ชจํ๊ณ ๊ฐ๋ฐํ์ฌ ๋ ๋์ ๊ฐ์น๋ฅผ ์คํ์ํค๊ณ ์ ํฉ๋๋ค.
Work Experience.
ํฐ๋งฅ์ค ํด๋ผ์ฐ๋ (๏ธ2019.02 ~ ํ์ฌ)
API Gateway ๊ฐ๋ฐ (Ingress-Contoller)
- ๐ Description.
-
ํ๋ด์์ ์ด๊ธฐ๋ถํฐ ์ด์๊น์ง ๋ณธ์ธ ์ค์ค๋ก ๊ตฌ์ถํ๊ณ ๋ง๋ ์ ํ์ ๋๋ค. ์ด๊ธฐ API-Gateway ๊ฐ๋ ์ ๋์ ํ๊ณ ํด๋น opensource ์ ํ ๋ถ์๊ณผ troubleshooting์ํ ์์ค์ฝ๋ ๋ถ์, ingress-controller ์ค ํ๋์ธ traefik์ ํตํ hypercloud ์ ํ์ ์ํ api-gateway ๊ตฌ์ถ, ์ถ๊ฐ๋ก ํ์ํ ๊ธฐ๋ฅ๋ฑ์ golang์ผ๋ก ์ถ๊ฐ ๊ฐ๋ฐํ์์ผ๋ฉฐ, keycloak ์ฐ๋์ ํตํ ์ธ์ฆ,์ธ๊ฐ ๋ก์ง๋ ๊ตฌ์ถํ์์ต๋๋ค. ๋ ๋์๊ฐ secureํต์ ์ ์ํ tls ์ธ์ฆ์ํตํฉ๊ณผ ์ฌ๋ด์ ๊ณต์ธ ๋๋ฉ์ธ ํ๊ฒฝ์ ์ํด AWS route53์ ํตํ domain ๊ตฌ์ถ๋ ์งํํ์ต๋๋ค. ํด๋น ์ ํ์ CI&CD๋ฅผ ์ํด helm chart๋ฅผ ๋ง๋ค์์ผ๋ฉฐ, gitops ํจํด์ ์ ์ฉํ์์ต๋๋ค. ํด๋น ํ๋ก์ ํธ๋ฅผ ํตํด devops์ ๊ฑฐ์ ๋ชจ๋ ๊ฒฝํ์ ํ์ต๋๋ค.
๐๏ธ What did I do.
- traefik(Ingress-controller)๋ฅผ ์ฌ์ฉํ api-gateway ๊ตฌ์ถ
- ์ธ์ฆ, ์ธ๊ฐ ๊ด๋ จ ๋ก์ง ๊ตฌ์ถ
- helm chart ๊ฐ๋ฐ
- tls ์ธ์ฆ์ ์์ฑ ๋ฐ ํตํฉ ๊ด๋ฆฌ
- hypercloud ์ ํ๋ค์ reverse-proxy ๊ตฌ์ถ
- AWS router53์ ํตํ ์์ฌ ๋๋ฉ์ธ ํ๊ฒฝ ๊ตฌ์ถ
๐ฅ๏ธ Tech Stack.
- Traefik, Cert-manager
- Golang, knowledge of L7 networking
OAUTH2 ์ธ์ฆ ํ์ดํ๋ผ์ธ ๊ฐ๋ฐ ๋ฐ ๊ตฌ์ถ (Kubernetes Authentication)
- ๐ Description.
-
hypercloud ์ ํ์ ์ฌ์ฉ์ ์ธ์ฆ ์ฒด๊ณ๋ฅผ oidc(oauth2) ๊ธฐ๋ฐ์ ์คํ ์์ค๋ค์ ํ์ฉํ์ฌ ๊ตฌ์ถํ์์ต๋๋ค. ๊ธฐ์กด ๊ฐ๋ฐ๋ id provider(keycloak) ์์ oauth client ์คํ ์์ค ์ค ํ๋์ธ oauth2-proxy์ ํ์ํ REST API ๊ธฐ๋ฅ์ ๊ตฌํํ์์ต๋๋ค. front ๊ฐ๋ฐ์์ ํ๋ ฅ์ผ๋ก ๋ก๊ทธ์ธ๋ถํฐ ๋ก๊ทธ์์๊น์ง ๊ธฐ๋ฅ ํ ์คํธ๋ฅผ ๊ฑฐ์น๊ณ , ์ธ์ฆ ํ์ดํ๋ผ์ธ์ ์ฟ ๋ฒ๋คํฐ์ค ์์ ๊ตฌ์ถํ์์ต๋๋ค. ๋ํ ์์ฌ์ด ๋ฐฐํฌ์ ๊ด๋ฆฌ๋ฅผ ์ํด helm chart๋ฅผ ๊ตฌ์ฑํ์์ต๋๋ค.
๐๏ธ What did I do.
- oauth2(oidc), jwt, cookie ๊ฐ๋ ์ ๋ฆฌ ๋ฐ ์ฌ๋ด๊ณต์
- oauth2proxy๋ฅผ ํตํ ์ธ์ฆ ์ฐ๋
- helm chart ๊ฐ๋ฐ
๐ฅ๏ธ Tech Stack.
- oauth2์ ๊ฐ๋ ์ดํด, jwt ์ดํด
- Golang, helmchart, kubernetes
Hypercloud ์ธ์คํจ๋ฌ ๊ฐ๋ฐ (Kubespray-Ansible, argoCD)
- ๐ Description.
-
ansible ๊ธฐ๋ฐ์ HA ์ฟ ๋ฒ๋คํฐ์ค ์๊ฒฉ์ค์น ์ํ kubespray๋ฅผ ์ฌ์ฉํ์ฌ hypercloud ์ธ์คํจ๋ฌ ๊ฐ๋ฐ์ ์ง์ํ์ผ๋ฉฐ ๊ตฌ์ถ๋ ํด๋ฌ์คํฐ์์ argoCD๋ฅผ ํตํ ์ฑ ๋ฐฐํฌ๋ฅผ ๋ด๋นํ์์ต๋๋ค.
๐๏ธ What did I do.
- kubespray๋ฅผ ํตํ ์ธ์คํจ๋ฌ ๊ฐ๋ฐ
- argoCD๋ฅผ ํตํ ์ฑ ๋ฐฐํฌ ์ง์
- ์ฌ๋ฌ ์ฑ๋ค์ ์ค์น๋ฅผ ์ํ app of apps ํจํด ์ง์ (helm chart)
๐ฅ๏ธ Tech Stack.
- ansible-playbook, kubespray
- argoCD
- helm chart
HyperCloud (Web Cloud Console)
- ๐ Description.
-
Kubernets ๊ธฐ๋ฐ์ ํด๋ผ์ฐ๋ ๋ฆฌ์์ค ๊ด๋ฆฌ๊ฐ ์ต์ํ์ง ์์ ์ฌ์ฉ์์๊ฒ ์ข ๋ ์ฝ๊ณ ํธ๋ฆฌํ๊ฒ ๊ด๋ฆฌํ ์ ์๋ ์๋น์ค๋ฅผ ์ ๊ณตํด์ฃผ๋ ์น ์๋น์ค ์ ํ์ ๋๋ค. ํด๋น ์ ํ์ ์์ ์ ์ด์์ ์ํด golang์ผ๋ก ๊ตฌ์ฑ๋ backend ์๋ฒ ๊ฐ๋ฐ๊ณผ ์์ ์ ๋ฐฐํฌ๋ฅผ ์ํ CI/CD ํ์ดํ ๋ผ์ธ ๊ตฌ์ถ ๋ฐ ์ด์์ ๋ด๋นํ๊ณ ์์ต๋๋ค. Jenkins๋ฅผ ํตํ ์ด๋ฏธ์ง ๋น๋, argoCD๋ฅผ ํตํด ์ด์ ํ๊ฒฝ์ ๋ง๋ ๋ฐฐํฌ ํ๊ฒฝ์ ๊ตฌ์ถํ์์ต๋๋ค. ๋ํ console์ kubernetes ๋ฆฌ์์ค๋ก ๊ด๋ฆฌํ ์ ์๋ console-operator๋ ๊ฐ๋ฐํ์์ต๋๋ค.
๐๏ธ What did I do.
- Backend ์๋ฒ ๊ฐ๋ฐ ๋ฐ ๊ด๋ฆฌ
- kubernetes ์์์์ CI&CD ํ์ดํ๋ผ์ธ ๊ตฌ์ถ
- ์ค์น๋ฅผ ์ํ installer ๊ฐ๋ฐ
๐ฅ๏ธ Tech Stack.
- Golang. web programming
- Jenkins, ArgoCD
- Docker, kubernetes
Prozone (Event Management)
- ๐ Description.
-
ํด๋ผ์ฐ๋ ์ ํ์ผ๋ก ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ํ๊ธฐ ์ ์ ์ฌ๋ด ํด๋ผ์ฐ๋ ์ ํ์ ๋ง๋ค๊ณ ์์์ต๋๋ค. ํด๋น ์ ํ ์ค ์ค์์์ ์ ํ์ Event์ ๊ด๋ฆฌํ๊ณ ์ ์ฅํ๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์ ์ง๋ณด์ ๋ฐ ๊ธฐ๋ฅ๊ฐ๋ฐ์ ๋ด๋นํ์ต๋๋ค.
๐๏ธ What did I do.
- ์ถ๊ฐ ๊ธฐ๋ฅ ์๊ฑด์ ๋ํ ๊ฐ๋ฐ๊ณผ ์ ํ ์ ์ง๋ณด์
๐ฅ๏ธ Tech Stack.
- Java
- ProObject (์์ฌ ๊ฐ๋ฐํด, spring๊ณผ ๋น์ท)
Problem-Solving Skill.
- API Gateway ๋์
๊ณผ์ ๊ณผ ๋ฐฐํฌ๊น์ง(devops)
- ๋ฌธ์ ์ ์: ์ด๊ธฐ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด๋ผ์ฐ๋ ์ ํ ์๋น์ค๋ฅผ ๊ฐ๋ฐํ ๋ L4 ๊ธฐ๋ฐ์ผ๋ก ์๋น์ค๋ฅผ ๋ ธ์ถํ๊ณ ์์์ต๋๋ค. ์ด๊ธฐ ์คํ์ํํธ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก webserver๋ฅผ ๊ตฌ์ถํ๊ณ ์์๊ณ , ํด๋น websever์์ backend ์๋น์ค์ reverse proxy ์ ๊ณตํ๊ณ ์๋ ์ํ์์ต๋๋ค.
- ๋์ ๋์ถ: ์๋น์ค ๋ ธ์ถ์ L4 ๊ธฐ๋ฐ์ธ ์ฟ ๋ฒ๋คํฐ์ค ์๋น์ค ๊ธฐ๋ฐ์ด ์๋ ๋ ์์ ๋ ์ด์ด์ธ L7 ๊ธฐ๋ฐ์ ingress ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ๋ ธ์ถ ์ํค๋ ๋ฐฉ๋ฒ์ด ๋ ์ ์ฉํจ์ ํ์ธํ์๊ณ , ingress-controller ํ๋ณด ์ค traefik์ด๋ผ๋ opensource๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ด ์ ํ์ ๋ํ API Gateway๋ฅผ ๋์ ํ์์ต๋๋ค.
- ๋น๊ต ๊ฒ์ฆ: ingress-controller ํ๋ณด ์ค kong, istio, nginx, traefik, haproxy ๋ฑ๋ฑ ๋ง์ ์ ํ๋ค์ด ์์์ผ๋ traefik์ API-Gateway๋ก ์ ์ ํ์์ผ๋ฉฐ, ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- golang์ผ๋ก ๊ฐ๋ฐ๋์ด ์์ค์ฝ๋ ๋จ๊น์ง ๋ถ์์ด ๊ฐ๋ฅํ๋ค. ์ด๋ ์ด๋ค ์์ธ์ด ์๊ฒผ์ ๋ ๋ด๋ถ ๋ก์ง๊น์ง ๋ค์ด๊ฐ ์์ธ์ ํ์ ํ ์ ์๊ณ , ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ์ดํดํ๊ธฐ์ ์ถํ ๋ค๋ฅธ ingress-controller๋ฅผ ์ฌ์ฉํ ์์๋ ํด๋น ๊ฒฝํ์ ๊ธฐ๋ฐ์ผ๋ก ์ดํด๋ฅผ ์์ฝ๊ฒ ํ ์ ์๋ค.
- API Gateway๋ก์จ์ ๋ค์ํ ์๊ตฌ์ฌํญ์ ๋ง์กฑ์์ผฐ์ผ๋ฉฐ, CRD๋ฅผ ํตํด ํด๋น ์๊ตฌ ๊ธฐ๋ฅ๋ฑ์ ์์ฝ๊ฒ ์ถ๊ฐ, ์ญ์ , ๋ณ๊ฒฝํ ์ ์๋ค.
- ์ ์ง ์ ์ฉ: API Gateway๋ฅผ ํตํด ์ฌ๋ด ํด๋ผ์ฐ๋ ์ ํ์ธ hypercloud๋ฅผ ingress ๊ธฐ๋ฐ์ผ๋ก ํตํฉํ์์ผ๋ฉฐ, backendํตํฉ ์ธ์ฆ์ ๊ด๋ฆฌ๋ฅผ ์ํด cert-manager๋ฅผ ๋์ ํ์๊ณ , ๊ณต์ธ๋ TLS์ธ์ฆ์ ๋ฐ๊ธ์ ์ํด aws route53์ ํตํ ๋๋ฉ์ธ ๋ฐ๊ธ, letโs encrypt๋ฅผ ํตํ ์ธ์ฆ์ ๋ฐ๊ธ์ ์งํํ์์ต๋๋ค.
- ์ ์ง ๋ณด์: ๊ฐ๋ฐ๋ API Gateway๋ฅผ ์ฟ ๋ฒ๋คํฐ์ค ์์์ ์ํ ํ ์ค์น๋ฅผ ์ํด helm chart๋ก ๋ง๋ค์์ผ๋ฉฐ, ๋ฐฐํฌ๋ฅผ ์ํด argoCD๋ฅผ ์ ๊ทน ๋์ ํ์์ผ๋ฉฐ, app of apps ํจํด์ ์ด์ฉํด ์ฌ๋ฌ๊ฐ์ app์ ํ๋์ app์ผ๋ก ๋ฌถ์ด์ ์ค์น ์์๊ฐ ๋ณด์ฅ๋๊ฒ๋ ์์ ํ์์ต๋๋ค.
Skill.
Kubernete
- kubernetes ๋ฆฌ์์ค ์ฌ์ฉ๋ฒ์ ์ถฉ๋ถํ ์์งํ๊ณ ์์ผ๋ฉฐ, ๋์ ์๋ฆฌ์ ๋ํ ์ดํด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก App์ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
- CNCF์ ์ํ๊ณ๋ฅผ ์ดํดํ๊ณ ์์ผ๋ฉฐ kubernetes ๊ธฐ๋ฐ ์์ ๋ค์ํ opensource ํ๋ก์ ํธ๋ฅผ ํ์ฉํ ๊ฒฝํ์ด ์์ต๋๋ค.
- Helm์ ํตํ App ๋ฐฐํฌ ๋ฐ helm chart๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
- Jenkins์์ kubernetes pod๋ฅผ ํตํ CI ํ๊ฒฝ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
- ArgoCD๋ฅผ ํตํ ์์ ์ ์ธ CD ํ๊ฒฝ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
- Cert-Manager๋ฅผ ํตํด ์์ ์ ์ธ TLS ์ธ์ฆ์ ์์ฑ ๋ฐ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- API-GATEWAY ๊ฐ๋ ์ ์ดํดํ๊ณ ์์ผ๋ฉฐ, traefik์ ํตํ reverse-porxy ํ๊ฒฝ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
- keycloak์ ํตํ ์ ์ ๋ณ ์ธ์ฆ, ์ธ๊ฐ ๊ด๋ฆฌ์ ๋ฐฉ์ ๋ฐ ์ฌ์ฉ๋ฒ์ ์๊ณ ์์ต๋๋ค.
- helm ์ ์ฌ์ฉํ์ฌ app์ ๋ฐฐํฌํ๊ณ helm chart๋ฅผ production ๋ ๋ฒจ๊น์ง ๋ง๋ค์์ต๋๋ค. https://github.com/tmax-cloud/gateway-helm-chart
- ArgoCD๋ฅผ ์ฌ๋ด์ ์ ๊ทน ๋์ ํ์์ผ๋ฉฐ argocd๋ฅผ ํตํ helm chart ๋ฐฐํฌ๋ฅผ ๋ง๋ค์์ต๋๋ค. ๋ ํ, GitOps ํจํด์ ์ด์ฉํด git์ ํตํ ์์ ์ ์ธ ํ์๊ด๋ฆฌ ๊ฐ๋ ์ ์ฌ๋ด์ ๋์ ํ์ต๋๋ค.
- Cert-Manager๋ฅผ ํตํ TLS ์ธ์ฆ์ ๊ด๋ฆฌ๋ฅผ ํ ์ ์์ต๋๋ค.
Golang
- http ์๋ฒ๋ฅผ ๊ฐ๋ฐํ๊ณ image๋ก ํจํค์ง ํ ์ ์์ต๋๋ค.
- ์คํ์์ค traefik์ http handler๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค.
- net/http ํจํค์ง๋ฅผ ์ดํดํ๊ณ ์์ผ๋ฉฐ, web framework ์ค gorilla/mux ์ go-chi๋ฅผ ํตํ http ํธ๋ค๋ฌ๋ฅผ ๊ฐ๋ฐํ ์ ์์ต๋๋ค.
- golang ์ผ๋ก ๊ฐ๋ฐ๋ ์ ํ์ ์ด๋ฏธ์ง ์์ฑ๊ณผ ๋ฐฐํฌ๊น์ง ํ ์ ์์ต๋๋ค.
- kubebuilder๋ฅผ ์ฌ์ฉํ์ฌ kubernetes operator๋ฅผ ๊ฐ๋ฐํ ์ ์์ต๋๋ค.
Linux ๊ธฐ๋ณธ ์ง์ ๋ฐ Shell Script ์์ฑ
- ๋ฆฌ๋
์ค ๊ธฐ๋ณธ ๋ช
๋ น์ด๋ฅผ ํตํ trouble shooting์ ํ ์ ์์ต๋๋ค.
- ์) systemctl, journalctl๋ฅผ ํตํ ํ๋ก์ธ์ค ๋์
- ๊ธฐ๋ณธ shell script์ makefile์ ํตํด ์ ํ ์ค์น shell script๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
Education.
2009.03-2014.02 ์ญ์ค๋ํ๊ต ์ ๋ณดํต์ ์ ์๊ณตํ๋ถ (ํ์ : 4.11/4.5, ์กธ์ )
2014.03-2018.08 ์ฐ์ธ๋ํ๊ต ์ ๊ธฐ์ ์๊ณตํ๊ณผ ๋ฌด์ ํต์ ์ ๊ณต (ํ์ 4.12/4.5, ์๋ฐ์ฌ ์๋ฃ)
Certification.
Certificate Kubernates Administrator, CKA ์๊ฒฉ์ฆ (2021.03.03 ์ทจ๋)
Certified Kubernetes Security Specialist, CKS ์๊ฒฉ์ฆ (2024.10.23 ์ทจ๋)
Language.
TEPS 741์ ์ทจ๋์ผ์ 2017.11.11