- 본 프로젝트는
gRPC
를 활용하여 영상 데이터를 streaming하여 영상을 여러 화질로 인코딩하는 동작을 구현 - source code는
golang
으로 작성 - 관리 및 배포를 위해
Docker
,GKE(Google Kubernetes Engine)
,Terraform
등 활용
- 역할:
- HTTP 요청으로 Video Sample을 수신.
- protobuf에 정의한 video chunk단위로 Video Sample을 stream 방식으로 server에 전달.
- 역할:
- Client로부터 �video chunk 단위의 데이터를 stream 형태로 수신.
- Internal로 video chunk 단위의 데이터를 stream 형태로 송신.
- 중간 전달자 역할
- 역할:
- Server로부터 video chunk 단위의 데이터를 stream 형태로 수신.
- 전달받은 video chunk를 영상 파일로 인코딩.
- 이때, 영상은 여려 화질의 파일로 나누어 저장.
kubectl apply -f .\deploy\internal\config-grpc-internal.yaml
kubectl apply -f .\deploy\internal\k8s-grpc-internal.yaml
kubectl apply -f .\deploy\server\config-grpc-server.yaml
kubectl apply -f .\deploy\server\k8s-grpc-server.yaml
kubectl apply -f .\deploy\client\config-grpc-client.yaml
kubectl apply -f .\deploy\client\k8s-grpc-client.yaml
kubectl delete pods --all
kubectl delete deployments --all
kubectl delete services --all
kubectl delete pvc --all
kubectl delete pv --all
kubectl delete configmaps --all
gcloud auth application-default login
terraform init // 패키지 의존성 등에 따른 설치 및 환경 시작
terraform plan // 실제 배포 시에 변수 설정 확인 가능
terraform apply // 실제 배포 과정 + 배포 후, cloudshell에서 로그 확인
terraform destroy // 배포한 인프라 삭제
helm
: GKE 모니터링 시스템 구축Prometheus
&Grafana
: 서비스 모니터링 (metric data 수집 및 시각화)