전체 글

· Kafka
개요 이번 포스팅에서는 Confluent Kafka를 설치하는 방법을 설명하고, 간단하게 Confluent에서 제공하는 Control Center를 사용하여 토픽을 생성하고 메시지를 생성(produce)하는 방법을 알아보겠습니다. 포스팅의 내용을 따라 하면 Confluent Kafka를 실습하기 위한 최소한의 준비를 마친 것으로 간주할 수 있으며, 아래 화면을 확인할 수 있을 것입니다. 대상 독자 Confluent Kafka를 처음 다루는 개발자 로컬에서 Confluent Kafka를 자유롭게 사용하고 싶은 개발자 단계 Confluent Kafka란 무엇인가? Confluent Kafka 설치하기 토픽 생성하기 토픽에 메시지 생성하기 마치며 1. Confluent Kafka란 무엇인가? Confluent..
· Python
개요 작업 A와 작업 B가 서로 독립적으로 실행되어야 하는 상황이 종종 있습니다. 작업 A의 실패 여부가 작업 B에 영향을 미치지 않고 작업 B가 성공적으로 수행되어야 하는 경우가 그중 하나입니다. 이러한 상황에서는 작업 A와 작업 B를 어떻게 처리해야 하는지 살펴보겠습니다. 1. 왜 독립적인 처리가 필요한가? 작업 A와 작업 B는 상호 독립적으로 실행되어야 합니다. 즉, 작업 A의 실패 여부가 작업 B에 아무 영향을 미치지 않아야 합니다. 따라서 작업 A의 결과가 작업 B에 영향을 미치지 않는 한, 작업 B는 성공적으로 실행되어야 합니다. 2. 처리 방법 작업 A와 작업 B를 독립적으로 처리하는 방법에 대해 알아보겠습니다. 2.1. 예외 처리를 통한 처리 만약 작업 A의 결과를 작업 B에서 사용해야 하..
· MLOps
1. Why mlflow 이 그림을 엄청 많이 봤다. 이 그림을 통해 보통 하고자 하는 말은 ML 시스템을 운영하기 위해 ML Code 이외에도 다양한 컴포넌트가 많다는 것이다. 하지만, 머신러닝 애플리케이션에서 가장 핵심적인 컴포넌트는 모델이라고 생각한다. 이 핵심적인 "모델"이 어떻게 학습되었고 어떻게 저장되었으며 어떻게 배포되어 있는지 이를 제일 잘할 수 있도록 설계된 툴이 MLflow가 아닐까. 2. What we need mlflow의 설명을 보자, "An open source platform for the machine learning lifecycle". 모델의 모든 생애주기 관리하기 위한 플랫폼으로서 mlflow는 발전하고 있다. 그렇게 된다면 유지관리가 엄청 편해지겠지만 그렇기엔 아직 성..
· ETC
1. 왜 불편하게 살았는가? 할 일들은 많고 시간은 한정되어 있다. 그렇기 때문에 나의 리소스를 어떻게 할당해서 사용하느냐는 너무너무 중요한 문제임을 느끼고 있다. 또한, 회사의 규모와 문화에 따라 특정 직무가 수행하는 "일반적인 일"이 달라지기도 하고 추가로 다른 직무의 일도 하기도 한다. 나에게 Terraform 코드를 관리하는 일이 조금 그러했다. 담당하는 MS에 필요한 데이터독 Integration, Monitor, Metric 등의 리소스를 관리해야 했다. 이를 잘 관리하기 위해선 HCL 언어에 대한 이해도 필요하고 CI / CD도 필요하고 PR 정책 등도 필요하겠지만 많은 시간을 투자하지 않았다. 이게 허용이 되는 기준은 "운영상의 문제가 없는 한" 이라고 생각한다. 운영상의 문제가 있을 것이..
· Kubernetes
1. Helm 이란 Helm의 정의를 CircleCI 블로그에서 가져왔다. Helm은 설정 파일을 하나의 재사용 가능한 패키지로 결합하여 Kubernetes 애플리케이션의 생성, 패키징, 설정, 배포를 자동화하는 도구입니다. 내가 생각하는 Helm의 핵심 기능은 "패키징"이라고 생각한다. 패키지를 만들고 잘 만들어둔 패키지는 다양한 곳에서 사용할 수 있다. 마치 만능 양념장과 같다. 쿠버네티스 스터디 중 "Helm을 언제 사용하는 건지 이해가 안되니 개념도 이해가 잘 안 된다"라는 이야기를 하신 분이 있었다. 그에 대한 대답으로 나는 "필요하다고 느껴질 때 사용하게 될 것이다"라고 생각한다. nginx 웹 서버를 하나를 쿠버네티스에 배포한다고 해보자. 그러면 일반적으로 Deployment 리소스를 생성할..
· Kubernetes
개인 로컬 환경에서 손쉽게 쿠버네티스 환경을 구성할 수 있는 방법을 알아보자. Steps Docker Desktop 설치 Kubernetes 사용 설정 Pod 생성해 보기 1. Docker Desktop 설치 Docker Desktop은 도커 환경을 쉽게 구성할 수 있게 도와주는 데스크톱 애플리케이션이다. 도커 설치법을 찾아보면 대게 Docker Desktop 설치가 가이드된다. 도커 데스크톱은 도커의 핵심이 되는 도커 엔진에 그리고 도커를 쉽게 사용하기 위한 GUI 툴 정도라고 이해하고 있다. Docker Desktop = Docker Engine + 이외의 유용한 기능들 이외의 유용한 기능들에 Kubernetes 클러스터를 구성할 수 있게 도와주는 게 포함되어 있다! Docker Desktop 설치 ..
· Kubernetes
Kubernetes를 Control 하기 위한 kubectl과 클러스터를 쉽게 전환하기 위한 kubectx를 알아보자. Steps kubectl kubectx OpenLens 1. kubectl kubernetes control의 준말이라고 알고 있고 나는 kube control이라고 부른다. 말 그대로 쿠버네티스를 컨트롤하기 위한 도구이다. 그리고 CLI 툴이다. 쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식할 수 있고, 확장 가능한 오픈소스 플랫폼 뜬금없이 쿠버네티스의 정의를 가져왔지만 우리는 kubectl을 통해 쿠버네티스가 할 수 있는 모든 일들을 할 수 있다. kubectl 설치로 이동하면 각 환경에 맞는 kubectl 을 설치할 수 있게 가이드되어 있다. 2. kubectx ..
· ETC
2.1. 쿠버네티스란? 쿠버네티스는 여러 서버로 구성된 클러스터 환경에서 컨테이너화된 프로세스를 관리하기 위한 컨테이너 오케스트레이션 플랫폼 컨테이너 오케스트레이션 컨테이너를 여러 서버에 걸쳐 여러 개를 실행시키는 데 체계적으로 관리하는 기술 쿠버네티스를 통해 컨테이너 배포 확장 스케줄링 자동화 2.1.1. 컨테이너 오케스트레이션이란? 다수의 서버 위에서 컨테이너의 전반적인 라이프사이클을 관리해주는 플랫폼 쿠버네티스를 컨테이너 오케스트레이션을 해주는 하나의 툴 일뿐임 쿠버네티스는 컨테이너의 아래 역할들을 함 실행 및 배포 이중화와 가용성 보장 수평확장 및 축소 스케줄링 네트워크 설정 health 상태 모니터링 설정값 관리 2.1.2. 데이터 센터 운영체제 쿠버네티스가 여러 컴퓨터의 집합으로 이루어진 하나..
ssuwani
Oops!!