◈ 추천의 글 ◈
쿠버네티스가 공개된 지 6년이 지났고, 공개됐을 때부터 저자는 쿠버네티스 개발 조직에 소속돼 실제로 쿠버네티스 프로젝트에 첫 번째 커밋을 수행했다(공개 릴리즈를 위한 클린 리포지터리를 만드는 과정에서의 유지보수를 담당했다). 쿠버네티스는 기대 이상의 성공을 거뒀다고 자신 있게 말할 수 있다. 성공의 기반에는 규모가 큰 오픈소스 커뮤니티와 현실 세계와의 격차를 해소하려는 기여자들의 적극적인 참여가 있었다.
쿠버네티스를 일반 기업에 제공한다는 사명으로 공동 설립한 스타트업 헵티오(Heptio)에서 저자와 협력할 수 있었다. 헵티오에서 성공의 대부분은 실질적인 문제를 해결함에 있었고, 쿠버네티스의 실제 사용자와 직접 연결하는 동료의 노력이 있었기에 감사의 뜻을 전하고 싶다. 쿠버네티스를 운영 환경에서 실제로 작동하는 데 필요한 도구를 팀에 제공하기 위한 현장의 경험을 전하려는 목적을 두고 이 책을 썼다.
저자의 전체 경력은 애플리케이션 팀과 개발자를 대상으로 한 시스템 구축을 기반으로 한다. 마이크로소프트 인터넷 익스플로러(Microsoft Internet Explorer)에서 시작해 윈도우 프레젠테이션 파운데이션(Windows Presentation Foundation)에서 계속되고, 구글 컴퓨트 엔진(Google Compute Engine)과 쿠버네티스 및 클라우드로 전환됐다. 현장에서 여러 차례 ‘플랫폼 빌더의 저주’라는 현상으로부터 플랫폼을 구축하는 사람들이 고통받는 것을 목격했다. 플랫폼을 구축하고 있는 사람들은 수십 년 동안 안정적인 기반을 구축하는 문제에 초점을 맞추고 있다. 그러나 그 안정적인 기반에 초점을 맞추면서 현재 사용자가 겪고 있는 문제에 사각지대가 생기게 된다. 종종 사용자가 구축하고 있는 것을 실제로 사용하도록 연결하는 시간에 문제가 없도록 빠른 시일 내 구축하는 시간이 부족하다.
‘플랫폼 빌더의 저주’를 극복하려면 플랫폼 빌더의 거품 바깥 쪽에서 적극적으로 해결 가능한 정보를 찾는 방법이 유일한 해결책이다. 정보를 찾는 일은 헵티오의 필드 엔지니어링 팀(그리고 이후에는 VMware 쿠버네티스 아키텍처 팀(KAT))이 수행했다. 이 팀은 업계의 다양한 고객이 쿠버네티스에서 성공을 도움을 주는 것 이상으로, 플랫폼의 ‘이론’이 어떻게 적용되는지 현실에 반영할 수 있는 중요한 창구 역할을 했다.
플랫폼 빌더 문제는 쿠버네티스와 CNCF(Cloud Native Computing Foundation)를 중심으로 구축되고 번창하는 생태계로 인해 더욱 악화된다. 여기에는 CNCF의 일부 프로젝트와 더 넓은 영역에 속한 프로젝트 모두가 포함된다. 이 생태계를 ‘아름다운 혼돈’이라고 표현한다. 이는 서로 다른 정도의 중복과 성숙함을 가진 열대 우림과 같은 프로젝트의 모습이다. 그러나 열대 우림을 탐험하는 것처럼 이 생태계를 탐험하려면 헌신의 시간이 필요하고 위험이 따른다. 쿠버네티스 세계에 첫 발을 딛은 사용자는 더 큰 생태계의 전문가가 되기 위한 시간이나 능력이 부족하다.
이 책은 쿠버네티스 생태계의 구성요소를 소개한다. 또한 개별 도구와 프로젝트가 언제 적합한지를 보여주며, 독자가 고민하는 문제를 적절한 도구로 평가하는 방법을 소개한다. 특정 도구를 사용하라고 독자에게 권하는 것을 넘어, 문제의 종류를 해결하는 일련의 도구를 이해하는 더 큰 프레임워크이며, 문제를 가지고 있는지 여부를 파악하고, 다양한 접근 방식의 강점과 약점을 알고, 실제로 시작하는 데 실용적인 조언을 제공한다. 쿠버네티스를 프로덕션 환경으로 전환하려는 사람에게 매우 가치 있는 정보가 가득하다.
-조 베다(Joe Beda),
VMware 탄주(Tanzu)의 수석 엔지니어, 쿠버네티스 공동 창시자
◈ 이 책에서 다루는 내용 ◈
◆ 견고한 쿠버네티스 기반 플랫폼 구축에 필요한 능력 이해하기
◆ 실제 경험을 활용해 쿠버네티스 기반 플랫폼을 구축할 때 자주 발생하는 함정 피하기
◆ 쿠버네티스의 아키텍처 디자인을 확장 가능한 플랫폼으로 개발하기
◆ 내/외부 사용자의 고민을 분석해 목적에 맞는 플랫폼 개발하기
◆ 도구 및 추상화에 대한 선택과 결정으로 쿠버네티스 플랫폼의 복잡성 제어하기
◆ 쿠버네티스로 운영환경 방식을 확인하고 일반적인 도구 적용 옵션 및 절충점 알아보기
◈ 옮긴이의 말 ◈
현대의 디지털 비즈니스에서의 핵심은 ‘애플리케이션과 시스템 운영’이다. 기업은 고객의 요구사항을 충족시키고, 경쟁력을 확보하며, 혁신을 추구하기 위해 안정적이고 확장 가능한 소프트웨어를 개발하고 운영해야 한다. 이를 수행하기 위한 도구와 기술 중 하나로 쿠버네티스(Kubernetes)가 많은 부분에서 각광받고 있다.
쿠버네티스는 컨테이너 오케스트레이션 플랫폼으로, 애플리케이션의 배포, 확장, 관리, 스케일링, 복구 및 모니터링을 자동화하고 단순화하는 역할을 한다. 이를 통해 기업은 애플리케이션을 더 빠르게 개발하고, 안정적인 운영환경에서 애플리케이션을 제공할 수 있으며, 다양한 클라우드 환경에서의 이식성을 확보할 수 있다.
이 책은 쿠버네티스를 운영환경에서 안정적이고 확장성 있게 운영하기 위한 핵심 원칙과 실무 노하우를 전달한다. 다년 간의 경험과 업무에서의 실제 사례를 토대로 쿠버네티스로 운영 환경을 개선하고 효율성을 높이는 방법을 제시하고 있다.
쿠버네티스는 학습 곡선이 가파르고 다양한 측면이 존재하는 복잡한 기술이다. 여러분은 쿠버네티스의 운영 및 관리에 필요한 기본 원칙과 심화 내용을 이해하고, 실제 운영 환경에서 문제를 해결하는 방법을 얻을 수 있을 것이다.
쿠버네티스의 세계로 안내하고, 안정성과 확장성을 갖춘 운영환경을 구축하는 여정을 함께 떠나는 동반자로서, 쿠버네티스를 마스터하고 현대의 디지털 비즈니스에서 성공을 거두는 데 도움이 될 것을 확신한다.