Elastic Stack 책 '엘라스틱 스택 개발부터 운영까지 - 김준영/정상운 지음'을 공부하며 정리하였습니다. 1. 역사 1.1 탄생 배경 'CNET 네트워크'가 상용 서비스에 적합한 수준의 높은 트래픽을 뒷받침하는 고성능 검색 엔진인 '솔라'를 개발하고 있을 시절에, '샤이배넌'은 버전 3에 이르러서 많은 부분을 재작성해 확장 가능한 검색 엔진 솔루션을 만들면 좋겠다는 생각을 하게 됨 처음부터 분산 환경을 위한 솔루션과, HTTP상에서 JSON으로 인터페이스를 지원하는 솔루션, 자바 이외에도 다양한 프로그래밍 언어를 지원하는 솔루션을 표방하고 작업한 배넌은 2010년 2월에 '엘라스틱 서치'를 공개함' 1.2 엘라스틱 스택으로 발전 엘라스틱 서치가 개발될 무렵, 로그스테시와 키바나 두 가지 오픈소스..
ALL
💜 Kafka 클라이언트 책 '아파치 카프카 애플리케이션 프로그래밍 with 자바 - 최원영 지음'을 공부하며 정리하였습니다. 1. 카프카 클라이언트 카프카 클러스터 명령을 내리거나 데이터를 송수신하기 위해 카프카 클라이언트 라이브러리는 카프카 프로듀서, 컨슈머, 어드민 클라이언트를 제공하는 카프카 클라이언트를 사용하여 애플리케이션을 제공한다. 카프카 클라이언트는 라이브러리이기 때문에 자체 라이프사이클을 가진 프레임워크나 애플리케이션 위에서 구현하고 실행 해야한다. (1) 프로듀서 API 프로듀서는 데이터 시작점으로, 프로듀서 애플리케이션은 카프카에 필요한 데이터를 선언하고 브로커의 특정 토픽의 파티션에 전송한다. 프로듀서는 데이터를 전송할 때 리더 파티션을 가지고 있는 카프카 브로커와 직접 통신한다. ..
💜 Kafka 컴포넌트 (2) - 토픽과 파티션, 레코드 책 '아파치 카프카 애플리케이션 프로그래밍 with 자바 - 최원영 지음'을 공부하며 정리하였습니다. 1. 토픽과 파티션 토픽 : 카프카에서 데이터를 구분하기 위해 사용하는 단위 파티션 : 토픽은 1개 이상의 파티션을 소유함 파티션에는 프로듀서가 보낸 데이터들이 저장되는데 이 데이터를 레코드(record)라고 부른다. 즉 프로듀서가 전송한 레코드는 파티션에 저장된다. 파티션은 카프카 병렬처리의 핵심으로 그룹으로 묶인 컨슈머들이 레코드를 병렬로 처리할 수 있도록 매칭됨 컨슈머의 처리량이 한정된 상황이라면, 가장 좋은 방법은 컨슈머의 개수를 늘려 스케일 아웃하는 것이다. 컨슈머 개수를 늘림과 동시에 파티션 개수도 늘리면 증가하기 때문이다. 파티션은 큐..
💜 Kafka 책 '아파치 카프카 애플리케이션 프로그래밍 with 자바 - 최원영 지음'을 공부하며 정리하였습니다. 1. Kafka 1.1 Kafka 탄생 배경 당시 상황 2011년 당시, 단방향 통신을 통해 소스 애플리케이션에서 타깃 애플리케이션으로 연동하는 소스코드를 작성하는 식으로 데이터 수집 및 분배 아키텍처를 운영했다. 이러한 구조는 아키텍처가 거대해지고, 소스 애플리케이션과 타깃 애플리케이션을 연결하는 파이프라인 개수가 많아지면서 소스버전/버전 관리 이슈가 그대로 전달 되었다. 탄생 링크드인 데이터팀은 이러한 상황에서 신규 시스템인 Kafka를 만들었다. Kafka는 한 곳에 모아 처리할 수 있도록 중앙 집중화하여 데이터 스트림을 한 곳에서 실시간으로 관리할 수 있게 되었다. kafka르 중앙..
2022년 12월 말에 새해 다짐을 적으며 '2022년 회고록'을 적었었다. 2023년 부터는 새로운 마음 가짐으로 꾸준히 더 열심히 Data engineering 관련 기술을 학습하고 기록하자는 마음으로 계획을 세웠었다. 하지만 이는 학교 서포터즈 활동으로 인해 실천되지 못하였다. 이에 나는 1월 활동들을 블로그에 정리하며 내가 놓친 부분들 찾고, 이를 개선할 앞으로의 계획들을 세우고 이를 글로 적으며 다짐하고자 한다. #1. SW 에듀 서포터즈 활동 - 1월의 절반 이상 활동 12월 말부터 시작한 SW 에듀 서포터즈 활동은 1월의 첫째주 월요일을 시작으로 월 말까지 주 1회 이상 진행되며, 1월의 반 이상을 해당 활동에 에너지를 쏟으며 지냈다. 주로 본교나 파견되는 고등학교에서 서포터즈 활동을 하였는..
🐳 도커란? 도커는 리눅스 컨테이너 여러 기능을 추가함으로써 애플리케이션을 컨테이너로서 좀 더 쉽게 사용할 수 있게 만들어진 오픈소스 프로젝트 이다. 가상화 방법인 가상 머신과 달리 도커 컨테이너는 성능 손실이 적다 일반적인 도커는 도커 엔진 혹은 도커와 관련된 모든 프로젝트를 의미함 도커 엔진은 컨테이너를 생성하고 관리하는 주체를 말한다. 1.1 가상 머신과 도커 컨테이너 가상머신 특징 기존에는 하이퍼바이저를 이용해 여러개의 운영체제를 하나의 호스트에서 생성해 사용하는 방식이었음. 생성되는 운영체제는 '가상 머신' 단위로 구별됨 하이퍼바이저로 관리되는 운영체제를 '게스트 운영체제 (Guest OS)' 라고 하고, 이는 게스트 운영체제 각각은 완전히 독립된 공간과 시스템 자원을 할당 받음 단점 가상화 작..