본문 바로가기

VMware

[Tanzu] VMware Tanzu Application Service 소개

안녕하세요. 오늘은 VMware Tanzu Application Service (통칭 TAS) 에 대해서 소개를 드리려고 합니다.

Tanzu application service을 소개하는 영상입니다.  cf push를 통해 어플리케이션을 배포하는 과정을 담고 있습니다. 

 

1. TAS 와 Cloud Foundry 

TAS? Cloud Foundry? 
Tanzu application service는 Cloud Foundry로 부터 파생된 솔루션입니다. 통칭 CF라고 부르는 cloud foundry는 마이크로 서비스를 제공하고 실행하려는 기업을 위한 플랫폼 입니다.

 


1-1. Tanzu Application Service ? 

TAS는 쿠버네티스 플랫폼이 아니다? 하지만 Microservice이다. 
최근들어, 마이크로서비스에 대한 국내 기업들의 관심도가 올라감에 따라 쿠버네티스와 msa에 관한 정보들이 많이 축적되고 있는것이 사실입니다. 

하지만, Tanzu Application Service는 Kubernetes 위에서 가동되는 애플리케이션 플랫폼은 아닙니다. 하지만 K8s보다 더 성숙한 플랫폼이라고 생각 됩니다. 국내에 10개 이상의 대기업이 3년이상 안정적으로 마이크로 서비스로 운영하는데는 Cloud Foundry의 안정성과 Tanzu Application Service의 성숙한 플랫폼이 그 역할을 다했다라고 생각합니다.

하지만, 현재 VMware의 어플리케이션 현대화에 있어서 Tanzu Application Service는 많은 관심을 받고 있지는 못합니다. 그 이유는 대세가 k8s로 기울었기 때문이죠. 

Google에서 인프라 관리와 자동화에 사용하였던 툴인 Bosh를 활용 하는 TAS는 점차 시장에서 사라지고 있다는 느낌을 받고 있습니다. 하지만 최근들어, 다시 해외에서는 k8s로 마이크로서비스를 구현하는데 너무 큰 리스크와 비용들이 든다고 판단하여, 다시 Bosh가 점점 늘어나고 있는 추세라고 합니다.

그 이유는 Spring Cloud를 활용한 MSA에 적합한 아키텍처를 갖추고 있으며 그동안의 피보탈 경험을 통해 microservice에 대한 충분한 
경험을 쌓았기 때문입니다. 

TAS의 가장 큰 장점은 Spring Cloud 의 컴포넌트들을 손쉽게 UI에서 바로 배포하여 cf 로 배포한 앱에 직접 연결할수 있다는 점을 꼽을 것 입니다.

그 뿐만 아니라 buildpack을 통한 빌드 표준화에 대한 장점 역시, Dockerfile과 같은 빌드 작업을 운영자가 할 필요 없고 보안, 표준화 측면에서 
강점을 가지고 있습니다.

 


1-2. CF와 Kubernetes 비교

 

 

CF와 Kubernetes와 가장 큰 차이점
CF에서 개발자는 ‘코드’를 배포하는 것이라면 쿠버네티스에서는 패키징을 거친 ‘컨테이너’를 배포
쿠버네티스가 운영자의 어플리케이션 생태계의 관리에 대해  초점을 맞추었다면, CF는 개발자 친화적 경험에 좀 더 초점을 맞추고 있다
쿠베네티스’를 사실상 표준 클라우드 운영 체제로 여기는 분위기이다.
CF와 Kubernetes와 공통점
쿠버네티스를 사용하는 경우 개발이 완료되면 작성된 애플리케이션 및 필요로 하는 이미지를 모아 컨테이너 이미지로 패키징한다. 이 컨테이너는 쿠버네티스 클러스터에 배포되어 실행단계로 넘어간다. 배포 단위에서 ‘CFAR-VM’이냐, ‘컨테이너’이냐의 차이를 배제하면 기본 배포 개념은 매우 유사하다. 

현재 분위기는 쿠베네티스’를 사실상 표준 클라우드 운영 체제로 여기는 분위기이다.

이에 어떻게 CF와 쿠버네티스를 접목할 것인가가 CF를 공식적으로 관장하는 CF 파운데이션의 최대 고민거리가 되고 있다. 2021년 5월 15일 현재 CF 파운데이션 홈페이지의 뉴스섹션에 2021년 기사가 15개가 걸려 있는데 이 중 10개의 뉴스 제목에 쿠버네티스 관련 단어가 포함된 것만 보아도 CF의 최고 화두는 쿠버네티스와의 결합임을 알 수 있습니다.

출처 : [아주대학교 윤대균 교수]

 


2. Tanzu Application Service 아키텍처

 

2-1. Tanzu Application Service의 장점

  • TAS는  어플리케이션을 배포하는것이 굉장히 쉽습니다. 이는 buildpack이라는 오픈소스 기술을 활용하여 앱을 배포하는 cloud foundry의 가장 important한 전략이며 표준화된 미들웨어와 개발 언어, 프레임워크를 컨테이너화 해준다는 것이 TAS의 가장 큰 매력입니다.
  • TAS는 BYOL 서비스를 integration 연동하여 사용하는것이 편리합니다. 서비스 브로커와 서비스 인스턴스의 주종 관계를 통해 App 을 푸시하고 service 인스턴스를 만들어 바인딩 하는 독특한 구조를 사용합니다. 이는 느슨한 결합을 제공하며 동시에 잦은 변경에 대처하기 용이합니다. 
  • 마이크로 서비스를 구현하기에 Spring Cloud를 인스턴스로 제공하는 TAS의 장점은 엄청난 매력포인트가 될수 있다. Eureka Server / Gateway 등을 배포하고 integration 하는것이 원클릭으로 가능하다.

2-2. Tanzu Application Service의 단점

  • 플랫폼을 유지보수하고 사용하는데 굉장히 Learning Curve가 있다. 개발자는 편하지만 운영자는 힘들수도,,
  • 사용되는 VM 이 굉장히 많고 작업시간도 굉장히 길다.
  • 라이센스가 엄청 비싸다.

3. Spring Cloud 

스프링 클라우드에 대해 들어보신적 있으실까요? TAS와 Spring Cloud는 굉장히 밀접하게 연관되어 있습니다. Spring Cloud 없이는 완벽한 마이크로 서비스 아키텍처를 구축할 수 없습니다. 

 

3-1. Spring이란? 

스프링은 개발 도구 입니다.
스프링은 자바 엔터프라이즈 개발을 편하게 해주는 오픈 소스 개발 프레임워크입니다. 웹 개발을 하기 위해 미리 만들어둔 프레임워크를 사용하게 되면 중복코드의 사용률을 줄여주고, 비즈니스 로직을 더 간단하게 작성할수 있도록 합니다.

프레임워크는 어떠한 목적을 달성하기 위해 복잡하게 얽혀 있는 문제를 해결하기 위한 구조이자 약속이며, 소프트웨어 개발에 있어서 하나의 뼈대 역할을 합니다. 즉, 프레임워크는 자주 쓰일 만한 기능들을 한데 모아 놓은 클래스들의 모음(집합) 이라고 정의할수 있습니다.
 

 

3-2.  CF와 Spring Cloud의 관계

  • 마이크로서비스 : 마이크로서비스 아키텍처는 '새로운 표준'입니다. 소규모의 독립적이고 실행 가능한 애플리케이션을 구축하면 코드에 뛰어난 유연성과 복원력을 제공할 수 있습니다. Spring Boot의 다양한 목적에 맞게 구축된 기능을 통해 프로덕션 환경에서 마이크로 서비스를 쉽게 구축하고 실행할 수 있습니다. Spring Cloud 없이는 완벽한 마이크로 서비스 아키텍처를 구축할 수 없습니다. 관리를 간소화하고 내결함성을 강화할 수 있습니다.
  • 마이크로서비스란 무엇인가? : 마이크로서비스는 응용 프로그램 코드가 다른 것들과 독립적으로 관리 가능한 작은 조각으로 전달되는 소프트웨어에 대한 현대적인 접근 방식이다.
  • 왜 마이크로서비스를 만들까요? : 마이크로서비스는 유지보수의 용이성, 생산성의 향상, 내결함성의 향상, 비즈니스 조정의 개선 등과 같은 많은 추가적인 이점을 가지고 있습니다.