Code Engine에 대해 알아보기

IBM Cloud® Code Engine(또는 "Code Engine")은 소스 중심의 컨테이너화된 최신 서버리스 앱과 작업을 작성할 수 있도록 지원하기 위해 IBM에서 개발했습니다. 이 플랫폼은 코드 실행만을 원하는 개발자의 요구를 해결하기 위해 설계되었습니다. Code Engine은(는) 개발자가 가장 중요한 항목인 소스 코드에만 집중할 수 있도록 Kubernetes에서 워크로드를 빌드하고, 배치하고, 관리하는 운영 부담을 덜어줍니다.

Code Engine의 이점

Code Engine에서 워크로드 실행을 위해 제공하는 기능을 검토하십시오.

{{{site.data.keyword.codeengineshort
기능 설명
워크로드 실행 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에 대한 대한 기본사항을 알아보십시오.

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® 리소스 그룹, 사용자 계정 및 지역 내에서 고유해야 합니다. 프로젝트는 리소스를 관리하고 해당 엔티티에 대한 액세스를 제공하는 데 사용됩니다. 프로젝트는 다음 항목을 제공합니다.

  • 엔티티 이름에 대한 고유한 네임스페이스를 제공합니다.
  • 프로젝트 리소스에 대한 액세스를 관리합니다(인바운드 액세스).
  • 백업 서비스, 레지스트리 및 저장소에 대한 액세스를 관리합니다(아웃바운드 액세스).
  • TLS(Transport Layer Security)에 대해 자동으로 생성된 인증서가 있습니다.
시크릿 시크릿은 비밀번호 또는 SSH 키와 같은 민감한 구성 정보를 배치에 포함하는 방법을 제공합니다. 시크릿의 값을 참조하면 배포에서 민감한 정보를 분리하여 앱, 기능 또는 작업의 이식성을 유지할 수 있습니다. 프로젝트에 대한 권한이 있는 사용자는 누구나 시크릿을 볼 수 있습니다. 시크릿 정보는 이러한 사용자와 공유될 수 있다는 점을 알고 있어야 합니다. 시크릿에는 키-값 쌍의 정보가 포함되어 있습니다.
서비스 바인딩 서비스 바인딩은 IBM Cloud 서비스에 대한 애플리케이션, 작업 및 기능 액세스를 제공합니다.
구독 구독은 특정 이벤트 생성자로부터 이벤트를 수신하기 위해 등록하는 방법을 제공합니다. 여러 유형의 이벤트 생성자 및 구독 방법에 대한 자세한 정보는 이벤트 생성자 구독을 참조하십시오.