클라우드 네이티브 컴퓨팅 – Adrian Cockcroft

Written by Adrian Cockcroft * Disclaimer


@adrianco의 사진 – 무지개에 의한 굴절의 클라우드 네이티브 컴퓨팅.

Amazon Web Services는 Cloud Native Computing Foundation에 가입했습니다.  저는 앞으로 AWS를 대표하여 CNCF 이사회 멤버로 참여하고, AWS 오픈 소스 팀의 Arun Gupta 와 함께 CNCF 프로젝트 및 워킹 그룹과 기술 협력을 진행할 예정입니다. 이러한 활동이 무엇을 의미하는지 잘 설명하기 위해, 저는 “클라우드 네이티브”가 의미하는 바를 설명해 드리고 싶습니다.

저는 2009 년에 Netflix에서 일하고 있었습니다. 당시 엔지니어링 팀은 AWS로 마이그레이션  해야하는 새로운 애플리케이션 아키텍처 패턴을 파악하고 있었습니다.  팀 내에서는 eBay, Yahoo 및 Google에서 근무한 다양한 사람들이 클라우드에서 대규모 배포를 자동화하는 방법을 적용 중이었고, Werner Vogels 와 AWS로부터 새로운 아이디어를 배웠습니다 . 결과적으로 신규 아키텍처에는 클라우드 네이티브(Cloud Native)라는 기본 가정이 생겼습니다. 2010 년에 우리는 클라우드 마이그레이션에 관해 공개적으로 이야기하기 시작했고, 2012 년에는 NetflixOSS 로 통칭 되는 일련의 오픈 소스 프로젝트를 통해 전혀 새로운 플랫폼을 구축할 수 있었습니다.

우리가 이러한 ‘클라우드 네이티브’ 패턴을 모두 만들지는 않았지만, 함께 모아서 하나의 아키텍처로 모으고, 대규모로 구현하고, 공개적으로 이야기 하고, 코드를 공유하는 공유하였습니다.

클라우드 네이티브 아키텍처는 주문형(On-deman) 제공, 글로벌 배포, 탄력성 높은 클라우드 서비스를 최대한 활용합니다. 이를 통해 개발자 생산성, 비즈니스 민첩성, 확장성,  가용성, 활용도 및 비용 절감 효과를 크게 높일 수 있습니다.

온-디멘드 방식은 사람들이 클라우드로 이동하는 가장 중요한 이유인 경우가 많지만, 기존 응용 프로그램 배포 시간을 단축 시키는 것은 아닙니다.  하지만, 클라우드 네이티브에서는 자원에 대한 임시(ephemeral ) 및 불변(immutable) 배포을 할 수 있습니다 . 자원 확보에 수주가 걸리는 구형 배포 모델에서는 불필요한 추가 용량을 미리 주문하고, 사용 후에도 돌려 주기를 꺼려하는 문제를 만들어냅니다. 대신,  클라우드 네이티브 패턴은 임시로 인스턴스를 받아오고, 콘테이너를 빌드하고, 필요한 만큼 많은 동일한 복제본을 배포하고, 사용 후에는 그냥 반납하고, 코드가 변경 될 때마다 새로운 이미지를 만들어 다시 반복할 수 있습니다. NetflixOSS는 맞춤형 Amazon Machine Images (AMI)를 만들어 이러한 개념을 적용하였습니다.

기존에 물리적인 다수 데이터 센터에  애플리케이션을 배포하는 것은 상대적으로 드물고 구현하기 복잡합니다. 하지만, 클라우드 네이티브 아키텍처는 다중 가용 영역(Zone) 및 다중 리전(Region) 배포가 기본입니다. 이러한 배포 모델을 효과적으로 작업하려면, 개발자는 분산 시스템 개념을 잘 이해하고 있어야합니다.  그래서, 넷플릭스에서 개발자를 뽑을 때 “CAP 정리“는 주요 인터뷰 질문 중에 하나였습니다.  기술의 엄청난 향상에도 불구하고, 빛의 속도는 일정하므로 네트워크 대기 시간, 특히 글로벌 다중 리전 대기 시간은 항상 제약이 될 것입니다.

클라우드 네이티브 아키텍처는 높은 확장성을 가집니다. 2010년 Netflix의 AWS 사용에 대해 처음 발표 했을 때, 당시 수 천 개의 AWS 인스턴스에서 프론트 엔드 애플리케이션을 실행하면서 미국 내 약 1,600만 고객을 지원했습니다.  최근 Netflix는 AWS로 완벽하게 마이그레이션하였고, 현재 1 억 명이 넘는 글로벌 고객을 보유하고 있으며, 100,000 개가 넘는 인스턴스를 실행하고 있습니다. 구현된 세부 사항은 몇 년에 걸쳐 변경되었지만, 근본적인 아키텍처 패턴은 동일합니다.

시간이 지남에 따라 클라우드 네이티브 아키텍처의 구성 요소는 실험적이고, 경쟁력 있는 구현을 통해 정의 된 외부 서비스로 이동하고 있습니다. 데이터베이스, 데이터 사이언스 파이프 라인, 콘테이너 스케줄러 및 모니터링 도구가 진화 하는 것을 목격했습니다.  이 부분에서 바로 CNCF가 이를 모아서 협력하는 역할을 합니다. CNCF 기술 감독 위원회(Technical Oversight Committee)는 어느 클라우드 기반 프로젝트가 실험 단계에서 경쟁력 있는 단계로 넘어갈 때, 이를 검토하고, 인큐베이션 여부를 결정합니다. 너무 빠르게 움직여서 조금 혼란스러운 클라우드 기술 변화를 추적하려는 고객에게 CNCF가 승인하는 프로젝트 브랜드는 이를 판단하는데 조금이나마 도움을 줄 것입니다.  이들은 하나의 통합된 클라우드 네이티브 아키텍처가 아니라 느슨하게 연결된 모음으로서, CNCF 회원이나 프로젝트 사용자에게 특정 프로젝트에 대한 편향적인 지지를 하지 않습니다.

CNCF는 현재 10 개의 프로젝트를 진행하고 있으며 콘테이너 오케스트레이션을위한 Kubernetes, 모니터링을 위한 Prometheus, 애플리케이션 흐름 모니터링을 위한 Open Tracing, 로깅을 위한 Fluentd, 서비스 혼합를 위한 Linkerd, 원격 프로 시저 호출을 위한 gRPC, 서비스 디스커버리를 위한 CoreDNS, Containerd 콘테이너 런타임에 대한 Rkt, 콘테이너 네이티브 네트워킹에 대해서는 CNI 등이 있습니다.

AWS의 관점에서 여러 CNCF 프로젝트와 워킹 그룹에 관심을 가지고 있습니다. 특히, AWS는 Containerd 프로젝트 시작 멤버 였습니다. Containerd 커뮤니티를 통해 고객이 더 나은 경험을 할 수 있도록 어떻게 도와 줄 수 있는지 많은 아이디어를 가지고 있습니다. 또한, 곧 출시 될 Amazon ECS Task Networking 기능은 CNI 플러그인으로 작성되었으며, CNI가 AWS의 모든 콘테이너 기반 네트워킹의 기반이 될 것으로 기대합니다. 또한, 최근 CNCF 조사에 따르면 응답자의 63 %가 Amazon EC2에서 Kubernetes를 호스팅 한다고 합니다. Arun Gupta는 AWS에서 Kubernetes 활용을 위한  다양한 옵션Kops 기반 활용 방법에 대한 블로그를 쓰고 있습니다.

제가 맡고 있는 AWS의 오픈 소스팀의 사명은 오픈 소스 프로젝트, 커뮤니티 및 재단과 협력하고 AWS 엔지니어링에서 더 많은 오픈 소스 공헌을 유도하고 장려하는 데 도움을 주는 것입니다. AWS는 이미 CNCF를 운영하고 있는 The Linux Foundation의 멤버이며, 현대적인 분산 시스템에 최적화된 새로운 컴퓨팅 패러다임을 발명하고 추진하기 위한 업계의 동료들과 함께 일하기를 기대 합니다.

AWS에서 오픈 소스 활동에 대한 최신 정보를 얻으시려면, @AWSOpen을 팔로우 해 주시기 바랍니다.

Disclaimer
본 글은 AWS의 클라우드 전략 담당 부사장인 Adrian Cockcroft의 허락하에 Cloud Native Computing의 한국어 편집본입니다. 본 글은 Adrian Cockcroft의 개인적인 의견이며, 본 블로그의 의견이 아닙니다. 한국어 번역 기사인 본 글에 대한 인용 및 사용 허가는 오직 Adrian Cockcroft의 영문 원글에 효력이 있습니다. 본 글을 인용하실 때에는 이러한 주의 사항을 반드시 추가하시기 바랍니다. (Disclamar: This article is a Korean translation of Cloud Native Computing written by Adrian Cockcroft. It is not opinion of this blog and this translation may contain some errors or incorrect expressions. Please only refer to the original article that was published in English for accuracy.)

Rainbow over the cloud

Channy Yun(@channyun)님의 공유 게시물님,

- ;

Disclaimer- 본 글은 개인적인 의견일 뿐 제가 재직했거나 하고 있는 기업의 공식 입장을 대변하거나 그 의견을 반영하는 것이 아닙니다. 사실 확인 및 개인 투자의 판단에 대해서는 독자 개인의 책임에 있으며, 상업적 활용 및 뉴스 매체의 인용 역시 금지함을 양해해 주시기 바랍니다. 본 채널은 광고를 비롯 어떠한 수익도 창출하지 않습니다. (The opinions expressed here are my own and do not necessarily represent those of current or past employers. Please note that you are solely responsible for your judgment on checking facts for your investments and prohibit your citations as commercial content or news sources. This channel does not monetize via any advertising.)