IT트렌드 알아보기 - 클라우드 네이티브(Cloud Native)의 개념과 정의

 클라우드 네이티브(Cloud Native)라는 용어를 들어보셨나요?
디지털 네이티브, 클라우드 네이티브, 최근에는 AI 네이티브까지 다양한 용어들이 생겨나고 활용되고 있습니다.

 그중 오늘 이야기할 클라우드 네이티브는 기존의 IT환경, 인프라들이 클라우드로 전환 (클라우드화) 되면서 개념이 등장하게 되었고 최근에는 더 빈번하게 활용되고 있는 것 같습니다.
 저는 아무래도 IT회사에 근무하기 때문에 더 많이 이야기를 듣게 되는 부분도 있고 업무를 하면서 연관되는 것들도 많아지다 보니 관련해서 클라우드 교육을 듣기도 하고 또 개인적으로 궁금한 사항들을 스터디해보고 있습니다.

 그래서 오늘은 제 나름대로 공부한 내용을 정리하면서 같이 공유하고자 하는 마음에 글을 준비했습니다.

클라우드-네이티브의-개념과-정의-what-is-cloud-native
클라우드 네이티브(Cloud Native)의 개념과 정의, 작가 macrovector 출처 Freepik


반응형

 코로나19로 인한 팬데믹을 거치면서 디지털 서비스에 대한 수요가 급증하게 되었고, 이에 따라 많은 기업들은 디지털 트랜스포메이션(Digital Transformation)을 추진하게 되었습니다. 이 과정에서 기존의 IT인프라를 클라우드로 전환하는 사례들이 많이 발생했습니다.

 하지만 기존의 인프라 자원만을 데이터 센터에서 클라우드로 전환하고, 사용자에게 제공되는 애플리케이션은 기존의 온프라미스 형태로 클라우드로 옮기다 보니 한계점이 나타나기 시작했습니다.
 온프라미스 형태의 어플리케이션은, 관련된 모든 기능이 하나의 애플리케이션에 통합 개발되어 패키징 되어 있다 보니 애플리케이션을 개발, 실행, 관리하는 업무에 클라우드 컴퓨팅의 장점을 활용하기 어렵기 때문입니다.

 클라우드 컴퓨팅의 장점을 최대한으로 활용하기 위해서는 IT인프라, 아키텍처뿐만 아니라 애플리케이션의 구성까지 전반적인 변화가 필요한데, 이 전체적인 변화의 과정을 통칭하는 개념으로 "클라우드 네이티브(Cloud Natve)"가 등장했습니다.

 클라우드 네이티브라는 용어는 2015년 처음으로 사용되었고, 개념이 등장한 이후 다양한 기관/기업에서는 비슷하면서도 다른 해석들을 하고 있습니다.

1. CNCF(Cloud Native Computing Foundation)의 정의

CNCF는 2015년 '클라우드 네이티브'라는 용어를 처음 사용하며 만들어진 리눅스 재단 소속의 비영리 단체로, 클라우드 네이티브로 전환할 수 있는 기술의 정의 및 오픈소스 기술들을 관리하는 역할을 수행하고 있습니다.
CNCF에서 선언했던 클라우드 네이티브(Cloud Native)의 정의는 다음과 같습니다.

  • 클라우드 네이티브 기술은 조직이 퍼플릭(Public), 프라이빗(Private), 하이브리드(Hybrid) 클라우드와 같은 현대적이고 동적인 환경에서 확장 가능한 애플리케이션을 개발하고 실행할 수 있게 함.
  • 컨테이너(Container), 서비스 메쉬(Service Mesh), 마이크로서비스(Microservice), 불변 인프라(Immutable Infrastructure), 선언적 API(declarative API)가 전형적인 접근 방식이다.
  • 이러한 방식들을 통해 회복성, 관리 편의성, 가시성을 갖춘 느슨하게 결합된 시스템을 가능하게 함
  • 또한, 자동화 시스템과 함께 사용하면 엔지니어는 최소한의 노력으로 영향이 큰 변경을 빈번하고 예측가능하게 수행할 수 있음

2. 다양한 클라우드 네이티브 정의

많은 IT기업에서는 자체적으로 클라우드 네이티브의 정의를 내리고 있습니다.

기업 정의
아마존(Amazon) 클라우드 컴퓨팅 환경에서 현대적 애플리케이션을 구축, 배포 및 관리할 때의 소프트웨어 접근 방식
(https://aws.amazon.com/ko/what-is/cloud-native/)
마이크로소프트(MS) 클라우드 네이티브 아키텍처 및 기술은 클라우드에서 빌드된 워크로드를 디자인, 생성 및 운영하는 접근 방식으로, 클라우드 컴퓨팅 모델을 최대한 활용
(https://learn.microsoft.com/ko-kr/dotnet/architecture/cloud-native/definition)
오라클(Oracle) 클라우드 제공 모델에서 제공하는 분산 컴퓨팅을 활용하기 위해 애플리케이션을 구축 및 실행하는 개념
(https://www.oracle.com/kr/cloud/cloud-native/what-is-cloud-native/)

아마존, 마이크로소프트, 오라클 등 글로벌 CSP들은 클라우드 네이티브의 정의를 약간씩은 다르게 하고 있지만, 전체적인 개념은 크게 다르지 않음을 알 수 있습니다.
특히 모든 정의에서 공통적으로 언급되는 클라우드 환경을 활용한다는 점이 가장 중요한 개념이라고 이해할 수 있습니다.

3. 결론

클라우드 네이티브라는 개념이 매우 넓어서, 어느 관점에서 보느냐에 따라 차이가 날 수는 있습니다.
아키텍처 구축 관점에서는 컨테이너를 생성하고 관리할 수 있도록 최적화 된 아키텍처를 설계하는 방법론으로 볼 수 있고, 애플리케이션 관점에서는 독립적인 단위(마이크로서비스)로 개발하고 배포/관리하는 소프트웨어의 접근방식으로도 볼 수 있으며, 조직 문화 관점에서는 DevOps, CI/CI, 애자일 방법론 등의 개발 생산성을 높이는 SW개발문화 중 하나로도 볼 수 있습니다.

이렇게 클라우드 네이티브라는 개념은 아키텍처, 애플리케이션, 조직문화, 프로세스, 기술 등 연관된 용어들과 결합하여, 그 의미를 확장하고 있습니다.

하지만 결론적으로 넓은 의미에서 클라우드 네이티브란,
클라우드 컴퓨팅 모델의 이점을 최대한 활용하여

정보시스템을 구축 및 실행하는 환경을 의미라고 할 수 있습니다.


 이번 글에서는 클라우드 네이티브(Cloud Native)의 개념과 정의에 대해서 정리를 해보았습니다. 사실 글만으로는 쉽게 이해하기 어려운 부분이 있지만, 대부분의 IT환경들이 클라우드화 되면서 클라우드 네이티브라는 개념이 더욱 보편적으로 활용될 것이라고 예상할 수 있습니다.
 오늘 다룬 주제인 클라우드 네이티브와 관련해서는 개념/정의부터 클라우드 컴퓨팅의 장점, 왜 전환해야 하는지에 대한 이유 그리고 그 적용사례 등 많은 이야기를 해볼 수 있을 것 같습니다. 시간이 되는대로 스터디한 내용들을 정리하면서 다른 글로 공유드리도록 하겠습니다.

참고자료 및 사이트
1. 클라우드 네이티브 정보시스템 구축을 위한 발주자 안내서 (2021, 표준 프레임워크 포털)
2. CSP사 홈페이지(Amazon, Microsoft, Oracle)
3. 가비아 라이브러리 (클라우드 네이티브 정의부터 사례까지.zip)
반응형