안녕하세요, 괴짜 개발자 namedboy 입니다.😁
여러분은 혹시 쿠버네티스를 사용해보셨나요? 아니면 혹시 도커를 업무에 쓰고 계신가요?
만약 아직 사용하지 않으신다면 최대한 빠르게 배우신 다음에 업무에 하나씩 차근 차근 적용해보시는 것을 강력하게 추천 드립니다. 이미 아주 많은 회사가 도커와 쿠버네티스를 사용하면서 엄청난 업무 효율호를 이뤄냈기 때문이죠.
도커는 컨테이너라는 개념을 사용하여 개발자가 만들어내는 애플리케이션을 쉽게 패키징하여 구축과 테스트 및 배포를 쉽게 할 수 있도록 지원하는 소프트웨어 플랫폼입니다.
패키징하여 관리할 수 있다는 장점 때문에 이미 많은 회사에서 도커를 사용하여 개발을 진행하고 있습니다.
패키징된 애플리케이션이라 새롭게 설치하거나 서버를 켜서 세팅할 필요가 전혀 없어지게 되죠.
설정이나 OS 환경을 구축하기 위해 매번 동일한 작업을 하지 않아도 되죠.
패키징된 도커 컨테이너를 올리기만 하면 뿜 하고 서버가 실행 되니까요.
덕분에 분산시스템에 더 최적화된 개발을 할 수 있게 됩니다.
애플리케이션 단위를 좀 더 잘게 나눠서 패키징 하면 각각의 기능에 대해 유지보수를 더 쉽게 할 수 있도록 도와줍니다.
대신에 새로운 문제가 생기게 됩니다.
도커를 사용해서 더 작은 단위의 크기로 애플리케이션을 만들면서 더 많은 애플리케이션 컨테이너가 생기게 됩니다.
전통적인 소프트웨어 방식은 하나의 애플리케이션에 여러개의 기능을 담아서 처리하도록 만드는 방식이었습니다만, 도커 컨테이너를 도입하면서 그 많은 기능들이 전부 각각 하나의 어플리케이션으로 동작하게 되었습니다.
이러한 구조를 사용하는 방식을 마이크로서비스 아키텍처라고 합니다.
하지만 언제나 장점과 단점은 공존합니다.
이 마이크로서비스 아키텍처도 당연히 장점만 존재하지 않습니다.
서비스의 규모에 따라 운영 방식에 따라 작업이 더 늘어나게 되는 경우도 생깁니다.
아주 큰 규모가 아니라고 하더라도 여러개의 도커 컨테이너를 관리하는 것 자체는 쉬운일은 아닙니다.
컨테이너를 업데이트 하는 일이나 컨테이너에 문제가 발생한 경우 또는 각각의 컨테이너가 통신을 하는 방법도 운영하는 입장에서는 쉽지 않은 문제로 인식됩니다.
그래서 컨테이너 오케스트레이션 플랫폼이 생겨나게 됩니다.
쿠버네티스는 이 컨테이너 오케스트레이션 플랫폼중 하나인데 구글에서 10년 이상의 시간동안 내부에서 사용하고 외부로 공개한 오픈소스 입니다.
구글 내부에서 먼저 테스트하면서 검증을 거치기 때문에 안정성도 높고 운영에 필요한 다양한 기능들을 담고 있습니다.
제가 읽은 책 Managing Kubernetes에는 쿠버네티스에서 지원하는 기능들의 상세한 소개와 실제 쿠버네티스 클러스터를 운영할 때 도움이 되는 직접적인 내용들을 다루고 있습니다.
쿠버네티스에 대해 다루는 책인 만큼 앞부분에서는 쿠버네티스가 어떤 것인지에 대한 내용도 같이 다루고 있습니다.
인프라 엔지니어로 일을 하고 계신 분이라면 쉽게 이해할 수 있을 만한 내용들입니다.
저는 개발자지만 배포나 테스트 CI/CD와 관련해서 쿠버네티스를 어떤식으로 활용하면 좋을지에 대해 고민하고 사용했었습니다.
그 때는 따로 책을 사지 않고 쿠버네티스의 메뉴얼을 보면서 진행 했습니다.
사용해보니 발견 할 수 있었던 문제점들이 많았는데 이 책을 읽다보니 그 때 문제들을 어떻게 풀어야 하는지에 대해 방법적인 많은 해결방법을 찾을 수 있었습니다.
정말 실질적으로 도움이 되는 책이라고 생각이 들었습니다.
다만 초심자용은 아니기 때문에 초보자라면 개념적인 부분을 충분히 이해하신 뒤에 책을 읽는 것을 추천 드립니다.
만약 쿠버네티스를 운영하고 있고 여러 문제점들을 해결해야 하는 상황이라면 이 책이 많은 도움이 되실꺼라 생각합니다.
Managing Kubernetes는 이곳에서 구매가 가능합니다.