본문 바로가기

 

[기고] 모두가 이야기하지만 일부만 아는 클라우드 네이티브하다는 것에 관하여

 

- 조훈(Hoon Jo) CNCF 엠버서더 -

 

요즘 클라우드를 넘어 `클라우드 네이티브`하게 라는 말이 자주 쓰이고 있습니다.

일반 기업뿐만 아니라 공공 부문에서도 정부 서비스를 개발할 때 클라우드 네이티브를 중심으로 진행해야 한다고 언급할 정도입니다.

 

[ 행정안전부의 클라우드 네이티브 중심으로 공공부문을 전환해야 한다는 보도자료]

 

그렇다면 이러한 클라우드 네이티브라는 것은 대체 어떤 것이길래 많은 곳에서 이야기를 하고 있을까요?

 

1. 클라우드 네이티브하다는 것은?

안녕하세요, 저는 클라우드 네이티브 컴퓨팅 재단(CNCF, Cloud Native Computing Foundation)의 앰버서더로 활동하고 있으며, 같은 재단의 클라우드 네이티브 교육 앰버서더인 Kubestronaut 인증을 가지고 있습니다.

 

따라서 다양한 기업에서 그리고 공공에서 클라우드 네이티브를 정의하고 있지만, 주로 저는 클라우드 네이티브 컴퓨팅재단에서 설명하고 있는 클라우드 네이티브를 기준으로 설명드리겠습니다.

(한국어 번역도 있지만, 일부 내용이 최신이 아니고 정확하게 해당 표현을 설명하고자 하면 영어 원문이 좀 더 정확해서 원문을 사용했음을 밝힙니다.)

 

Definition

Cloud native practices empower organizations to develop, build, and deploy workloads in computing environments (public, private, hybrid cloud) to meet their organizational needs at scale in a programmatic and repeatable manner. It is characterized by loosely coupled systems that interoperate in a manner that is secure, resilient, manageable, sustainable, and observable.

Cloud native technologies and architectures typically consist of some combination of containers, service meshes, multi-tenancy, microservices, immutable infrastructure, serverless, and declarative APIs — this list is non-exhaustive

[클라우드네이티브컴퓨팅재단에서 정의하는 클라우드 네이티브]

* 출처 :  https://github.com/cncf/toc/blob/main/DEFINITION.md#definition

 

위의 내용을 기반으로 클라우드 네이티브하다는 것은 크게 3가지로 나눌 수 있습니다.

 

2. 첫 번째 정의

다양한 클라우드 환경(퍼블릭, 프라이빗, 하이브리드)에서 프로그래밍 방식을 사용해서 반복적으로 워크로드(애플리케이션)를 확장/축소할 수 있어야 합니다.

 

Cloud native practices empower organizations to develop, build, and deploy workloads in computing environments (public, private, hybrid cloud) to meet their organizational needs at scale in a programmatic and repeatable manner.

 

반복적으로 코드를 사용할 수 있는 것에 대한 예제를 살펴보도록 하겠습니다.

 

다음의 Yaml 코드를 EKS(Amazon AWS), AKS(MS Azure), GKE(Google GCP) 그리고 온프레미스 어디에 배포해도 동일한 결과를 얻을 수 있습니다.

del-deploy.yaml

[ 코드del-deploy.yaml]

EKS, AKS, GKE  버추얼박스

[상단부터 EKS, AKS, GKE 그리고 버추얼박스 위에 설치된 쿠버네티스에 동일한 Yaml 코드 배포]

 

이와 같이 클라우드 네이티브하게 작성된 코드를 이용한다면 코드의 대한 재사용성을 높이고 해당 코드를 어떤 환경에도 손쉽게 배포하고 운영할 수 있으므로 생산성을 극대화할 수 있게 됩니다.

 

3. 두 번째 정의

느슨하게 결합된 시스템으로 인해 상호운용성을 높일 수 있고, 이러한 특성으로 보안, 관측가능성 외에 다양한 이점을 얻을 수 있습니다.

 

It is characterized by loosely coupled systems that interoperate in a manner that is secure, resilient, manageable, sustainable, and observable.

 

느슨한 결합(Loose Coupling)은 구성 요소간의 의존성을 줄여서 독립적인 동작을 가능케 하고, 이를 통해 전체 시스템의 안정화와 유연성을 함께 가지고 갈 수 있게 합니다. 또한 이렇게 느슨한 결합을 가지고 있는 애플리케이션이라면 이미 구조적으로 마이크로서비스 아키텍처(MSA, MicroService Architecture)에 적합하게 설계되어 있다고 볼 수 있습니다.

 

그러한 흐름에 따라 클라우드 네이티브에는 주로 모놀리식(Monolithic) 아키텍처보다는 기능별로 구성 요소들을 나누어 해당 구성 요소를 필요에 따라 배포의 수를 조절하고, 더이상 필요하지 않다면 삭제할 수는 마이크로서비스 아키텍처를 사용합니다. 이렇게 설계된 아키텍처라면 비즈니스적인 상황에 따라 애플리케이션의 형태 구조를 빠르게 변경 적용하여 운영할 수 있습니다.

 

마이크로서비스 아키텍처에 대한 예시로 Online-Boutique 애플리케이션을 배포하고 이를 이스티오(Istio) 서비스 메시를 통해서 확인하면 다음과 같습니다.

배포된Online-Boutique 애플리케이션을 이스티오(Istio)에서 확인

[ 배포된Online-Boutique 애플리케이션을 이스티오(Istio)에서 확인]

 

4. 세 번째 정의

클라우드 네이티브한 아키텍처는 제한이 없는 다양한 형태로 서비스를 제공할 수 있습니다.

 

Cloud native technologies and architectures typically consist of some combination of containers, service meshes, multi-tenancy, microservices, immutable infrastructure, serverless, and declarative APIs — this list is non-exhaustive

예를 들면 컨테이너를 기반으로 한 멀티 테넌시(multi-tenancy) 구조를 가지고 다양한 사용자 또는 고객이 공동으로 관리하고 운영하는 클러스터를 가질 수 있으며, 이는 매우 안정적으로 운영할 수 있는 환경을 가집니다. 이 환경에서 서버리스(Serverless), MLOps등을 손쉽게 구현할 수 있으며, 현재 가장 인기 있는 LLM에서의 소중한 자원인 GPU를 효율적으로 운영하는 데에도 사용될 수 있습니다.

 

이러한 구조를 가지기 위해 사용되는 각 대표적인 구성 요소들을 다음과 같이 그림으로 정리할 수 있습니다.

(개별 요소들에 대한 설명을 확인하고자 하신다면, 설명링크를 눌러서 확인하시기 바랍니다.)

 

 2024년 쿠버네티스 표준 아키텍처

[ 2024년 쿠버네티스 표준 아키텍처/설명 링크]

* 출처 : https://github.com/sysnet4admin/_Book_k8sInfra/tree/main/docs/k8s-stnd-arch/2024]

 

이와 관련하여 기본적인 뼈대가 되는 쿠버네티스, 도커, CI/CD(젠킨스) 그리고 관측가능성(Observability, 프로메테우스와 그라파나)을 실제로 실습하고 다루어 보고 싶으시다면, 다음의 책을 추천드립니다.

컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커

[컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커- 저자 조훈, 심근우, 문성주]

 

5. 클라우드 네이티브 하게 한다면?

지금까지의 설명에서 알 수 있는 것처럼 클라우드 네이티브하게 하게 위해서는 단순히 개발, 운영 등의 관련 모든 부서의 전반적인 혁신이 필요합니다. 이러한 혁신에서는 다소 감내해야 하는 노력과 시간이 필요하지만 그 결과는 특정 회사와 시스템에 종속되지 않는 진정한 자유로움을 얻으실 수 있으실 겁니다.

 

또한 클라우드 네이티브하게 동작하는 애플리케이션이라면 어떠한 환경에서도 실행이 가능하므로 개발자분들이 더 이상 동작하는 환경을 신경쓰지 않아도 됩니다. 따라서 개발 조직을 개발에만 전념하는 형태로 운영할 수 있습니다.

 

마지막으로 중요한 비용적인 관점에서 클라우드 네이티브하게 설계되어 운영된다면 최소한의 인력으로 많은 부분이 자동화 그리고 필요할 때 자원을 사용할 수 있도록 설계가 가능하기 때문에 저비용 고효율화가 가능한 형태로 운영하실 수 있습니다.

 

보다 많은 분들이 클라우드 네이티브하게 설계 운영하는 시작점이 되길 바랍니다. 🙂

 

감사합니다.

조훈 드림.

 

[ 여분의 글 ]

 

‘CNCF 앰서버더’ 란?

CNCF 앰버서더는 시간과 장소에 구애받지 않고 클라우드 네이티브에 대해 널리 알리고자 하는 목적(making cloud native ubiquitous)을 위한 활동을 주로 합니다. 이에 따라 CNCF에서 관리하는 프로젝트 외에도 이와 연관하여 클라우드 네이티브한 것과 관련한 것들이 널리 알려지고 사용될 수 있는 부분이 있다면 이를 모두 포괄하여 활동하고 있습니다.

이 중에 저는 주로 테크 관련 컨텐츠를 만들고, 새로운 기술들에 대해서 발표 등을 통해서 해당 내용들이 널리 알려지도록 돕고 있습니다. 가장 최근에 알렸던 내용은 KubeCon NA 2023에서 발표한 Passwords: Keycloak's Contributions to IAM(Identity and Access Manage)입니다.

KubeCon NA 2023에서 EKS와 GKE에 연결되는 KeyCloak에 대한 구조를 설명

[KubeCon NA 2023에서 EKS와 GKE에 연결되는 KeyCloak에 대한 구조를 설명]

 

이와 같은 내용들은 다음 4가지 채널들을 통해서 주로 알리고 있습니다. 따라서 필요하시다면 해당 부분을 가입 또는 팔로잉하신다면 제가 알리고자 하는 내용들을 가장 빠르게 확인하실 수 있을 것 같습니다.

 

유저그룹: https://www.facebook.com/groups/InfraEngineer(*)]

링크드인: https://www.linkedin.com/in/hoonjo/(*)]

깃허브: https://github.com/sysnet4admin]

유튜브: https://www.youtube.com/hoonjo]

 

조훈 조훈(Hoon Jo)

 메가존
 클라우드 네이티브 컴퓨팅 재단(CNCF) 앰버서더
 클라우드 네이티브 교육 앰버서더(kubestronaut)
『컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커』(길벗) 외 2권의 주요 저자
 

 

 

 

.
.
2024
공개SW 가이드/보고서 - 번호, 제목, 작성자, 조회수, 작성
번호 제목 작성자 작성
공지 [2024년] 오픈소스SW 라이선스 가이드 개정판 발간 file support 2024-01-03
공지 [2024년] 기업 오픈소스SW 거버넌스 가이드 개정판 발간 file support 2024-01-03
공지 [2024년] 공공 오픈소스SW 거버넌스 가이드 개정판 발간 file support 2024-01-03
공지 공개 소프트웨어 연구개발(R&D) 실무 가이드라인 배포 file support 2022-07-28
공지 공개소프트웨어 연구개발 수행 가이드라인 file OSS 2018-04-26
495 [5월 월간브리핑]오픈소스SW, 클라우드 네이티브 생태계 성장 동력 support 2024-05-27
494 [기고] 모두가 이야기하지만 일부만 아는 클라우드 네이티브하다는 것에 관하여 support 2024-05-27
493 [기획기사]오픈소스가 이끄는 클라우드 네이티브 혁신 support 2024-05-27
492 오픈소스SW 라이선스 컴플라이언스의 중요성과 당면 과제 support 2024-05-27
491 [4월 월간브리핑]오픈소스SW 기업의 라이선스 모델 전환 이슈 : 주요 논쟁과 전망 support 2024-04-24
490 [기획] 오픈소스SW의 경제적·사회적 가치 분석 : 기업 내 사용 현황 및 도전 요인 support 2024-04-24
489 오픈소스SW 라이선스 준수 체크리스트 – GPL, AGPL support 2024-04-24
488 [3월 월간브리핑]오픈소스 혁신을 위한 필수 조건 : 라이선스 및 보안 관리 support 2024-03-26
487 [리포트 브리핑] 자동차 산업에서 오픈소스의 현재와 미래 support 2024-03-26
486 [기획기사]미래차의 중심 소프트웨어와 주목받는 오픈소스의 가치 support 2024-03-26
맨 위로
맨 위로