반응형

Data Engineering 14

[MLflow] 7. 엔터프라이즈급 아키텍처 구축 - Backend & Artifact Store

안녕하세요! IT 전문 블로거 팬돌프입니다.MLflow 시리즈가 어느덧 후반부인 7부에 도달했습니다. 지난 6부에서는 도커를 활용해 모델을 배포하는 방법까지 알아보았죠. 이제 여러분은 모델을 만들고 서비스할 수 있는 능력을 갖추셨습니다.하지만, 혼자가 아니라 5명, 10명의 팀원과 함께 일한다고 상상해 보세요. "김 대리, 그 실험 결과 로그 파일 좀 메일로 보내줘." "서버 디스크가 꽉 차서 더 이상 모델 저장이 안 되는데요?"이런 비효율적인 상황을 막기 위해선 로컬이 아닌 중앙 집중형 서버 아키텍처가 필수적입니다. 오늘은 엔터프라이즈 환경에서도 끄떡없는 견고한 MLflow Server 구축 방법을 아주 상세하게 파헤쳐 보겠습니다.7부: 엔터프라이즈급 아키텍처 구축 - Backend & Artifact..

[MLflow] 1. MLOps의 이해와 MLflow 입문

안녕하세요! IT 전문 블로거 팬돌프입니다. 오늘도 저의 블로그를 찾아주셔서 진심으로 감사합니다.오늘부터 우리는 머신러닝의 세계에서 가장 핫한 키워드인 MLOps(Machine Learning Operations), 그중에서도 사실상의 표준 도구로 자리 잡은 MLflow를 함께 정복해 보려고 합니다.개발자나 데이터 과학자라면 누구나 한 번쯤 겪어보셨을 거예요. 모델을 만드는 것보다 그 모델을 관리하고 배포하는 게 훨씬 더 골치 아프다는 사실을요. 이 시리즈를 통해 여러분의 머신러닝 라이프사이클이 얼마나 쾌적해질 수 있는지 보여드리겠습니다.자, 그럼 대망의 첫 번째 이야기, MLOps의 이해와 MLflow 입문 편을 시작해 볼까요?1. 우리는 왜 MLOps를 고민해야 할까요?머신러닝 모델을 개발하다 보면 ..

[MLflow] MLflow 정복하기: MLOps의 시작과 끝

안녕하세요! IT 전문 블로거 팬돌프입니다. 만나서 반갑습니다.데이터 엔지니어링과 인공지능의 세계는 넓고도 깊지요. 그중에서도 머신러닝 모델의 개발부터 배포, 운영까지 전 과정을 효율적으로 관리하는 MLOps(Machine Learning Operations)는 이제 선택이 아닌 필수 요소가 되었습니다.MLOps의 가장 대표적이고 강력한 오픈소스 도구인 MLflow를 주제로 블로그를 연재하시려는 계획, 정말 훌륭합니다! 독자들이 기초부터 심화 아키텍처까지 완벽하게 이해할 수 있도록, 제가 총 8부작의 상세 커리큘럼을 기획해 보았습니다.각 단계별로 반드시 다뤄야 할 기술적 포인트들을 짚어드릴 테니, 이 흐름대로 글을 작성하시면 훌륭한 시리즈가 될 것입니다.[시리즈 기획] "MLflow 정복하기: MLOps..

[Kafka] 번외편. 실전 운영의 필수 도구 - UI for Apache Kafka로 클러스터 시각화 및 관리하기

안녕하세요! IT 전문 블로거 팬돌프입니다.시리즈를 공식적으로 마무리한 뒤에도, 독자분들께서 가장 현실적이고 필요로 하는 부분에 대한 요청이 계속되고 있습니다. 바로 "터미널이 아닌, 눈으로 보고 카프카를 관리할 수 있는 도구"에 대한 요청입니다.CLI 명령어(kafka-topics.sh, kafka-consumer-groups.sh)로만 카프카를 관리하는 것은 매우 번거롭고, 특히 컨슈머 랙(Lag)을 실시간으로 확인하는 것은 고통스러운 일입니다. 그래서 특별히 번외편을 준비했습니다.오늘 [번외편]에서는 개발/운영자들이 가장 많이 사용하는 웹 기반 관리 도구 중 하나인 "UI for Apache Kafka"에 대해 자세히 알아보겠습니다. 이 도구 하나만 설치해도 여러분의 카프카 운영 효율이 10배는 올..

[Kafka] 15. 시리즈를 마치며 - 카프카와 함께하는 데이터 엔지니어의 미래

안녕하십니까! 여러분의 영원한 IT 러닝메이트, 팬돌프입니다.약 두 달간의 대장정이었습니다. [1편]에서 "왜 카프카인가?"라는 질문으로 시작했던 우리의 여행이, 어느덧 [15편]이라는 종착역에 도착했습니다.그동안 제 블로그를 찾아주시고, 긴 글을 읽으며 함께 고민해 주신 모든 개발자분께 진심으로 감사의 말씀을 드립니다. 여러분의 열정 덕분에 저 또한 다시 한번 깊이 있게 공부할 수 있었습니다.오늘은 이 긴 여정을 갈무리하는 총정리 시간과 함께, 앞으로 카프카가 데이터 생태계에서 어떤 모습으로 진화할지, 그리고 여러분의 커리어에 어떤 영향을 미칠지 이야기하며 시리즈의 마침표를 찍으려 합니다.마지막까지 힘차게 달려볼까요?[15편] 시리즈를 마치며 - 카프카와 함께하는 데이터 엔지니어의 미래1. 우리가 걸어..

[Kafka] 14. [특별편] 카프카, 언제 사용하고 언제 사용하지 말아야 할까?

안녕하세요! 여러분의 기술적 고민을 함께 나누는 IT 러닝메이트, 팬돌프입니다.지난 13편의 긴 여정 동안, 우리는 아파치 카프카의 내부 구조부터 설치, 개발, 운영, 그리고 보안까지 숨 가쁘게 달려왔습니다. 이제 기술적인 "How(어떻게)"에 대해서는 충분히 익히셨으리라 생각합니다.하지만 엔지니어에게 가장 중요한 질문은 "Why(왜)"와 "When(언제)"입니다. 망치를 들었다고 해서 모든 것이 못으로 보여서는 안 되니까요. 카프카는 강력하지만, 모든 상황에 정답은 아닙니다.오늘 [14편]에서는 카프카를 도입하려고 고민 중인 분들을 위해 카프카가 반드시 필요한 순간과 절대 쓰면 안 되는 순간을 명확하게 정리해 드립니다. 의사결정에 큰 도움이 되실 겁니다.[14편] [특별편] 카프카, 언제 사용하고 언제..

[Kafka] 13. [운영] 안전한 클러스터 만들기 - 카프카 보안 (Security)

안녕하세요! 여러분의 든든한 IT 기술 파트너, 팬돌프입니다.지난 [12편]에서는 카프카를 안정적으로 운영하기 위한 모니터링과 튜닝 노하우를 공유해 드렸습니다. 이제 우리 시스템은 성능도 좋고 건강 상태도 체크가 가능한 상태가 되었습니다.하지만, 아직 마지막 퍼즐이 남았습니다. 바로 보안(Security)입니다.여러분의 카프카 클러스터가 인터넷망에 노출되어 있다면? 혹은 사내망이라도 누구나 접속해서 회사의 기밀 데이터를 읽어갈 수 있다면? 상상만 해도 끔찍하지 않으신가요?오늘 [13편]에서는 아무나 접근할 수 없도록 카프카에 튼튼한 자물쇠를 채우는 방법, 카프카 보안의 3요소(암호화, 인증, 권한)에 대해 실습과 함께 상세하게 알아보겠습니다.[13편] [운영] 안전한 클러스터 만들기 - 카프카 보안 (S..

[Kafka] 10. [고급] 정확히 한 번 처리 (Exactly-Once Semantics)와 트랜잭션

안녕하세요! 여러분의 든든한 IT 러닝메이트, 팬돌프입니다.지난 [9편]에서는 카프카 스트림즈의 상태 기반 처리와 윈도우잉에 대해 다뤘습니다. 데이터를 실시간으로 집계하고 분석하는 기술, 정말 매력적이었죠?하지만, 금융 거래나 재고 관리 시스템을 다루는 개발자라면 마음 한구석에 불안함이 남아있을 겁니다."만약 네트워크 오류로 결제 요청이 두 번 전송되면 어떡하지?""집계 중에 서버가 죽어서 데이터가 일부 누락되면 어떡하지?"데이터 엔지니어링의 성배(Holy Grail)라 불리는 주제, 바로 '정확히 한 번(Exactly-Once)' 처리입니다. 분산 시스템에서 가장 어렵다는 이 문제를 카프카는 어떻게 풀어냈을까요?오늘 [10편]에서는 카프카의 신뢰성을 정점으로 끌어올리는 정확히 한 번 전송(EoS)과 트..

[Kafka] 9. [심화] 카프카 스트림즈 - 상태 저장 처리와 윈도우잉

안녕하세요! 여러분의 IT 지식 파트너, 팬돌프입니다.지난 [8편]에서는 카프카 스트림즈의 기초인 filter나 map 같은 기능들을 다뤘습니다. 들어오는 데이터를 하나하나 변환하거나 걸러내는 작업이었죠. 이것을 무상태(Stateless) 처리라고 합니다.하지만 현실 세계의 데이터 분석은 그렇게 단순하지 않습니다. "최근 1시간 동안 가장 많이 팔린 상품은?" "주문 내역에 사용자 주소 정보를 합쳐서 보고 싶어."이런 질문에 답하려면 스트림즈 애플리케이션은 기억력을 가져야 합니다. 즉, 이전 데이터를 저장하고 있어야 하죠.오늘 [9편]에서는 카프카 스트림즈의 진정한 강력함, 상태 기반 처리(Stateful Processing)와 시간을 다루는 윈도우잉(Windowing) 기술에 대해 깊이 있게 알아보겠습..

[Kafka] 8. 카프카 생태계 확장 (2) - 실시간 처리의 시작, 카프카 스트림즈 (Kafka Streams)

안녕하세요! 여러분의 기술 성장을 돕는 IT 러닝메이트, 팬돌프입니다.지난 [7편]에서는 카프카 커넥트(Kafka Connect)를 통해 코딩 없이 데이터를 카프카로 가져오고 내보내는 법을 배웠습니다. 이제 데이터 파이프라인은 완성되었습니다.하지만 단순히 데이터를 A에서 B로 옮기는 것만으로는 부족할 때가 많습니다. 데이터가 흐르는 그 순간에, 불필요한 데이터를 걸러내거나(Filter), 포맷을 변경하거나(Map), 실시간으로 집계(Count)를 해야 한다면 어떻게 해야 할까요?오늘 소개해 드릴 카프카 스트림즈(Kafka Streams)가 바로 그 해답입니다. 별도의 무거운 클러스터 없이도 강력한 실시간 분석 애플리케이션을 만들 수 있는 비결, 지금 바로 공개합니다![8편] 카프카 생태계 확장 (2) -..

[Kafka] 7. 카프카 생태계 확장 (1) - 카프카 커넥트 (Kafka Connect)

안녕하세요! 여러분의 성장을 돕는 든든한 IT 파트너, 팬돌프입니다.지난 [6편]에서는 카프카가 데이터를 절대 잃어버리지 않는 '불사조' 같은 복제(Replication) 메커니즘에 대해 알아보았습니다. 이제 카프카 클러스터 자체는 매우 튼튼해졌습니다.그런데 말입니다, 아무리 튼튼한 파이프라인이 있어도 그 안에 흐를 '물(데이터)'이 없다면 무용지물 아닐까요?개발자 여러분, 혹시 DB에 있는 데이터를 카프카로 옮기기 위해 매번 자바(Java)나 파이썬(Python)으로 프로듀서 코드를 짜고 계신가요? 혹은 카프카 데이터를 S3에 저장하기 위해 컨슈머 코드를 작성하고 계신가요?오늘 소개해 드릴 카프카 커넥트(Kafka Connect)를 알게 되신다면, 이제 그 지루한 반복 작업(No-gada)에서 탈출하실..

[Kafka] 6. 카프카의 불사조 비결 - 데이터 복제(Replication)와 ISR

안녕하세요! 여러분의 든든한 IT 기술 파트너, 팬돌프입니다.지난 [5편]에서는 카프카 클러스터의 두뇌 역할을 하는 주키퍼와 차세대 관리 모델인 KRaft에 대해 알아보았습니다. 이제 클러스터가 어떻게 관리되는지는 이해하셨을 겁니다.하지만 개발자로서 우리는 늘 최악의 상황을 상상해야 합니다. "만약 브로커 서버의 하드 디스크가 갑자기 고장 난다면?" "데이터 센터에 화재가 발생해 브로커가 전원이 꺼진다면?"내 소중한 데이터가 영영 사라지는 걸까요? 걱정하지 마세요. 카프카는 '불사조'와 같습니다. 죽어도 되살아나고, 데이터는 절대 잃어버리지 않도록 설계되었거든요.오늘 [6편]에서는 카프카의 가장 강력한 무기이자 고가용성(High Availability)의 핵심인 복제(Replication)와 ISR에 대..

[Kafka] 5. 카프카 클러스터의 두뇌 - 주키퍼(ZooKeeper) 그리고 KRaft의 등장

안녕하세요! 꼼꼼하고 친절한 IT 러닝메이트, 팬돌프입니다.지난 [4편]에서는 데이터를 처리하는 컨슈머와 그들의 협업 방식인 컨슈머 그룹에 대해 알아봤습니다. 이제 우리는 프로듀서, 브로커, 컨슈머라는 카프카의 핵심 3요소를 모두 이해하게 되었습니다.그런데 말입니다, 브로커가 여러 대 모인 '클러스터'는 도대체 누가 관리하는 걸까요? "누가 죽었는지, 누가 살았는지, 누가 대장인지"를 판단하는 '두뇌'가 어딘가에 있어야 하지 않을까요?오늘 [5편]에서는 오랫동안 카프카의 안방마님 역할을 해왔던 주키퍼(ZooKeeper)와, 그 자리를 대체하며 새로운 시대를 연 KRaft(Kafka Raft) 모드에 대해 깊이 있게 다뤄보겠습니다. 운영을 위해선 반드시 알아야 할 내용입니다.[5편] 카프카 클러스터의 두뇌..

[Kafka] 2. 카프카 핵심 아키텍처 (1) - 토픽, 파티션, 오프셋

안녕하세요! 여러분의 친절한 IT 러닝메이트, 팬돌프입니다.지난 [1편]에서는 "왜 우리가 기존 메시지 큐가 아닌 카프카를 써야 하는가?"에 대해 이야기 나눴습니다. 카프카가 대용량 데이터를 처리하기 위한 '고속도로'라는 점, 이제 확실히 이해하셨죠?오늘은 그 고속도로가 실제로 어떻게 건설되어 있는지, 카프카의 내부 아키텍처를 샅샅이 파헤쳐 보려고 합니다. 겉으로 보면 하나의 시스템 같지만, 그 안에는 효율적인 처리를 위한 정교한 톱니바퀴들이 맞물려 돌아가고 있거든요.토픽, 파티션, 오프셋. 카프카를 다루는 개발자라면 자다가도 튀어나와야 할 핵심 용어들입니다. 지금 바로 시작합니다![2편] 카프카 핵심 아키텍처 (1) - 토픽, 파티션, 오프셋1. 카프카 아키텍처의 큰 그림: 브로커(Broker)가장 먼..

반응형