Skip to content

Commit dfbb089

Browse files
authored
Merge pull request #5 from open-lambda/blog
ADD blog content
2 parents 4bdfbf0 + 9eb3d53 commit dfbb089

48 files changed

Lines changed: 6128 additions & 62 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
51 Bytes
Binary file not shown.
Binary file not shown.
14.6 KB
Binary file not shown.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
blogpost: true
3+
date: 2026-05-18
4+
author: Maria Oros, Tyler Caraza-Harter
5+
category: Case Studies
6+
tags: case-study, agforecast, asgi, fastapi, openlambda
7+
language: en
8+
---
9+
10+
# An Application Case Study: Forecasting Crop Disease with OpenLambda
11+
12+
*Maria Oros, Data Science Institute, University of Wisconsin–Madison*
13+
*Tyler Caraza-Harter, Department of Computer Sciences, University of Wisconsin–Madison*
14+
15+
Our goal is to make an ever-growing set of applications deployable on OpenLambda (OL), with minimal modifications. We believe the best way to work towards this goal is to pick interesting applications that weren't originally designed for serverless deployment, try to port them to OL, and identify pain points. This helps us identify the most useful features to add to OL, to support similar deployments.
16+
17+
Recently, we selected an agricultural forecasting application (AgForecast), developed by the [Data Science Institute at UW–Madison](https://dsi.wisc.edu/), to port to OpenLambda: <https://github.com/UW-Madison-DSI/ag_forecasting_api>. AgForecast is an interesting case study, because it implements its REST API using FastAPI, which in turn uses [ASGI](https://asgi.readthedocs.io/en/latest/), the so-called "spiritual successor" to WSGI, which we recently started supporting in OpenLambda. WSGI is the basis for popular Python web-programming packages such as Django and Flask; new ASGI support opens the door to an even broader range of applications.
18+
19+
In this post, we describe the challenges of porting AgForecast to OL, and four new features we added to OL to make deployment of similar applications in the future simpler. The features are built-in ASGI support, direct GitHub-to-OL deployments, OL function environment variables, and OL-based pip compilation.

_build/html/blog.html

Lines changed: 129 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,12 @@ <h3>
155155
</a>
156156
</li>
157157

158+
<li>
159+
<a href="blog/post/2026-05-18-ag-forecasting-case-study.html">
160+
18 May - An Application Case Study: Forecasting Crop Disease with OpenLambda
161+
</a>
162+
</li>
163+
158164
</ul>
159165
</div>
160166
</div>
@@ -168,11 +174,27 @@ <h3>
168174
<h3><a href="blog/tag.html">Tags</a></h3>
169175
<ul class="ablog-cloud">
170176

171-
<li class="ablog-cloud ablog-cloud-3">
177+
<li class="ablog-cloud ablog-cloud-1">
178+
<a href="blog/tag/agforecast.html">agforecast</a>
179+
</li>
180+
181+
<li class="ablog-cloud ablog-cloud-1">
172182
<a href="blog/tag/announcement.html">announcement</a>
173183
</li>
174184

175-
<li class="ablog-cloud ablog-cloud-3">
185+
<li class="ablog-cloud ablog-cloud-1">
186+
<a href="blog/tag/asgi.html">asgi</a>
187+
</li>
188+
189+
<li class="ablog-cloud ablog-cloud-1">
190+
<a href="blog/tag/case-study.html">case-study</a>
191+
</li>
192+
193+
<li class="ablog-cloud ablog-cloud-1">
194+
<a href="blog/tag/fastapi.html">fastapi</a>
195+
</li>
196+
197+
<li class="ablog-cloud ablog-cloud-5">
176198
<a href="blog/tag/openlambda.html">openlambda</a>
177199
</li>
178200

@@ -186,6 +208,10 @@ <h3>
186208
</h3>
187209
<ul>
188210

211+
<li>
212+
<a href="blog/category/case-studies.html">Case Studies (1)</a>
213+
</li>
214+
189215
<li>
190216
<a href="blog/category/releases.html">Releases (1)</a>
191217
</li>
@@ -201,7 +227,7 @@ <h3>
201227
<ul>
202228

203229
<li>
204-
<a href="blog/2026.html">2026 (1)</a>
230+
<a href="blog/2026.html">2026 (2)</a>
205231
</li>
206232

207233
</ul>
@@ -450,6 +476,106 @@ <h2 class="ablog-post-title">
450476
</p>
451477
<hr />
452478
</div>
479+
480+
<div class="section ablog-post">
481+
<h2 class="ablog-post-title">
482+
<a href="blog/post/2026-05-18-ag-forecasting-case-study.html">An Application Case Study: Forecasting Crop Disease with OpenLambda</a>
483+
</h2>
484+
<ul class="ablog-archive">
485+
<li>
486+
487+
<i class="fa fa-calendar"></i>
488+
489+
<span>2026-05-18</span>
490+
491+
</li>
492+
<div class="ablog-sidebar-item ablog__postcard2">
493+
494+
<li id="ablog-sidebar-item author ablog__author">
495+
<span>
496+
497+
<i class="fa-fw fa fa-user"></i>
498+
499+
</span>
500+
501+
<a href="blog/author/maria-oros.html">Maria Oros</a>
502+
,
503+
<a href="blog/author/tyler-caraza-harter.html">Tyler Caraza-Harter</a>
504+
505+
</li>
506+
507+
<li id="ablog-sidebar-item language ablog__language">
508+
<span>
509+
510+
<i class="fa-fw fa fa-language"></i>
511+
512+
</span>
513+
514+
<a href="blog/language/en.html">en</a>
515+
516+
</li>
517+
518+
<li id="ablog-sidebar-item category ablog__category">
519+
<span>
520+
521+
<i class="fa-fw fa fa-folder-open"></i>
522+
523+
</span>
524+
525+
<a href="blog/category/case-studies.html">Case Studies</a>
526+
527+
</li>
528+
529+
<li id="ablog-sidebar-item tags ablog__tags">
530+
<span>
531+
532+
<i class="fa-fw fa fa-tags"></i>
533+
534+
</span>
535+
536+
<a href="blog/tag/case-study.html">case-study</a>
537+
538+
<a href="blog/tag/agforecast.html">agforecast</a>
539+
540+
<a href="blog/tag/asgi.html">asgi</a>
541+
542+
<a href="blog/tag/fastapi.html">fastapi</a>
543+
544+
<a href="blog/tag/openlambda.html">openlambda</a>
545+
546+
</li>
547+
548+
</div>
549+
</ul>
550+
<p class="ablog-post-excerpt"><p><em>Maria Oros, Data Science Institute, University of Wisconsin–Madison</em><br />
551+
<em>Tyler Caraza-Harter, Department of Computer Sciences, University of Wisconsin–Madison</em></p>
552+
<p>Our goal is to make an ever-growing set of applications deployable on OpenLambda (OL), with minimal modifications. We believe the best way to work towards this goal is to pick interesting applications that weren’t originally designed for serverless deployment, try to port them to OL, and identify pain points. This helps us identify the most useful features to add to OL, to support similar deployments.</p>
553+
</p>
554+
555+
<script type="text/x-thebe-config">
556+
{
557+
requestKernel: true,
558+
binderOptions: {
559+
repo: "binder-examples/jupyter-stacks-datascience",
560+
ref: "master",
561+
},
562+
codeMirrorConfig: {
563+
theme: "abcdef",
564+
mode: "python"
565+
},
566+
kernelOptions: {
567+
name: "python3",
568+
path: "./."
569+
},
570+
predefinedOutput: true
571+
}
572+
</script>
573+
<script>kernelName = 'python3'</script>
574+
<p class="ablog-post-expand">
575+
<a href="blog/post/2026-05-18-ag-forecasting-case-study.html"><em>Read more ...</em></a>
576+
</p>
577+
<hr />
578+
</div>
453579

454580
</div>
455581

_build/html/blog/2026.html

Lines changed: 129 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,12 @@ <h3>
155155
</a>
156156
</li>
157157

158+
<li>
159+
<a href="post/2026-05-18-ag-forecasting-case-study.html">
160+
18 May - An Application Case Study: Forecasting Crop Disease with OpenLambda
161+
</a>
162+
</li>
163+
158164
</ul>
159165
</div>
160166
</div>
@@ -168,11 +174,27 @@ <h3>
168174
<h3><a href="tag.html">Tags</a></h3>
169175
<ul class="ablog-cloud">
170176

171-
<li class="ablog-cloud ablog-cloud-3">
177+
<li class="ablog-cloud ablog-cloud-1">
178+
<a href="tag/agforecast.html">agforecast</a>
179+
</li>
180+
181+
<li class="ablog-cloud ablog-cloud-1">
172182
<a href="tag/announcement.html">announcement</a>
173183
</li>
174184

175-
<li class="ablog-cloud ablog-cloud-3">
185+
<li class="ablog-cloud ablog-cloud-1">
186+
<a href="tag/asgi.html">asgi</a>
187+
</li>
188+
189+
<li class="ablog-cloud ablog-cloud-1">
190+
<a href="tag/case-study.html">case-study</a>
191+
</li>
192+
193+
<li class="ablog-cloud ablog-cloud-1">
194+
<a href="tag/fastapi.html">fastapi</a>
195+
</li>
196+
197+
<li class="ablog-cloud ablog-cloud-5">
176198
<a href="tag/openlambda.html">openlambda</a>
177199
</li>
178200

@@ -186,6 +208,10 @@ <h3>
186208
</h3>
187209
<ul>
188210

211+
<li>
212+
<a href="category/case-studies.html">Case Studies (1)</a>
213+
</li>
214+
189215
<li>
190216
<a href="category/releases.html">Releases (1)</a>
191217
</li>
@@ -201,7 +227,7 @@ <h3>
201227
<ul>
202228

203229
<li>
204-
<a href="#">2026 (1)</a>
230+
<a href="#">2026 (2)</a>
205231
</li>
206232

207233
</ul>
@@ -454,6 +480,106 @@ <h2 class="ablog-post-title">
454480
</p>
455481
<hr />
456482
</div>
483+
484+
<div class="section ablog-post">
485+
<h2 class="ablog-post-title">
486+
<a href="post/2026-05-18-ag-forecasting-case-study.html">An Application Case Study: Forecasting Crop Disease with OpenLambda</a>
487+
</h2>
488+
<ul class="ablog-archive">
489+
<li>
490+
491+
<i class="fa fa-calendar"></i>
492+
493+
<span>2026-05-18</span>
494+
495+
</li>
496+
<div class="ablog-sidebar-item ablog__postcard2">
497+
498+
<li id="ablog-sidebar-item author ablog__author">
499+
<span>
500+
501+
<i class="fa-fw fa fa-user"></i>
502+
503+
</span>
504+
505+
<a href="author/maria-oros.html">Maria Oros</a>
506+
,
507+
<a href="author/tyler-caraza-harter.html">Tyler Caraza-Harter</a>
508+
509+
</li>
510+
511+
<li id="ablog-sidebar-item language ablog__language">
512+
<span>
513+
514+
<i class="fa-fw fa fa-language"></i>
515+
516+
</span>
517+
518+
<a href="language/en.html">en</a>
519+
520+
</li>
521+
522+
<li id="ablog-sidebar-item category ablog__category">
523+
<span>
524+
525+
<i class="fa-fw fa fa-folder-open"></i>
526+
527+
</span>
528+
529+
<a href="category/case-studies.html">Case Studies</a>
530+
531+
</li>
532+
533+
<li id="ablog-sidebar-item tags ablog__tags">
534+
<span>
535+
536+
<i class="fa-fw fa fa-tags"></i>
537+
538+
</span>
539+
540+
<a href="tag/case-study.html">case-study</a>
541+
542+
<a href="tag/agforecast.html">agforecast</a>
543+
544+
<a href="tag/asgi.html">asgi</a>
545+
546+
<a href="tag/fastapi.html">fastapi</a>
547+
548+
<a href="tag/openlambda.html">openlambda</a>
549+
550+
</li>
551+
552+
</div>
553+
</ul>
554+
<p class="ablog-post-excerpt"><p><em>Maria Oros, Data Science Institute, University of Wisconsin–Madison</em><br />
555+
<em>Tyler Caraza-Harter, Department of Computer Sciences, University of Wisconsin–Madison</em></p>
556+
<p>Our goal is to make an ever-growing set of applications deployable on OpenLambda (OL), with minimal modifications. We believe the best way to work towards this goal is to pick interesting applications that weren’t originally designed for serverless deployment, try to port them to OL, and identify pain points. This helps us identify the most useful features to add to OL, to support similar deployments.</p>
557+
</p>
558+
559+
<script type="text/x-thebe-config">
560+
{
561+
requestKernel: true,
562+
binderOptions: {
563+
repo: "binder-examples/jupyter-stacks-datascience",
564+
ref: "master",
565+
},
566+
codeMirrorConfig: {
567+
theme: "abcdef",
568+
mode: "python"
569+
},
570+
kernelOptions: {
571+
name: "python3",
572+
path: "./blog"
573+
},
574+
predefinedOutput: true
575+
}
576+
</script>
577+
<script>kernelName = 'python3'</script>
578+
<p class="ablog-post-expand">
579+
<a href="post/2026-05-18-ag-forecasting-case-study.html"><em>Read more ...</em></a>
580+
</p>
581+
<hr />
582+
</div>
457583

458584
</div>
459585

0 commit comments

Comments
 (0)