본문 바로가기

DevOps

[Data Pipeline] Apache Airflow 기반의 데이터 파이프라인 (2) 목차1. Apache Airflow 살펴보기Airflow 소개파이썬 코드로 유연한 파이프라인 정의Airflow를 사용하면 파이프라인이나, 워크플로우 태스크를 방향성 비순환 그래프(DAG)로 정의할 수 있다. 더불어, Airflow는 파이썬 스크립트로 DAG의 구조를 정의하고 구성하는데, 일반적으로 DAG 파일 안에는 주어진 DAG에 대한 태스크 집합과 태스크 간의 의존성을 기술하고, Airflow는 이 DAG의 구조를 식별하기 위해 코드를 Parsing 한다. 이 외에도, DAG 파일 안에는 Airflow의 실행 방법과 시간 등을 정의한 추가 메타데이터가 포함될 수 있다.Airflow DAG를 Python 코드로 정의함으로써 추후 외부의 데이터베이스, 빅데이터 기술 및 클라우드 서비스를 포함한 시스템에서.. 더보기
[Data Pipeline] Apache Airflow 기반의 데이터 파이프라인 (1) 목차1. Apache Airflow 살펴보기데이터 파이프라인 소개일반적인 데이터 파이프라인은 원하는 결과를 얻기 위해 실행되는 여러 태스크 또는 동작으로 구성된다.예를 들어, 다음 주 날씨를 알려주는 쇼핑몰의 날씨 대시보드를 구축하는 시퀀스에서, 다음의 태스크가 수행되어야 한다.다른 시스템의 날씨 API를 통해 일기 예보 데이터를 가져온다.서비스 목적에 맞도록 데이터를 정제하거나 변환(ex. 온도를 화씨에서 섭씨로 변환) 한다.변환된 데이터를 날씨 대시보드로 전송한다.위의 3가지 서로 다른 태스크는 프로세스 실행 시 정해진 순서대로 진행되어야 한다.데이터 파이프라인 그래프태스크 간 의존성을 명확하게 확인하기 위해 데이터 파이프라인을 그래프로 표현할 수 있다. 태스크는 노드로, 태스크 간 의존성은 노드 간.. 더보기
[VCS] Git의 작동 원리와 사용법 (2) (Pro Git 2/E) 목차2. Git의 기초Git 저장소 만들기기존 디렉터리를 Git 저장소로 만들기관리가 필요한 프로젝트 디렉터리로 이동하여 git init 명령을 실행하면 .git이라는 하위 디렉터리가 만들어짐. 이곳에는 저장소에 필요한 뼈대 파일(skeleton)이 들어 있으며, 파일 관리가 필요한 파일을 git add 명령으로 추가한 후 git commit 명령으로 git이 파일을 관리하도록 할 수 있다.$ git add *.c$ git add LICENSE$ git commit -m 'initial project version'기존 저장소를 Clone하기다른 프로젝트에 참여(Contribute)하거나, Git 저장소를 복사할 때 git clone 명령을 사용할 수 있다. SVN의 checkout 개념과 달리, git.. 더보기
[VCS] Git의 작동 원리와 사용법 (1) (Pro Git 2/E) 목차1. 시작하기로컬 버전 관리디렉터리로 파일을 복사해서 버전을 관리하는 방법으로, 간단하지만 디렉터리를 삭제하거나, 디렉터리를 잘못 복사하는 등 오류가 발생할 수 있다. 이에 따라, VCS는 간단한 데이터베이스를 사용해 파일의 변경 정보를 관리한다.많이 쓰는 VCS 도구 중 RCS(Revision Control System)이 있다. 이는 Mac OS X 운영 체제에서도 개발도구와 함께 설치되며, 기본적으로 Patch Set(파일에서 변경되는 부분)을 관리한다. 이 Patch Set은 특별한 형식의 파일로 저장되며, 일련의 Patch Set을 적용해서 모든 파일을 특정 시점으로 원복할 수 있다. 중앙집중식 버전관리 (CVCS)다른 개발자와 함께 작업해야 할 때, CVS, Subversion(SVN), .. 더보기
[Infra] 인사이드 VMware vSphere (4) 목차4. 하드웨어 가상화CPU 가상화가상 머신 내 게스트 OS에서 발생하는 모든 프로세스는 VMkernel의 VMM을 통해 물리적 CPU에 전달되는데, 이때 VMkernel은 Time-slice(시분할) 방식을 사용하여 전체 CPU 리소스에 과도한 부하가 생기지 않도록 분할/할당한다.이때, 서비스 콘솔은 항상 첫 번째 CPU에서만 작동하며, CPU-bounded 어플리케이션과 CPU 연산 작업만을 위한 어플리케이션이 작동하는 가상 머신 간 작업량의 균등 조절이 필요할 수 있다.멀티코어 프로세서ESX 서버 입장에서는 각 코어가 하나의 논리적 프로세서(Logical Processor) 단위로 인식된다. 이에 따라, 동일한 소켓 안의 멀티코어에서 프로세스가 처리되는 경우도 있지만, 각각 다른 소켓의 코어에서 .. 더보기
[Infra] 인사이드 VMware vSphere (3) 목차3. ESX / ESXi 서버 설치이번 게시글에서는 물리적 서버 시스템에 ESX or ESXi 서버 운영체제를 설치하는 방법을 다룬다. 기본적으로 VMkernel이 서버의 장치 드라이버를 인식할 수 있어야 하는데, 아래 호환성 가이드 웹 사이트에서 시스템 명 또는 스토리지/SAN 장치, I/O 장치 명을 검색하여 호환 여부를 알아볼 수 있다. http://www.vmware.com/resources/compatibility/search.php VMware Compatibility Guide - System SearchAll 1 TB 2 TB 3 TB 4 TB 5 TB 6 TB 7 TB 8 TB 9 TB 10 TB 11 TB 12 TB 13 TB 14 TB 15 TB 16 TB 17 TB 18 TB 1.. 더보기
[Infra] 인사이드 VMware vSphere (2) 목차2. ESX / ESXi 4.0 서버 구조(1)편에서 VMware vSphere에 포함되어 있는 핵심적인 기능들을 살펴보았다면, 이번 게시글에서는 물리적인 호스트 시스템 위에서 리소스를 가상화하는 핵심 엔진 역할의 가상화 운영체제 ESX 4.0 서버와 ESXi 4.0 서버에 대해 자세하게 다루고자 한다.ESX 4.0 서버ESX 4.0 서버는 크게 하이퍼바이저 가상화 커널인 VMKernel과, 이 VMKernel의 사용자 인터페이스 역할을 하는 서비스 콘솔로 구성된다. VMkernel하드웨어 리소스 스케쥴링 담당VM이 리소스 사용을 요구할 때 즉각 접근 가능하게끔 리소스 스케쥴링을 담당한다. CPU, 메모리, HDD, 네트워크 네 가지의 중요한 H/W 리소스를 가상화한다.User World 프로세스 담.. 더보기
[Infra] 인사이드 VMware vSphere (1) 목차1. VMware 가상화 소개본 게시글에서는 VMware vSphere 4에 포함되어 있는 핵심적인 기능들과 제품군에 대해 다루고자 한다.VMware ESX Server 4.0ESX는 서버 운영체제로, 해당 서버를 x86 계열의 서버 시스템 위에 설치하면 단일 하드웨어 시스템 위에서 복수의 운영체제를 동시에 작동시킬 수 있다. 이때, 물리적 H/W 리소스는 공유하는데, 이를 위해 소프트웨어 기법으로 파티셔닝 하는 기능을 갖고 있다. 이는 호스트 기반의 가상화 운영체제와 달리, 하드웨어 바로 위에 설치되어 부트 로드와 커널을 가진 채 H/W리소스를 직접 조정하는 하이퍼바이저 기반의 가상화 운영체제이다.VMkernel : 실제 가상화 엔진을 담당Service Console : H/W 정보를 구성, VMk.. 더보기