클라우드 효과 극대화 조건 ‘클라우드 네이티브’ (1)
상태바
클라우드 효과 극대화 조건 ‘클라우드 네이티브’ (1)
  • 윤현기 기자
  • 승인 2020.03.14 09:00
  • 댓글 0
이 기사를 공유합니다

개발 생산성 향상·서비스 출시 기간 단축…운영 효율성 확보까지

[데이터넷] 클라우드를 통한 디지털 트랜스포메이션의 중요성이 높아지면서 많은 기업들이 클라우드 도입을 앞 다퉈 진행 중이다. 클라우드의 효과를 보려면 클라우드에서 이용 가능한 앱들이 필요하지만, 아직도 많은 기업들이 기존 앱을 단순히 클라우드에 이동한 수준에 지나지 않아 그 효과를 체감하기 어렵다는 평가다. 클라우드 환경에 최적화된 클라우드 네이티브는 무엇이고, 이를 위해 어떤 것들이 필요한지 알아본다. <편집자>

사용자가 비즈니스에 참여하고, 기업이 경쟁력을 유지하기 위해 점차 소프트웨어가 핵심 역할을 하게 됐다. 그리고 애플리케이션 개발 및 배포 속도는 새로운 디지털 비즈니스의 필수 조건이 됐다.

이처럼 급변하는 소프트웨어 중심 시장에서 성공하려면 기업들은 애플리케이션의 설계, 구축 및 사용 방식을 새롭게 바꿔야 한다는 도전과제와 마주친다. 하지만 클라우드 컴퓨팅을 채택함으로써 애플리케이션의 확장성과 가용성을 향상시킬 수 있으며, 이러한 이점은 자원의 셀프서비스 및 온디맨드 프로비저닝은 물론, 개발부터 제품화에 이르는 애플리케이션 라이프사이클을 자동화함으로써 실현 가능하다.

그러나 클라우드의 이점을 모두 활용하기 위해서는 새로운 형태의 애플리케이션 개발이 필요하다. ‘클라우드 네이티브(Cloud-Native)’ 개발이 바로 이에 해당되며, 애플리케이션을 신속하게 구축하고 업데이트하면서 품질을 개선하고 위험을 감소시키는 접근 방식이다. 이를 통해 대응 능력, 확장성, 내결함성을 갖춘 애플리케이션을 퍼블릭, 프라이빗 또는 하이브리드 클라우드 환경이든 어디에나 구축할 수 있다.

애플리케이션 구축·배포·관리 방식에 중점

클라우드 네이티브 개발은 애플리케이션을 시장에 신속하게 제공하기 위한 필수 항목이자 클라우드 형태에 상관없이 온디맨드로 클라우드 컴퓨팅 성능을 무제한으로 활용해 애플리케이션을 구축하고 실행하는 방법론이다. 적합한 툴과 기술을 갖추면 개발자가 더욱 빠르게 새로운 애플리케이션을 개발할 수 있고, 기존 애플리케이션을 최적화해 빠르게 변하는 고객 요구를 충족하기에 적합하다.

이렇게 개발된 클라우드 네이티브 애플리케이션은 애플리케이션 배포 위험을 낮추면서 속도와 유연성 및 품질을 높이기 위해 클라우드 컴퓨팅 모델을 활용한다. 즉, 애플리케이션이 배포되는 위치가 아니라 애플리케이션이 구축, 배포 및 관리되는 방식에 중점을 두고 있는 것이 특징이다.

클라우드 네이티브 애플리케이션은 프라이빗, 퍼블릭 및 하이브리드 클라우드 환경 전체에 지속적인 개발과 자동화된 관리 환경을 제공하기 위해 특별히 설계된 애플리케이션이자 탄력적으로 결합된 소규모의 독립적인 서비스 컬렉션이다. 이들 애플리케이션은 사용자 피드백을 신속하게 통합해 지속적으로 개선하는 기능을 비롯한 비즈니스 가치를 제공할 수 있도록 설계됐다.

다시 말해 클라우드 네이티브 애플리케이션 개발은 새로운 애플리케이션을 구축하고, 기존 애플리케이션을 최적화하고, 모든 환경을 연결하는 작업을 가속화할 수 있는 방법이며, 클라우드 네이티브의 목표는 비즈니스 요구 사항의 변화 속도에 맞춰 사용자들이 원하는 애플리케이션을 제공하는 것이라 할 수 있다.

생산성 향상 등 다양한 이점 제공

클라우드 네이티브 애플리케이션은 클라우드에서 분산 애플리케이션으로 실행하기 위해 개발·최적화된 애플리케이션이며, 일반적으로 CaaS(Containers-as-a-Service) 또는 PaaS(platform-as-a-service)에서 개발·구축된다.

비록 클라우드 네이티브 애플리케이션에 대한 정의는 조직마다 조금씩 다르게 나타나지만, 클라우드 네이티브 컴퓨팅 재단(CNCF: Cloud Native Computing Foundation)에 의하면 ‘최신 애플리케이션’으로 불리는 클라우드 네이티브 애플리케이션은 공통적으로 ▲컨테이터화를 통한 재현성, 투명성 및 리소스 격리 ▲조정을 통한 리소스 활용도 최적화 ▲마이크로서비스로 세분화돼 수정, 유지보수 및 확장이 용이하다는 특징을 갖는다.

그렇다면 클라우드 네이티브 애플리케이션이 제공하는 이점은 무엇일까? 클라우드 관련 업계에 따르면 크게 4가지 이유로 요약 가능하다.

첫 번째는 개발자 생산성 향상이다. 온프레미스 또는 클라우드 내에서 애플리케이션을 더 빠르게 혁신하고 배포하는데 필요한 리소스와 환경을 개발자에게 제공한다. 이를 통해 개발자들은 보안 및 규정 준수를 유지하면서 컨테이너, 클라우드 리소스 및 자동화를 활용할 수 있다.

두 번째는 서비스 출시 기간 단축이다. 클라우드 네이티브 애플리케이션을 구축하고 배포함으로써 IT는 신속한 업데이트와 개선을 수행할 수 있다. 이를 통해 기업은 제품과 서비스를 더 경쟁력 있는 속도로 제공할 수 있다.

세 번째는 뛰어난 환경 제공이다. 클라우드 네이티브 기술은 시스템이나 최종 사용자(End-user)에게 영향을 주지 않고 배포, 업데이트, 확장 및 재시작이 가능한 모듈형 애플리케이션인 마이크로서비스의 사용을 통해 복원력과 자동 확장을 제공한다. 기업은 연중무휴로 우수한 고객 환경을 제공할 수 있다.

네 번째는 운영 효율성 확보다. 클라우드 네이티브 애플리케이션을 이용하면 필요시 자동화, 셀프서비스, 텔레메트리, 수평 및 수직 확장이 가능해 비즈니스를 효율적으로 운영할 수 있어 빠르게 변화하는 시장 조건에 신속하게 대응할 수 있다.

클라우드 네이티브 애플리케이션 개발·배포 위한 4가지 원리(자료: 레드햇)
클라우드 네이티브 애플리케이션 개발·배포 위한 4가지 원리(자료: 레드햇)

복잡성 낮춰 신속한 서비스 지원

클라우드 네이티브 애플리케이션 개발은 아키텍처, 커뮤니케이션, 인프라, 프로세스 등 4가지 핵심 원칙을 기반으로 클라우드 컴퓨팅 모델을 최대한 활용하는 애플리케이션을 구축하고 실행하는 방식으로 진행된다. 서비스 기반 아키텍처, API 기반 통신, 컨테이너 기반 인프라 및 데브옵스(DevOps) 프로세스가 이에 해당한다.

1. 서비스 기반 아키텍처: 마이크로서비스와 같은 서비스 기반 아키텍처는 탄력적으로 결합된 모듈식 서비스 구축을 지원한다. 미니서비스와 같은 다른 모듈식 아키텍처 방식은 탄력적으로 결합된 서비스 기반 설계를 바탕으로 조직이 복잡도를 높이지 않고도 애플리케이션을 신속히 생성할 수 있도록 도와준다.

2. API 기반 통신: 복잡성을 줄이고, 배포, 확장성 및 유지관리 오버헤드를 낮추며, 기술에 얽매이지 않는 경량의 API를 통해 서비스가 노출된다. 기업은 노출된 API를 통해 내부 및 외부에서 새로운 역량과 기회를 발굴할 수 있다. API 기반 설계에서는 직접 연결, 공유 메모리 모델 또는 다른 팀의 데이터 저장소에 직접 연동되는 위험을 피해 네트워크 상에서 서비스 인터페이스 호출을 통한 통신만이 가능하다. 이러한 설계를 통해 애플리케이션 및 서비스의 범위가 다른 기기 및 형태로 확장된다.

3. 컨테이너 기반 인프라: 클라우드 네이티브 애플리케이션은 컨테이너에 의존해 기술 환경 전반에서 공통된 운영 모델을 지원하고 퍼블릭, 프라이빗 및 하이브리드를 포함한 다양한 환경 및 인프라 전체에서 진정한 애플리케이션 이식성을 지원한다. 컨테이너 기술은 운영 시스템 가상화 기능을 사용해 다양한 애플리케이션에서 이용 가능한 컴퓨팅 리소스를 분할하고, 애플리케이션이 안전하게 서로 격리되도록 한다.

아울러 클라우드 네이티브 애플리케이션은 수평적으로 확장되면서 애플리케이션 인스턴스를 간단히 추가해 용량을 늘린다. 이는 컨테이너 인프라 내에서 자동화를 통해 이뤄지는 경우가 많다. 컨테이너의 낮은 오버헤드와 높은 집적도는 동일한 가상머신(VM) 또는 물리 서버 내에서 다수의 컨테이너가 호스팅 되도록 지원하기 때문에 클라우드 네이티브 애플리케이션을 제공하기 위한 최적의 조건이다.

4. 데브옵스 프로세스: 클라우드 네이티브 방식의 애플리케이션 개발은 CD(Continuous Delivery) 및 데브옵스 원칙을 통해 애자일 방식을 따르며, 그러한 CD 및 데브옵스 원칙은 개발, 품질 보증, 보안, IT 운영팀 및 서비스 제공에 관련된 팀들이 협업을 통해 애플리케이션을 구축하고 제공하는 데 중점을 둔다.

인력·협업 프로세스 자동화부터

클라우드 네이티브 애플리케이션은 조직 내 인력과 협업 프로세스를 자동화하는 것에서 시작한다. 즉, 데브옵스를 도입해 공통의 목적과 주기적인 피드백을 통해 개발팀과 운영팀의 협업을 지원할 수 있다.

컨테이너를 도입하면 이상적인 애플리케이션 배포 유닛 및 독립적인 실행 환경을 제공해 이러한 프랙티스를 지원할 수 있다. 데브옵스 및 컨테이너 접근 방식에서는 하나의 대규모 릴리스 및 업데이트를 기다리는 것이 아니라 마이크로서비스처럼 여러 서비스가 탄력적으로 결합된 하나의 컬렉션으로 애플리케이션을 쉽게 출시하고 업데이트할 수 있다.

클라우드 네이티브 개발은 아키텍처의 모듈성, 탄력적인 결합, 독립적인 서비스에 중점을 둔다. 각 마이크로서비스는 비즈니스 역량을 구현하고, 자체 프로세스를 실행하며, API 또는 메시징을 통해 커뮤니케이션한다. 이러한 커뮤니케이션은 서비스 메시 레이어를 통해 관리할 수 있다.

그러나 클라우드 네이티브 애플리케이션의 일부로 애플리케이션 제공을 가속화하기 위해 항상 마이크로서비스부터 시작해야 하는 것은 아니다. 많은 조직이 실용적인 서비스 기반 아키텍처를 이용해 계속해서 기존 애플리케이션을 최적화할 수 있다. 이러한 최적화는 지속적인 통합(CI: Continuous Integration)과 지속적인 제공(CD: Continuous Delivery) 및 완전히 자동화된 배포 운영 같은 데브옵스 워크플로우를 통해 지원된다.

<전통적인 애플리케이션과 클라우드 네이티브 애플리케이션 개발 비교> (자료: 레드햇)

  전통적인 방식 클라우드 네이티브 방식
주안점 지속성 및 안정성 출시 속도
개방 방법론 세미 애자일(Semi-agile)
워터폴(Waterfall) 개발
애자일 개발
데브옵스
격리된 개발, 운영, QA 및 보안팀 협업 데브옵스팀
제공 주기 장기 단기 및 지속적
애플리케이션 아키텍처 긴밀하게 결합
모놀리식
탄력적으로 결합
서비스 기반
API 기반 통신
인프라

서버 중심
온프레미스용 설계
인프라 종속적
수직적 확장
피크 용량을 위해 사전 프로비저닝

컨테이너 중심
온프레미스 및 클라우드용 설계
인프라 전반에 이식 가능
수평적 확장
온디맨드 용량

API로 간편하게 디지털 비즈니스 도입

산업계 전반에 걸쳐 디지털 비즈니스로의 전환이 가속화되면서 기업들은 고민에 빠지게 됐다. 디지털 비즈니스의 필요성은 이해하지만, 자사에 어떻게 적용해야 할지를 알 수 없었기 때문이다. 그렇다고 디지털 비즈니스를 위해 기존 사업 모두를 포기할 수도 없는 노릇이다.

가트너는 이런 기업들을 위해 디지털 비즈니스 도입 전략으로 ‘바이모달(Bimodal) IT’를 제안한다. 이는 고가용성·고성능·안정성에 초점을 맞춘 비즈니스와 민첩성에 초점을 맞춘 비즈니스로 구분하고, 기존 주력 사업과 신규 디지털 비즈니스를 동시에 추진하는 방식이다. 단계적으로 디지털 전환을 시도하면서 디지털 비즈니스를 빠르게 시작하고, 그 결과가 좋지 않을 경우 신속하게 다른 비즈니스로 전환이 가능하도록 하는 모델을 갖추는 것이 목표다.

민첩성을 갖춘다는 것은 결코 쉬운 일이 아니다. 이전과 같은 방식으로 서비스를 개발하고 출시하기에는 빠르게 변하는 고객 수요를 따라잡기 어렵다. 그렇기에 완전히 기능을 개발하기보다 기존에 존재하는 기능들을 재조합하는 방식으로 빠르게 서비스를 출시하는 것이 권장되고 있으며, 이를 위한 최적의 방안으로 API가 주목받고 있다.

API는 개발자들이 손쉽게 애플리케이션을 재조합해서 만들거나 기업이 보유하고 있는 서비스를 노출시킬 수 있도록 하고, 기업 역시 내부 API를 재조합해서 새로운 형태의 서비스를 만들어내는 것이 가능하다.



댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.