νλ‘μ νΈ νλͺ : MutiTap νλ‘μ νΈ κΈ°κ° : 2024.10.02 ~ 2024.12.17
νλ‘μ νΈ μκ° : μ·¨μ κ΄λ ¨ λ©ν λ§ νλ«νΌ
μ·¨μ
κ΄λ ¨ λ©ν λ§ νλ«νΌ νλ‘μ νΈμ κΈ°ν λ°°κ²½μ μ€λ¬΄μμ λ리 νμ©λκ³ μλ MSA(Microservice Architecture) μν€ν
μ²λ₯Ό μ€μ λ‘ κ²½νν΄λ³΄κ³ μ μμλμμ΅λλ€.
νμ¬ Netflix, Amazon, Googleκ³Ό κ°μ κΈλ‘λ² κΈ°μ
λΆν° κ΅λ΄μ μ¬λ¬ κΈ°μ
λ€κΉμ§ MSAλ₯Ό λμ
νμ¬ μλΉμ€λ₯Ό μ΄μνκ³ μμ΅λλ€.
μ΄λ¬ν μ
κ³ λν₯μ κ³ λ €ν λ, MSA μν€ν
μ²λ₯Ό μ§μ μ€κ³νκ³ κ΅¬νν΄λ³΄λ κ²½νμ΄ μ€λ¬΄ μλ ν₯μμ ν° λμμ΄ λ κ²μ΄λΌ νλ¨νμ΅λλ€.
νΉν λ³Έ νλ‘μ νΈμμλ λ¨μν MSA ꡬ쑰λ₯Ό μ μ©νλ κ²μμ κ·ΈμΉμ§ μκ³ , νλμ μΈ μ»¨ν
μ΄λ μ€μΌμ€νΈλ μ΄μ
νλ«νΌμΈ μΏ λ²λ€ν°μ€λ₯Ό νμ©νμ¬ λ°°ν¬ νκ²½μ ꡬμΆνκ³ μ νμ΅λλ€.
μΏ λ²λ€ν°μ€λ₯Ό ν΅ν΄ λ§μ΄ν¬λ‘μλΉμ€λ€μ ν¨μ¨μ μΈ λ°°ν¬, νμ₯μ± μλ μ΄μ, μμ μ μΈ μλΉμ€ μ 곡μ μ€ννκ³ μ νμΌλ©°, μ΄λ νμ
μμ μ€μ λ‘ λ§μ£Όνκ² λ κΈ°μ μ λ¬Έμ λ€μ ν΄κ²°ν΄λ³΄λ μ’μ κΈ°νκ° λμμ΅λλ€.
νλ‘μ νΈ λͺ©ν:
MSA μν€ν μ² μ€κ³ λ° κ΅¬ν
κ° λλ©μΈλ³ μλΉμ€λ₯Ό λ 립μ μΌλ‘ ꡬμ±νμ¬ MSA μν€ν μ² μ€ν μλΉμ€ κ° ν΅μ μ μν ν¨μ¨μ μΈ λ©μμ§ ν μμ€ν κ΅¬μΆ CQRS ν¨ν΄μ μ μ©ν λ°μ΄ν° μ‘°ν/μμ λ‘μ§ λΆλ¦¬
μΏ λ²λ€ν°μ€ κΈ°λ° λ°°ν¬ νκ²½ κ΅¬μΆ μ»¨ν μ΄λ μ€μΌμ€νΈλ μ΄μ μ ν΅ν ν¨μ¨μ μΈ μλΉμ€ κ΄λ¦¬ Helm Chartλ₯Ό νμ©ν λ°°ν¬ μλν ꡬν μλΉμ€λ³ λ 립μ μΈ namespace κ΄λ¦¬
κ°λ° λ° μ΄μ ν¨μ¨μ± ν₯μ Development as Codeλ₯Ό ν΅ν κ°λ° νκ²½ νμ€ν λ§μ΄ν¬λ‘μλΉμ€ λ¨μμ λ 립μ μΈ κ°λ°κ³Ό λ°°ν¬ μ€ν μλΉμ€ λͺ¨λν°λ§ λ° λ‘κΉ μμ€ν ꡬμΆ
νμ₯ κ°λ₯ν μμ€ν μν€ν μ² κ΅¬ν μλΉμ€λ³ λ 립μ μΈ μ€μΌμΌλ§ κ°λ₯ν ꡬ쑰 μ€κ³ μ κ· μλΉμ€ μΆκ°κ° μ©μ΄ν μ μ°ν μν€ν μ² κ΅¬μ± μ₯μ 격리λ₯Ό ν΅ν μμ€ν μμ μ± ν보
λ³λμ DB μλ²λ₯Ό μ΄μνμ¬ λ°μ΄ν° μμ μ± ν보
## 2. νλ‘μ νΈ λ©€λ²
| Name | μ€λκ΄ |
|---|---|
| Position | μΈνλΌ |
| Git | daegwan00 |
- Infra
EKS,Vscode & devBox
| λΆλ₯ | κΈ°μ μ€ν |
|---|---|
| Common | GitHub, Notion, GitOps |
| Infrastructure | AWS (EKS, ECR, ALB), Kubernetes, Helm, Kong |
| CI/CD | GitHub Actions, ArgoCD, Docker(27.2.0), Docker-compose(v2.5.0) |
| Database | MySQL(24.04.2), PostgreSQL, MongoDB, Redis(7.2.5) |
| Message Queue | Apache Kafka, Kafka Connect |
- μν€ν μ² κ΅¬μ‘°λ
- Helm Chart
βββ πBack
β βββ πaifeedback-service
β β βββ Chart.yaml
β β βββ sealed-secret.yaml
β β βββ secret.yaml
β β βββ templates
β β β βββ _helpers.tpl
β β β βββ configmap.yaml
β β β βββ deployment.yaml
β β β βββ secrets.yaml
β β β βββ svc.yaml
β β βββ values.yaml
β βββ πauth-service
β β βββ Chart.yaml
β β βββ sealed-secret.yaml
β β βββ secret.yaml
β β βββ templates
β β β βββ _helpers.tpl
β β β βββ configmap.yml
β β β βββ deployment.yml
β β β βββ secrets.yml
β β β βββ svc.yml
β β βββ values.yaml
β βββ πbatch-service
β β βββ Chart.yaml
β β βββ sealed-secret.yaml
β β βββ secret.yaml
β β βββ templates
β β β βββ _helpers.tpl
β β β βββ configmap.yaml
β β β βββ deployment.yaml
β β β βββ secrets.yaml
β β β βββ svc.yaml
β β βββ values.yaml
β βββ πcategory-service
β β βββ Chart.yaml
β β βββ sealed-secret.yaml
β β βββ secret.yaml
β β βββ templates
β β β βββ _helpers.tpl
β β β βββ configmap.yaml
β β β βββ deployment.yaml
β β β βββ secrets.yaml
β β β βββ svc.yaml
β β βββ values.yaml
β βββ πfeedback-service
β β βββ Chart.yaml
β β βββ sealed-secret.yaml
β β βββ secret.yaml
β β βββ templates
β β β βββ _helpers.tpl
β β β βββ configmap.yaml
β β β βββ deployment.yaml
β β β βββ secrets.yaml
β β β βββ svc.yaml
β β βββ values.yaml
β βββ πhashtag-service
β β βββ Chart.yaml
β β βββ sealed-secret.yaml
β β βββ secret.yaml
β β βββ templates
β β β βββ _helpers.tpl
β β β βββ configmap.yaml
β β β βββ deployment.yaml
β β β βββ secrets.yaml
β β β βββ svc.yaml
β β βββ values.yaml
β βββ πmember-service
β β βββ Chart.yaml
β β βββ sealed-secret.yaml
β β βββ secret.yaml
β β βββ templates
β β β βββ _helpers.tpl
β β β βββ configmap.yaml
β β β βββ deployment.yaml
β β β βββ secrets.yaml
β β β βββ svc.yaml
β β βββ values.yaml
β βββ πmentoring-service
β β βββ Chart.yaml
β β βββ sealed-secret.yaml
β β βββ secret-values.yaml
β β βββ secret.yaml
β β βββ templates
β β β βββ _helpers.tpl
β β β βββ configmap.yaml
β β β βββ deployment.yaml
β β β βββ secrets.yaml
β β β βββ svc.yaml
β β βββ values.yaml
β βββ πmongo
β β βββ πalarm-service
β β β βββ Chart.yaml
β β β βββ sealed-secret.yaml
β β β βββ secret.yaml
β β β βββ templates
β β β β βββ _helpers.tpl
β β β β βββ configmap.yaml
β β β β βββ deployment.yaml
β β β β βββ secrets.yaml
β β β β βββ svc.yaml
β β β βββ values.yaml
β β βββ πchat-query-service
β β β βββ Chart.yaml
β β β βββ sealed-secret.yaml
β β β βββ secret.yaml
β β β βββ templates
β β β β βββ _helpers.tpl
β β β β βββ configmap.yaml
β β β β βββ deployment.yaml
β β β β βββ secrets.yaml
β β β β βββ svc.yaml
β β β βββ values.yaml
β β βββ πchat-service
β β β βββ Chart.yaml
β β β βββ sealed-secret.yaml
β β β βββ secret.yaml
β β β βββ templates
β β β β βββ _helpers.tpl
β β β β βββ configmap.yaml
β β β β βββ deployment.yaml
β β β β βββ secrets.yaml
β β β β βββ svc.yaml
β β β βββ values.yaml
β β βββ πfeedback-query-service
β β β βββ Chart.yaml
β β β βββ sealed-secret.yaml
β β β βββ secret.yaml
β β β βββ templates
β β β β βββ _helpers.tpl
β β β β βββ configmap.yaml
β β β β βββ deployment.yaml
β β β β βββ secrets.yaml
β β β β βββ svc.yaml
β β β βββ values.yaml
β β βββ πmember-query-service
β β β βββ Chart.yaml
β β β βββ sealed-secret.yaml
β β β βββ secret.yaml
β β β βββ templates
β β β β βββ _helpers.tpl
β β β β βββ configmap.yaml
β β β β βββ deployment.yaml
β β β β βββ secrets.yaml
β β β β βββ svc.yaml
β β β βββ values.yaml
β β βββ πmentoring-query-service
β β β βββ Chart.yaml
β β β βββ sealed-secret.yaml
β β β βββ secret.yaml
β β β βββ templates
β β β β βββ _helpers.tpl
β β β β βββ configmap.yaml
β β β β βββ deployment.yaml
β β β β βββ secrets.yaml
β β β β βββ svc.yaml
β β β βββ values.yaml
β β βββ πprompt-service
β β β βββ Chart.yaml
β β β βββ sealed-secret.yaml
β β β βββ secret.yaml
β β β βββ templates
β β β β βββ _helpers.tpl
β β β β βββ configmap.yaml
β β β β βββ deployment.yaml
β β β β βββ secrets.yaml
β β β β βββ svc.yaml
β β β βββ values.yaml
β β βββ πreview-query-service
β β β βββ Chart.yaml
β β β βββ sealed-secret.yaml
β β β βββ secret.yaml
β β β βββ templates
β β β β βββ _helpers.tpl
β β β β βββ configmap.yaml
β β β β βββ deployment.yaml
β β β β βββ secrets.yaml
β β β β βββ svc.yaml
β β β βββ values.yaml
β β βββ πsession-request-query-service
β β βββ Chart.yaml
β β βββ sealed-secret.yaml
β β βββ secret.yaml
β β βββ templates
β β β βββ _helpers.tpl
β β β βββ configmap.yaml
β β β βββ deployment.yaml
β β β βββ secrets.yaml
β β β βββ svc.yaml
β β βββ values.yaml
β βββ πopenvidu-service
β β βββ Chart.yaml
β β βββ sealed-secret.yaml
β β βββ secret.yaml
β β βββ templates
β β β βββ _helpers.tpl
β β β βββ configmap.yaml
β β β βββ deployment.yaml
β β β βββ secrets.yaml
β β β βββ svc.yaml
β β βββ values.yaml
β βββ πpayment-service
β β βββ Chart.yaml
β β βββ sealed-secret.yaml
β β βββ secret.yaml
β β βββ templates
β β β βββ _helpers.tpl
β β β βββ configmap.yaml
β β β βββ deployment.yaml
β β β βββ secrets.yaml
β β β βββ svc.yaml
β β βββ values.yaml
β βββ πreview-service
β β βββ Chart.yaml
β β βββ sealed-secret.yaml
β β βββ secret.yaml
β β βββ templates
β β β βββ _helpers.tpl
β β β βββ configmap.yaml
β β β βββ deployment.yaml
β β β βββ secrets.yaml
β β β βββ svc.yaml
β β βββ values.yaml
β βββ πsession-request-service
β βββ Chart.yaml
β βββ sealed-secret.yaml
β βββ secret.yaml
β βββ templates
β β βββ _helpers.tpl
β β βββ configmap.yaml
β β βββ deployment.yaml
β β βββ secrets.yaml
β β βββ svc.yaml
β βββ values.yaml
βββ πfront-server
β βββ Chart.yaml
β βββ sealed-secret.yaml
β βββ secret.yaml
β βββ templates
β β βββ _helpers.tpl
β β βββ alb-ingress.yaml
β β βββ deployment.yaml
β β βββ secrets.yaml
β β βββ svc.yaml
β βββ values.yaml- Helm κΈ°λ° μλΉμ€ λ°°ν¬ Helm μ°¨νΈλ₯Ό νμ©νμ¬ λ°±μλ μλΉμ€μ νλ‘ νΈμλ μλ² λ°°ν¬ μλν μΌκ΄λ λ°°ν¬ κ΅¬μ± κ΄λ¦¬ λ° λ²μ μ μ΄ κ΅¬ν
- HTTPS 보μ ν΅μ ꡬν AWS Application Load Balancer(ALB)λ₯Ό ν΅ν HTTPS νΈλν½ κ΄λ¦¬ SSL/TLS μΈμ¦μ μ μ©μΌλ‘ μμ ν λ°μ΄ν° ν΅μ 보μ₯
- 보μ κ°ν Sealed Secretμ λμ νμ¬ λ―Όκ° μ 보 μνΈν κ΄λ¦¬ μμ€ μ½λ μ μ₯μμ 보μ μ·¨μ½μ μ κ±°
- API κ²μ΄νΈμ¨μ΄ Kong Gatewayλ₯Ό ν΅ν ν¨μ¨μ μΈ μλΉμ€ λΌμ°ν λ§μ΄ν¬λ‘μλΉμ€ μν€ν μ²μ μμ μ μΈ ν΅μ ꡬν
- DaC(Documentation as Code) νκ²½ κ΅¬μΆ Taskλ₯Ό νμ©ν μΈνλΌ λ¬Έμν μλν μΌκ΄λ μΈνλΌ κ΄λ¦¬ λ° μ μ§λ³΄μμ± ν₯μ
- λ°μ΄ν° μμ μ± λ 립μ μΈ λ°μ΄ν°λ² μ΄μ€ μλ² κ΅¬μΆ λ°μ΄ν° 격리λ₯Ό ν΅ν 보μμ± λ° μμ μ± ν보
| π μ€λκ΄Β μ΄λ² νλ‘μ νΈμμ μ²μμΌλ‘ μΏ λ²λ€ν°μ€λ₯Ό νμ©ν λ°°ν¬ νκ²½ ꡬμΆμ λμ νμ΅λλ€. μ²μμλ μ±κ³΅ν μ μμμ§μ λν λλ €μκ³Ό νμ λΆλ΄μ μ€ μ μλ€λ κ±±μ μ΄ μ»Έμ΅λλ€. νμ§λ§ 'λμ μμ΄λ λ°μ λ μλ€'λ λ§μκ°μ§μΌλ‘ μμνκ³ , νμλ€μ λ λ ν μμ λλΆμ μ±κ³΅μ μΌλ‘ λ§λ¬΄λ¦¬ν μ μμμ΅λλ€. μ΄λ₯Ό μν΄ νμ μ¦κΈ°λ μ·¨λ―Έ μνλ μ μ λ―Έλ€λκ³ μΏ λ²λ€ν°μ€ νμ΅μ μ λ νμ΅λλ€. μ΄ κ³Όμ μ ν΅ν΄ λ Έλ ₯νλ©΄ μ΄λ€ κ²μ΄λ μ΄λ£° μ μλ€λ μμ κ°μ μ»μκ³ , μΈνλΌμ λν λ ν° λ§€λ ₯μ λλΌκ² λμμ΅λλ€. μ΄λ² κ²½νμ λ°νμΌλ‘ DevOps μ λ¬Έμ±μ κ°μΆ κ°λ°μλ‘ μ±μ₯ν΄ λκ°κ³ μ ν©λλ€. |
|---|
- νλ‘λ©ν μ°μ€μ,κ·ΈλΌνλλ₯Ό ν΅ν λ©νΈλ¦ μμ§
- AWS λΉμ©κ΄λ¦¬
