DevOps

· DevOps
개요 현재 회사에서 Workflow Management 툴로 Airflow를 도입하였고 DAG를 통해 ETL과 같은 Job을 관리하고 있다. 데이터 플랫폼 구축의 초기 단계이기 때문에 하나의 Repository에서 모든 DAG를 관리하였고 배포도 직접 서버에 접속해서 수동으로 배포하고 있었고 이번에 DW로 BigQuery를 선정하게 되면서 원본 데이터들을 ETL을 통해 DW로 적재하거나 DM을 만드는 DAG가 점점 늘어날 것이고 DAG를 개발하는 인원도 점차 늘어날 것이라고 판단해서 이번에 Airflow DAG에 대한 CI/CD를 구축하기로 결정하게 되었고 CI/CD를 구축하기까지의 여정에 대해 포스팅 해보려고 한다. CI/CD란? 보통 개발이 끝난 application이 있다면 이를 실제 서버에 배포하..
· DevOps
Locust API 부하 테스트를 위하여 리서치 후 찾게 된 Python 기반의 부하 테스트 라이브러리. 다른 Python 코드에서도 통합이 가능. pip를 통해 간편한 설치 가능. locustfile.py 파일 하나로 구성 가능. RPS(Request Per Seconds), RT(Response Time) 제공. 싱글 머신에서도 충분한 부하 테스트가 가능하고, 필요하다면 분산 클러스터를 구성할 수 있으며 그 구성이 간단하게 가능. 구성 요소 # locustfile.py ... # 동작을 실행할 User # Web UI에서 User 지정 수 만큼 클래스 인스턴스가 생성됨. # 각 클래스 인스턴스는 선택된 task를 co-routine 생성하여 실행. # 각 co-routine은 task로 지정된 함수를..
· DevOps
필요 설정 파일 Airflow airflow.cfg Fluentd fluentd.conf Elastalert airflow.yaml 설정 Dag Run Log Airflow # airflow.cfg [logging] log_format = time:%%(asctime)s filename:%%(filename)s:%%(lineno)d levelname:%%(levelname)s message:%%(message)s log_filename_template = dag/{{ ti.dag_id }}/{{ logical_date.now().year }}-{{ logical_date.now().month }}-{{ logical_date.now().day }}.log log_format Dag를 실행시킨 후 해당 D..
· DevOps
Fluentd 구성 요소 Fluentd 구조 Input : 로그 수집 플러그인. HTTP, tail, TCP 등 기본 플러그인 외에도 확장 플러그인을 통해 다양한 서버나 애플리케이션으로부터 다양한 포맷의 데이터를 수집할 수 있다. Parser (Optional) : Input 플러그인을 통해 데이터를 읽어도 Fluentd에서 지원하지 않는 데이터 포맷인 경우, 그 데이터를 Parsing 하기 위해 사용할 수 있는 플러그인. RE 기반으로 스트링을 parsing 하는 플러그인뿐만 아니라 apache, nginx, syslog 등의 다양한 포맷의 데이터를 Parsing 할 수 있는 플러그인들이 존재한다. Filter (Optional) : Input 플러그인을 통해 읽어들인 데이터를 Output 플러그인으로..
멍이요
'DevOps' 카테고리의 글 목록