Code Engine을 사용하여 앱 개발 및 배치
DevOps Insights 2026년 8월 31일에 서비스 종료되어 중단될 예정입니다. Continuous Delivery 은 2027년 2월 12일에 au-syd, ca-tor, us-east 지역에서 중단될 예정입니다. 또한 해당 날짜를 기점으로 Code Risk Analyzer는 모든 지역에서 서비스가 중단될 예정입니다. 특정 지역에서 해당 기능을 실제로 사용하지 않는 경우, 해당 지역의 기능은 예정보다 일찍 중단될 수 있으며 새로운 인스턴스 등록이 더 이상 허용되지 않을 수 있습니다. 자세히 알아보기
이 학습서에서는 IBM Cloud® Continuous Delivery를 사용하여 오픈 도구 체인을 작성하고 Code Engine에 앱을 배치하는 방법에 대해 알아봅니다. 또한 Continuous Delivery 서비스에서 도구 체인의 구현 방법과 도구 체인을 사용한 단순 웹 애플리케이션(앱)의 개발 및 배치 방법에 대해서도 알아봅니다.
IBM Cloud® Code Engine은 웹 앱, 마이크로서비스, 이벤트 기반 함수 또는 일괄처리 작업을 포함하여 컨테이너화된 워크로드를 실행하는 완전 관리형 서버리스 플랫폼입니다. Code Engine은 소스 코드에서 컨테이너 이미지도 빌드합니다. 이러한 워크로드는 모두 동일한 Kubernetes 인프라 내에서 호스팅되므로 모두 원활하게 함께 작동할 수 있습니다. Code Engine 환경은 호스팅에 필요한 인프라가 아닌 코드 작성에 집중할 수 있도록 설계되었습니다.
이 학습서에서 사용되는 도구 체인은 코드 스캐닝, 승인 테스트, Git 저장소, 그리고 지속적 통합 및 지속적 딜리버리 기능 등의 표준 DevOps 사례를 구현합니다. 클러스터를 작성하고 이를 Continuous Delivery 클러스터 그룹과 연관시킨 후, 도구 체인을 작성하여 앱의 코드를 변경하고 변경사항을 Git Repos and Issue Tracking 저장소로 푸시합니다. 변경사항을 저장소에 푸시하면, Tekton 기반 딜리버리 파이프라인이 코드를 자동으로 빌드 및 배치합니다.
Tekton은 앱을 구축, 테스트 및 배포하는 데 사용할 수 있는 오픈 소스이며, 벤더 중립적인, Kubernetes 네이티브 프레임워크입니다. Tekton은 지속적 통합 및 지속적 배포 시스템을 구축하기 위한 일련의 공유 구성 요소를 제공합니다. 오픈 소스 프로젝트인 Tekton은 Continuous Delivery 재단이 관리하고 있습니다. 이의 목표는 파이프라인, 워크플로우 및 기타 빌딩 블록의 산업 규격을 제공하여 지속적 딜리버리를 현대화하는 것입니다. Tekton을 사용하면, 기본 구현 세부사항의 추상화를 통해 클라우드 제공자 또는 온프레미스 시스템에서 빌드, 테스트 및 배치를 수행할 수 있습니다. Tekton 파이프라인은 Continuous Delivery 에 빌드됩니다.
시작하기 전에
이 학습서를 시작하기 전에 다음의 자원을 갖추고 있는지 확인하십시오.
-
IBM Cloud 계정. IBM Cloud 계정 유형에 따라 특정 리소스에 대한 액세스가 제한될 수 있습니다. 계정 플랜 한도에 따라, 일부 배치 전략에서 요구되는 특정 기능을 사용하지 못할 수도 있습니다. IBM Cloud 계정에 대한 자세한 내용은 ‘ IBM Cloud 계정 설정’ 및 ‘계정 업그레이드’를 참조하십시오.
-
Code Engine 프로젝트 및 API 키. UI 또는 CLI를 사용하여 해당 자원을 작성할 수 있습니다. Code Engine 프로젝트에 대한 자세한 정보는 Code Engine 프로젝트를 참조하십시오.
-
Continuous Delivery 서비스의 인스턴스.
-
선택사항입니다. 시크릿 관리 볼트(vault)에 저장되어 단일 위치에서 중앙집중식으로 관리되는 시크릿. 다양한 시크릿 관리 및 데이터 보호 오퍼링 중에서 선택하는 방법에 대한 자세한 정보는 IBM Cloud 시크릿 관리를 참조하십시오. 선택한 시크릿 관리 볼트 제공자의 인스턴스가 아직 없는 경우, 이를 작성하십시오.
-
선택사항입니다. 컨테이너 레지스트리 명령행을 사용하여 작성된 네임스페이스. 네임스페이스를 작성하려면 명령행에서 다음 명령을 입력하십시오.
ibmcloud cr namespace-add <my namespace>또는 컨테이너 레지스트리 페이지에서 네임스페이스를 작성할 수도 있습니다. 이 위치에서의 네임스페이스 작성에 대한 자세한 정보는 IBM Cloud Container Registry 서비스를 참조하십시오.
도구 체인 작성
이 단계에서는 Code Engine 앱 개발 도구 체인을 작성합니다. 대상 Code Engine 프로젝트는 IBM Cloud API 키 및 Code Engine 프로젝트 이름을 사용하여 도구 체인 설정 중에 구성됩니다. Delivery Pipeline 구성을 업데이트하여 나중에 해당 설정을 변경할 수 있습니다. 대상 Git 저장소 분기에 병합되는 코드는 자동으로 빌드되고, 유효성이 검증되며 Code Engine 프로젝트에 배치됩니다.
Code Engine 앱 개발 도구 체인을 작성하려면 다음을 클릭하십시오.
또는 IBM Cloud 콘솔에서 메뉴 아이콘( ) > 플랫폼 자동화 > 툴체인(Toolchains) 을 클릭합니다. 도구 체인 페이지에서 도구 체인 작성을 클릭하십시오. '툴체인 생성' 페이지에서 ' Code Engine 앱 개발'을 클릭합니다.
도구 체인 이름 및 지역 구성
-
시작 화면에서 도구 체인 설정에 대한 기본 정보를 검토하십시오. 도구 체인의 이름은 IBM Cloud에서 해당 도구 체인을 식별합니다. 도구 체인의 이름이 IBM Cloud의 동일한 지역 및 리소스 그룹에 대해 도구 체인 내에서 고유한지 확인하십시오.
도구 체인 지역은 클러스터 및 레지스트리 지역과 다를 수 있습니다.
Code Engine 보안 앱 툴체인 이름 및 지역 -
시작을 클릭하십시오.
애플리케이션 소스 코드 저장소 구성
-
애플리케이션 단계에서는 애플리케이션 소스 코드 저장소에 대한 권장 옵션이 기본적으로 표시됩니다. 기본 Git 통합에 사용 가능한 모든 옵션을 보려면 고급 옵션을 클릭하십시오. 기본적으로, 도구 체인은 샘플 앱을 IBM 호스팅 Git Repos and Issue Tracking 저장로서 복제하는 기본 샘플을 사용합니다.
Code Engine 보안 앱 저장소 앱 저장소의 이름은 변경이 가능합니다. 저장소의 지역은 도구 체인의 지역과 동일하게 유지됩니다.
-
선택사항입니다. 도구 체인 템플리트에서는 샘플 Hello World 애플리케이션 앱을 제공합니다. 도구 체인의 기존 애플리케이션 저장소를 링크하려면, 자체 앱 가져오기를 선택한 후 저장소의 URL을 지정하십시오. 도구 체인은 기존 Git Repos and Issue Tracking 저장소에 대한 링크만 지원합니다.
-
계속을 클릭합니다.
기본적으로, 애플리케이션 저장소 템플리트는 Git Repos and Issue Tracking 조직으로 복제됩니다. 조직을 변경하려면, 고급 옵션을 사용하고 저장소 소유자를 지정하십시오.
안전하게 시크릿 저장
이 도구 체인 내의 여러 도구에서는 IBM Cloud API 키 등의 시크릿이 필요합니다. 모든 시크릿을 시크릿 볼트(vault)에 안전하게 저장한 후 도구 체인에서 필요하면 이를 참조해야 합니다.
-
IBM Cloud의 사용을 통해, 중요한 데이터의 보호와 시크릿의 중앙집중화에 도움이 되는 다양한 시크릿 관리 및 데이터 보호 오퍼링 중에서 선택할 수 있습니다. 시크릿 단계에서는 도구 체인에서 추가 또는 제거할 시크릿 볼트(vault) 통합을 지정할 수 있습니다. 전제조건 포함 및 힌트를 사용한 볼트(vault) 통합의 추가 및 제거에 대한 자세한 정보는 IBM Cloud 시크릿 관리를 참조하십시오.
템플리트 내에서 힌트를 사용하여, 도구 체인은 사전 구성된 시크릿으로 자동 채워집니다. 도구 체인에 연결된 볼트(vault) 통합에서 시크릿을 수동으로 선택할 필요가 없습니다.
이 학습서에서는 시크릿 볼트(vault)로서 IBM Secrets Manager를 사용합니다.
Code Engine 보안 앱 비밀번호 옵션 IBM Secrets Manager는 도구 체인의 일부인 API 키, 이미지 서명 또는 HashiCorp 신임 정보 등의 시크릿을 안전하게 저장하고 적용합니다.
Secrets Manager
Code Engine 옵션 -
계속을 클릭합니다.
IBM Key Protect 또는 HashiCorp, 에서 비밀번호 관리에 대한 자세한 내용은 비밀번호를 참조하세요.
배치 대상 구성
앱을 배치할 대상 Code Engine 프로젝트를 구성하십시오. 앱이 빌드, 테스트 및 스캔 단계를 통과하고 나면, 파이프라인이 빌드된 앱 이미지를 대상 Code Engine 프로젝트에 배치합니다. 이 배치에서 이제 승인 테스트 또는 통합 테스트를 위한 준비를 마쳤습니다.
-
API 키에 필수 액세스 권한이 있는 경우, 저장소에서 작성, 검색되거나 수동으로 지정된 API 키를 사용하여 다음의 필드가 자동으로 로드됩니다. API 키가 유효한 경우, 컨테이너 레지스트리 지역 및 네임스페이스 클러스터 지역, 이름, 네임스페이스 및 자원 그룹의 값은 자동으로 채워집니다. 자체 구성과 일치하도록 해당 필드를 업데이트할 수 있습니다.
-
앱 이름: 앱의 이름입니다. 기본 앱 이름은 도구 체인 이름과 동일합니다.
-
IBM Cloud API 키: 다수의 태스크에서
ibmcloudCLI 도구와의 상호작용에 사용되는 API 키입니다. 다음 방법 중 하나를 사용하여 사용하고자 하는 API 키를 지정하십시오.- 선택한 시크릿 볼트(vault)에서 기존 API 키를 가져오려면 키 아이콘을 클릭하십시오.
- 기존의 API 키를 복사하여 붙여넣으십시오.
- 새로 작성을 클릭하여 API 키를 작성하십시오.
- 기존의 API 키가 없으면, 신규
api-key생성을 수행하십시오.
생성된 API 키를 자체 선택한 기존의 시크릿 볼트(vault)에 즉시 저장할 수 있습니다.
-
컨테이너 레지스트리 영역: 컨테이너 네임스페이스가 있는 컨테이너 레지스트리 영역입니다.
-
컨테이너 레지스트리 네임스페이스: 연관된 컨테이너 레지스트리 영역에 있는 컨테이너 네임스페이스 목록에서 선택하십시오.
-
Code Engine 영역: Code Engine 프로젝트가 있는 영역입니다.
-
Code Engine 자원 그룹: Code Engine 프로젝트가 작성된 자원 그룹입니다.
-
Code Engine 프로젝트: Code Engine에 작성된 프로젝트의 이름입니다. 앱이 이 프로젝트에 배치되어 있습니다.
Code Engine ) 보안 애플리케이션 롤링 배포 대상 세부 정보 -
-
계속을 클릭합니다.
선택적 도구 통합 추가
추가 구성 없이 IBM Cloud® DevOps Insights 도구 통합을 도구 체인에 추가할 수 있습니다.
DevOps Insights 는 작성된 도구 체인에 포함되어 있습니다. DevOps Insights에 대한 구성 단계는 제공하지 않아도 됩니다. 지속적 통합 파이프라인은 도구 체인에 포함된 DevOps Insights 인스턴스를 자동으로 사용합니다. DevOps Insights에서는 모든 자체 팀과 릴리스의 속도와 품질에 대한 가시성을 제공하기 위해 코드, 테스트, 빌드 및 배치 데이터를 집계합니다.
계속을 클릭합니다.
도구 체인 설정 완료
요약 페이지에서 도구 체인 작성을 클릭하십시오. 여러 단계가 자동으로 실행되어 도구 체인을 설정합니다.
파이프라인이 작성된 후 개별 도구 체인 통합을 구성할 수 있습니다.
새 도구 체인 탐색
도구 체인을 작성하고 나면 도구 체인의 일부인 각 도구 통합이 다이어그램에 표시됩니다.
파이프라인 탐색
파이프라인을 탐색하여 도구 체인 플로우 및 각 파이프라인 내에서 실행되는 다양한 옵션을 이해할 수 있습니다. 작성한 도구 체인에는 다음과 같은 파이프라인이 포함되어 있습니다.
- 가져오기 요청 파이프라인: 개발자가 개발 분기의 변경사항을 마스터 분기로 또는 저장소의 다른 분기로 병합할 때 실행됩니다. 가져오기 요청 파이프라인은 애플리케이션 소스 코드에서 단위 테스트 및 정적 스캔을 실행합니다.
- 지속적 통합 파이프라인: 애플리케이션 소스 코드 저장소의 마스터 분기로 변경사항을 병합할 때 실행됩니다. 지속적 통합 파이프라인은 애플리케이션 소스 코드, CIS 검사 및 BOM(Bill Of Materials) 검사에서 단위 테스트, 코드 적용 범위 및 정적 스캔을 실행합니다. 또한 지속적 딜리버리 파이프라인은 도구 체인의 구성대로 2진 빌드 아티팩트를 생성한 후 이를 IBM Cloud® Kubernetes Service에 업로드합니다. 그리고 지속적 통합 파이프라인은 빌드 아티팩트의 메타데이터를 생성한 후 이를 인벤토리 저장소에 저장합니다.
- 연속 배치 파이프라인: Code Engine 컴포넌트 이미지 (연속 통합 파이프라인이 빌드하고 배치하는) 를 다른 프로젝트에서 호스트될 다른 Code Engine 컴포넌트에 배치합니다.
가져오기 요청 및 지속적 통합 파이프라인 실행
가져오기 요청 파이프라인을 시작하려면, 앱 저장소에서 병합 요청을 작성하십시오.
- 도구 체인의 개요 페이지에 있는 저장소 카드에서,
secure-app-toolchain-code-engine-demo앱 저장소를 클릭하십시오. - 마스터 저장소에서 분기를 작성하십시오.
- 샘플 노드 앱이나 readme 파일에서 일부 코드를 업데이트한 후 해당 변경사항을 저장하십시오.
- 병합 요청을 제출하십시오.
- 도구 체인의 개요 페이지에 있는 Delivery Pipeline 카드에서
pr-pipeline파이프라인을 클릭하여 가져오기 요청 파이프라인 대시보드를 여십시오. 앱 저장소의 대응되는 병합 요청은 가져오기 요청 파이프라인의 모든 단계가 성공적으로 완료될 때까지 보류 상태를 유지합니다. - 가져오기 요청 파이프라인 실행에 성공하면, 이를 선택하여 완료된 단계를 탐색할 수 있습니다.
지속적 통합 파이프라인을 시작하려면, 앱 저장소에서 지속적 통합 병합 요청을 병합하십시오.
-
병합 요청으로 이동하십시오.
-
변경사항이 앱 저장소의 마스터 분기에 복사되도록 요청을 병합하십시오. 지속적 통합 파이프라인은 자동으로 트리거됩니다.
-
Continuous Integration 도구 체인 개요 페이지에 있는 Delivery Pipeline 카드에서
ci-pipeline파이프라인을 클릭하여 Continuous Integration 파이프라인 대시보드를 여십시오. -
지속적 통합 파이프라인 실행에 성공하면, 파이프라인 실행을 클릭하여 완료된 단계를 탐색할 수 있습니다.
통합 파이프라인 -
deploy-component태스크를 펼치고execute단계를 클릭하십시오.Logs탭을 선택하고 로그의 끝까지 스크롤하십시오. 실행 중인 앱을 보려면 배치된 Code Engine 앱에 대한 링크를 클릭하십시오.
다음 단계
Code Engine 컴포넌트 (연속 통합 파이프라인이 빌드하고 배치함) 를 다른 컴포넌트로 배치하여 다른 코드 엔진 프로젝트에서 호스트되도록 하려면 다음 단계를 수행하십시오.
-
‘지속적 통합 툴체인 개요’ 페이지의 ‘배포 파이프라인’ 카드에서 ‘cd-pipeline’ 파이프라인을 클릭하여 지속적 배포 파이프라인 대시보드를 엽니다.
-
파이프라인 실행 을 클릭하여
cd-manual-run트리거를 시작하십시오. -
연속 배포 파이프라인 실행이 성공적으로 완료되면, 해당 파이프라인 실행 항목을 클릭하여 완료된 단계를 확인할 수 있습니다.
배포 파이프라인 -
deploy-component 작업을 펼친 다음 ‘실행’ 단계를 클릭합니다. '로그' 탭을 클릭한 다음, 로그의 맨 끝으로 스크롤하십시오. 실행 중인 앱을 보려면 배치된 Code Engine 앱에 대한 링크를 클릭하십시오.
Code Engine에서 실행 중인 샘플 앱을 제거하려면, 다음 단계를 수행하십시오.
-
Code Engine 프로젝트 페이지로 이동하십시오.
-
샘플 앱이 실행 중인 프로젝트를 클릭하십시오.
-
애플리케이션을 선택한 후 샘플 앱에 대한 선택란을 선택하십시오.
-
삭제를 클릭하십시오.
도움이 필요하십니까?
IBM Cloud IBM 의 에 의해 구동되는 AI 어시스턴트는 에서 일하는 것과 이용 가능한 제품과 서비스 카탈로그를 활용하여 솔루션을 구축하는 것에 대해 배울 수 있도록 설계되었습니다. watsonx IBM Cloud AI 어시스턴트로부터 도움 받기를 참조하세요.
추가 지원 옵션은 Continuous Delivery에 대한 도움말 및 지원 받기를 참조하십시오.
