본문 바로가기

전체 글70

파드 하나에 istio 붙이기 사내에서 istio 스터디를 진행하면서, 사이드프로젝트를 만드는 중에 사용해본 아키텍처에 대해 끄적여 봅니다. 만든건?원본 레포는 아래와 같습니다. 좋은 자료라서 한번 직접 실습해보길 추천드립니다.https://github.com/gnu-gnu/network-fundamentals-lab/tree/main GitHub - gnu-gnu/network-fundamentals-lab: Hands-on network troubleshooting labs — break, observe, and fix core TCP/IP conceptHands-on network troubleshooting labs — break, observe, and fix core TCP/IP concepts using container.. 2026. 7. 27.
구현 고민들#2 - KSM (Kernel Samepage Merging) 시스템에 구현하기 전 정리하고 끄적이기 문제설계한 microVM 서비스는 한개의 노드에서 프로세스 형태로 구현중터미널접근, 클러스터 제어를 위해 ai 에이전트 요청이 오면 lambda처럼 일시적으로 생성 후 종료단, 터미널 접근의 경우 오랫동안 점유할 가능성이 있음각 프로세스는 메모리를 128MB 사용 KSM (Kernel Samepage Merging) 도입 고민 개념리눅스는 메모리를 페이지(4KB) 단위로 쪼개서 관리Copy-on-Write메모리를 아끼기 위해 똑같은 데이터는 최대한 복사하지 않고 한곳을 고정그러다가 하나가 쓰기 (Write)를 시도하면 4KB 페이지 만 복사해서 전달-> 도커 이미지에서 사용원리 현재 microVM은 rootfs.ex4 로 동일한 베이스 이미지 사용30개가 올.. 2026. 6. 3.
일관된 해싱, 해시 링, 해시 슬롯 요즘 개발자를 위한 시스템 설계수업 - 길벗 지난 글에서 Memcached 아키텍처를 설명할 때 일관된 해싱을 언급했습니다.일관된 해싱 알고리즘(Consistent Hashing) 을 사용하여 키를 특정 서버에 매핑합니다. 일관된해싱은 분산 시스템에서 데이터를 여러노드에 효율적으로 분배하면서 노드를 추가, 삭제할때데이터의 위치를 다른 곳으로 옮겨야하는 과정이 최소화되도록하는 방식입니다. 기존방식(단순 해싱)의 문제점노드가 3대 있다고 가정하겠습니다.100개의 파드를 3개의 노드에 골고루 분배하기 위해 규칙을 설정합니다. 규칙: 파드 번호를 3으로 나눠서 남는 숫자에 해당하는 노드에 넣습니다. (예: 4%3=1 나머지가 1이므로 1번 노드에 배포)# %는 모듈러 연산데이터 번호 % 서버의 개수(N).. 2026. 6. 2.
[시스템설계] 분산캐싱 인프런 - AI 시대에도 살아남는 엔지니어의 조건, 미국 빅테크 시스템 디자인, 알고리즘 사고, 오픈소스 실무 완성+ 요즘 개발자를 위한 시스템 설계 수업 (길벗) 서비스 규모가 확장되고 애플리케이션은 복잡해지고사용자 수가 늘어나면서 기존 데이터 검색 및 저장 방식을 저해하는 병목 현상이 발생할 수 있습니다.이러한 성능 문제를 해결하기 위한 효과적인 방법중 하나가 바로 캐싱입니다. 캐싱은 애플리케이션이나 사용자와 가까운 위치에 데이터를 임시로 저장하여 보다 빠르게 접근할 수 있도록 하는 기법입니다.주로 저장소 계층(캐시)에 저장하며, 메모리, 디스크, 네트워크 등 다양한 위치에 있습니다. 애플리케이션이 커지고 여러 서버나 데이터 센터에 분산되면 단일 캐시만으로는 충분하지 않을 수 있습니다.이때, 분산.. 2026. 6. 1.
[시스템설계] 메시지 큐, 큐 시스템, 분산 큐 인프런 - AI 시대에도 살아남는 엔지니어의 조건, 미국 빅테크 시스템 디자인, 알고리즘 사고, 오픈소스 실무 완성+ 요즘 개발자를 위한 시스템 설계 수업 (길벗) 메시지 큐 (Message Queue)데이터를 비동기적으로 전달하기 위한 큐 시스템Producer는 데이터(메시지) 생산을 Consumer는 처리를 담당합니다. 느린 작업을 분리하여 병렬 처리함으로써, 비동기 작업으로 시스템 성능 및 확장성을 크게 개선할 수 있습니다. 구성요소Producer : 메시지를 생성, 큐에 삽입Queue : 메시지를 저장하는 버퍼Consumer : 큐에서 메시지를 가져와서 처리Broker : 메시지를 관리하고 전달 (rabbitmq, kafka) 특징비동기성 : 프로듀서와 컨슈머가 독립적으로 동작내구성 : 메시지가.. 2026. 5. 24.
KEDA 이벤트 기반 오토스케일링 도입 도입배경최근 구축중인 시스템에서 파드 오토스케일링 기능(Autoscaling)이 필수적인 상황이 되었습니다.시스템은 Valkey(Redis) 큐를 사용해서 비동기로 뒷단의 파드에 작업을 할당하는 구조인데,기존 쿠버네티스의 기본 HPA(Horizontal Pod Autoscaler) 동작 방식만으로는 해결하기 어려운 문제들이 있었습니다. 문제해결을 위해 최종적으로 KEDA를 도입했는데이번 글에서 해당 기능에 대한 소개와 작업시 고민했던 부분들을 정리해볼까 합니다. HPA란https://kubernetes.io/ko/docs/tasks/run-application/horizontal-pod-autoscale/ Horizontal Pod Autoscaling쿠버네티스에서, HorizontalPodAutosc.. 2026. 5. 17.