Apache NiFi란 Apachi NiFi는 데이터 플로우 자동화 및 관리를 위한 워크플로우 오케스트레이션 도구이다. 쉽게 말해서, 다양한 데이터 소스로부터 데이터를 가져오고, 가공한 후, 원하는 목적지로 전송하는 역할을 한다. 위 이미지의 구성에 대한 특징은 아래와 같다. Web ServerNiFi의 웹 UI를 제공하는 서버사용자는 웹 UI를 통해 데이터 플로우를 관리 및 모니터링할 수 있다Flow ControllerNiFi의 핵심 관리 엔진데이터 플로우를 조정하며, Processor 및 데이터 저장소를 제어한다.Processor데이터 ETL(수집, 변환 ,전송 등)의 역할을 수행하는 핵심 컴포넌트이다.여러 개의 Processor가 연결되어 데이터 흐름을 처리한다(예: HTTP 요청 처리, 데이터 ..
IT/DevOps
메세지 큐(Message Queue) 란? MSA(Micro Service Architecture)구조에서는 하나하나의 애플리케이션끼리 통신을 해야 하거나 한 API에서 다른 API로 데이터를 넘겨야 하는 순간들이 생긴다. 메세지 큐는 프로세스 혹은 프로그램간 데이터 교환할 때 사용하는 통신 방법 중에 하나로, 메세지 지향 미들웨어(Message Oriented Middleware : MOM)을 구현한 시스템을 의미한다.Pub/Sub(Publish-Subscribe) 이란? Pub/Sub (Publish-Subscribe)는 메시지 큐와 유사한 비동기 메시징 패턴으로, 생산자(publisher)가 메시지를 보내고, 구독자(Subscriber)가 해당 메시지를 받아 처리하는 구조를 가진다.간단하게 본..
Apache Airflow란? Apache Airflow는 데이터 파이프라인을 자동화하고 관리하는 워크플로우 오케스트레이션 도구이다. 쉽게 말해서, 어떤 작업을 언제, 어떤 순서로 실행할지 결정하고 관리해주는 도구라고 보면 된다.만약 ETL(Extract, Transform, Load) 작업을 수행해야 하는 데이터 엔지니어라면, Airflow를 사용하면 데이터를 일정 시간마다 자동으로 불러오고 가공하고 저장할 수 있다. 개발자가 수동으로 작업할 필요 없이, Airflow가 지정한 일정에 맞춰 실행할 수 있다.Apache Airflow의 플러그인 리스트는 여기에서 확인 가능하고, 이외에 자세한 내용은 여기에서 확인할 수 있다.Airflow를 왜 사용할까?데이터 파이프라인을 운영할 때, 대부분 다음과 같..
무중단 배포란? 무중단 배포(Zero Downtime Deployment)는 애플리케이션을 배포하는 동안 서비스의 가용성을 유지하면서 사용자 경험에 영향을 주지 않는 배포 방식이다. 일반적으로 서비스 중단 없이 새로운 애플리케이션 버전을 릴리스하기 위해 여러 배포 전략이 사용됩니다. 그중 블루그린 배포는 간단하면서도 효과적인 방식으로 널리 사용된다. 블루그린 배포 방식 이외에도 여러가지 방식이 있는데, 이 게시글에 자세하게 나와있으니 참고하면 좋을 것 같다. 블루/그린 배포 방식을 선택한 이유대중적인 배포 방식 세가지를 비교해 보자 배포 전략특징롤링 배포기존 환경에서 하나씩 새로운 버전으로 업데이트. 일부 인스턴스는 기존 버전, 일부는 새 버전을 동시에 실행.- 점진적 배포로 리소스 사용 효율적- 대..