데이터 엔지니어링 35

[클라우드] Service Discovery

정의 서비스 클라이언트가 서비스 호출을 위해 IP주소, Port를 알아내는 기능 사용 이유 - MSA에서 분산된 서비스간의 원격 호출과 클라우드 환경에서 오토 스케일링 등의 동적 환경으로 서비스의 IP 변동이 잦아짐 동작 (Client side discovery) 서비스 인스턴스 생성시 주소를 Service Registry에 등록 해당 서비스 호출시 클라이언트는 Service Registry에 주소를 물어보고 호출 Client side discovery vs Server side discovery Client side discovery 클라이언트가 Service Registry에서 서비스 위치를 찾아 호출하는 방식 Server side discovery proxy(LB)가 호출을 받고 LB에서 Servi..

[클라우드] 마이크로서비스 아키텍처

http://guruble.com/마이크로서비스microservice-아키텍처-그것이-뭣이-중헌디 마이크로서비스 아키텍처. 그것이 뭣이 중헌디? Table of Contents. 마이크로서비스 아키텍처 API Gateway 이벤트-주도(Event-Driven) 데이터 관리 분산된 데이터베이스에서 트랜잭션 관리 이슈 이벤트 주도 아키텍처(Event-Driven Architecture) Summary 마이크로서 guruble.com 정의 마이크로서비스 - 하나의 큰 애플리케이션을 여러 개의 서로 다른 역할을 수행하는 애플리케이션으로 분리했을 때 각 애플리케이션 마이크로서비스 아키텍처 - 마이크로서비스들로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처 마이크로서비스 아키텍처는 언제 필요한가? 애플리케이션 배포..

[Docker] Docker란

정의 애플리케이션을 신속하게 구축, 테스트, 배포할 수 있는 소프트웨어 플랫폼 컨테이너라는 표준화된 유닛으로 소프트웨어를 패키징 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어 실행에 필요한 모든 것을 포함 Docker 사용시 환경에 구애받지 않고 애플리케이션을 신속하게 배포/확장하고 코드가 문제없이 실행됨을 보장 사용하는 이유 Docker는 DevOps 및 개발자에게 도움되도록 설계된 개방형 애플리케이션 개발 프레임워크 개발자 Docker를 사용하여 경량의 휴대 가능한 자립형 컨테이너로 애플리케이션을 쉽게 빌드/패키징/배송/실행 운영체제/배포 시스템 등을 걱정하지 않고 애플리케이션 코드에만 집중하면서 사용 가능 오픈소스 컨테이너 애플리케이션 활용 가능 DevOps 지속적인 통합(CI..

[SRE] DevOps란

요약 기존 문제점 개발(Dev)과 운영(Ops)이 분리되어 있음 1) 분리되어있어 서로 책임을 떠넘김 2) 운영 중 발생한 요구사항에 대한 소통이 원활하지 못함 3) 그런 상황에서 비즈니스 요구사항에 따른 변경사항이 자주 배포되면서 개발과 운영 사이 마찰이 커짐 해결 방안 애자일 : 기획과 개발을 합치자 -> 위 3)을 해결 DevOps : 개발과 운영을 합치자 -> 위 2)까지 해결 배경 요구 기술이 상이한 두 영역이 합쳐질 수 있는 이유 1) 인터넷 발전 : 필요한 자료와 강의를 쉽게 접할 수 있음 2) 오픈소스의 발전 : 전세계 개발자들이 함께 이야기하고 일할 수 있는 구조 3) 좋은 도구들 : 개발/빌드/배포/모니터링 등 자동화 가능 4) 클라우드 등장 : 직접 인프라를 구성할 필요가 사라짐 종합..

[클라우드] 클라우드 컴퓨팅 구분

클라우드 컴퓨팅 구분 기준 배치 모델 vs 서비스 모델 배치모델 - 클라우드 인프라의 위치와 운영에 따른 분류 1) 퍼블릭 클라우드 2) 프라이빗 클라우드 3) 하이브리드 클라우드 서비스 모델 - 사용자에게 서비스하는 인프라의 계층 정도에 따른 분류 1) IaaS 2) SaaS 3) PaaS 배치 모델 퍼블릭 클라우드 공공 클라우드 / 개방형 클라우드 특정 기업/사용자가 아닌 모든 사용자를 위한 클라우드 서비스 모델 자원이 각 서비스에서 사용자 별로 권한을 관리/격리 - 데이터 - 기능 - 서버 서비스 사용자간 간섭이 전혀 없음 프라이빗 클라우드 제한된 네트워크에서 특정 기업/사용자를 위한 클라우드 서비스 모델 기업이 자원의 제어권을 가짐 보안이 뛰어남 커스터마이징 (고객의 상황에 따른) 하이브리드 클라..

[클라우드] 컨테이너 기술이란

개요 정의 - 시스템의 나머지 부분과 분리된 1개 이상의 프로세스 세트 배경 - LXC(LinuX Container)부터 시작 - LXC는 단일 머신에 여러 개 독립 리눅스 커널 컨테이너 실행을 위한 OS레벨의 가상화 기법 기능 전통적 테스트 환경 복제에 의존하는 개발 파이프라인보다 더 빠르고 편함 - 네트워크, 스토리지, 보안 등 서로 다른 환경으로 프로그램 실행에 각종 오류 발생 - 다른 환경으로 이동시 안정적으로 실행하기 위한 개념 하이퍼바이저 기반 가상화 기술을 대체하여 각광받음 - 컨테이너 이미지 배포가 새로운 운영체제 설치보다 훨씬 간편 / 비용이 저렴 - Guest OS가 필요한 하이퍼바이저와 달리, 컨테이너는 운영체제 없이 어플리케이션 실행에 필요한 모든 파일만 패키징한 형태 컨테이너 장점..

[데이터플랫폼] 최신 데이터 인프라 이해하기 #5 - ETL/ELT 도구들 (Spark, Python, Hive)

https://www.youtube.com/watch?v=Wo6utoIC2Jw Spark platform / Python Libs / Batch Query Engine 묶음 Workflow Manager와 연결되어있음 Workflow Manager는 분할, 분석이 아닌 Task를 수행하는 엔진 Spark에게 task를 시킴 Python Libs Pandas 이름 유래 Panel Data 여러 개체들을 복수의 시간에 걸쳐서 추적하여 얻는 데이터 tabular data를 다룸 row / column으로 이루어진 테이블 데이터 DataFrame이라 부름 Boto3 Python으로 Amazon Web service(S3, EC2)에 접근하게 해주는 라이브러리 Dask Python을 병렬로 처리할 수 있도록 만들..

[데이터플랫폼] 최신 데이터 인프라 이해하기 #4 - ETL/ELT 도구들 (dbt, Airflow, Dagster, Prefect)

https://www.youtube.com/watch?v=IdVO1dC4bM8 Data Modeling 데이터가 Data Warehouse/Data Lake에서 옴(Source에서 오지 않음) dbt (Data Build Tool) Analytics engineering tools designed for analysts 데이터 분석가들이 데이터 분석을 위해 직접 데이터를 조작해볼 수 있음 데이터 변환을 SQL로 모델링해볼 수 있음 Snaptshot을 떴기 때문에 Production System에 영향을 주지 않음 LookML Looker BI 도구 데이터 분석가들이 대쉬보드나 리포트를 만드는 도구 Workflow Manager Source에서 Data Warehouse/Data Lake로 옮기는 것을 w..

[데이터플랫폼] 최신 데이터 인프라 이해하기 #3 - ETL/ELT 도구들 (Fivetran, Stitch, Matillion, Panoply)

https://www.youtube.com/watch?v=fn0sN3PFip0 Connectors Source의 데이터를 Data Warehouse나 Data Lake로 보내는 역할 Fivetran 다양한 데이터들을 수집할 때, Normalize하고 SQL 통해 Analysis Ready Schema로 변환 저장되는 데이터에 따라 과금 따라서, ETL에서는 어떻게 transform하는지도 중요했음 ETL에서 ELT로 넘어가는 이유 Storage가 싸지고, Computing 리소스가 비싸짐 Panoply (Fivetran 지원) ETL + Data Warehouse Stitch ETL 도구 Matillion 똑같음 ETL 도구 Matillion Data Loader 무료 도구 Extract / Load 하..

[데이터플랫폼] 최신 데이터 인프라 이해하기 #2 - 데이터 소스

https://www.youtube.com/watch?v=0yK0z9B2Zk0 OLTP databases via CDC OLTP(Online Transaction Processing) Database 은행계좌 이체를 예로 많이 말함 보낸 계좌에서 돈이 빠져나감 + 받는 계좌에 돈이 들어옴 -> 두 가지가 모두 발생해야함 이 두 가지 작업을 묶어 처리해주는 Database를 의미 OLTP vs OLAP(Online Analytical Processing) OLTP 보통 수많은 트랜잭션이 발생 빠른 처리가 필요하기 때문에 정규화된 구조(수많은 테이블) OLAP 많은 데이터 정규화되지 않은 데이터 복잡한 분석 쿼리를 날림 CDC(Change Data Capture) OLTP에서 변경된 부분만 외부 DB로 저장..