클라우드는 이제 새로운 기술이 아니다. 시스템을 설계하거나 서비스를 개발할 때 당연히 클라우드를 먼저 고려한다. 아니, 클라우드에서 설계하거나 개발하지 못하는 이유를 설명하는 시대가 됐다.
최근 몇 년간 단순히 클라우드에서 서비스를 하는 것을 넘어 클라우드의 특성을 잘 살려서 사용할 수 있는 클라우드 네이티브에 관심이 많아지고 있다. 클라우드 네이티브는 기술 기반에 따라 인프라스트럭처, 플랫폼, 애플리케이션으로 구분된다. 개발자 중 상당수가 클라우드 네이티브 애플리케이션에 관심이 있으며, 이는 결국 마이크로서비스 아키텍처에 대한 관심으로 귀결된다. 아마존과 넷플릭스에서 적용해 기업의 혁신을 이끌어냈다고 회자되면서 많은 사람들의 주목을 받았고 지금도 현재진행형이다.
마이크로서비스 아키텍처는 비즈니스 민첩성과 빠른 배포를 위해 많은 기업에서 앞다투어 적용하려고 한다. 다만 서비스를 작게 만들어 개발하고 운영하는 것 그 이상을 생각해야 한다. 이를 위해 많은 플랫폼과 오픈소스가 필요하며, 때로는 마이크로서비스 패턴을 자신의 코드 안에 넣어야 할지도 모른다. 이런 어려움을 다 해결해주진 못하지만 상당 부분 도움을 주는 기술이 서비스 메시다. 서비스 메시는 마이크로서비스 아키텍처의 적용을 넘어 장점을 더 잘 드러나게 하는 기술이다.
마이크로서비스와 더불어 비즈니스 민첩성과 빠른 배포를 위한 IT 조직의 문화와 프로세스, 시스템의 혁신을 강조하는 데브옵스에서도 서비스 메시가 재능을 발휘할 수 있다. 개발자는 서비스 개발에 초점을 맞추고, 운영자는 운영에 초점을 맞춰야 하는 것은 당연함에도, 운영에 필요한 코드가 서비스 개발에 들어가 있는 경우는 흔히 볼 수 있다. 서비스 메시는 운영에 필요한 코드를 분리해냄으로써 이를 완벽하게 지원한다.
쿠버네티스는 마이크로서비스 아키텍처와 잘 어울리는 플랫폼으로서 국내에서 많은 사례와 개발자 운영자를 보유하고 있다. 대표적인 서비스 메시 기술인 Istio는 개발 초기부터 쿠버네티스와의 결합을 염두에 두고 시작했기 때문에, 쉽게 적용할 수 있다.
쿠버네티스가 훌륭한 플랫폼임에도 능숙하게 활용하기에는 시간이 걸리듯 서비스 메시 기술도 능숙하게 적용하기에는 쉽지 않다. 이 책은 그런 고민에 훌륭한 해답을 제시한다. 다만 대표적인 세 가지 서비스 메시 기술을 모두 담기에는 부족한 지면과 서비스 메시가 빠르게 변화하고 진화한다는 점은 이 책의 한계다. 저자가 이 책을 쓴 당시와 지금은 많이 다른 측면이 있다. 버전도 많이 올라가 있으며, 대표적인 세 가지 서비스 메시 기술도 초기와는 다르게 서로 비슷하게 발전해 나가고 있다. 그럼에도 저자는 업데이트 된 버전을 온라인으로 지속해서 제시하고 있으므로 독자에게는 다행이라 할 수 있다.
아직까지도 서비스 메시와 관련된 책이 많지 않은 상황에서, 이 책으로 서비스 메시 아키텍처를 조금 더 잘 이해하고, 더 나은 시스템을 만들기를 기대한다.
이 책은 서비스 메시로 마이크로서비스 플랫폼을 조금 더 나은 플랫폼으로 진화시키고자 노력하는 사람을 대상으로 하며, 쿠버네티스와 같은 플랫폼에 대해 기본적으로 이해가 있는 독자를 대상으로 하는 만큼 어려울 수 있다. 모르는 내용이 있을 경우 관련 책을 읽거나 교육을 받기를 권한다. 이 책을 읽고 AWS와 Azure, GCP와 같은 Public Cloud에서 서비스 메시를 실습하고 테스트하는 것은 아주 좋은 방법이다. 특히 각 공급자마다 특성이 있기 때문에 이를 잘 비교해 선택한다면 서비스 메시는 여러분의 일을 많이 도와줄 것이다.
함께 일하는 팀원인 공역자 최철원 님의 소개로 이 책의 원서를 읽어보게 됐다. 클라우드 네이티브는 최근 가장 관심을 받고 있는 주제이므로 이미 관련 책이 다수 출간돼 있지만, 이 책에서 클라우드 네이티브를 어떻게 풀어나갔는지가 궁금해서 읽기 시작했고 읽어 나갈수록 많은 것을 느낄 수 있었다. 왜 이 시점에 클라우드 네이티브를 이야기하는지, 여기에 필요한 기술과 방법은 무엇인지에 대해 저자는 마치 대화하는 것처럼 풀어나간다.
지나치기 쉬운 내용을 설명하고, 주제와 주제 사이를 자연스럽게 이어나간다. 이는 저자만 이 가진 장점이라 생각한다. 이 책을 읽으면서 저자에 관심이 생겨 코넬리아 데이비스의 여러 글을 접했는데, 이를 통해서도 저자가 IT에 대한 깊은 이해를 바탕으로 인사이트를 갖고 있음을 알게 됐다.
이런 좋은 책을 번역하게 돼서 스스로 깊은 자부심을 느끼며, 여러분에게도 강력히 추천한다. 다만, 흔히 쓰는 개념을 우리말로 옮기면서 다소 어색한 표현이 곳곳에 등장하는 것은 부정할 수 없다. 많은 번역서를 읽으면서 "왜?"라는 질문을 많이 했었는데, 직접 번역하는 입장이 되니 이해되는 점이 많았다. 또한 저자가 이야기하듯 책을 썼기 때문에 최대한 그 느낌을 살리고자 했으나 아무래도 자연스럽지 않은 부분이 남아있음을 고백한다. 이 점에 대해 널리 혜량해주길 바란다. 아마도 이 책의 독자는 우리와 같은 일을 하고 있는 업계의 동료일 것이다. 이 책을 동료에게 소개하고 추천하는 마음으로 번역에 임했으며, 최선을 다했다는 점을 알리고 싶다.
- 양준기
최근 ChatGPT와 Open AI는 IT 업계의 화두다. 어떤 이는 IT 혁명이라도 하고, 어떤 이는 산업의 혁명이라고도 말한다. 이 화두의 정점에 있는 회사는 다름아닌 Microsoft다. 이 거대한 기업이 IT 시장에서 변화를 이끌어내는 것을 보면 마치 스타트업이 움직이는 것 같이 민첩하고 기민하다. Microsoft의 변화의 기반을 이끌어내는 저변에는 Azure가 있다. IT 업계, 특히 Cloud 업계에서의 3개의 공룡은 시장에서 치열하게 경쟁하고 있는데, 최근의 Microsoft의 행보를 보면 1위 가능성이 없어 보이진 않는다.
2022년 공정거래위원회가 발표한 '클라우드 서비스 분야 실태 조사 연구'에 따르면 한국 내에서 클라우드 시장 점유율은 AWS가 1위, Azure는 그다음을 차지하고 있다. 하지만Microsoft는 IT 종사자 또는 사용자라면 많이 사용하고 있는 Microsoft 365, GitHub, Visual Studio와 같은 친숙한 서비스를 제공하기 때문에 낯설지만은 않을 것이다. 최근 몇 년 동안 기업에서도 이런 도구들을 활용해 Microsoft Azure와 통합해 사용하는 기업들이 늘어나고 있다. 내가 만난 고객들은 서비스의 수준에 대해서 서비스의 차이는 있지만, 수준은 차이가 나지 않는다고 고백하고 있다.
내가 보는 Azure의 특징을 3가지 정도로 보고 있다(물론 개인적인 생각임을 밝혀 둔다). 첫째, Azure의 서비스는 PaaS, SaaS를 통한 서비스 통합에 중점을 두고 있다. Microsoft는 수십 년 동안 자사의 제품을 개발, 공급하고 있으며, 이 제품은 개발자가 사용하는 개발 도구부터 엔터프라이즈의 대규모 데이터를 처리하는 데이터베이스까지 없는 제품이 없을 정도로 많다. 이런 개발 노하우를 적극적으로 Azure에 반영하고 있다. 특히 자사 제품과의 서비스 통합은 비교할 수 없을 정도로 발군이다. 대표적인 예는 Active. Directory와 Azure Active Directory와의 연계 통합이다.
둘째, Azure는 기존의 Microsoft 제품을 사용하는 고객에게는 비용적으로 이점이 있다. Window Server, SQL Server를 사용하는 고객은 Azure 하이브리드 혜택을 통해 타사 대비 최대 85% 이상 절감할 수 있다. 이 하이브리드 혜택은 RHEL(Red Hat Enterprise Linux), SLES (SUSE Linux Enterprise Server)를 사용하는 Linux VM에 대해 적용할 수 있으며 최대 76%까지 비용을 아낄 수 있다.
셋째, IT 생태계 확장을 통한 서비스의 다양성이다. Microsoft Azure는 Red Hat, VMWare, Oracle과 같은 기존의 IT 강자들을 포함해 많은 오픈소스 생태계를 Azure 서비스에 담고 있다. 위에도 언급했지만 비용적인 측면뿐만 아니라 Azure의 네이티브 서비스에도 각 영역의 시장에서 유력한 제품들을 탑재하고 있다. 이는 비용과 서비스 유지보수 측면에서 아주 유리하다. 특히 Azure Spring Apps와 같은 서비스는 Azure에서 Spring Boot 애플리케이션을 바로 사용할 수 있게 해주며, VMWare Tanzu와 같은 엔터프라이즈 서비스는 마켓플레이스를 통해서 제공하고 있다.
이런 관점에서 보면 Azure는 클라우드 관련자라면 반드시 알아야 한다. 하지만 현재 국내에서 Azure와 관련된 책은 찾기가 어렵다. 특히 인프라에 초점을 맞춰 작성된 책은 더더욱 드물다. 그런 측면에서 이 책은 가치가 있다. 서문에서도 밝혔지만, 클라우드의 장점을 최대한 활용하기 위해서는 애플리케이션뿐만 아니라 인프라도 그에 맞게 네이티브 인프라로 구축돼야 한다. 이 책에서는 그렇게 하기 위한 대부분의 내용을 설명하고 있으며, 이를 Azure로 구축하기 위한 방법과 다른 컴퓨팅 솔루션을 활용하는 방법까지 폭넓게 밝히고 있다.
하지만 클라우드 시장이 빠르게 변화하는 만큼 가장 최신의 정보를 담지 못하는 점은 아쉽다. 옮긴이 주석에도 남겼지만 실제 실습을 하다 보면 수정돼야 하는 내용도 있다. 그럼에도 불구하고 이 책은 클라우드의 개념은 알면서도 Azure 기반에서 클라우드 네이티브 인프라를 구성하려는 독자에게 훌륭한 책이다. 또한 Azure 기반이 아니더라도 이 책에서 제시하는 다른 클라우드 솔루션과 접근 방법은 클라우드 인프라 담당자에게 도움이 될 수 있다.