당근마켓

당근마켓

개발팀 리뷰

위 내용은 당근마켓 전 • 현 재직자의 응답 결과입니다.

기술 스택

언어

Java

javascript

Kotlin

프론트엔드

ReactiveX

GraphQL

ReactJS

백엔드

Spring

GRPC

Node.js

데이터베이스

mongodb

Elasticsearch

Redis

데브옵스

Github

Github Action

Kubernetes

재직자가 작성한 글

profile picture

Outsider

당근마켓 SRE

Istio에서 작성한 Istio Ambient 모드와 Cilium의 성능 비교 글입니다. 서비스 메시는 그동안 각 Pod에 사이드카로 컨테이너를 심어서 트래픽을 제어하는 방식에서 최근 몇년간은 사이드카를 사용하지 않는 방식으로 크게 바뀌고 있습니다. 기술의 발전이 있기도 했고 사이드카 방식은 모든 Pod에 컨테이너가 뜨다보니 리소스를 너무 많이 차지하는 문제도 있기 때문입니다. 서비스 메시에서 Istio가 가장 인기있긴 하지만 사이드카없는 다른 솔루션 등에 약간씩 뒤쳐지고 있었기에 Istio에서도 Sidecar 없는 방식으로 만들기 시작한게 Ambient 모드이고 지난 몇년동안 만들어서 이번에 나온 1.24에서 GA가 되었습니다. 그래서 Istio Ambient 모드와 Cilium을 비교하는 글을 작성한 것입니다. Cilium은 eBPF와 WireGuard를 사용하지만 Istio Ambient는 ztunnel이라는 자체적으로 만든 기능을 사용해서 아키텍처는 아주 다르게 구성되어 있습니다. 성능 비교는 각 100개의 파드로 구성된 500개의 서비스를 만들고 Istio의 기능과 맞추기 위해 Cillium에도 WireGuard 암호화와 L7 프록시, 노드 초기화 등의 기능을 켰고 Istio는 Waypoint 프록시를 네임스페이스마다 설치했습니다. 테스트 결과 Istio Ambient 모드는 암호화 오버헤드를 켜도 안정성을 유지하면서 적절한 처리량을 유지했고 부하가 커지면 Istio Ambient가 CPU와 메모리를 훨씬 많이 사용하지만 부하가 적을때는 오히려 더 적게 사용했다. https://istio.io/latest/blog/2024/ambient-vs-cilium/

profile picture

Outsider

당근마켓 SRE

Git 클라이언트인 GitButler에서 rebase 문제를 해결할 방법을 고민하다가 Jujutsu의 일급 시민 충돌 개념을 도입했습니다. Jujutsu는 Git과 호환되는 버전 컨트롤 시스템으로 최근에 주목을 꽤 받고 있고 여기서 말하는 일급 시민 충돌이라는 개념은 rebase 중에 출돌이 나면 충돌이 표시되고 rebase가 멈추게 되는데 이렇게 하는 대신 해당 커밋을 충돌로 표시하고 릭베이스를 계속 이어서 하게 됩니다. 그렇기 때문에 rebase 자체는 항상 성공하게 됩니다. rebase가 끝난 후 충돌날 커밋을 해결하면 자동으로 해결된 커밋 기준으로 리베이스가 됩니다. rebase는 강력하지만 git에서 배우기 어려운 동작 중 하나로 알려져있고 그렇게 때문에 rebase를 하면서 실수하기도 쉽습니다. Jujutsu처럼 rebase가 항상 성공한 뒤에 충돌만 해결한다는 개념은 rebase를 사용하기 꽤 쉽게 만들어 줄 것이라고 생각하고 GitButler도 이 개념을 도입한 것입니다. https://blog.gitbutler.com/fearless-rebasing/