CDP 스펙 문서

JinHo Choi·2021년 5월 14일
0
고려해야 할 사항
- spark와 연동성이 뛰어나면 좋음
- batch job (ex) 에어플로우 등
- 안정성

Front-end

  • HTML, JavaScript

    • 결정

Back-end

  • Django

    • 장점
      • CRUD 기반에서는 월등한 효율을 보이며, 기본적인 기능들이 모두 개발되어 있음
      • 한 프로젝트 내에 여러 어플리케이션을 동시 개발 가능하며 재사용 가능하고, 개별 프로젝트 관리도 용이함
      • 강력한 ORM 기반으로 DB 접근이 용이하고 쉬움
      • 인스타그램, 번개장터, Laftel 화해 등 많은 사이트가 개발에 사용하고 있기에 최소한의 안정성은 있다고 볼 수 있음
      • spark, ES와 관련된 모듈들이 이미 존재하고 편하게 사용할 수 있음

    • 단점
      • 모듈이 우리와 적합하지 않거나 새로 많들어야 할 때 어려울 확률이 높음
      • 파이썬 언어 자체의 한계점을 통한 성능 -> 속도, 수용력 -> 확장이 용이하기에 다른 프레임워크를 성능 때문에 선택할 확률은 적음

Database

  • PostgreDB

    • 오픈 소스, window, 리눅스, 맥, 유닉스 등 다양한 운영체제 지원
    • DB 보안을 위해 데이터 암호화, 접근 제어, 접근 감시 3가지로 구성
    • java, php, perl 등 스크립트 언어도 지원
    • 신뢰성과 안정성이 매우 높음
    • Disk사용량이 타 DB보다 많음
    • 대용량 운영이 편하고 빠름
    • 다양한 join 방법을 제공함
    • insert 위주의 대규모 서비스의 경우 아주 좋음
    • update가 자주 필요한 서비스의 경우 성능이 불안정
    • 복잡한 쿼리를 요구할 때 사용하면 뛰어난 성능을 발휘함

  • MySQL

    • SQL 기반 DBMS로 거의 모든 운영체제에서 사용가능
    • 처리 속도가 상당히 빠르고 대용량에 데이터도 처리하기 용이하다는 평가
    • 보안성이 우수함
    • 무난한 database이며 상용 사용 시 유료
    • 속도 및 성능이 무난하다는 평가
    • update 성능이 뛰어나지만, 복잡한 알고리즘은 지원하지 않음
    • 간단한 data 트랜잭션을 위한 DB가 필요한 웹이면 가장 먼저 고려하는 db
    • 복잡한 쿼리 등을 사용시 성능 저하

Workflow Manager(Batch Job)

  • Airflow

    • Workflow를 관리할 때 요즘 가장 많이 쓰이는 툴
    • Airbnb에서 개발한 워크플로우 관리 도구
    • Task-driven
    • Python 기반의 스크립트로 작성
    • Task를 DAG로 구성
    • Web Server는 Flask 기반
    • Web을 통해 직관적으로 Workfolw 모니터링 및 관리 가능
    • 기본적인 기능만으로 파이프라인 구축 가능


  • DAGSTER

    • Airflow랑 비슷하지만, data-driven
    • Dag 기반 as Pandas, Spark, SQL를 통해 만들어지는 결과를 local이나 cloud에서 실행할 수 있게 하는 것이 목표
    • Dag으로 만든 data logic을 Data application으로 만드는 것

  • PERFECT

    • 2017년에 출시되어 가장 현대적임
    • workflow 자동화 도구
    • Airflow와 기능은 동일하나, Airflow보다 사용하기 쉽고 좀 더 현대적인 workflow 관리 가능
    • 설치 및 사용이 간편하고, 버전 관리 등 편한 기능이 있다는 여론이 다수 존재
 

0개의 댓글