Code Engine에 대해 알아보기
IBM Cloud® Code Engine(또는 "Code Engine")은 소스 중심의 컨테이너화된 최신 서버리스 앱과 작업을 작성할 수 있도록 지원하기 위해 IBM에서 개발했습니다. 이 플랫폼은 코드 실행만을 원하는 개발자의 요구를 해결하기 위해 설계되었습니다. Code Engine은(는) 개발자가 가장 중요한 항목인 소스 코드에만 집중할 수 있도록 Kubernetes에서 워크로드를 빌드하고, 배치하고, 관리하는 운영 부담을 덜어줍니다.
Code Engine의 이점
Code Engine에서 워크로드 실행을 위해 제공하는 기능을 검토하십시오.
| 기능 | 설명 |
|---|---|
| 워크로드 실행 | Code Engine은 HTTP 기반 애플리케이션과 실행-완료 일괄처리 작업을 실행합니다. |
| 완전 관리형 서비스 | Code Engine은 서버 프로비저닝, 구성, 스케일링 및 관리를 포함한 모든 클러스터 관리를 처리하므로 기본 인프라에 대해 걱정할 필요가 없습니다. |
| 코드 빌드 | Code Engine은 소스 코드를 가져와서 컨테이너 이미지를 작성합니다. Code Engine은 Dockerfile 및 클라우드 네이티브 빌드팩을 모두 지원합니다. |
| 개인용 워크로드 | 소스 코드를 개인용 저장소에 저장하고 이미지를 개인용 레지스트리로 푸시하면 Code Engine에서 이들에 액세스할 수 있습니다. |
| 완전한 통합 | Code Engine은 IBM Cloud에 완전히 통합되므로 IBM Cloud 서비스의 전체 카탈로그를 활용할 수 있습니다. |
| 이벤트 중심 워크로드 | 이벤트 생성자의 메시지(이벤트)로 애플리케이션의 기능을 확장합니다. 그러면 애플리케이션이 이러한 이벤트에 반응하고 이를 기반으로 조치를 수행할 수 있습니다. |
| 자동 스케일링(0까지) | Code Engine은 워크로드를 자동으로 확장 및 축소하며, 활성화된 요청이 없는 경우에는 0까지도 축소됩니다. 이용한 리소스에 대해서만 비용을 지불합니다. |
| 액세스 제어 | 플랫폼 및 서비스 액세스 권한을 IBM Cloud Identity and Access Management의 프로젝트에 지정하여 IBM Cloud 계정에서 리소스를 프로비저닝하고 관리할 수 있는 사람을 제어합니다. |
| 오픈 소스 기반 | Code Engine은 Kubernetes, Knative, Istio, Tekton과 같은 오픈 소스 기술 세트를 기반으로 구축되어 앱과 작업을 이식 가능한 상태로 유지합니다. |
| DDoS 보호 | Code Engine 애플리케이션에 대한 즉각적인 DDoS 보호를 제공합니다. Code Engine 의 DDoS 보호는 Cloud Internet Services (CIS) 에서 추가 비용 없이 제공합니다. DDoS 보호는 시스템 상호 연결(OSI) 계층 3 및 계층 4(TCP/IP) 프로토콜 공격에는 적용되지만 계층 7( HTTP ) 공격에는 적용되지 않습니다. DDoS 보호를 참조하세요. |
Code Engine 용어
다음 주요 용어를 검토하여 Code Engine에 대한 대한 기본사항을 알아보십시오.
| 기간 | 설명 |
|---|---|
| 애플리케이션 | 애플리케이션 또는 앱은 코드를 실행하여 HTTP 요청을 제공합니다. 기존 HTTP 요청 외에 IBM Cloud® Code Engine은 WebSocket을 통신 프로토콜로 사용하는 애플리케이션도 지원합니다. 앱의 실행 중인 인스턴스 수는 수신 요청 및 구성 설정에 따라 자동으로 확장 또는 축소(0으로)됩니다. 앱에는 하나 이상의 개정이 포함되어 있습니다. 개정은 앱 구성 특성의 불변 버전을 나타냅니다. 앱 구성 특성을 업데이트할 때마다 앱 개정이 새로 작성됩니다. |
| 빌드 | 빌드 또는 이미지 빌드는 소스 코드에서 컨테이너 이미지를 작성하는 데 사용할 수 있는 메커니즘입니다. Code Engine은 Dockerfile 및 클라우드 네이티브 빌드팩에서의 빌드를 지원합니다. |
| 코드 번들 | 코드 번들은 기능 코드를 나타내는 파일의 콜렉션입니다. 이 코드 번들은 런타임 컨테이너에 삽입됩니다. 코드 번들은 Code Engine 에 의해 작성되며 컨테이너 레지스트리에 저장되거나 함수와 함께 인라인으로 저장됩니다. 코드 번들은 OCI (Open Container Initiative) 표준 컨테이너 이미지가 아닙니다. |
| 코드 저장소 | 코드 저장소(예: GitHub 또는 GitLab)에는 소스 코드가 저장됩니다. Code Engine을 사용하면 개인용 코드 저장소에 대한 액세스 권한을 추가한 후 빌드에서 해당 저장소를 참조할 수 있습니다. |
| ConfigMap | configmap은 민감하지 않은 데이터 정보를 배치에 포함하는 방법을 제공합니다. 환경 변수로 컨피그맵의 값을 참조하여 특정 정보를 배포에서 분리하고 앱, 작업 또는 함수의 이식성을 유지할 수 있습니다. configmap에는 키-값 쌍의 정보가 포함되어 있습니다. |
| 컨테이너 이미지 레지스트리 | 컨테이너 레지스트리 또는 레지스트리는 컨테이너 이미지를 저장하는 서비스입니다. 예를 들어, IBM Cloud Container Registry 및 Docker Hub가 컨테이너 레지스트리입니다. 컨테이너 레지스트리는 공용 또는 개인용일 수 있습니다. 공용 컨테이너 레지스트리에 액세스하려면 인증 정보가 필요하지 않습니다. 반대로, 개인용 레지스트리에 액세스하려면 인증 정보가 필요합니다. |
| 기능 | 함수는 HTTP 요청에 의해 호출될 때 작업을 수행하는 상태 비저장 코드 스니펫입니다. IBM Code Engine 함수를 사용하면 확장 가능한 서버리스 방식으로 비즈니스 로직을 실행할 수 있습니다. IBM Code Engine 함수는 짧은 지연 시간과 신속한 스케일아웃 시나리오를 지원하기 위해 최적화된 런타임 환경을 제공합니다. 함수 코드는 특정 Node.js 또는 Python 버전이 포함된 관리형 런타임에서 작성할 수 있습니다. |
| 작업 | 작업은 실행 코드의 인스턴스를 하나 이상 병렬로 실행합니다. HTTP 요청을 처리하는 애플리케이션과 달리 작업이 한 번 실행되고 종료되도록 설계되었습니다. 작업을 작성할 때 작업이 실행될 때마다 사용될 워크로드 구성 정보를 지정할 수 있습니다. |
| 함대 | 서버리스 플릿이라고도 하는 플릿은 지정된 작업 집합을 완료하기 위해 하나 이상의 사용자 코드 인스턴스를 실행합니다. 플릿은 대규모 컴퓨팅 집약적인 워크로드를 처리하고 머신 프로필을 제어할 수 있으며 GPU 리소스에서 실행할 수 있습니다. 플릿은 단일 테넌트이며 동적 작업 대기열을 구현하고 머신 프로필 구성을 완벽하게 제어할 수 있습니다. 또한, 차량은 가상 프라이빗 클라우드(VPC)에 연결하여 사용자 데이터와 서비스에 안전하게 액세스할 수 있습니다. |
| 프로젝트 |
프로젝트는 애플리케이션, 작업 및 빌드와 같은 Code Engine 엔티티의 그룹입니다. 프로젝트는 Kubernetes 네임스페이스를 기반으로 합니다. 프로젝트 이름은 IBM Cloud® 리소스 그룹, 사용자 계정 및 지역 내에서 고유해야 합니다. 프로젝트는 리소스를 관리하고 해당 엔티티에 대한 액세스를 제공하는 데 사용됩니다. 프로젝트는 다음 항목을 제공합니다.
|
| 시크릿 | 시크릿은 비밀번호 또는 SSH 키와 같은 민감한 구성 정보를 배치에 포함하는 방법을 제공합니다. 시크릿의 값을 참조하면 배포에서 민감한 정보를 분리하여 앱, 기능 또는 작업의 이식성을 유지할 수 있습니다. 프로젝트에 대한 권한이 있는 사용자는 누구나 시크릿을 볼 수 있습니다. 시크릿 정보는 이러한 사용자와 공유될 수 있다는 점을 알고 있어야 합니다. 시크릿에는 키-값 쌍의 정보가 포함되어 있습니다. |
| 서비스 바인딩 | 서비스 바인딩은 IBM Cloud 서비스에 대한 애플리케이션, 작업 및 기능 액세스를 제공합니다. |
| 구독 | 구독은 특정 이벤트 생성자로부터 이벤트를 수신하기 위해 등록하는 방법을 제공합니다. 여러 유형의 이벤트 생성자 및 구독 방법에 대한 자세한 정보는 이벤트 생성자 구독을 참조하십시오. |