클라우드 네이티브 애플리케이션

menu icon

클라우드 네이티브 애플리케이션

클라우드 네이티브 애플리케이션의 정의와 함께, 이를 이용하여 기업 내에서 혁신과 속도를 어떻게 추진할 수 있는지 알아봅니다.

클라우드 네이티브란?

클라우드 네이티브는 애플리케이션의 상주 위치보다는 이를 구축하고 배치하는 방법과 보다 더 관련되어 있습니다.

  • 클라우드 네이티브 애플리케이션은 클라우드 환경에 통합되도록 설계된 마이크로서비스라고 하는 별개의 재사용 가능한 컴포넌트들로 구성되어 있습니다.
  • 이러한 마이크로서비스는 구성 요소로서의 역할을 하며, 종종 컨테이너에 패키징되어 있습니다.
  • 마이크로서비스는 전체적으로 함께 작동하여 애플리케이션을 구성하지만, 각각은 별도로 확장되고 지속적으로 개선되며 자동화와 오케스트레이션 프로세스를 통해 빠르게 반복될 수 있습니다.
  • 각 마이크로서비스의 유연성은 클라우드 네이티브 애플리케이션의 민첩성과 지속적 개선에 추가됩니다.

"클라우드 네이티브란?"(4:36)이라는 동영상에서Andrea Crawford는 몇 가지 핵심 개념에 대해 간략하게 설명합니다.

"클라우드 네이티브의 모든 것"이라는 제목의 7부작 미니시리즈가 있는 IBM Cloud 팟캐스트를 살펴볼 수도 있습니다.

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

마이크로서비스(마이크로서비스 아키텍처라고도 함)란 하나의 애플리케이션이 다수의 보다 작은, 느슨하게 결합된, 개별 배치가 가능한 컴포넌트 또는 서비스로 구성되어 있는 아키텍처 접근법입니다. 이러한 서비스(마이크로서비스라고도 함)는 통상적으로 데이터베이스와 데이터 모델을 포함한 자체 기술 스택을 보유하며, REST API, 이벤트 스트리밍 및 메시지 브로커의 조합을 통해 서로 간에 통신합니다.

마이크로서비스가 서로 간에 영향을 주거나 일반 사용자 경험에 지장을 주지 않고도 독립적으로 배치되거나 재배치될 수 있으므로, 이는 지속적 통합/지속적 배치(CI/CD) 또는 DevOps 등의 자동화된 반복적 딜리버리 방법에 매우 적합합니다.

전혀 새로운 클라우드 네이티브 애플리케이션의 작성에도 사용되지만, 마이크로서비스는 기존 모놀리식 애플리케이션의 현대화에도 사용될 수 있습니다.

IT 임원, 개발 임원 및 개발자를 대상으로 실시한 최근의 한 IBM 설문조사에서, 마이크로서비스 사용자의 87%는 마이크로서비스 채택이 비용과 노력을 지불할 만한 가치가 있다는 데 동의했습니다. 아래의 대화식 툴을 사용하여 마이크로서비스의 장점과 과제에 대한 이들의 추가적인 관점을 살펴볼 수 있습니다.

(출처: 'Microservices in the enterprise 2021: Real benefits, worth the challenges'.)

개발자들은 종종 애플리케이션 소스 코드(이 경우에는 마이크로서비스 코드)를 임의의 환경에서 코드 실행에 필요한 모든 운영 체제(OS) 라이브러리 및 종속성과 결합하는 경량의 실행 가능한 애플리케이션 컴포넌트인 컨테이너 내에 마이크로서비스를 배치합니다. 가상 머신(VM)보다 작으면서도 리소스 효율성과 이식성이 뛰어난 컨테이너는 최신 클라우드 네이티브 애플리케이션의 실질적인 컴퓨팅 유닛입니다.

컨테이너는 퍼블릭 클라우드, 프라이빗 클라우드 및 온프레미스 인프라 등의 하이브리드 멀티클라우드 환경에서 일관된 배치와 관리 경험을 가능하도록 함으로써 마이크로서비스의 장점을 증대시킵니다. 그러나 클라우드 네이티브 애플리케이션이 증가됨에 따라 컨테이너 및 이의 관리 복잡도 역시 증가됩니다. 컨테이너형 마이크로서비스를 사용하는 대부분의 기업들은 또한 Kubernetes 등의 컨테이너 오케스트레이션 플랫폼을 사용하여 자체 규모에 맞게 컨테이너 배치와 관리를 자동화합니다.

컨테이너 및 컨테이너화에 대한 자세한 정보는 "컨테이너: 완벽한 안내서" 및 "컨테이너화: 완벽한 안내서"를 참조하세요.

아키텍처 구성으로서 마이크로서비스 및 컨테이너의 사용 이유에 대해 자세히 알아보세요.

장점 및 단점

IBM 고객들은 기존 애플리케이션의 개선, 신규 애플리케이션의 구축 및 사용자 경험의 개선 등으로 업무가 점차 늘어남을 깨닫습니다. 클라우드 네이티브 애플리케이션은 앱 성능, 유연성 및 확장성을 개선함으로써 이러한 요구사항을 충족합니다.

장점

  • 기존의 모놀리식 앱과 비교할 경우, 클라우드 네이티브 애플리케이션은 Agile 및 DevOps 프로세스를 사용하여 반복적으로 개선이 이루어지므로 보다 손쉬운 관리가 가능합니다.
  • 개별 마이크로서비스로 구성된 클라우드 네이티브 애플리케이션은 점진적이고 자동적으로 개선됨으로써 새롭고 향상된 애플리케이션 기능을 지속적으로 추가할 수 있습니다.
  • 개선은 방해를 주지 않고 이루어질 수 있으므로, 일반 사용자 경험의 중단 또는 장애가 발생하지 않습니다.
  • 클라우드 네이티브 앱을 뒷받침하는 탄력적 인프라를 이용하여 확장과 축소가 보다 용이합니다.
  • 클라우드 네이티브 개발 프로세스는 오늘날의 비즈니스 환경에서 요구하는 속도 및 혁신에 더욱 밀접하게 부합됩니다.

단점

  • 마이크로서비스로 인해 애플리케이션 개선에 대한 반복적 접근법이 가능함에도 불구하고, 이에 따라 추가적인 요소들의 관리 필요성 역시 발생합니다. 하나의 대형 애플리케이션이 아닌, 훨씬 작고 개별적인 서비스를 관리해야 할 필요성이 있습니다.
  • 클라우드 네이티브 앱에서는 DevOps 파이프라인의 관리, 기존 모니터링 구조의 대체 및 마이크로서비스 아키텍처의 제어를 위한 추가적인 툴 세트가 필요합니다.
  • 클라우드 네이티브 애플리케이션으로 인해 신속한 개발과 배치가 가능하지만, 이러한 혁신의 속도에 대처할 수 있는 비즈니스 문화 역시 요구됩니다.

애플리케이션 예제

클라우드 네이티브 애플리케이션에는 종종 매우 특정한 기능이 있습니다. 클라우드 네이티브 애플리케이션이 여행 웹 사이트에서 어떻게 사용될 수 있는지를 고려해 봅니다. 항공기, 호텔, 자동차, 특가 등 사이트에서 다루는 각 주제는 자체 마이크로서비스입니다. 각각의 마이크로서비스는 기타 마이크로서비스와는 독립적으로 신규 기능을 롤아웃할 수 있습니다. 특가 및 할인 행사도 개별적으로 스케일 아웃이 가능합니다. 여행 사이트는 고객에게 전체적으로 제공되지만, 각 마이크로서비스는 독립적으로 유지되며 다른 서비스에 영향을 주지 않고 필요에 따라 스케일링되거나 업데이트될 수 있습니다. 다음은 기타 클라우드 네이티브 애플리케이션의 일부 사례입니다.

IBM Cloud Garage는 확장형의 혁신적인 클라우드 네이티브 앱을 신속하게 구축할 수 있도록 IBM 고객들에게 컨설팅 전문 지식을 제공합니다. 이 제품은 대기업과 중소기업 모두가 실제 비즈니스 요구사항을 해결하는 앱을 설계 및 구축할 수 있는 혁신 허브를 제공합니다.

American Airlines(2:50)는 IBM과의 제휴를 통해 이 악천후 패턴 중에도 실행되는 Dynamic Rebooking 앱을 구축했습니다. 이 앱은 사용자에게 더 많은 정보와 개선된 재예약 프로세스를 제공함으로써 고객 경험을 향상시켰습니다.

교육 및 훈련용 분석 플랫폼인 XComP Analytics(1:56)는 분석 문제를 해결해야 했습니다. 그러나 한 가지 문제를 해결하는 과정에서 이 회사는 IBM Cloud Garage와의 협력 이후에 6개의 신제품을 개발할 수 있었습니다. 이 솔루션에는 특정 분석 문제의 해결을 위한 IBM Watson의 플러그인과 마이크로서비스 아키텍처의 사용이 포함되어 있습니다.

UBank(2:45)에는 주택 자금 융자 오퍼링을 개선하고 고객들이 주택 자금 융자 프로세스를 마칠 수 있도록 지원해야 할 비즈니스 필요성이 있었습니다. 이 회사의 스마트 어시스턴트 앱인 RoboChat은 이러한 필요성에 부응했으며, 이는 IBM DevOps 툴체인을 사용하여 구축되었습니다. RoboChat을 사용한 고객들은 15% 높은 주택 자금 융자 완료율을 기록했습니다.

의료 연구의 중요사항 중 하나는 의사들에게 환자 치료에 대한 우수 사례를 조언하는 것입니다. 그러나 우수 사례를 보여주는 의료 연구가 실제 의료 행위에 도입되기까지는 17년이 걸립니다. ThinkResearch(2:06)는 IBM Cloud를 사용하여 치료 시점에서 최상의 의료 정보를 제공합니다. IBM Cloud 클라우드 인프라 및 관리형 Kubernetes 서비스를 사용함으로써, ThinkResearch DevOps 팀은 인프라가 아닌 혁신과 환자 치료에 주력할 수 있습니다.

개발 원칙

신규 클라우드 네이티브 애플리케이션을 작성하거나 기존 애플리케이션을 현대화하는 경우 모두에서, 개발자들은 일관된 원칙 세트를 고수합니다.

  • 마이크로서비스 아키텍처 접근법 준수: 마이크로서비스라고 하는 단일 기능 서비스로 애플리케이션을 분할합니다. 마이크로서비스는 느슨하게 결합되어 있지만 독립적으로 유지되므로, 가동 중단 없이도 애플리케이션의 점진적인, 자동화된, 지속적인 개선을 허용합니다.
  • 유연성과 확장성 극대화를 위해 컨테이너에 의존: 모든 코드와 종속 항목이 한 위치에 있는 컨테이너 패키지 소프트웨어를 통해 소프트웨어를 어디서나 실행할 수 있습니다. 이를 통해 멀티클라우드 환경에서 유연성과 이식성을 극대화할 수 있습니다. 컨테이너는 또한 사용자가 정의한 Kubernetes 오케스트레이션 정책을 통한 신속한 확장과 축소도 지원합니다.
  • 애자일 방법 채택: 애자일 방법은 작성 및 개선 프로세스의 속도를 개선합니다. 개발자는 사용자의 피드백을 바탕으로 간편하게 업데이트를 반복할 수 있으므로 작업 애플리케이션 버전이 최종 사용자의 기대 사항과 가장 가깝게 일치되도록 할 수 있습니다.

스토리지

클라우드 네이티브 애플리케이션은 종종 컨테이너에 의존합니다. 컨테이너의 장점은 유연성, 경량 및 휴대성에 있습니다. 컨테이너의 초기 사용에서는 하나의 사용자 세션의 사용자 데이터를 다음 사용자 세션에 저장할 필요가 없는 상태 없는 애플리케이션에 집중하는 경향이 있었습니다.

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

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

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

IBM Cloud Object Storage가 클라우드 네이티브 애플리케이션에 대한 지속적 데이터 저장소를 구축하는 방법을 살펴봅니다.

클라우드 네이티브 vs. 기존 애플리케이션

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

클라우드 사용 애플리케이션은 기존 데이터 센터에 배치하기 위해 개발되었지만 나중에 클라우드 환경에서도 실행할 수 있도록 변경된 애플리케이션입니다. 그러나 클라우드 네이티브 애플리케이션은 클라우드에서만 작동하도록 빌드되었습니다. 개발자들은 확장 가능하고, 플랫폼과 무관하며, 마이크로서비스로 구성될 수 있도록 클라우드 네이티브 애플리케이션을 설계합니다.

클라우드 네이티브 vs. 클라우드 준비

클라우드 컴퓨팅의 간략한 역사에서, "클라우드 준비"라는 의미는 여러 번 바뀌었습니다. 처음에 이 용어는 인터넷 상에서 작동하도록 설계된 서비스나 소프트웨어에 적용되었습니다. 오늘날, 이 용어는 클라우드 환경을 위해 재구성된 기존 앱 또는 클라우드 환경에서 작동하는 애플리케이션을 기술하기 위해 보다 자주 사용됩니다. "클라우드 네이티브"라는 용어의 역사는 이보다 훨씬 짧습니다. 이는 클라우드에서만 작동하고 클라우드 아키텍처의 특성을 활용하도록 시작 시부터 개발된 애플리케이션 또는 클라우드 네이티브 원칙에 따라 리팩토링되고 재구성된 기존 앱을 의미합니다.

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

클라우드 기반 서비스 또는 애플리케이션은 인터넷 상에서 제공됩니다. 이는 다수의 클라우드 오퍼링에 자유롭게 적용되는 일반 용어입니다. 클라우드 네이티브는 보다 특정한 용어입니다. 클라우드 네이티브는 클라우드 환경에서 작동하도록 설계된 애플리케이션을 기술합니다. 이 용어는 마이크로서비스, 지속적 통합 및 지속적 딜리버리(CI/CD)에 의존하는 애플리케이션을 의미하며, 이는 임의의 클라우드 플랫폼을 통해 사용될 수 있습니다.

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

"클라우드 우선"은 신규 IT 서비스를 시작하거나 기존 서비스를 갱신하거나 레거시 기술을 대체할 때 기업들이 우선적으로 클라우드 리소스의 사용을 커미트하는 비즈니스 전략을 기술합니다. 비용 절감과 운영 효율성이 이 전략의 장점입니다. 클라우드 리소스만 사용하고 클라우드 아키텍처의 유용한 특성을 활용하도록 설계되었으므로, 클라우드 네이티브 애플리케이션은 클라우드 우선 전략과 잘 맞습니다.

클라우드 네이티브 및 IBM

더 많은 사용자 기대치에 부응하는 것은 올바른 아키텍처, 사례 및 기술의 채택을 의미합니다. 신규 애플리케이션을 구축하여 사용자 경험을 개선하고 클라우드 여정에서 기존 애플리케이션을 현대화하고자 모색하면서, 클라우드 네이티브는 앱 성능, 유연성 및 확장성의 개선을 통해 도움이 될 수 있습니다.

다음 단계로 진행:

  • 클라우드 네이티브를 위한 IBM을 사용하여 전진을 시작할 수 있는 방법을 알아봅니다.
  • 클라우드 네이티브 전문 서비스를 사용하여 주도할 수 있도록 IBM이 어떻게 지원하는지 알아봅니다.
  • 튜토리얼을 사용하여 클라우드 네이티브 배치를 위한 기존 앱의 현대화를 최초로 시도합니다.
  • IBM Cloud Associate Solution Advisor 역할 기반 인증에 포함된 클라우드 네이티브 및 멀티클라우드 코스와 배지를 살펴봅니다.
  • IBM Cloud Professional Developer 역할 기반 교육 및 인증에 포함된 "클라우드 네이티브 아키텍처 및 애플리케이션 배치" 및 "클라우드 네이티브 보안 준비" 등의 최신 통합, 보안 및 ID 코스를 통해 스킬을 배양합니다.

IBM Cloud 계정으로 지금 시작하세요.