Conference PaperPDF Available

Implications of Edge Computing for Static Site Generation

Authors:

Abstract and Figures

Static site generation (SSG) is a common technique in the web development space to create performant websites that are easy to host. Numerous SSG tools exist, and the approach has been complemented by newer approaches, such as Jamstack, that extend its usability. Edge computing represents a new option to extend the usefulness of SSG further by allowing the creation of dynamic sites on top of a static backdrop, providing dynamic resources close to the user. In this paper, we explore the impact of the recent developments in the edge computing space and consider its implications for SSG.
Content may be subject to copyright.
Implications of Edge Computing for Static Site
Generation
Juho Veps¨
al¨
ainen, Arto Hellas, and Petri Vuorimaa
Aalto University
September 8, 2023
Abstract
Static site generation (SSG) is a common technique in the web development
space to create performant websites that are easy to host. Numerous SSG tools
exist, and the approach has been complemented by newer approaches, such as
Jamstack, that extend its usability. Edge computing represents a new option to
extend the usefulness of SSG further by allowing the creation of dynamic sites on
top of a static backdrop, providing dynamic resources close to the user. In this
paper, we explore the impact of the recent developments in the edge computing
space and consider its implications for SSG.
The paper was accepted for WEBIST 2023 and the final version will be
available in the conference proceedings. Note that this version has been edited
to compile on arXiv and the final one is shorter due to a two-column layout.
1 INTRODUCTION
Historically, websites have been hosted on servers serving static content (Berners-
Lee et al., 1992). The advent of content management systems (CMSs) brought
about a dynamic approach that allowed editing the served contents with an on-
line editor, leading to additional requirements and complexity from the server, in-
cluding server-side rendering (SSR) (Boiko, 2005; W3Techs, 2022). Static site
generators (SSGs) that build static files out of dynamically edited contents were
developed to mitigate the need for server-side rendering, yielding the possibility to
serve the content with static file servers with little need for dynamic functionality.
This possibility of serving static content coupled with an increased demand in
throughput in part led to the emergence of content delivery networks (CDNs),
which leverage a global network of servers for faster content delivery through ge-
ographical distribution.
With the emergence of commercial server providers and the decline of self-
hosting, server farms were developed. On top of server farms, new methods for
trading computational resources emerged, including the cloud computing market.
Contemporary offerings allow paying based on the execution of individual function
calls, potentially accounting for CPU and memory usage. This shift significantly
contrasts the traditional trading of computational power, as the payment unit can
be measured through individual computations rather than pieces of hosted hard-
ware (Lynn et al., 2017). From the point of view of a computation resource ven-
dor, this has enabled new economies of scale while encouraging custom hardware
development.
1
The combination of these advancements CDNs and the more fine-grained
control and billing of computation power has led to the emergence of edge
computing as a viable option for web developers. While CDNs have benefits,
edge computing allows programmability and selling function executions on top of
CDNs. Edge computing has emerged as a viable option for software developers as
it allows them to shape client requests and server responses at a scale near to the
client, enabling faster response times (Carvalho et al., 2021). The shift to the edge
has resulted in new technical solutions, such as edge-friendly databases, and the
problem of cold starts familiar from cloud computing is becoming solved (Partovi,
2022).
In the present study, we explore the impact of edge computing for static website
hosting to evaluate how the ideas from static and dynamic realms may be mixed,
answering the question What are the technical opportunities and challenges of
edge computing for static website hosting? A version of the question was pre-
viously posed in (Veps¨
al¨
ainen and Vuorimaa, 2022), where the authors discussed
the challenges of SSG when adjusting site contents and proposed an intermediate
JSON representation format for site data. The work expands on a recent overview
of edge computing research by (Cao et al., 2020) in the specific case of SSG.
The approach to answering the research question is two-fold. We first explore
the advances of website rendering and hosting in Section 2 to create a view of the
recent movements in the space. Then, to illustrate the benefits of edge comput-
ing in practice, we explore the efficacy of rendering a blog platform using three
rendering mechanisms and two popular edge providers, outlined in Sections 3 and
4. The results of our experiment and the potential of edge computing for SSG
are discussed in Section 5. Finally, Section 6 provides a conclusion and outlines
directions for future study.
2 BACKGROUND
In this section, we outline the main movements leading to the present state of cre-
ating websites and delivering websites. We also consider how these developments
align with the emerging trend of edge computing in the web space.
2.1 Evolution of Website Rendering Techniques
Website rendering techniques have evolved since the beginning of the web to ad-
dress the new requirements set for websites. The evolution has been supported
by the growing market and the shift in use cases for the web as it grew from a
site platform to an application platform as web applications became popular with
the introduction of social networking and related trends. The growth of the web
platform motivated the development of multiple website rendering techniques that
each address specific pain points related to developing websites and web applica-
tions.
2.1.1 Server Side Rendering
Early websites developed in the 1990s were mainly static and served using static
file servers. A static site consists of HTML pages, documents, and media, which
can be read by the server from persistent storage and served to the client (usually
a web browser) without further customization (Petersen, 2016). Due to a need to
provide a degree of interactivity and to allow changing the served data, dynamic
functionality was added to the servers. Dynamic websites are typically stored in
a format not directly renderable by the browser (Petersen, 2016). In the dynamic
2
case, the server takes an incoming request, performs some actions in between, and
generates a response that is then sent to the client. The process is commonly known
as server-side rendering (SSR).
2.1.2 Client Side Rendering and Single Page Applications
SSR was the prevalent technology for building content for the web for over a
decade until its slow decline in favor of client-side rendering (CSR) in the late
2000s and early 2010s. The move towards CSR stemmed from a potential for in-
creased perceived usability as while SSR required the whole site to be reloaded per
request, CSR allowed changing only the parts needed on a page using technologies
such as JavaScript without forcing a refresh (Flanagan and Novak, 1998). A cul-
mination point of this development was the emergence of single-page applications
(SPA) in which it became possible to dynamically adjust the shown content based
on the user interactions (Mikowski and Powell, 2013; Carniato, 2021).
2.1.3 Static Site Generation
Both SSR and CSR are complemented by static site generation (SSG). In SSG
assets are compiled together to a format that can be hosted using a static file
server (Newson, 2017) while coming with benefits related to security (Petersen,
2016; Camden and Rinaldi, 2017), fast page load times (Petersen, 2016; Camden
and Rinaldi, 2017), scaling (Petersen, 2016), compatibility with versioning sys-
tems (Camden and Rinaldi, 2017), and efficient resource usage (Petersen, 2016).
Traditionally, SSGs have been a great fit for small content sites as in the worst
case and the most na¨
ıve implementation, an SSG must recompile the entire site
when the content changes. However, techniques such as incremental compilation
enable an SSG to reuse the previous results while recompiling only the parts that a
change made by the user affects.
There exists a wide variety of SSGs. For example, https://jamstack.org/
enumerates over 350 SSGs (August 2023) in their listing (Jamstack, 2022) while
https://staticsitegenerators.net/ has over 460 SSGs (August 2023)
(SSG, 2022).
2.1.4 Jamstack
Jamstack was introduced by Matt Biilmann at Smashing Conf in 2016 as a re-
sponse to the weaknesses of the SSG model. It represents a change in thinking
compared to the traditional web (Kumar, 2019) and shifts the perspective on how
websites should be composed. The idea is to decouple content from the layout
and then collect them together. The approach goes well with headless CMSs that
expose their data through an API for third parties to consume (Barker, 2017). Stan-
dard webhooks allow refreshing a website when the data changes (Hoang, 2020).
From a deployment point of view, Jamstack sites are still static and can be
hosted through a static file server, therefore inheriting the SSG approach’s benefits
(Markovic et al., 2022). Jamstack relies on external services for dynamic func-
tionality, such as authentication (Peltonen et al., 2021). Due to their static nature,
Jamstack sites can be hosted on CDNs and gain their benefits in terms of security
and scalability, as with SSGs earlier. Figure 1 shows how the dynamic and static
portions of Jamstack go together and how a Jamstack site is deployed on a CDN.
According to (Markovic et al., 2022), the hype around Jamstack is currently
at its peak, and their findings indicate that although Jamstack is a promising ap-
proach, it may not become the de facto model for web development as there are
concerns related to handling dynamic use cases and that is one of the main chal-
lenges the advocates of the Jamstack approach have to resolve in the coming years.
3
Figure 1: In Jamstack approach, data from a content management system is combined
with templates (HTML, JS, CSS, etc.) that are then compiled using a SSG. The result-
ing static website is then deployed on a CDN hosting service. (Utomo et al., 2020)
Several early pain points of Jamstack have already been resolved through improved
service offerings that cover features such as authentication or payment. The prob-
lem of previewing the impact of data changes has been alleviated to some extent
through techniques such as incremental static regeneration (Markovic et al., 2022).
2.1.5 Incremental Static Regeneration and Distributed Persistent Ren-
dering
Recent frameworks, such as Next.js, offer the possibility for SSR, CSR, and SSG,
leading to hybrid functionality. Hybrid approaches enable developers to use the
rendering technology that makes the most sense at a given time. On top of this,
Next.js innovated a rendering method called incremental static regeneration (ISR),
mixing SSG and SSR, that allows the use of SSG without rebuilding the entire site
by shifting some of the work to on-demand (Nguyen, 2022). In the on-demand
case where ISR is leveraged, pages are cached, and subsequent requests rely on
the cache.
In 2021, Netlify introduced distributed persistent rendering (DPR). The idea
of DPR is to address the shortcomings of ISR by providing atomic and immutable
deploys consistent with the notion of Jamstack. In ISR, the users may see stale
content on the first render by design, and this perceived shortcoming has been
removed in DPR (Williams, 2021).
To understand how different rendering techniques relate to the client and the
developer, Figure 2 summarizes them in a graphical form.
2.1.6 Islands Architecture
As discussed by (Veps¨
al¨
ainen et al., 2023), islands architecture is a way to include
dynamic portions to a static page and define strategies for loading them. Defer-
ring loading allows pushing work performed by JavaScript to the future; some of
the work may not occur depending on usage. As the architecture was formalized
in 2019 (Miller, 2020), there is not much experience in using it but at the same
time solid adoption of Astro framework leveraging the approach shows increasing
developer interest.
4
Figure 2: Workflow from a client to a developer. The workflow applies to traditional
web and edge computing; the number of web servers can be scaled.
2.2 Evolution of Website Hosting
Similar to website rendering techniques, the ways to host websites have evolved.
The evolution of website hosting comes together with rendering techniques as they
form a pair in the sense that hosting enables rendering at different levels of techni-
cal infrastructure, allowing new models for developing websites.
2.2.1 Rented Servers and Virtual Machines
At the beginning of the web, companies and individuals had to maintain their
servers. A whole hosting market emerged to make it easier for people to host
their websites and applications. The early providers offered space for static web-
sites and offered dedicated servers to rent. Later, virtual machines (VMs) emerged
as an abstraction, decoupling hosting from hardware and enabling the sharing re-
sources across multiple users. A key enabler here was HTTP/1.1, which provided
the means to indicate the host to which a request was directed, in addition to the
IP.
2.2.2 Content Delivery Networks
With increasing demand and an acknowledgment that parts of the served con-
tents were static and rarely changed, CDNs, such as Akamai, emerged (Nygren
et al., 2010). CDNs provided both the possibility of distributing requests over a
broader range of servers to decrease individual server load and to respond to re-
quests from servers close to the client, thereby reducing the latency experienced
by the user (Triukose et al., 2011).
2.2.3 Cloud and Serverless Computing
Cloud computing was a movement in offering computing resources that abstracted
away physical hardware. One could still buy a virtual machine when buying re-
sources from cloud computing providers. Still, the location of the virtual machine
might have been unclear, and it was also possible that the physical machine run-
ning the virtual machine could change dynamically. The infrastructure built to
support cloud computing slowly led to the emergence of the serverless computing
paradigm, where the notion of starting a server was abstracted away, and develop-
5
ers instead defined entry points to applications. In serverless computing, functions
are triggered on demand while having access to databases (Jonas et al., 2019).
2.2.4 Edge Computing
Edge computing represents the next step in how and where computation occurs.
Edge computing is a natural evolution over the CDN approach as instead of only
serving resources; it enables computation close to the client on demand (Shi et al.,
2016). The distributed approach leads to new technical challenges as traditional
ways of thinking about aspects, such as databases, must be reconsidered to be com-
patible with a global infrastructure. In general, edge computing shows promise in
improving web page and content rendering performance (Zhu et al., 2013; Viita-
nen et al., 2018), reinvigorating discussions on making informed decisions on what
content to serve to account for network quality (Zhu et al., 2013).
2.2.5 Discussion
The latest developments in rendering techniques and edge computing allow us to
address the traditional limitations of SSG and Jamstack while gaining their bene-
fits. Most importantly, edge computing provides a way to intercept user requests
before they reach the file server. Alternatively, the edge network can work as a
server and return suitable payloads to the client directly. Perhaps more interest-
ingly, edge computing enables the development of hybrid websites where some
portions are static and others are dynamic. The islands architecture is a good ex-
ample of an approach ready to leverage edge computing.
There are some concerns related to the lock-in potential of edge platforms.
At the same time, initiatives such as WinterCG provide hope of collaboration to
make JavaScript-based edge runtimes compatible with each other. In the ideal case,
developers should be able to move edge workers from one platform to another with
minimal effort.
3 METHODOLOGY
To illustrate the implications of edge computing for SSG, we benchmark a stati-
cally hosted site against one served from an edge platform. We hypothesize that
their performance is close to each other, although we expect the latter solution to
come with a slight performance cost depending on the use of caching. To provide
a third point of view, we examine the impact of ISR as it is a technique between
SSG and SSR.
3.1 Platform and implementation
For the present study, we explored the efficacy of a blog platform with the follow-
ing constraints1:
1. There are three variants to compare: static site generation (SSG), pure edge
server-side rendering (SSR), and edge server-side rendering with ISR, which
leverages Cloudflare KV for caching 2
2. All variants are implemented using TypeScript.
1For replication and analysis of the implementation, the source code for the project has been made avail-
able at https://github.com/bebraw/ssg-benchmark
2We have adapted Matteo Rigon’s implementation for this purpose, and the original version can be found
at https://reego.dev/blog/achieving-isr- on-cloudflare- workers.
6
3. The static variant is generated using an ad hoc implementation based on
ES2015 templates for templating. The edge variants use the same logic.
4. The static variant is hosted on both Cloudflare Pages and Netlify so it will
be measured twice to see the impact of the platform.
5. The edge variants are implemented using Cloudflare workers.
6. The site to test mimics a blog with a blog index and individual pages.
7. Styling and images are kept out of scope to keep the test case simple and to
avoid loading costs.
8. All variants fetch content from a small server, returning pseudorandom data
for repeatability.
9. Each implementation had a fixed 100ms delay to simulate the cost of server-
side logic.
Cloudflare and Netlify platforms were chosen; both offer edge computing fa-
cilities. Cloudflare is a company that started as a CDN provider and has then ex-
panded to hosting and edge computing, which are natural extensions to the CDN
business. Cloudflare has developed solutions to cloud computing problems, includ-
ing approaches for eliminating cold starts related to starting edge workers (Partovi,
2022). Netlify, similar to Cloudflare, provides edge computing capabilities and a
Git-connected way to deploy applications on their platform (Netlify, 2022). For
the scope of the present work, Netlify is used only as a static host. These plat-
forms were chosen by their relative popularity in the developer community, and an
expanded study should include more options to benchmark.
3.2 Measurement of performance
For performance measurements, we used Playwright with Google Lighthouse. We
created a test suite that is run against the blog site variants, intended to capture any
differences in performance. For the present study, each blog site variant hosted a
hundred blog posts, and when measuring performance, we focused on First Con-
tentful Paint and Server Response Time. In addition, we used Autocannon to
capture rough throughput as responses per second and latency for each variant.
Lighthouse and Autocannon have commonly used tools for assessing website per-
formance, and blogs are a common archetype in web applications.
Following (Heriˇ
cko et al., 2021), who noted that performing Lighthouse perfor-
mance audits five times reduces variability in results significantly in a reasonable
time, we executed the tests five times. This is in line with the Lighthouse docu-
mentation that suggests that measuring the median of five runs is twice as stable as
measuring a single run (Google, 2022).
For the Lighthouse tests, we measured the rendering performance of the blog
index page (listing 100 blog links) and the performance of a blog page (showing a
blog entry), and we throttled the network using mobile (1.6 Mbps down / 750 Kbps
up) with 150 ms latency. For the Autocannon tests, we measured the performance
of the blog index page. We wrote the test to run for 30 seconds per variant to
decrease the impact of variability in connection quality. Before every ISR variant-
related test, the cache was emptied manually to avoid skewing results.
3.3 Threats to validity
The tests we perform are black-box by their nature. In other words, we do not
control and know anything about the underlying infrastructure. There may be sig-
nificant differences at the infrastructure level and technical implementations we are
7
unaware of. However, the platforms we benchmark claim to implement the edge
paradigm and expose related APIs.
Another threat to validity has to do with the scope of testing. Given we test
from a single location, we do not test the scalability of the approach from a global
perspective. Global scaling is considered one of the selling points of the CDN
approach, but it is out of the scope of the study.
Our test project is synthetic and reflects only a simple static use case. In prac-
tice, web applications can be far more complex and dynamic by nature. The test
project provides a baseline for more dynamic tests that build on top of static func-
tionality.
4 RESULTS
In the following subsections, we show Lighthouse and Autocannon results sepa-
rately.
4.1 Lighthouse results
Lighthouse scores pages from zero to a hundred based on the categories: perfor-
mance, accessibility, best practices, SEO, and PWA. While we focused on First
Contentful Paint and Server Response Time, we also briefly studied the other
Lighthouse metrics. For each page tested, the performance, accessibility, and best
practices metrics received a full score of hundred. SEO varied between 82 and 91,
suggesting that the implementation was missing a meta description and the blog
page implementation had too tiny tap targets on mobile.
For each variant, the First Contentful Paint (FCP) and Server Response Time
(SRT) values have been listed in Table 1. Time to Interactive (TTI) followed FCP
closely in this scenario. The values have been rounded to the closest value and are
provided in milliseconds (ms). The first test run and the subsequent four test runs
are reported separately in the table.
Table 1: Summarized measurement results (each result is given in ms). CF = Cloud-
flare, FCP = First Contentful Paint, SRT = Server Response Time. The suffix index
indicates the performance of the index page with 100 blog post links, while the suffix
post indicates the performance of an individual blog page with the blog post contents.
FCP SRT
Run 1 2-5 (med.) 2-5 (avg.) 1 2-5 (med.) 2-5 (avg.)
CF SSR index 1053 1028 1039 283 282 276
CF SSR post 1030 991 1053 280 263 322
CF ISR index 895 879 889 145 131 135
CF ISR post 879 880 876 166 159 148
CF SSG index 919 1026 987 160 272 227
CF SSG post 873 860 862 145 128 133
Netlify SSG index 963 880 924 241 140 186
Netlify SSG post 955 861 872 241 149 170
4.2 Autocannon results
For measuring the application’s throughput, we utilized Autocannon, studying how
the latency behaves over the requests in the 30-second time, focusing on the blog
8
0 20 40 60 80 100
102
103
Percentile
Time(ms)
Cloudflare SSR
Cloudflare ISR
Cloudflare SSG
Netlify
Figure 3: Autocannon latency per percentile over each variant over a thirty-second in-
terval shown using a logarithmic scale. Note the peak at the end. Also, note that ISR
and SSG follow each other as the cost of ISR is visible only on the first render, and due
to the number of runs it vanishes.
index page for each variant. Figure 3 outlines the latency per percentile, which
shows sub-100 millisecond latencies for most requests. In the Figure, the 100
ms latency embedded in the blog code to highlight additional server-side logic
is visible in the SSR option, as the option does not benefit from caching. The
differences would be negligible if we omit the additional 100 ms latency.
In general, the Autocannon results are somewhat consistent with the Light-
house server response times, although the Lighthouse server response times show
more variance, perhaps due to the fewer tests. In the Autocannon test, we view that
the 100% percentile could be safely dropped as it represents individual outliers
on average, over the thirty seconds, the Autocannon tests yielded between 18,000
and 30,000 responses, which our single-computer test setup may partially limit.
5 DISCUSSION
Given the measurements, we can see that the latencies of edge platforms are low,
especially for the SSG and ISR cases. SSR is expected to come at a cost as there is
more processing. The difference became apparent due to the artificial delay added
to SSR, and in practice, the delay could be even more visible due to database
requests and further work to perform per request. The benefit of ISR is that it
allows us to avoid build time work and shift it to runtime at the cost of potentially
stale cache for the client.
It would be possible to discard the entire ISR cache during deployment to
9
address the staleness issue. Doing this would shift the implementation closer to
Netlify’s Distributed Persistent Rendering (DPR) (Biilmann, 2021), which seeks
to address the shortcomings of ISR by providing atomic and immutable deploys
consistent with the idea of Jamstack. Furthermore, assuming the ISR cache has a
staleness factor, such as time, related to it, the Stale While Revalidate (SWR) tech-
nique could be applied to return stale results while generating a new page in the
background. In this case, the next request would yield fresh results (Rigon, 2021).
5.1 When to apply ISR?
Given there’s a cost related to SSG and especially to building sites on content
change, the question is when it becomes beneficial to apply techniques such as
ISR. There is added complexity for small sites due to having to use a framework
or program on the edge. For highly dynamic use cases where the content changes
often, the added complexity may be worth it, as otherwise, you would have to
build the site constantly. For example, for social media platforms with rapidly
changing content, static site generation might not be a feasible option in such
a case, one could rely on hybrid rendering approaches, which were scoped out
from the present work. It could be argued that techniques, such as incremental
compilation, can significantly decrease the cost of doing this.
5.2 No cold start cost at Cloudflare
Interestingly, Cloudflare does not seem to have a cost associated with a cold start,
while Netlify has a cold start penalty, as evidenced in the server response time
measurements. The lack of penalty is a good sign, which means response times
are more predictable for developers. At the same time, we could observe, however,
that an individual response might occasionally take up to a second at the extreme
outliers while, generally, response speeds were stable.
Our measurement server latencies (SR) generally seem low and are within the
300 ms range. The rest of the cost occurs on the browser side (FCP), implying
that development practices matter as developers can optimize this cost. It is also
good news for framework authors, given they can use the findings to optimize asset
delivery.
5.3 Shift of JavaScript frameworks towards the edge
The latest generation of JavaScript frameworks, such as Astro or Qwik, are com-
patible with the edge out of the box and support the most popular edge platforms
as deployment targets while coming with static functionality as well. They support
hybrid rendering and allow developers to choose what technique to use and where.
The results of the study support this movement as there are clear benefits to SSG
combined with edge computing.
5.4 Potential of edge-powered islands
Since the edge provides simple ways to encapsulate logic within workers, devel-
opers can leverage islands architecture on top of their static sites. Using an ap-
propriate strategy, the idea is to encapsulate dynamic functionality behind an edge
worker and call that within an island. To simplify the task, 11ty/is-land implements
multiple strategies while allowing any framework to be used for rendering the is-
lands, making it a good companion for the edge. The idea would be to leverage the
template element of HTML while pointing to the edge endpoint that implements
the island contents.
10
Eleventy, a popular SSG, implements edge support natively through shortcodes
included in templates (Eleventy, 2023). The feature is experimental and works only
with the Netlify Edge platform (Eleventy, 2023). First-class support for the edge
on an SSG tells about the direction and the fact that tool authors have recognized
the potential of the edge. The same is visible in solutions like Astro that allow
hosting and processing on edge while supporting pure SSG.
Cloudflare research team devised the fragments architecture, and the target of
this work was to allow building micro-frontends using Cloudflare Workers(Darwin
et al., 2022). The idea is consistent with edge-powered islands and approaches
it from a vendor point of view while considering legacy and mixed systems en-
abled by micro-frontends where teams can develop using technologies they prefer.
Cloudflare researchers’ work implies a crossing point between micro-frontends,
islands, and edge computing, which alone may be a direction worth exploring in
further study as a technological intersection.
Edge-powered islands come with challenges related to a state shared by multi-
ple islands. It is also likely more suitable for cases with limited interactivity than
experiences where the whole page has to be dynamic by definition. In other words,
edge-powered islands expand the types of applications that can be developed on top
of SSG but encounter limits in highly dynamic use cases.
6 CONCLUSION
We started this paper by asking the question What are the technical opportunities
and challenges of edge computing for static website hosting? and found out the
intersection expands the usefulness of SSG by allowing more dynamic use cases
to be covered on top of it. There are clear opportunities in leveraging architectures
like islands architecture on top of a static site. The performance of edge platforms
seems reasonable enough in terms of latency, and techniques, like ISR, address
problems related to SSG build speed.
Our empirical evaluation demonstrated how SSG and edge computing can
work together to enable performant websites and applications to be developed,
in part yielding evidence on the efficacy of mixing web technologies as asked for
in (Veps¨
al¨
ainen and Vuorimaa, 2022). That said, there are still open questions
related to techniques, their applicability in other environments, and their limita-
tions. Furthermore, there are questions related to the costs of the platforms in
comparison to the cloud and self-hosting. It’s undeniable developing a comparable
infrastructure yourself would be cost-prohibitive for many but at the same time not
all applications require the same capabilities.
On top of build and server infrastructure, there are layers of techniques related
to leveraging caching, prefetching, and pushing work to the client. These tech-
niques are often orthogonal and may be used to complement server-side optimiza-
tions. In terms of research, it would be valuable to understand which optimizations
can be done at each level how much can they contribute towards the overall per-
formance of a web service, and at what cost.
There are also questions related to reproducing the study results globally. Given
edge infrastructure operates on top of CDN, the assumption is that the results
should be fairly consistent across the globe depending on CDN density. That
starkly contrasts traditional architecture where the server is in a specific location.
Measuring the difference and reproducing the study with a global scope would be
worthwhile. To help with this goal, our implementation and evaluation code are
available on GitHub at https://github.com/bebraw/ssg-benchmark.
11
REFERENCES
Barker, D. (2017). The state of the headless cms market.
Berners-Lee, T., Cailliau, R., Groff, J.-F., and Pollermann, B. (1992). World-wide
web: the information universe. Internet Research.
Biilmann, M. (2021). Distributed Persistent Rendering: a new idea in the Jamstack
to make deploys faster and bring a wider range of use cases. netlify.com.
https://www.netlify.com/blog/2021/04/14/distributed-persist
ent-rendering-a-new- jamstack-approach-for- faster-builds/.
[Accessed 17-Jan-2023].
Boiko, B. (2005). Content management bible. John Wiley & Sons.
Camden, R. and Rinaldi, B. (2017). Working with Static Sites: Bringing the Power
of Simplicity to Modern Sites. O’Reilly Media, Inc.”.
Cao, K., Liu, Y., Meng, G., and Sun, Q. (2020). An overview on edge computing
research. IEEE access, 8:85714–85728.
Carniato, R. (2021). Understanding transitional javascript apps. [Accessed 29-
Sep-2022].
Carvalho, G., Cabral, B., Pereira, V., and Bernardino, J. (2021). Edge comput-
ing: current trends, research challenges and future directions. Computing,
103:993–1023.
Darwin, P. B., Culveyhouse, J., and Minar, I. (2022). Cloudflare Workers and
micro-frontends: made for one another blog.cloudflare.com. https://
blog.cloudflare.com/better-micro- frontends/. [Accessed 15-Jun-
2023].
Eleventy (2023). Edge 11ty.dev. https://www.11ty.dev/docs/plugins/ed
ge/. [Accessed 11-May-2023].
Flanagan, D. and Novak, G. M. (1998). Javascript: The definitive guide.
Google (2022). lighthouse/variability.md at main · GoogleChrome/lighthouse
github.com. https://github.com/GoogleChrome/lighthouse/blo
b/main/docs/variability.md#run-lighthouse- multiple-times.
[Accessed 11-Oct-2022].
Heriˇ
cko, T., ˇ
Sumak, B., and Brdnik, S. (2021). Towards representative web per-
formance measurements with google lighthouse. In Proceedings of the 2021
7th Student Computer Science Research Conference, page 39.
Hoang, T. (2020). Jamstack continuous integration and continuous deployment
with circleci and netlify. Bachelor’s thesis, Metropolia University of Applied
Sciences.
Jamstack (2022). Static Site Generators - Top Open Source SSGs Jamstack.
https://jamstack.org/generators. [Accessed 29-Sep-2022].
Jonas, E., Schleier-Smith, J., Sreekanti, V., Tsai, C.-C., Khandelwal, A., Pu, Q.,
Shankar, V., Carreira, J., Krauth, K., Yadwadkar, N., et al. (2019). Cloud
programming simplified: A berkeley view on serverless computing. arXiv
preprint arXiv:1902.03383.
Kumar, S. (2019). A review on client-server based applications and research op-
portunity. International Journal of Recent Scientific Research, 10(7):33857–
3386.
Lynn, T., Rosati, P., Lejeune, A., and Emeakaroha, V. (2017). A preliminary review
of enterprise serverless cloud computing (function-as-a-service) platforms.
In 2017 IEEE International Conference on Cloud Computing Technology and
Science (CloudCom), pages 162–169. IEEE.
12
Markovic, D., Scekic, M., Bucaioni, A., and Cicchetti, A. (2022). Could jamstack
be the future of web applications architecture? an empirical study. In Pro-
ceedings of the 37th ACM/SIGAPP Symposium on Applied Computing, pages
1872–1881.
Mikowski, M. and Powell, J. (2013). Single page web applications: JavaScript
end-to-end. Simon and Schuster.
Miller, J. (2020). Islands architecture. [Accessed 29-Sep-2022].
Netlify (2022). Hosting Web applications on netlify edge - serverless web apps
netlify.com. https://www.netlify.com/for/web- applications/.
[Accessed 09-Oct-2022].
Newson, K. (2017). Tools and workflows for collaborating on static website
projects. Code4Lib Journal, 38.
Nguyen, T. (2022). Jamstack: A modern solution for e-commerce. Master’s thesis,
Vaasan ammattikorkeakoulu.
Nygren, E., Sitaraman, R. K., and Sun, J. (2010). The akamai network: a plat-
form for high-performance internet applications. ACM SIGOPS Operating
Systems Review, 44(3):2–19.
Partovi, A. (2022). Eliminating cold starts with cloudflare workers. https://bl
og.cloudflare.com/eliminating-cold- starts- with- cloudflare- w
orkers/. [Accessed 09-Oct-2022].
Peltonen, S., Mezzalira, L., and Taibi, D. (2021). Motivations, benefits, and issues
for adopting micro-frontends: a multivocal literature review. Information and
Software Technology, 136:106571.
Petersen, H. (2016). From static and dynamic websites to static site generators.
University of Tartu, Institute of Computer Science.
Rigon, M. (2021). Incremental Static Regeneration on Cloudflare Workers
reego.dev reego.dev. https://reego.dev/blog/achieving-isr- o
n-cloudflare- workers. [Accessed 02-Oct-2022].
Shi, W., Cao, J., Zhang, Q., Li, Y., and Xu, L. (2016). Edge computing: Vision
and challenges. IEEE internet of things journal, 3(5):637–646.
SSG (2022). Static Site Generators staticsitegenerators.net. https://static
sitegenerators.net/. [Accessed 29-Sep-2022].
Triukose, S., Wen, Z., and Rabinovich, M. (2011). Measuring a commercial con-
tent delivery network. In Proceedings of the 20th international conference
on World wide web, pages 467–476.
Utomo, P. et al. (2020). Building serverless website on github pages. In IOP
Conference Series: Materials Science and Engineering, volume 879. IOP
Publishing.
Veps¨
al¨
ainen, J., Hellas, A., and Vuorimaa, P. (2023). The rise of disappearing
frameworks in web development. In International Conference on Web Engi-
neering, pages 319–326. Springer.
Veps¨
al¨
ainen, J. and Vuorimaa, P. (2022). Bridging static site generation with the
dynamic web. In Web Engineering: 22nd International Conference, ICWE
2022, Bari, Italy, July 5–8, 2022, Proceedings, pages 437–442. Springer.
Viitanen, M., Vanne, J., H¨
am¨
al¨
ainen, T. D., and Kulmala, A. (2018). Low latency
edge rendering scheme for interactive 360 degree virtual reality gaming. In
2018 IEEE 38th International Conference on Distributed Computing Systems
(ICDCS), pages 1557–1560. IEEE.
W3Techs (2022). W3Techs - extensive and reliable web technology surveys. ht
tps://w3techs.com/. [Accessed 03-Oct-2022].
13
Williams, C. (2021). Distributed Persistent Rendering (DPR) · Discussion #549 ·
jamstack/jamstack.org github.com. https://github.com/jamstack/
jamstack.org/discussions/549. [Accessed 17-Jan-2023].
Zhu, J., Chan, D. S., Prabhu, M. S., Natarajan, P., Hu, H., and Bonomi, F. (2013).
Improving web sites performance using edge servers in fog computing archi-
tecture. In 2013 IEEE Seventh International Symposium on Service-Oriented
System Engineering, pages 320–323. IEEE.
14
... Caching can be applied on different levels of a client-server arrangement, as seen in Figure 1. For example, clients can have a cache of their own, and there can be a server cache [73]. To complicate things further, the server cache can be populated differently. ...
... To complicate things further, the server cache can be populated differently. For example, in Distributed Persistent Rendering (DPR) or Incremental Static Regeneration (ISR), the server renders a snapshot of a requested page to the cache served from the cache for the subsequent requests [73]. DPR and ISR have slightly different takes on stale content as ISR can return stale results while DPR cannot [73]. ...
... For example, in Distributed Persistent Rendering (DPR) or Incremental Static Regeneration (ISR), the server renders a snapshot of a requested page to the cache served from the cache for the subsequent requests [73]. DPR and ISR have slightly different takes on stale content as ISR can return stale results while DPR cannot [73]. ...
Preprint
Full-text available
During its thirty years of existence, the World Wide Web has helped to transform the world and create digital economies. Although it started as a global information exchange, it has become the most significant available application platform on top of its initial target. One of the side effects of this evolution was perhaps suboptimal ways to deliver content over the web, leading to wasted resources and business through lost conversions. Technically speaking, there are many ways to improve the performance of web applications. In this article, we examine the currently available options and the latest trends related to improving web application performance.
... Caching can be applied on different levels of a client-server arrangement, as seen in Figure 1. For example, clients can have a cache of their own, and there can be a server cache [73]. To complicate things further, the server cache can be populated differently. ...
... To complicate things further, the server cache can be populated differently. For example, in Distributed Persistent Rendering (DPR) or Incremental Static Regeneration (ISR), the server renders a snapshot of a requested page to the cache served from the cache for the subsequent requests [73]. DPR and ISR have slightly different takes on stale content as ISR can return stale results while DPR cannot [73]. ...
... For example, in Distributed Persistent Rendering (DPR) or Incremental Static Regeneration (ISR), the server renders a snapshot of a requested page to the cache served from the cache for the subsequent requests [73]. DPR and ISR have slightly different takes on stale content as ISR can return stale results while DPR cannot [73]. ...
Article
Full-text available
During its thirty years of existence, the World Wide Web has helped to transform the world and create digital economies. Although it started as a global information exchange, it has become the most significant available application platform on top of its initial target. One of the side effects of this evolution was perhaps suboptimal ways to deliver content over the web, leading to wasted resources and business through lost conversions. Technically speaking, there are many ways to improve the performance of web applications. In this article, we examine the currently available options and the latest trends related to improving web application performance.
... Edge computing is already widely used in Internet of Things (IoT) and mobile devices, and there exists a large amount of research in this area [101,2,16]. Web applications already use edge technologies such as Content Delivery Networks (CDNs), and cloud computing [112], but using edge computing to enhance CDNs and static content with computation and dynamic capabilities is still not widely used. ...
... Static assets are served from the CDN, and dynamic content is served from the remote server. Edge computing extends CDNs on the edge by allowing dynamic computation to be run alongside serving static content [112]. Many content-based web applications have some dynamic elements alongside mostly static content that needs computation to run [112]. ...
... Edge computing extends CDNs on the edge by allowing dynamic computation to be run alongside serving static content [112]. Many content-based web applications have some dynamic elements alongside mostly static content that needs computation to run [112]. ...
Thesis
Full-text available
Cloud computing has revolutionized the way we build software with infrastructure and computing power available always on demand. Serverless computing has allowed developers to focus on applications instead of infrastructure management. However, large data center are often far away from the end users, which introduces latency. Edge computing attempts to bring computing closer to the users, to the edge. Edge computing is already widely used in Internet of Things and mobile devices, and there exists a large amount of research this area. Web applications already use edge technologies such as Content Delivery Networks, but edge computing for dynamic computation is not yet widely used. This thesis reviews edge computing for web applications and summarizes research and service providers as literature research. The aim of the study is to determine what are the benefits and limitations of serverless edge computing compared to serverless cloud computing for web application development. The technical review showed that edge computing service providers were split in two based on the internal runtime: AWS uses micro virtual machines, while Cloudflare and Deno use V8 isolates. V8 isolates start faster with less overhead, but their technologies are more limited and security is less obvious than virtual machines. Serverless edge and cloud computing are not mutually exclusive technologies. The benefits of edge computing come from both closer location and faster runtimes. Edge is suitable for latency-critical parts of the application and V8 isolates significantly reduce load times. When developing serverless applications, some computation should be moved to the edge. Many web applications could improve usability and user experience by moving computation to the edge, reducing latency.
... Raymond Camden and Brian Rinaldi [44] illustrate in their book how to use Jamstack frameworks to create fast, secure, and scalable web applications and headless CMSs by utilizing the following technologies, which are JavaScript, APIs, and Markup, to create fast, dynamic pages without the overhead of heavyweight frameworks. Juho Vepsäläinen et al. [45] explores the intersection of edge computing, headless CMS, and static site generation (SSG) to create performant web applications that are easy to host by reducing latency and improving content delivery. Danny Sebastian et al. [46] compares traditional CMS, headless CMS and SSG in building web applications. ...
... Camden and Rinaldi [44] focus on secure, fast applications using Jamstack but do not address the auto-scaling capabilities essential for large-scale deployments, which are achieved in the present work through serverless computing. Similarly, Vepsäläinen et al. [45] leverage edge computing to reduce latency in static content delivery; however, their model does not accommodate the dynamic content management provided by the current architecture. Sebastian et al. [46] review various CMS models, particularly suited to small-scale websites, but do not tackle the need for flexible, scalable content management, which is provided by integrating headless CMS with serverless functions in the proposed solution. ...
... Another option is to push work to build time, as in Static Site Generation (SSG), where component markup is generated ahead of time and then served to the user [22]. Markup generation can also occur during Server-Side Rendering (SSR) or incremental server regeneration (ISR) passes [22]. ...
... Another option is to push work to build time, as in Static Site Generation (SSG), where component markup is generated ahead of time and then served to the user [22]. Markup generation can also occur during Server-Side Rendering (SSR) or incremental server regeneration (ISR) passes [22]. Regardless of the approach used to generate the markup, the hydration process remains the same, meaning earlier drawbacks remain. ...
Article
Full-text available
Hydration is a common technique employed by current JavaScript-based frontend frameworks, such as React. In hydration, the application code is re-executed on the client to recover component boundaries, application state, and event listeners. In this article, we look into a new primitive called resumability that avoids thework as the necessary information is serialized into HTML. The idea has been adopted by Asta (2023), Google Wiz, Marko (planned for version 6 [1]), Sidewind (since 2022), and Qwik (2021) as a main building block. Resumability gives these solutions unique advantages by avoiding the cost of hydration. Furthermore, resumability can allow developers to leverage code-splitting out of the box, depending on the implementation. The shift has implications for both developer and user experience. This article aims to understand why resumability matters and why it is a good option for replacing earlier hydration-based approaches. We also consider challenges related to adopting resumability on a framework level and briefly highlight the first resumable solutions for developing web applications.
Conference Paper
Full-text available
Web performance testing with tools such as Google Lighthouse is a common task in software practice and research. However, variability in time-based performance measurement results is observed quickly when using the tool, even if the website has not changed. This can occur due to variability in the network, web, and client devices. In this paper, we investigated how this challenge was addressed in the existing literature. Furthermore, an experiment was conducted, highlighting how unrepresentative measurements can result from single runs; thus, researchers and practitioners are advised to run performance tests multiple times and use an aggregation value. Based on the empirical results, 5 consecutive runs using a median to aggregate results reduce variability greatly, and can be performed in a reasonable time. The study’s findings alert to p otential pitfalls when using single run-based measurement results and serve as guidelines for future use of the tool.
Article
Full-text available
Context Micro-Frontends are increasing in popularity, being adopted by several large companies, such as DAZN, Ikea, Starbucks and may others. Micro-Frontends enable splitting of monolithic frontends into independent and smaller micro applications. However, many companies are still hesitant to adopt Micro-Frontends, due to the lack of knowledge concerning their benefits. Additionally, provided online documentation is often times perplexed and contradictory. Objective The goal of this work is to map the existing knowledge on Micro-Frontends, by understanding the motivations of companies when adopting such applications as well as possible benefits and issues. Method For this purpose, we surveyed the academic and grey literature by means of the Multivocal Literature Review process, analyzing 173 sources, of which 43 reported motivations, benefits and issues. Results The results show that existing architectural options to build web applications are cumbersome if the application and development team grows, and if multiple teams need to develop the same frontend application. In such cases, companies adopted Micro-Frontends to increase team independence and to reduce the overall complexity of the frontend. The application of the Micro-Frontend, confirmed the expected benefits, and Micro-Frontends resulted to provide the same benefits as microservices on the back end side, combining the development team into a fully cross-functional development team that can scale processes when needed. However, Micro-Frontends also showed some issues, such as the increased payload size of the application, increased code duplication and coupling between teams, and monitoring complexity. Conclusions Micro-Frontends allow companies to scale development according to business needs in the same way microservices do with the back end side. In addition, Micro-Frontends have a lot of overhead and require careful planning if an advantage is achieved by using Micro-Frontends. Further research is needed to carefully investigate this new hype, by helping practitioners to understand how to use Micro-Frontends as well as understand in which contexts they are the most beneficial.
Article
Full-text available
The edge computing (EC) paradigm brings computation and storage to the edge of the network where data is both consumed and produced. This variation is necessary to cope with the increasing amount of network-connected devices and data transmitted, that the launch of the new 5G networks will expand. The aim is to avoid the high latency and traffic bottlenecks associated with the use of Cloud Computing in networks where several devices both access and generate high volumes of data. EC also improves network support for mobility, security, and privacy. This paper provides a discussion around EC and summarized the definition and fundamental properties of the EC architectures proposed in the literature (Multi-access Edge Computing, Fog Computing, Cloudlet Computing, and Mobile Cloud Computing). Subsequently, this paper examines significant use cases for each EC architecture and debates some promising future research directions.
Article
Full-text available
With the rapid development of the Internet of Everything (IoE), the number of smart devices connected to the Internet is increasing, resulting in large-scale data, which has caused problems such as bandwidth load, slow response speed, poor security, and poor privacy in traditional cloud computing models. Traditional cloud computing is no longer sufficient to support the diverse needs of today’s intelligent society for data processing, so edge computing technologies have emerged. It is a new computing paradigm for performing calculations at the edge of the network. Unlike cloud computing, it emphasizes closer to the user and closer to the source of the data. At the edge of the network, it is lightweight for local, small-scale data storage and processing. This article mainly reviews the related research and results of edge computing. First, it summarizes the concept of edge computing and compares it with cloud computing. Then summarize the architecture of edge computing, keyword technology, security and privacy protection, and finally summarize the applications of edge computing.
Article
Full-text available
ARTICLE INFO ABSTRACT In the modern Information technology environment, the functions like websites, web-based application, a centralized computing system, mobile apps, e-commerce application or even cloud computing, be subsided with the concept of client-server. The client-server system is a distributed computing between two types of independent and autonomous entities known as server and client. The client-server computing places a vital role in data or information access form remotely stored lactations among the majority. The client-server system plays a significant role in IT evolution. The components involved in the client-server system divided into two major sections physical and logical components. Physical components are servers, client devices, input/output devices, networking, and power supply. Logical components are web pages, data, programming scripts, protocols, e.g., http, https, telnet, IP and API, e.g., ODBC, JDBC. In this survey, we present a detailed report for the client-server based system, highlighting its key concepts, architectural principles, and state-of-the-art implementation as well as research challenges. This paper aims to provide a better conscious of the design challenges of a client-server based system and identify essential research guidelines.
Conference Paper
Full-text available
In line with cloud computing emergence as the dominant enterprise computing paradigm, our conceptualization of the cloud computing reference architecture and service construction has also evolved. For example, to address the need for cost reduction and rapid provisioning, virtualization has moved beyond hardware to containers. More recently, serverless computing or Function-as-a-Service has been presented as a means to introduce further cost-efficiencies, reduce configuration and management overheads, and rapidly increase an application's ability to speed up, scale up and scale down in the cloud. The potential of this new computation model is reflected in the introduction of serverless computing platforms by the main hyperscale cloud service providers. This paper provides an overview and multi-level feature analysis of seven enterprise serverless computing platforms. It reviews extant research on these platforms and identifies the emergence of AWS Lambda as a de facto base platform for research on enterprise serverless cloud computing. The paper concludes with a summary of avenues for further research.
Article
The proliferation of Internet of Things and the success of rich cloud services have pushed the horizon of a new computing paradigm, Edge computing, which calls for processing the data at the edge of the network. Edge computing has the potential to address the concerns of response time requirement, battery life constraint, bandwidth cost saving, as well as data safety and privacy. In this paper, we introduce the definition of Edge computing, followed by several case studies, ranging from cloud offloading to smart home and city, as well as collaborative Edge to materialize the concept of Edge computing. Finally, we present several challenges and opportunities in the field of Edge computing, and hope this paper will gain attention from the community and inspire more research in this direction.
Conference Paper
Content delivery networks (CDNs) have become a crucial part of the modern Web infrastructure. This paper studies the performance of the leading content delivery provider - Akamai. It measures the performance of the current Akamai platform and considers a key architectural question faced by both CDN designers and their prospective customers: whether the co-location approach to CDN platforms adopted by Akamai, which tries to deploy servers in numerous Internet locations, brings inherent performance benefits over a more consolidated data center approach pursued by other influential CDNs such as Limelight. We believe the methodology we developed for this study will be useful for other researchers in the CDN arena.