클라우드 13

[K8s] Helm

정의 The package manager for Kubernetes - k8s 패키지 관리자 Node.js의 npm / python의 pip 주요 개념 Chart Repository Release Chart 헬름 패키지 k8s cluster에서 애플리케이션이 가동되기 위한 모든 리소스 포함 - ex) mariadb 가동을 위한 리소스 : Deployemnt, Secret, Service Repository 차트 저장소 Release k8s cluster에서 구동되는 chart의 인스턴스 동일한 chart를 여러 번 설치하면 새로운 release로 관리 Repository에서 원하는 Helm Chart를 검색/설치 후 Release 생성 Helm v3 helm v2 -> v3에서 변화가 큰 듯 - Helm..

[K8s] 쿠버네티스 컨트롤 플레인(Control Plane) 컴포넌트

https://kubernetes.io/ko/docs/concepts/overview/components/ 쿠버네티스 컴포넌트 쿠버네티스 클러스터는 컴퓨터 집합인 노드 컴포넌트와 컨트롤 플레인 컴포넌트로 구성된다. kubernetes.io 정의 Cluster에 관한 전반적인 결정(스케줄링 등)을 수행 클러스터 이벤트를 감지하고 반응 - ex) deployment의 replicas 필드에 대한 요구 조건이 충족되지 않으면 새로운 pod를 구동시킴 특징 클러스터 내 어떤 머신에서든 동작 가능 그러나 보통 동일 머신상에서 모든 Control Plane 컴포넌트를 구동 그리고 해당 머신에서는 사용자 컨테이너를 동작시키지 않음 kube-apiserver 쿠버네티스 API를 노출하는 컴포넌트 - 쿠버네티스 Cont..

[K8s] Kubernetes (K8s)

https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/ 쿠버네티스란 무엇인가? 쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식할 수 있고, 확장 가능한 오픈소스 플랫폼으로, 선언적 구성과 자동화를 모두 지원한다. 쿠버네티스는 크고 빠르게 성장하 kubernetes.io 정의 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성 있는 / 확장 가능한 오픈소스 플랫폼 이름 유래 키잡이(helmsman), 파일럿을 뜻하는 그리스어에서 유래 K8s의 8은 K와 s 사이에 있는 "ubernete" 8글자를 의미 쿠버네티스가 필요한 이유 프로덕션 환경에서는 애플리케이션을 실행하는 컨테이너가 필요 - ex) 컨테이너가 다운되면 다른 컨..

[클라우드] 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) 클라우드 등장 : 직접 인프라를 구성할 필요가 사라짐 종합..

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

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

[데이터플랫폼] 최신 데이터 인프라 이해하기 #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로 저장..