IBM Cloud Docs
IBM Cloud Functions을 Code Engine로 마이그레이션하기

IBM Cloud Functions을 Code Engine로 마이그레이션하기

IBM Cloud Functions는 IBM의 권장 서비스형 기능 솔루션으로, IBM의 퍼블릭 클라우드를 기반으로 하고 있습니다. 전 세계 6개 데이터 센터에서 제공되는 IBM Cloud Functions는 처음부터 고객의 요구 사항을 충족해 왔습니다.

그러나 고객이 명확하게 설명하고 있는 증가된 요구사항 및 추가 요구사항으로 인해 IBM Functions-as-a-Service 기술 및 오퍼링이 지속적으로 혁신, 개선 및 발전하고 있습니다. 결과적으로 이러한 요구를 해결하기 위해 IBM 은 Functions-as-a-Service 기술을 IBM Cloud® Code Engine에 추가합니다. Code Engine에서 기능을 사용할 때의 제한사항은 기능 제한사항 을 참조하십시오.

Code Engine 과 Cloud Functions 비교

SOC2, ISO32k, BSI C5, 금융 서비스 클라우드 인증 IBM Cloud Code Engine 서비스는 9개 지역에서 사용할 수 있습니다. 완전히 관리되는 서버리스 플랫폼으로서 컨테이너, 일괄처리 작업, 애플리케이션 및 기능으로 다양한 고객 워크로드를 실행합니다. Code Engine에 IBM 퍼블릭 클라우드에서 액세스할 수 있습니다.

새 Functions-as-a-Service 기능을 사용하면 Code Engine 고객이 단기 실행, 완료 시까지 실행 유형의 워크로드를 수행할 수 있습니다. Cloud Functions 고객이든 서비스형 기능에 대해 처음 접하는 고객이든 IBM Cloud Code Engine 에서 실행하는 기능에 대해 자세히 알아볼 수 있습니다. 튜토리얼을 사용 할 수도 있습니다.

Code Engine 의 Functions-as-a-Service는 사용자 경험, 사용 패턴, 보안 및 총 소유 비용 측면에서 개선된 서버 없는 가치 제안을 제공합니다.

Code Engine 의 기능은 다음 옵션을 사용하여 사용자 경험을 단순화합니다.

  • Code Engine 개발 플로우 및 기능과 완전히 통합됩니다.
  • 공통 프로그래밍 언어를 포함하며 최적화된 관리 런타임을 제공합니다.
  • 낮은 콜드 스타트 대기 시간과 빠른 용량 확장으로 온디맨드 코드 실행을 제공합니다.
  • 웹 애플리케이션을 위한 다양한 기능을 지원하는 웹 URL 기반 함수 호출 메커니즘을 제공합니다.
  • 개인용 저장소 및 레지스트리에 대한 액세스와 같은 지원되는 보안 기능입니다.

IBM Cloud Code Engine 기능을 사용하면 선호하는 프로그래밍 언어를 사용하여 확장 가능한 방식으로 비즈니스 로직의 스니펫을 실행하는 경량 코드를 작성할 수 있습니다. 애플리케이션의 HTTP 요청에 대한 응답 또는 IBM Cloud 서비스 및 외부 이벤트에 대한 응답으로 코드를 실행할 수 있습니다.

대신 컨테이너 이미지를 실행하는 대신 Code Engine 함수가 코드 번들을 실행합니다. 코드 번들은 기능 코드를 나타내는 파일의 콜렉션입니다. 이 코드 번들은 런타임 컨테이너에 삽입됩니다. 코드 번들은 Code Engine 에 의해 작성되며 컨테이너 레지스트리에 저장되거나 함수와 함께 인라인으로 저장됩니다. 코드 번들은 OCI (Open Container Initiative) 표준 컨테이너 이미지가 아닙니다.

핵심 기능

IBM Cloud Functions 기반 워크로드를 마이그레이션할 때는 다음 기능 및 전략을 고려하세요.

  • 진화하는 관리 런타임 목록을 지원합니다. 자세한 정보는 런타임 을 참조하십시오.

    • Node.js 릴리스 버전 18
    • Python 릴리스 버전 3.11
  • 최적화된 CPU및 메모리 조합 을 제공합니다.

또한 Code Engine 에는 프로젝트 할당량 뿐만 아니라 기능 한계 가 포함되어 있습니다.

내 워크로드에 가장 적합한 Code Engine 엔티티는 무엇입니까?

Code Engine 애플리케이션은 확장 가능한 컴퓨팅 인프라에서 장기간 실행되는 복잡한 컴퓨팅 작업을 수행합니다.

Code Engine 작업은 높은 자원이 필요할 수 있는 낮은 병렬 처리, 스케줄된 워크로드에 사용됩니다.

Code Engine 함수는 외부 이벤트의 결과로 경량의 단기 실행 데이터 변환을 수행할 수 있습니다. 또한 웹 페이지의 동적 데이터 요소에 대한 컨텐츠를 제공할 수도 있습니다. 일반적으로 함수는 정의된 시간 또는 짧은 시간에 완료해야 하는 확장 가능한 단기 실행 병렬 태스크를 수행할 수 있습니다.

Code Engine 함수는 지원되는 프로그래밍 언어의 소스 코드 스니펫을 사용하는 간단한 프로그래밍 모델을 제공합니다. 이러한 코드 스니펫은 먼저 코드를 컴파일할 필요 없이 함수 정의에서 "인라인" 으로 사용됩니다.

Code Engine 애플리케이션, 작업 및 기능 비교하기
특성 애플리케이션 작업 기능
실행 시간 (지속 기간) 장기 실행 (요청당 10분) 장기 실행 (최대 24시간) 단기 실행 (2분이하)
시작 대기 시간 중간 예정 시작 낮음
종료 계속 실행 완료 시까지 실행 완료 시까지 실행
호출 요청 시 또는 영구적으로 실행 중인 경우 스케줄됨 요청 시, 인스턴트
프로그래밍 모델 컨테이너 기반 빌드 및 실행 컨테이너 기반 빌드 및 실행 언어 특정 소스 코드 파일 및 종속성 메타데이터
병렬 처리 병렬 실행, 유연성 낮은 병렬 실행에서 중간 병렬 실행 높은 병렬 실행
Scale-out 요청 수 기반 작업 워크로드 정의 기반 이벤트 또는 직접 호출 기반
최적화 대상 장기 실행, 매우 복잡한 워크로드 및 온디맨드 용량 확장 높은 자원 수요가 있는 스케줄된 또는 계획된 워크로드 시작 시간 및 빠른 용량 확장

IBM Cloud Functions 작업을 Code Engine Functions FAQ로 마이그레이션하기

계산의 벌크 로드를 처리하는 방법은 무엇입니까?

높은 CPU및 메모리 자원이 필요하고 n시간 이내에 완료해야 하는 대량 로드 계산을 처리하는 경우, 프로그램 로직을 Code Engine 작업으로 마이그레이션한 후 매일 실행되도록 작업을 스케줄할 수 있습니다. 자세한 정보는 작업 및 작업 실행에 대한 작업 을 참조하십시오.

내 웹 애플리케이션에 대한 동적 요소를 포함하기 위해 Cloud Function을 사용했습니다. Code Engine 함수로 이동할 수 있습니까?

액션을 Code Engine 함수로 변환한 다음 제공된 함수 URL 사용하여 필요한 동적 콘텐츠를 호출하고 반환할 수 있습니다. 시작하려면 함수에 대한 작업 을 참조하십시오.

내 기능 코드를 트리거할 수 있습니까?

예. Code Engine 는 기능에 대한 cron 작업 (알람) 을 지원합니다. 기타 유형의 이벤트 생성자 (또는 트리거) 는 애플리케이션 및 작업에 대해서만 지원됩니다. 코드를 애플리케이션 또는 작업으로 만든 다음 크론 작업, 개체 저장소 및 Event Streams (Kafka) 데이터를 포함한 이벤트 프로듀서에 구독을 추가할 수 있습니다. 자세한 내용은 구독 시작하기를 참조하세요.

공개 URL 통해 내 기능에 액세스할 수 있나요?

Code Engine 함수에는 함수를 만들 때 제공되는 공개 URL 포함되어 있습니다. 기능에 사용자 정의 도메인 을 사용할 수도 있습니다.

내 기능을 보안하는 방법은 무엇입니까?

코드가 Git 리포지토리 또는 컨테이너 레지스트리에서 보호될 수 있지만 함수 URL 공개되어 있으므로 함수 호출 권한은 함수 코드 자체에서 구현해야 합니다.

동적 요소를 포함할 수 있습니까?

Code Engine에서 지원되는 동적 요소를 포함할 수 있습니다. 예를 들어, Cloudant 데이터베이스를 사용 중이고 데이터 변경사항을 기반으로 Cloud Functions 조치를 호출하는 경우에는 Code Engine 가 Cloudant 데이터베이스에 대한 등록을 지원하지 않으므로 마이그레이션할 수 없습니다. 그러나 IBM Cloud Object Storage에 등록할 수 있습니다.

시퀀스를 사용하여 함수를 함께 연결할 수 있습니까?

Code Engine 시퀀스에 대한 지원은 포함되지 않습니다. 그러나 모든 함수는 호출을 통해 호출될 수 있으므로 프라이빗 또는 퍼블릭 엔드포인트, 일련의 REST 호출을 통해 기능을 연결할 수 있습니다. 이 논리는 기능 코드에 직접 추가되어야 합니다.

내 기능을 서비스 신임 정보에 바인드할 수 있습니까?

예, 서비스 바인드가 지원됩니다! IBM Cloud 서비스를 Code Engine과 통합하기 위한 서비스 바인딩에 대한 작업 을 참조하십시오.

진행 중이고 완료된 Code Engine 함수 실행에 대한 정보는 어디에서 찾을 수 있습니까?

소스 코드에서 함수를 작성한 경우 빌드 로그를 볼 수 있습니다.

그렇지 않으면 IBM Cloud Logs 설정하여 함수 호출에 대한 정보(메타 정보)와 함수 코드에서 전송되는 로그 메시지가 포함된 플랫폼 로그를 볼 수 있습니다.

Code Engine 가 배치된 함수에 대해 OpenAPI 스펙을 제공합니까?

아니오, Code Engine 는 사용자가 배치하는 기능에 대해 OpenAPI 스펙을 생성하거나 제공하지 않습니다. 코드에서 OpenAPI 스펙을 생성하기 위해 여러 프로그래밍 언어에 사용할 수 있는 패키지 및 도구가 있습니다.