Inside Uber's Software Engineering: Scaling Request Handling
- Uber는 수천 개의 마이크로서비스를 통해 매초 수많은 요청을 처리하는 거대한 규모로 운영되며, 이러한 서비스들을 연결하고 관리하기 위한 서비스 메쉬 아키텍처를 2016년부터 사용하고 있습니다. 📦
- 서비스 메쉬는 마이크로서비스 간 소통을 위한 중간층 역할을 하며, 각 서비스는 다른 서비스의 인프라 구조에 대해 알지 못하고도 서로 공유할 수 있도록 지원합니다. ➿
- Uber는 여러 지역, 오프프레임 데이터 센터, 공개 클라우드 제공업체(AWS)에 걸쳐 인프라를 배포하고 있으며, 서비스 메쉬를 관리하는 제어 플레인 구성 요소는 각 지역의 여러 가용성 영역에
분산되어 있습니다. 🌎
- 유버는 요청을 전달하고 최적화하는 데 사용되는 "트래픽 컨트롤 시스템"과 서비스 상태를 관리하고 트래픽을 조율하는 데 사용되는 "디스코버리 시스템"
과 같은 여러 특별한 부서로 구성되어 있습니다. 🚦
- on-host L7 역전 프록시는 각 마이크로서비스 요청을 받아들이고 목적 서비스로 전달하는 역할을 하며, 트래픽
밸런싱, 보안 등 많은 이점을 제공합니다. 🛡️
- Uber는 범위 관리의 효율성을 높이기 위해 프록시를 최적화하고 수많은 서비스의 부하를 분산시키려는 동적인 서브셋팅 시스템을 사용합니다. ⚖️