안녕하세요. 오늘은 올해 1월에 출시된 Tanzu Application Platform (TAP) 에 대한 소개를 드리려고 합니다. 먼저 Tanzu Application Platform에 대해 올해 제가 촬영한 웨비나를 보시고 오신다면 훨씬 이해가 쉬울 것으로 생각됩니다.
웨비나의 내용이 꽤 길어요.. 하지만 Tanzu Application Platform을 사용했을때 특장점을 알기 위해서는 기존 방식과의 비교가 필요하기 때문에 꼭! 확인해보시고 이 포스팅을 읽어주시기 바랍니다.
서론은 이쯤하고 App aware Platform인 TAP 에 대해 자세히 알아보겠습니다.
1. TAP 이란 무엇일까?
앱 인식 플랫폼이란 ?
말그대로 플랫폼이 어플리케이션을 인식하는 아키텍처라는 의미입니다.
사실 이 단어( App aware )가 의미하는 바가 우리가 어플리케이션을 대하는 자세여야 한다라고 봐도 무방합니다.
자세히 설명 드리자면, 12 Factor의 3번째 항목인 Config는 어플리케이션을 개발할 때 비즈니스 로직이 아닌 그 이외의 모든 Config들은 어플리케이션과 같이 기록되는것을 지양해야 한다고 말합니다.
그 이유는 Config가 앱이 아닌 앱의 외부에 저장되어야 소스코드를 건드리지 않고 변경사항을 적용할수 있기 때문입니다.
사실 간단하게 말하자면 Config ( 플랫폼 정보, 데이터베이스 정보 등 ) 는 변경되기 쉬운 데이터입니다.
따라서 이러한 정보들이 어플리케이션에 저장이 되어있다면 수천개의 어플리케이션을 데이터베이스의 정보가 변경될때마다
소스코드를 수정하고, 새로 컴파일해서 다시 빌드 후 서버를 재기동해야 합니다.
따라서 12Factor에서는 Config를 외부에 저장하도록 권장합니다.
앱인식 플랫폼 ( App aware Platform ) 에 대한 의미를 이렇게 정리 할수 있습니다.
비즈니스 로직이 아닌 정보들 ( 데이터 베이스, 백엔드 서비스, 플랫폼 구성정보 등 ) 을 어플리케이션 코드 레벨에 저장하는것이 아닌 플랫폼이 저장하고 있는 형태를 가지는 플랫폼
우선 TAP에 대한 큰그림을 잡았으니 전체적인 중요 기능에 대해 살펴보도록 하겠습니다.
2. TAP 의 기능에 대해서 알아보자
TAP의 기능에 대해서 5가지 꼭지로 설명드릴수 있습니다.
- App aware Platform
- 자동화된 빌드와 표준화된 어플리케이션 Accerlator
- Supply Chain ( CICD의 전문적인 가이드라인 )
- 플랫폼과 연동 가능한 IDE
- Serverless 리소스 사용
각각의 기능에 대한 데모는 제 Webinar 영상을 참고하시면 이해 되실거라 생각합니다.
이번 포스팅에서는 Supply Chain에 대해서 조금 자세하게 다뤄보려 합니다.
2-1. Supply Chain ?
Supply Chain 은 일반적으로 CI/CD(Continuous Integration/Continuous Delivery)로 알려진 배포 까지의 모든 메뉴얼한 단계를 코드화하는 방법을 제공하는것을 뜻합니다 . CI/CD는 애플리케이션 개발 단계에 자동화를 도입하여 애플리케이션을 자동화하여 제공하는 방법입니다.
Tanzu Application Platform의 Supply Chain을 사용하면 내장되어 있는 CI/CD를 사용하고 파이프라인을 작성하지 않고도 애플리케이션이 프로덕션 또는 다른 환경(예: 스테이징)에 도달하는 데 필요한 단계를 수행할수 있습니다.
통상적으로 CI 단계는 다음과 같이 구성됩니다. profile을 설정함에 따라 파이프라인을 간소화 하거나 확장 할수 있습니다.
- OOTB Supply Chain Basic (default)
- OOTB Supply Chain with Testing (optional)
- OOTB Supply Chain with Testing+Scanning (optional)
Tanzu Application Platform의 가장 강력한 기능인 Supply Chain에 대해서 알아 보았습니다. 정리하면, TAP의 기능중 Supply Chain을 이용하여 CICD를 정형화 하여 내장된 파이프라인을 사용할수 있으며 어플리케이션의 배포 속도를 드라마틱하게 절감할수 있겠네요!
위에 Supply Chain의 Basic / Testing / Testing + Scanning 3가지 프로파일에 공통적으로 Build image를 담당하는 TBS 가 보이는것을 알수 있습니다. TBS는 빌드팩을 활용하여 이미지를 생성하는데요~
buildpack ( 이미지 빌드 역할을 하는 오픈소스 )에 대해 짚고 넘어가도록 하겠습니다.
What is Buildpack ?
이름에서 유추할수 있으시겠지만 build image를 담당하는 빌드팩에 대해서 알고 계신분들도 있으실 것 같습니다.
우리가 통상적으로 이미지를 빌드하는 툴로 잘 알고 있는것은 Docker 입니다.
Docker는 runtime 역할 뿐만 아니라 image를 빌드하는 역할도 맡고 있습니다. 대단한 녀석
Dockerfile을 통해 이미지를 빌드 해보신적이 있으시면 알겠지만 알다시피 의존성의 늪에 빠지기 쉽습니다.
하지만 buildpack을 이용하시면 굉장히 간편하게 빌드를 할수 있을 뿐만 아니라 이미지 보안적으로도 이미지를 표준화 하는 면에서도 엔터프라이즈에 적합한 환경을 구성 하실수 있습니다.
물론 Dockerfile을 활용하여 이미지를 빌드하면 기존에 레가시 장비에 웹 서버 어플리케이션을 구성하는것 보다는 효율적인 작업을 할수 있지만 그 역시도 공수가 많이 듭니다. 아래 비교해둔 장표를 첨부하도록 하겠습니다.
빌드팩은 어플리케이션의 필수 요소인 OS, middleware, framework를 표준화 하여 패키지로 제공하기 때문에 Spring boot를 활용하는데 있어서 굉장한 장점을 가지고 있습니다. 스프링을 만든 벤더의 기술지원도 빠질수 없는 장점이죠!
긴 글 읽어주셔서 정말 감사합니다.
마지막으로 요약해서 말씀드리면, Tanzu Application Platform은 5가지 기능을 주요하게 가지고 있는 앱인식 플랫폼입니다.
플랫폼은 말그대로, 서비스를 하는데 필요한 모든 구성요소를 풀패키지로 제공해주는 수많은 기술들이 만나는 곳이라는 뜻입니다.
iaas 영역의 인프라부터 , CICD , 모니터링 등 마이크로서비스로 어플리케이션을 현대화 하는데 있어서 이러한 플랫폼을 이용하시면
쉽게 시작할수 있는것이죠.
'VMware' 카테고리의 다른 글
[Tanzu] Spring, Springboot, Spring-Cloud 소개 (0) | 2023.01.03 |
---|---|
[Tanzu] VMware Tanzu Kubernetes Grid (TKG) 소개 (0) | 2022.12.26 |
[Tanzu] VMware Tanzu Application Service 소개 (0) | 2022.12.22 |
[Tanzu] VMware Tanzu Portfolio 소개 (0) | 2022.12.20 |
[VMware] [1] vRealize Automation OS세팅 (0) | 2021.06.28 |