DevOps 29

[Debezium] 1. Introduction

다양한 데이터베이스의 CDC를 위한 오픈소스 커넥터 모음 (Kafka Connect 위에서 동작함)각 데이터베이스의 로그를 기반으로 한 변경 스트림을 읽음 장점항목설명예완전성모든 데이터 변경을 누락 없이 캡처 낮은 지연폴링 대비 매우 낮은 레이턴시MySQL·Postgres 사례: ms 수준스키마 변경 불필요Last Updated 같은 컬럼 추가 불필요 삭제 캡처DELETE 이벤트도 포함 메타데이터 제공DB/설정에 따라 포함 가능이전 레코드 상태, 트랜잭션 ID, 유발 쿼리 등 1. ArchitectureKafka Connect 위에서 동작하는 소스 커넥터로 배포됨구분내용가능 여부/비고토픽 네이밍기본은 서버/DB/테이블 기반 토픽명 생성✅ SMT로 패턴 치환/이름 변경 가능토픽 라우팅 1:1한 테이블 → ..

DevOps/Kafka 2025.08.11

[Prometheus] 2. Concepts

1. Data modelPrometheus는 모든 데이터를 time series 형태로 저장함메트릭 이름 + 라벨로 고유한 시계열 데이터를 만들어냄항목설명예시Metric Name측정 대상의 기능/특징을 설명하는 이름http_requests_total (총 HTTP 요청 수)Label같은 메트릭의 상태를 구분하기 위한 key-valuemethod="POST", handler="/api/tracks"Notation메트릭 이름과 라벨을 함께 사용하는 표기 형식http_requests_total{method="POST", handler="/api/tracks"}Sample하나의 값(value) + 시간(timestamp)0.56 at 2024-05-31T12:00:00Z 2. Metric TypePromethe..

DevOps 2025.05.31

[Prometheus] 1. Introduction

1. OverviewPrometheus란?시스템 모니터링 및 알림 도구: 애플리케이션의 time series 메트릭 데이터 수집 및 저장오픈 소스 (CNCF 공식 프로젝트) 기능기능설명예 / 특징다차원 데이터 모델Label로 시계열 데이터 구분metrics + key-valuePromQL시계열 데이터 전용 쿼리 언어강력하고 유연함자율 동작단일 서버만으로 동작분산 스토리지 불필요Pull 기반 수집스크래핑HTTP로 타겟에 접근해 메트릭을 수집Push 지원짧은 작업의 메트릭도 수집 가능Push Gateway 활용서비스 디스커버리 / 정적 설정자동화 or 수동 설정 지원ex. Consul시각화 도구 연동대시보드 생성 및 시각화 지원Grafana 등과 연동 Metrics숫자 기반 지표숫자 데이터를 시간별로 기록해..

DevOps 2025.05.31

[Kafka] 9. Kafka Streams

3. Developer Guide항목명간단 설명Writing a Streams Application스트림 처리 로직을 작성하고 실행하는 기본 구조 제공 (토폴로지 정의)Configuring a Streams Application설정 지정 (브로커 주소, 앱 ID, 직렬화 방식 등)Streams DSL고수준 연산을 위한 간편 API (map, filter 등)Processor API사용자 정의 처리 로직을 위한 저수준 APINaming OperatorsDSL 연산자에 이름 붙이기 (디버깅/모니터링 용이)Data Types & Serialization메시지 직렬화/역직렬화 방식 정의TestingTopologyTestDriver로 로컬 테스트 가능Interactive Queries상태 저장소 데이터를 외부에서..

DevOps/Kafka 2025.05.12

[실전 카프카 개발부터 운영까지] 6. 컨슈머의 내부 동작 원리와 구현

1. 컨슈머 오프셋 관리오프셋컨슈머가 읽은 메시지 위치를 나타내는 번호다음에 어디부터 읽을지 알 수 있음 __consumer_offest 토픽항목설명역할각 컨슈머 그룹이 어떤 파티션의 몇 번째 메시지까지 읽었는지 기록함포맷key: (group.id, topic, partition), value: offset파티션 수 조정offsets.topic.num.partitions (기본: 50)복제 수 조정offsets.topic.replication.factor (기본: 3 추천) 기본 동작컨슈머지정된 토픽의 메시지를 읽음읽은 메시지의 오프셋 정보를 __consumer_offest에 기록컨슈머 그룹컨슈머들의 오프셋 추적장애 시, 지정된 오프셋을 통해 복구 2. 그룹 코디네이터그룹 코디네이터컨슈머 그룹의 구성,..

DevOps/Kafka 2025.05.08

[실전 카프카 개발부터 운영까지] 5. 프로듀서의 내부 동작 원리와 구현

1. 파티셔너프로듀서가 메시지를 어느 파티션에 보낼지 결정하는 컴포넌트기본적으로 키 값을 해싱하여 파티션을 결정함하지만 키가 없으면 전략에 따라 파티션이 선택됨 주의사항동적으로 파티션이 증가할 경우, 기존의 키와 파티션의 매핑이 일치하지 않을 수 있음되도록이면 파티션 수를 변경하지 않는것이 권장됨 전략구분라운드 로빈 전략스티키 파티셔닝 전략전송 방식순차적으로 여러 파티션에 균등 분배하나의 파티션에 몰아서 일정량의 레코드를 채운 뒤 전송장점데이터가 파티션에 고르게 분산됨배치 전송이 빠르고 효율이 높음단점파티션별로 데이터가 얇게 퍼져 버퍼가 빨리 안 채워짐 파티션 간 데이터 분포가 고르지 않을 수 있음배치 효율낮음 (파티션별 최소 레코드 수 미달로 대기 → 비효율)높음 (한 파티션에 집중해 빠르게 배치 전송..

DevOps/Kafka 2025.05.07

[실전 카프카 개발부터 운영까지] 4. 카프카의 내부 동작 원리와 구현

고승범 님의 "실전 카프카 개발부터 운영까지" 책을 정리한 포스팅 입니다.1. 카프카 리플리케이션동작예제) 토픽 생성더보기/opt/bitnami/kafka/bin/kafka-topics.sh --create --topic topic_chat \--bootstrap-server localhost:9092 \--replication-factor 2 \--partitions 2 예제) 토픽 메시지 생성더보기/opt/bitnami/kafka/bin/kafka-console-producer.sh --topic topic_chat \ --bootstrap-server localhost:9092 예제) 토픽 조회더보기 /opt/bitnami/kafka/bin/kafka-topics.sh --topic topic_ch..

DevOps/Kafka 2025.05.06

[실전 카프카 개발부터 운영까지] 3. 카프카 기본 개념과 구조

고승범 님의 "실전 카프카 개발부터 운영까지" 책을 정리한 포스팅 입니다.1. 카프카 기초 다지기구성 요소정의핵심 특징비고/예시토픽메시지를 분류하는 이름메시지의 논리적 그룹화프로듀서-컨슈머 간 송수신 단위채팅 시스템, 로그 시스템 등파티션토픽을 나누는 단위병렬·분산 처리 가능 (1 컨슈머당 1 파티션 읽음)파티션 수 늘리기 가능 (줄이기 X)성능 향상이 목적세그먼트파티션 로그 파일을 나누는 단위일정 크기로 자동 분할됨메시지 순서 보장00000000000000000000.log (오프셋을 의미함)리플리케이션파티션을 브로커에 복제리더-팔로워 구조 (읽기/쓰기, 읽기)고가용성 (장애 복구)팩터 2: 유실 가능팩터 3: 유실 없음 예시) 토픽 생성더보기kafka-topics.sh --bootstrap-s..

DevOps/Kafka 2025.05.03

[실전 카프카 개발부터 운영까지] 1. 카프카 개요

고승범 님의 "실전 카프카 개발부터 운영까지" 책을 정리한 포스팅 입니다. 0. 배경링크드인 내부에서 발생하고 있는 이슈들을 해결하기 위해 만들었음문제설명데이터 폭증유저 증가로 데이터도 폭발적으로 증가 (기존 시스템으로는 감당 불가)이기종 간 연결 호환 안됨서로 다른 시스템/서비스 간 데이터 통신을 위해 복잡한 코드가 필요실시간 반영 어려움사용자 변경 사항을 빠르게 다른 시스템에 반영하기 어려움➡️ 이를 해결하기 위해 "Kafka" 개발 Kafka고성능 대용량 실시간 데이터 스트리밍 플랫폼어디선가 생긴 데이터를 여러 시스템에 실시간으로 빠르고 정확하게 보내줌 링크드인 실제 예시뉴스피드 서비스누군가 직장 정보를 변경하면 그 내용이 지인 뉴스피드에 즉시 뜨는 서비스➡️ 추천 시스템에도 즉시 반영➡️ 실시간 ..

DevOps/Kafka 2025.05.02

[Docker] 1. Docker overview

Docker는 애플리케이션을 개발, 배포 및 실행하기 위한 오픈 플랫폼입니다. 애플리케이션을 인프라에서 분리하여 빠르게 소프트웨어를 제공할 수 있습니다. 코드를 작성하고 프로덕션에서 실행하는 사이의 지연 시간을 크게 줄일 수 있습니다. 1. The Docker platform Docker는 컨테이너라는 약간 격리된 환경에서 애플리케이션을 패키지화하고 실행할 수 있게 합니다. 컨테이너는 경량화되어 있으며, 애플리케이션을 실행하는 데 필요한 모든 것을 포함하므로 호스트에 의존할 필요가 없습니다. 2. What can I use Docker for? Fast, consistent delivery of your applications 개발자가 로컬 컨테이너를 사용하여 표준화된 환경에서 작업할 수 있게 해줍니다...

DevOps/Docker 2023.10.29