사용자 앱을 컨테이너 플랫폼으로 마이그레이션하는 방법 (개방형 클라우드 플랫폼 테크 엣지 세미나)

 이 포스팅은 개방형 클라우드 플랫폼에서 하는 테크엣지 세미나를 정리한 글이다.

마이그레이션과 컨테이너 플랫폼에 대해서

모르는 부분이 많아서, 세미나 이후 공부를 했다 .. ㅎ

그걸 정리한 글은 아래요

https://blog.naver.com/s2hsy/223305931774

클라우드 테크 엣지 세미나 내용 :

K-PaaS 어플리케이션 플랫폼에 배포된

사용자 앱을 컨테이너 플랫폼으로 마이그레이션하는 방법

  1. 운영자 측면에서 마이그레이션 하는 방법 (2가지)

  2. 개발자 측면에서 마이그레이션 하는 방법 (3가지)

출처 : 개방형 클라우드 플랫폼 세미나

마이그레이션을 할때

애플리케이션 플랫폼을 바라보는 입장에 따라

앱을 전환하는 방법이 다르기에,

운영자 측면, 사용자(개발자) 측면에서 설명해주셨다.


운영자 측면에서, 마이그레이션 방법

어플리케이션 플랫폼 운영자

0. AP 에 배포된 앱의 컨테이너 rootfs 추출

+ rootfs : 리눅스 시스템에서 루트 파일 시스템을 나타내는 용어

테이너에서 실행되는 운영 체제의 rootfs(루트 파일 시스템)을 추출해

다른 환경이나 플랫폼으로 마이그레이션 하거나 분석하는데 사용됨

1번째 방법. container rootfs 활용

① running 어플리케이션 확인 및 컨테이너 ID 확인

② 컨테이너 동작 command 및 환경 변수 확인

③ diego-cell 에서 컨테이너 확인 및 rootfs 경로 확인

④ rootfs 디렉토리 tgz 생성 및 VM 밖으로 tgz 추출하기

⑤ docker 를 이용해 이미지 생성 및 command 확인

⑥ 이미지 repository 등록 및 contanier platform에 배포

⑦ 환경변수 적용 프로세스 정상화

[정리]

운영자측면에서, 앱을 마이그레이션할때는

컨테이너 rootfs (루트 파일 시스템)을 활용한다.

rootfs를 기반으로,

(1) 도커 이미지를 빌드하고 (2) 이미지 저장소 등록한 뒤 (3) 배포함

[추가]

(1) 도커 이미지를 빌드

: rootfs를 기반으로 Dockerfile을 작성하여 새로운 도커 이미지를 빌드

Docker 이미지는 애플리케이션 실행에 필요한 모든 것을 포함하며,

루트 파일 시스템의 상태와 구성이 이미지에 반영됨

(2) 이미지 저장소 등록

: 빌드된 도커 이미지를 이미지 저장소에 등록.

이미지 저장소는 빌드된 이미지를 저장하고 공유할 수 있는 중앙 위치임

대표적인 예로 Docker Hub, Amazon ECR, Google Container Registry 등이 있다

(3) 배포

: 등록된 도커 이미지를 사용하여 새로운 환경에 애플리케이션을 배포

이는 컨테이너 오케스트레이션 도구(예: Kubernetes)를 사용하거나

직접 Docker 명령어를 이용하여 수행됨.

2번째 방법. Droplet 파일 활용하기

- 어플리케이션 플랫폼에 배포되면서 생성된 Droplet을 이용

+ Droplet 이란 ?

Droplet은 클라우드 플랫폼 DigitalOcean의 가상 서버를 뜻함

이 서버는 특정 운영 체제와 리소스를 갖추고 있습니다.

① droplet 다운로드

② dockerfile 작성, 이미지 build 및 repository 등록

③ 환경변수 적용 프로세스 정상화

④ dockerfile 수정, 이미지 build 및 repository 등록

개발자 측면에서, 마이그레이션 방법

어플리케이션 플랫폼 사용자(개발자)

1번째 방법. Pack 툴 이용

① pack 설치

② pack config

③ pack build

④ 이미지 등록

⑤ 사용자 앱 배포

+ pack 은??

- 클라우드 네이티브 빌드팩과 사용자 파일을 사용해 어플리케이션 이미지를 생성

- 클라우드 파운더리 생태계에서 앱을 빌드하고 패키징하는데 사용되는 오픈 소스 도구

+ pack 툴이 하는 일

- pack은 클라우드, 컨테이너 오케스트레이션, 혹은 로컬 환경에서 애플리케이션을 빌드하고 패키징하는 강력한 도구

- 다양한 언어와 프레임워크에 대한 지원을 통해 개발자가 편리하게 애플리케이션을 관리할 수 있도록 도움

2번째 방법. Dockerfile 작성

dockerfile 기반의 어플리케이션 배포

① dockerfile 작성

: 도커 이미지 빌드를 위해

: 앱의 실행환경, 필요한 종속성, 코드 등 앱의 특정 요구사항에 맞춰 설정

② 도커 이미지 빌드

: 작성한 dockerfile을 기반으로 도커 이미지를 빌드함

③ 도커 이미지 테스트

: 빌드된 도커 이미지를 로컬에서 테스트해 앱이 올바르게 작동하는지 확인

④ 도커 레지스트리에 이미지 등록

: 앱의 도커 이미지를 도커 레지스트리에 등록해 다른 환경에서도 사용할 수 있도록 함

⑤ 앱 배포

3번째 방법. move2kube 툴 이용

move2kube는 소스 파일을 분석하여 쿠버네티스로 플랫폼 변경을 지원하는 도구임


자세하게 설명을 해주지 않아서,

많이 아쉬운 세미나였다..

내가 잘 몰라서 그런걸 수 도 있겠지만,

방법만 딱딱 알려주고

어떻게 해야하는지는 안알려준 강의랄까

그래도,

이 세미나를 통해서 알게된건

1.

어플리케이션 플랫폼을 어떤 입장에서 보는지에 따라

마이그레이션 방법이 달라지는것

2.

한가지의 방법으로 마이그레이션을 하는게 아니라

다양한 방법이 있다는 것

3.

각각의 마이그레이션 방법에 따라

사용하는 툴이나 활용 파일과 명령어는 다르더라도

CI / CD 파이프라인 대로 흘러가는것

댓글

이 블로그의 인기 게시물

KT 에이블스쿨 : 6-7차 미니프로젝트 - 제안서 기반 솔류션 기획 및 설계

KT 에이블스쿨 : 핀테크 아이디어 공모전

쿠팡 제품