- MSA 데모를 기반으로 AWS EKS환경으로 배포 자동화
- Tech : K8S(EKS), MSA, gRPC, CI/CD(CircleCI), Cloudflare, Locust
- monorepo => multirepo
- CI/CD 추가(CircleCI)
- ELB의 CNAME을 지정한 도메인으로 연결(Cloudflare API, CircleCI)
- GKE => AWS EKS
- Jaeger support based OpenCensus
Online Boutique 는 마이크로서비스간 통신에 gRPC를 사용하는 MSA demo project
gRPC의 Protocol Buffer Description은 각 repo의 ./pb
Service | Language | Description |
---|---|---|
frontend | Go | |
cartservice | C# | |
productcatalogservice | Go | |
currencyservice | Node.js | |
paymentservice | Node.js | card info(mock) |
shippingservice | Go | mock |
emailservice | Python | mock |
checkoutservice | Go | |
recommendationservice | Python | |
adservice | Java | |
loadgenerator | Python/Locust |
Home Page | Checkout Screen |
---|---|
- Kubernetes/AWS EKS
- gRPC
- Istio: service mesh
- OpenCensus: Tracing
- Skaffold: Kubernetes 개발자도구
- Locust: load generator
# spot instance 를 이용한 EKS 인프라 설정
eksctl create cluster -f eksctl-spot.yaml
# redis 설치
kubectl apply -f redis.yaml
- dockerhub
- $DOCKERHUB_PASS
- $DOCKERHUB_USERNAME
- awsauthdibisis # 사용자의 aws auth 정보
- $AWS_ACCESS_KEY_ID
- $AWS_DEFAULT_REGION
- $AWS_SECRET_ACCESS_KEY
# simplest.yaml
apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
name: simplest
$ kubectl apply -f simplest.yaml