Skip to content

Commit c4376ed

Browse files
Merge pull request #243 from IBM/serverless-fleets-ga
Moving serverless fleets samples and tutorials
2 parents 933e7e4 + cd5d457 commit c4376ed

File tree

234 files changed

+674
-41290
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

234 files changed

+674
-41290
lines changed

README.md

Lines changed: 33 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -91,88 +91,66 @@ to get started.
9191
stage through to production - showcasing how to the various components,
9292
like applications, functions and jobs can be work together to implement a solution.
9393

94-
- [Thumbnail Generator](thumbnail)<br>
95-
Walks through the complete growth path of an application from the prototype
96-
stage through to production - demonstrating how to switch from an in-app
97-
processor to one where the data is persisted and processed via an
98-
event-driven architecture.
94+
- [Docling](serverless-fleets/tutorials/docling)<br>
95+
This tutorial provides a comprehensive guide on using [Docling](https://docling-project.github.io/docling/) to convert PDFs into Markdown format using serverless fleets. It leverages cloud object storage for managing both the input PDFs and the resulting Markdown files. The process is streamlined using IBM’s Code Engine to build the Docling container, which is then pushed to a container registry. Users can run a serverless fleet, which autonomously spawns workers to run the Docling container for efficient, scalable conversion tasks.
96+
97+
- [Batch inferencing](serverless-fleets/tutorials/inferencing)<br>
98+
This tutorial provides a comprehensive guide on using Serverless GPUs to perform batch inferencing which illustrates a generally applicable pattern where AI helps to extract information out of a set of unstructed data.
9999

100100
- [Metrics Collector](metrics-collector)<br>
101101
Re-usable asset that helps to gain insights on the CPU and memory consumption of apps, jobs and builds.
102102

103+
- [Fotobox](fotobox)
104+
Deploy your own Fotobox straight to the IBM Cloud access it directly from any device with browser and camera. Take pictures and view them all from your device.
105+
106+
103107
## Samples
104108

105109
The samples are grouped by the main category of functionality that it
106110
is demonstrating.
107111

108112
#### Apps
109-
- [hello](hello)<br>
110-
Very basic "hello world!" type of application written in Node.js. Start here!
111113
- [helloworld](helloworld)<br>
112-
Similar to [hello](hello) except this is written in golang and adds a few
113-
bells-n-whistles to allow you to control what it does when invoked.
114-
- [auth](auth)<br>
115-
This shows how to setup an nginx proxy in-front of a private application
116-
to ensure that only authorized people can access it.
117-
- [bind-app](bind-app)<br>
118-
This will create an instance of Event Streams in the IBM Cloud and then ask
119-
Code Engine to bind it to an Application so we can access it from the App.
120-
The credentials, etc. will be injected into the App via environment variables.
121-
- [cecli](cecli)<br>
122-
Show how to invoke the Code Engine CLI from within an App. This can be used
123-
to then start additional Code Engine resources (Apps/Jobs) dynamically.
124-
Same logic could be used in Batch Jobs.
125-
- [sessions](sessions)<br>
126-
Starts a stateful application that scales based on load. The state is kept
127-
in an instance of Redis, also running within Code Engine. Demonstrates the
128-
use of non-http components and private networking between components.
129-
- [websocket](websocket)<nr>
130-
Shows how to interact with an Application via WebSockets.
114+
Very basic "hello world!" type of application writtin in golang. Start here!
115+
- [auth-oidc-proxy](auth-oidc-proxy)<br>
116+
This sample demonstrates how to configure an authentication/authorization layer that fronts any arbitrary Code Engine application. In principal, this pattern is pretty generic. To demonstrate it, we chose to implement it with OpenID Connect (OIDC), an authentication framework that is built on top of the OAuth 2.0 protocol.
117+
118+
#### Fleets
119+
- [serverless-fleets](serverless-fleets)<br>
120+
To learn how to simplify and optimize large-scale parallel computation with Serverless Fleets, you should start here!
131121

132122
#### Batch Jobs
133123
- [helloworld](helloworld)<br>
134124
This is another simple Batch Job sample, similar to the previous one, but
135125
shows how to use environment variables to modify the behavior of the runtime
136126
of the job.
127+
- [Trusted Profiles](trusted-profiles)<br>
128+
In the IBM Cloud, when authenticating with other services such as Cloud
129+
Object Storage or Secrets Manager, using trusted profiles is a way to
130+
authenticate without any API keys being used. This eliminates the risk of
131+
those being leaked or stolen by a malicious user who uses them to access your
132+
IBM Cloud resources.
137133
- [cronjob](cronjob)<br>
138134
This will create a Batch Job that will be invoked based on a cron
139135
event. Meaning, it'll be executed based on a timer.
140-
- [app2job](app2job)<br>
141-
This will show how to submit a Job from an Application based on an incoming
142-
HTTP request to the Application.
143-
- [function2job](function2job)<br>
144-
This will show how to submit a Job from a Function based on an incoming
145-
HTTP request to the Function.
146-
- [bind-job](bind-job)<br>
147-
This will create an instance of Event Streams in the IBM Cloud and then ask
148-
Code Engine to bind it to a Batch Job so we can access it from the Job. The
149-
credentials, etc. will be injected into the Job via environment variables.
150-
- [job2app](job2app)<br>
151-
This will demostrate how to create a simple Batch Job and how to have it
152-
communicate with an Application running within the same project.
153-
- [job2vsi](job2vsi)<br>
154-
The sample shows how a job can be used to spawn
155-
[Virtual Server Instances (VSIs)]((https://www.ibm.com/cloud/virtual-servers))
156-
in your IBM Cloud account and run workload on them.
157-
158136

159137
#### Function
160138

161-
- [function-inline-nodejs](helloworld-samples/function-inline-nodejs)
162-
This example shows how to create simple inline NodeJS function
163-
- [function-inline-python](helloworld-samples/function-inline-python)
139+
- [function-inline-nodejs](helloworld-samples/function-inline-nodejs)<br>
140+
This example shows how to create simple inline Node.js function
141+
- [function-inline-python](helloworld-samples/function-inline-python)<br>
164142
This example shows how to create simple inline Python function
165-
- [function-codebundle-nodejs](helloworld-samples/function-codebundle-nodejs)
166-
This example shows how to create NodeJS functions with additional modules
167-
- [function-typescript-codebundle-nodejs](helloworld-samples/function-typescript-codebundle-nodejs)
143+
- [function-codebundle-nodejs](helloworld-samples/function-codebundle-nodejs)<br>
144+
This example shows how to create Node.js functions with additional modules
145+
- [function-typescript-codebundle-nodejs](helloworld-samples/function-typescript-codebundle-nodejs)<br>
168146
This example shows how to create TypeScript functions with additional modules
169-
- [function-codebundle-python](helloworld-samples/function-codebundle-python)
147+
- [function-codebundle-python](helloworld-samples/function-codebundle-python)<br>
170148
This example shows how to create Python functions with additional modules
171-
- [function-http-nodejs](helloworld-samples/function-http-nodejs)
172-
This example shows how to create NodeJS functions with can perfome a http request without additional modules
173-
- [function-http-python](helloworld-samples/function-http-python)
149+
- [function-http-nodejs](helloworld-samples/function-http-nodejs)<br>
150+
This example shows how to create Node.js functions with can perfome a http request without additional modules
151+
- [function-http-python](helloworld-samples/function-http-python)<br>
174152
This example shows how to create Python functions which can perfome a http request without additional modules
175-
- [function-python-go-binary](helloworld-samples/function-python-go-binary/README.md)
153+
- [function-python-go-binary](helloworld-samples/function-python-go-binary/README.md)<br>
176154
This example shows how to create a Python function which includes and executes a Go binary
177155

178156
#### Eventing
@@ -188,28 +166,10 @@ is demonstrating.
188166
- [github](github)<br>
189167
This sample will show how to get events from Github (via its webhooks)
190168
delivered to a Code Engine Application.
191-
- [kafka](kafka)<br>
192-
This sample shows how to create a Kafka subscription to automatically have
193-
messages in a Kafka instances delivered to an application.
194169
- [kafka-observer](kafka)<br>
195170
This provides a sample implementation of the observer pattern,
196171
which is a native approach to consume Kafka messages in IBM Cloud Code Engine.
197-
- [cloudant-change-listener](cloudant-change-listener)<br>
198-
This is a sample of a Cloudant Databases changes listener that continously
199-
listen on all changes in a database. For each change a Code Engine function
200-
is invoked
201172

202-
#### Misc
203-
- [configmaps-env](configmaps-env)<br>
204-
Shows how to define and inject a ConfigMap as environment variables
205-
into an Application.
206-
- [configmaps-vol](configmaps-vol)<br>
207-
Shows how to define and inject a ConfigMap as a volume into an Application.
208-
- [secrets-env](secrets-env)<br>
209-
Shows how to define and inject a Secret as environment variables
210-
into an Application.
211-
- [secrets-vol](secrets-vol)<br>
212-
Shows how to define and inject a Secret as a volume into an Application.
213173

214174
## Layout of the repository
215175

0 commit comments

Comments
 (0)