Static is the New Dynamic
A movement that originated from concerns about how web applications are becoming increasingly difficult to
manage and deploy. The increasing complexity involves:
- Multiple layers of servers: database, nosql, webservers, load balancers etc
- Multiple backups of each
- Multiple deployment environments (dev/test/qa/prod) of each
- Several employees with specialized skills to manage each of these servers and processes
- Slow response time because of server and network path
The proposed solution involves:
- Generating Static-HTML pages for all possible requests a user might make
-
- Deploying the static pages on forward edge CDNs
- Eliminating most of the redundant environments
- Eliminating most of the redundant servers
- Eliminating the need for specialized people to deploy and manage these processes
The main idea is to NOT generate content at run-time, but generate it ahead of time, cache the content in
static HTML pages, and deploy those pages to the production environment, which would be the CDN. For the
website health.gov, this reduced the servers required from 21 different servers to 2 servers, one of which
was a backup. The webserver and database run from the same box, generate static HTML pages for every query
and those pages are pushed out to the CDN.
An organization without the need (or resources) to pay for a CDN, could easily use Cloudflare to do the same thing
for free.
The industry has produced a number of Static Site Generators designed to complete this process of generating static content,
such as Hugo, Jekyl, Gatsby. However, to a certain extent, these just create a need for developers/engineers with yet ANOTHER
special skill set that is difficult to recruit.