IBM has recently announced the beta availability of a new serverless compute service called IBM Cloud Code Engine. The service is a managed serverless platform that runs containerized workloads, for example web apps, micro-services, event-driven functions and batch jobs.
A follow up article describes the use cases and the open source technologies used to build Code Engine, including Knative, the Kubernetes-based platform to deploy and manage serverless workloads, the service mesh Istio, and Tekton, the framework for creating continuous integration and delivery (CI/CD) systems. Cong Nguyen, developer advocate at IBM, tweets:
Finally a shared Knative service on the cloud. My cheapskate prayer has finally been answered.
IBM emphasises the open source layers and the portability of the platform, explaining that while it offers a simplified user experience, developers can still fully customize the Kubernetes data model or reuse existing deployment scripts on Code Engine.
Depending on the load, Code Engine automatically scales the containers, including scaling to zero when no requests are active. A container image is not a prerequisite to use the service: Code Engine can bundle the source-code from a Git repository with a supported runtime environment, what IBM calls a "buildpack", and generate the container. A guide on how to do it is available in the IBM Cloud Design Engineer Gitbook.
The About IBM Cloud Code Engine covers the main concepts, names and terminology used on the platform. The first tutorial provided by IBM shows how to build a visual recognition platform, using Code Engine and the Cloud CLI.
source: https://cloud.ibm.com/docs/solution-tutorials?topic=solution-tutorials-image_classification_code_engine
Harald Uebele, developer advocate at IBM Germany, wrote a detailed article on in his personal blog on how to run containers serverless on Code Engine, highlighting the use cases where the new platform should excel:
I am a big fan of Kubernetes, it is a very powerful tool to manage containerized applications. But if you only want to run a small application without exactly knowing how much traffic it will generate then Kubernetes may be too big, too expensive, and too much effort. A serverless platform would most likely be better suited for this, for example Knative Serving. But it still requires Kubernetes. If you run a Knative instance on your own you probably don’t gain much. This is where something like IBM’s Code Engine comes to play.
While Christophe Boulangé, cloud director at BNP Paribas, labels it the "FaaS next-generation," other developers question the advantages against other existing offers: "What is the strongest part of this solution against AWS lambda, or Cloud Functions from GCP?"
While in beta, Code Engine is free.