가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 끊임없이 질문을 던지는 책
·
Ops
👀 들어가며 먼저 명확히 밝혀두고 싶은 점은, 제가 이 책을 읽은 목적이 단순히 면접을 대비하기 위함은 아니라는 것입니다.AI가 엔지니어의 자리를 위협하는 시대일수록, 단순한 코딩 능력보다는 전체를 바라보는 설계 역량이 생존의 핵심이 될 것이라 생각하고 있습니다.그동안 현업에서 대규모 데이터를 깊게 다뤄볼 기회가 상대적으로 적었기에, 이번 학습을 통해 대규모 시스템을 구축할 때 갖춰야 할 필수적인 관점과 인사이트를 얻고 싶어 이 책을 접하게 되었습니다.이 책은 시스템 설계의 전반적인 과정을 면접의 형태로 풀어나갑니다.그 과정에서 제가 얻은 인사이트를 공유드리겠습니다. 🤔 모든 구조에는 이유가 있다!이 책의 가장 큰 매력은 결코 단정적인 정답만을 제시하지 않는다는 점입니다. "이런 구조도 있어, 그런데..
Kubernetes 확장판: Gateway API
·
Ops
들어가며저는 현업에서 Kserve를 활용해서 모델 서빙을 하고 있습니다.Kserve는 Serveless 모드로 설치하는 것이 표준이었고, Istio/Knative와 함께 설치해서 사용하고 있었습니다. 그런데 0.15 버전부터는 RawDeployment 모드(0.16 버전부터는 Standard 모드라고 불림) 설치가 생겼고, LLM 서빙 시에는 해당 설치 방법이 권장된다고 합니다. 아무래도 Serverless 모드의 핵심인 'Scale-to-zero'는 LLM에서 비현실적으로 다가왔던 것 같습니다. 기가바이트 단위의 모델 가중치를 다시 로드하는 데 시간이 너무 오래 걸리기 때문입니다.Knative의 구성요소가 많고 디버깅도 어려워 걷어내고 싶다는 니즈가 있었는데, 여러 곳에서 유사한 고민이 있었던 것 같습..
MSA 환경에서의 API Gateway
·
Ops
요즘 MSA에 대한 지식을 새로 정의하고 있습니다.그러다보니, API Gateway의 역할과 중요성에 대해서 깨닫고 있는데요.이번 글에서 관련된 내용을 정리해보고자 합니다.MSA에 관련한 내용은 아래 글 참고해주세요!https://deep-flame.tistory.com/48 클라우드 네이티브 애플리케이션 디자인 패턴: AI 플랫폼 개발자의 아키텍처 성찰들어가며: 쿠버네티스를 쓴다고 모두 '클라우드 네이티브'는 아닙니다.저는 GPU 기반의 LLM 학습 및 서빙 플랫폼을 개발하고 있습니다.GPU 리소스 집약적인 로직을 다루다 보니 당연히 쿠버네티스deep-flame.tistory.com API Gateway란 무엇이며, 왜 필요한가?마이크로서비스 아키텍처(MSA)에서는 수많은 서비스가 존재합니다. API..
클라우드 네이티브 애플리케이션 디자인 패턴: AI 플랫폼 개발자의 아키텍처 성찰
·
Ops
들어가며: 쿠버네티스를 쓴다고 모두 '클라우드 네이티브'는 아닙니다.저는 GPU 기반의 LLM 학습 및 서빙 플랫폼을 개발하고 있습니다.GPU 리소스 집약적인 로직을 다루다 보니 당연히 쿠버네티스 환경을 사용하고 있으며, 나름대로 클라우드 네이티브한 환경에서 개발하고 있다고 생각했습니다.그러나 구현에만 집중한 나머지 결합도가 높아 문제가 발생했습니다.예를 들어 학습과 서빙 파트를 분리하고 싶은데, 현재 개발된 내용으로는 어렵습니다. 만약 MSA (MicroService Architecture)를 고려하여 느슨하게 서비스들을 개발했다면 어렵지 않게 문제를 해결했을 것 같다는 생각이 들었습니다.단순히 툴을 사용하는 것을 넘어, 클라우드 환경에 최적화된 설계의 본질을 이해하고 싶어 이 책을 접했습니다. 클라우..
복잡한 네트워크를 간단하게! Kubernetes Service를 알아보자 (ClusterIP, NodePort, LoadBalancer)
·
Ops
개인적으로 Kubernetes 네트워크가 복잡하다고 생각합니다.그도 어쩔 수 없는 게 클러스터 내부에 수 많은 애플리케이션들을 연결시키기 위해서는 그럴 수 밖에 없었을 것이라~ 생각합니다.그래도 나름 간단하게 하기 위한 노력도 보이니 우리 함께 최대한 이해해봅시다! Kubernetes Service 왜 필요해? 🤔먼저 우리가 생각해봐야할 게 있습니다.왜 이게 필요할까요? Pod의 성질이는 Pod의 성질에 관련이 있습니다.예를 들어 Deployment를 통해서 애플리케이션 배포를 관리하고 있는데, Pod가 모종의 이유로 죽게되고 다시 살아났다면 이 전 Pod가 사용했던 IP와 새로 생성된 Pod의 IP는 다르게 생성됩니다.그래서 Pod IP를 직접 사용하는 것은 위험한 방법이라고 할 수 있습니다.이를 해..
MLOps Engineer와 함께 쿠버네티스(Kubernetes) 구조 살펴보기
·
Ops
Kubernetes 구조를 간단하게 살펴보려고합니다.제가 아는 선에서 최대한 쉽게 글을 써볼게요~ Kubernetes 구조먼저 Kubernetes 공식 페이지에 소개된 구성도부터 살펴봅시다.뭐가... 많아보이죠? 그런데 Kubernetes의 목적을 이루기 위한 최소한의 요소들이라고 생각해요.Control Plan클러스터를 전체적으로 관리하기 위한 요소들이 모여있습니다. 중앙 관제탑이라고 보시면 됩니다. 여기서는 클러스터 내 노드와 애플리케이션들을 관리하기 위한 컴포넌트들이 유기적으로 동작합니다. API Server동작을 위해서는 Kubernetes에 호출이 필요하겠죠? 이러한 동작을 관리하는 컴포넌트입니다.외부 호출 뿐만 아니라, Kubernetes는 모든 호출들은 api로 관리합니다. 예를 들어 Pod..