클라우드 네이티브란 무엇인가요?

서버 랙으로 문이 열려 있는 데이터 센터의 중간 샷

클라우드 네이티브란 무엇인가요?

클라우드 네이티브는 애플리케이션의 위치보다는 애플리케이션을 빌드하고 배포하는 방식을 의미합니다. 클라우드 네이티브 애플리케이션은 모든 클라우드 환경에 통합되도록 설계된 마이크로서비스라고 하는 재사용 가능한 개별 구성 요소로 이루어져 있습니다.

  • 클라우드 네이티브 애플리케이션은 모든 클라우드 환경에 통합되도록      설계된 마이크로서비스라고 하는 재사용 가능한 개별 구성 요소로 이루어져 있습니다.

  • 이러한 마이크로서비스는 주요 구성 요소 역할을 하며, 컨테이너에 패키지로 제공되는 경우가 많습니다.

  • 마이크로서비스는 하나의 애플리케이션을 구성하기 위해 전체적으로 함께 작동하지만, 각 서비스는 독립적으로 확장 가능하고, 지속적으로 개선되며, 자동화 및 오케스트레이션 프로세스를 통해 빠르게 반복될 수 있습니다.

  • 각 마이크로서비스의 유연성은 클라우드 네이티브 애플리케이션의 민첩성과 지속적인 개선에 도움이 됩니다.
고속도로 조감도

클라우드에 집중 


AI 시대의 멀티클라우드 설정을 최적화하는 방법에 대한 전문가의 안내가 담긴 주간 Think 뉴스레터를 받아보세요.

마이크로서비스 및 컨테이너

마이크로서비스(마이크로서비스 아키텍처라고도 함)는 단일 애플리케이션이 더 작고 느슨하게 결합되며 독립적으로 배포할 수 있는 많은 구성 요소 또는 서비스로 구성되는 아키텍처 접근 방식입니다. 이러한 서비스(마이크로서비스라고도 함)에는 일반적으로 데이터베이스 및 데이터 모델을 포함하는 자체 기술 스택이 있습니다. 이들은 REST API, 이벤트 스트리밍 및 메시지 브로커의 조합을 통해 서로 통신합니다.

마이크로서비스는 서로 영향을 미치거나 최종 사용자 경험을 방해하지 않고 독립적으로 배포 및 재배포할 수 있기 때문입니다. 이들은 지속적 통합/지속적 배포(CI/CD) 또는 DevOps와 같은 자동화된 반복 제공 방법론에 완벽하게 부합합니다.

마이크로서비스는 완전히 새로운 클라우드 네이티브 애플리케이션을 만드는 데 사용되는 것 외에도 기존 모놀리식 애플리케이션을 현대화하는 데 사용할 수 있습니다.

IT 경영진, 개발자 임원 및 개발자를 대상으로 한 IBM® 설문조사에서 마이크로서비스 사용자의 87%가 마이크로서비스 채택이 비용과 노력을 들일 만한 가치가 있다는 데 동의했습니다.

개발자는 종종 컨테이너 내부에 마이크로서비스를 배포합니다. 컨테이너는 애플리케이션 소스 코드(이 경우 마이크로서비스 코드)와 어떤 환경에서든 코드를 실행하는 데 필요한 운영체제(OS) 라이브러리 및 종속 요소를 함께 포함하는 가볍고 실행 가능한 애플리케이션 구성 요소입니다. 가상 머신(VM)보다 더 작고, 더 적은 리소스를 사용하며, 더 이식성이 높은 컨테이너는 현대 클라우드 네이티브 애플리케이션의 사실상 기본 컴퓨트 단위입니다.

컨테이너는 퍼블릭 클라우드, 프라이빗 클라우드, 온프레미스 인프라 등 하이브리드 멀티클라우드 환경 전반에서 일관된 배포 및 관리 환경을 지원하여 마이크로서비스의 이점을 극대화합니다. 그러나 클라우드 네이티브 애플리케이션이 증가함에 따라 컨테이너와 관리의 복잡성도 증가하고 있습니다. 컨테이너화된 마이크로서비스를 사용하는 대부분의 조직은 Kubernetes와 같은 컨테이너 오케스트레이션 플랫폼도 사용하여 대규모 컨테이너 배포 및 관리를 자동화합니다.

애플리케이션 개발

시작하기: 클라우드에서 기업용 애플리케이션 개발

이 영상에서 Peter Haumer 박사는 IBM Z Open Editor, IBM Wazi 및 Zowe 등 다양한 구성 요소와 사례를 시연하며 오늘날 하이브리드 클라우드에서의 최신 기업용 애플리케이션 개발이 어떤 모습인지 설명합니다. 

장점 및 단점

IBM 고객은 기존 애플리케이션을 개선하고, 새로운 애플리케이션을 구축하고, 사용자 경험을 향상시켜야 하는 과제를 점점 더 많이 안고 있습니다. 클라우드 네이티브 애플리케이션은 성능, 유연성 및 확장성을 개선하여 이러한 요구 사항을 충족합니다.

장점

  • 전통적인 모놀리식 앱과 비교하면, 클라우드 네이티브 애플리케이션은 Agile 및 DevOps 프로세스를 통해 반복적 개선이 이루어지므로 관리하기가 더 쉬워질 수 있습니다.

  • 개별 마이크로서비스로 구성된 클라우드 네이티브 애플리케이션은 점진적으로 자동으로 개선되어 새롭고 향상된 애플리케이션 기능을 지속적으로 추가할 수 있습니다.

  • 비침해적으로 개선할 수 있으므로 다운타임이나 최종 사용자 경험 중단이 발생하지 않습니다.

  • 클라우드 네이티브 앱을 뒷받침하는 탄력적인 인프라를 사용하면 확장 또는 축소가 더 쉬워집니다.

  • 클라우드 네이티브 개발 프로세스는 오늘날의 비즈니스 환경에서 요구하는 속도와 혁신에 더욱 밀접하게 부합합니다.

단점

  • 마이크로서비스는 애플리케이션 개선에 대한 반복적인 접근 방식을 가능하게 하지만 더 많은 요소를 관리해야 할 필요성도 생깁니다. 하나의 대규모 애플리케이션을 관리하는 것보다 훨씬 더 작은 개별 서비스를 관리하는 것이 필요해졌습니다.

  • 클라우드 기반 앱은 DevOps 파이프라인을 관리하고, 기존 모니터링 구조를 대체하고, 마이크로서비스 아키텍처를 제어하기 위해 추가 툴셋이 필요합니다.

  • 클라우드 네이티브 애플리케이션을 사용하면 빠른 개발 및 배포가 가능하지만, 이러한 혁신의 속도에 대처할 수 있는 비즈니스 문화도 필요합니다.

애플리케이션 예시

클라우드 네이티브 애플리케이션에는 특정 기능이 있는 경우가 많습니다. 여행 웹사이트에서 클라우드 네이티브 애플리케이션을 어떻게 사용할 수 있는지 생각해 보세요. 사이트에서 다루는 각 주제(항공편, 호텔, 자동차, 특별 상품)는 자체 마이크로서비스입니다. 각 마이크로서비스는 다른 마이크로서비스와 독립적으로 새로운 기능을 출시할 수 있습니다. 특별 할인 및 할인은 독립적으로 확장할 수도 있습니다. 여행 사이트가 고객에게 전체적으로 제공되는 동안 각 마이크로서비스는 독립적으로 유지되며 다른 서비스에 영향을 주지 않고 필요에 따라 확장하거나 업데이트할 수 있습니다.

IBM® Cloud Garage는 확장 가능하고 혁신적인 클라우드 네이티브 앱을 빠르게 구축할 수 있도록 IBM 고객에게 컨설팅 전문 지식을 제공합니다. 모든 규모의 기업이 실제 비즈니스 요구 사항을 해결하는 앱을 설계하고 구축할 수 있는 혁신 허브를 제공합니다.

개발 원칙

클라우드 네이티브 애플리케이션을 새로 만들거나 기존 애플리케이션을 현대화할 때 개발자는 다음과 같은 일관된 원칙을 준수합니다.

  • 마이크로서비스 아키텍처 접근 방식을 따르세요. 애플리케이션을 마이크로서비스라고 하는 단일 기능 서비스로 분할하세요. 마이크로서비스는 느슨하게 결합되어 있지만 독립적이어서 애플리케이션을 점진적이고 자동화하며 지속적으로 개선할 수 있습니다.

  • 최대의 유연성과 확장성을 위해 컨테이너를 활용하세요. 컨테이너는 모든 코드 및 종속성과 함께 소프트웨어를 한 곳에 패키징하여 소프트웨어를 어디서나 실행할 수 있도록 합니다. 이를 통해 멀티클라우드 환경에서 최대한의 유연성과 이동성을 확보할 수 있습니다. 또한 컨테이너를 사용하면 사용자가 정의한 Kubernetes 오케스트레이션 정책을 사용하여 빠르게 확장하거나 축소할 수 있습니다.

  • 민첩한 방법 채택: 민첩한 방법은 창조와 개선 과정을 가속화합니다. 개발자는 사용자 피드백을 기반으로 업데이트를 빠르게 반복할 수 있으므로 작업 애플리케이션 버전이 최종 사용자의 기대에 최대한 가깝게 일치할 수 있습니다.

스토리지

클라우드 네이티브 애플리케이션은 컨테이너에 의존하는 경우가 많습니다. 컨테이너의 매력은 유연하고 가벼우며 휴대성이 뛰어나다는 것입니다. 초기 컨테이너 사용은 사용자 데이터를 한 사용자 세션에서 다음 사용자 세션으로 저장할 필요가 없는 상태 비저장 애플리케이션에 집중되는 경향이 있었습니다.

그러나 더 많은 핵심 비즈니스 기능이 클라우드로 이동함에 따라 영구 스토리지 문제는 클라우드 네이티브 환경에서 해결되어야 합니다. 이를 위해서는 개발자들이 클라우드 스토리지에 접근하는 새로운 방법을 고려해야 합니다.

클라우드 네이티브 애플리케이션 개발이 마이크로서비스와 모듈식 접근 방식을 취하는 것처럼 클라우드 네이티브 스토리지도 마찬가지입니다. 클라우드 네이티브 데이터는 이벤트 또는 시스템 로그, 관계형 데이터베이스, 문서 또는 객체 저장소와 같은 다양한 위치에 상주할 수 있습니다.

데이터 위치, 보존 요구 사항, 이식성, 플랫폼 호환성 및 보안은 개발자가 클라우드 네이티브 스토리지를 계획할 때 고려해야 하는 측면 중 일부에 불과합니다.

클라우드 네이티브와 기존 애플리케이션 비교

클라우드 네이티브 vs 클라우드 사용 가능

클라우드 지원 애플리케이션은 기존 데이터 센터에 배포하기 위해 개발되었지만 나중에 클라우드 환경에서도 실행할 수 있도록 변경된 애플리케이션입니다. 그러나 클라우드 네이티브 애플리케이션은 클라우드에서만 작동하도록 구축되었습니다. 개발자는 확장 가능한 플랫폼에 구애받지 않으며 마이크로서비스로 구성되도록 클라우드 네이티브 애플리케이션을 설계합니다.

클라우드 네이티브 vs 클라우드 지원

클라우드 컴퓨팅의 짧은 역사에서 "클라우드 지원"의 의미는 여러 번 바뀌었습니다. 처음에는 인터넷을 통해 작동하도록 설계된 서비스 또는 소프트웨어에 적용되었습니다. 오늘날 이 용어는 클라우드 환경에서 작동하는 애플리케이션 또는 클라우드 환경에 맞게 재구성된 기존 애플리케이션을 설명하는 데 더 자주 사용됩니다. "클라우드 네이티브"라는 용어는 역사가 더 짧으며 처음부터 클라우드에서만 작동하도록 개발된 애플리케이션을 의미합니다. 그리고 클라우드 아키텍처 또는 클라우드 네이티브 원칙에 따라 리팩터링 및 재구성된 기존 앱의 특성을 활용합니다.

클라우드 네이티브 vs 클라우드 기반

클라우드 기반 서비스나 애플리케이션은 인터넷을 통해 제공됩니다. 이는 여러 클라우드 제품에 자유롭게 적용되는 일반적인 용어입니다. 클라우드 네이티브는 보다 구체적인 용어입니다. 클라우드 네이티브는 클라우드 환경에서 작동하도록 설계된 애플리케이션을 설명합니다. 이 용어는 마이크로서비스, 연속적인 통합 및 연속적인 배포(CI/CD)에 의존하는 애플리케이션을 나타내며 모든 클라우드 플랫폼을 통해 사용할 수 있습니다.

클라우드 네이티브 vs 클라우드 우선

클라우드 우선은 조직이 새로운 IT 서비스를 시작하거나, 기존 서비스를 새로 고치거나, 레거시 기술을 교체할 때 클라우드 리소스를 먼저 사용하기로 약속하는 비즈니스 전략을 말합니다. 비용 절감과 운영 효율성이 이 전략의 원동력입니다. 클라우드 네이티브 애플리케이션은 클라우드 리소스만 사용하고 클라우드 아키텍처의 유익한 특성을 활용하도록 설계되었기 때문에 클라우드 우선 전략과 잘 어울립니다.

관련 솔루션
AI 기반 애플리케이션 개발

Watsonx.ai는 애플리케이션 개발 팀이 워크플로에 AI를 원활하게 통합할 수 있도록 지원합니다. 이 포괄적인 툴킷은 모델 생성에서 배포에 이르기까지 전체 AI 라이프사이클를 지원합니다.

watsonx.ai 살펴보기
IBM Z Development and Test Environment

x86 하드웨어에서 메인프레임 애플리케이션 개발, 테스트, 데모, 교육을 위한 플랫폼을 사용합니다.

Z 개발 환경 살펴보기
모바일 클라우드 컴퓨팅 솔루션

앱을 신속하게 설계하고 프로토타입을 제작하여 시장에 쉽게 출시할 수 있는 IBM의 모바일 앱 개발 플랫폼에 대해 알아보세요.

모바일 클라우드 살펴보기
다음 단계 안내

IBM Cloud Application Development Consulting Services는 클라우드 전략을 간소화하기 위한 전문가 지침과 혁신적인 솔루션을 제공합니다. IBM의 클라우드 및 개발 전문가와 협력해 애플리케이션을 현대화, 확장, 가속화하여 비즈니스에 혁신적인 결과를 제공하세요.

애플리케이션 개발 서비스 살펴보기 무료로 IBM Cloud에서 구축 시작하기