February 8, 2020

Personal computing with a serverless and multi-cloud infrastructure

Back in 2015, I wrote a short note about my new technology setup [hello-world]. Here is a summary of the changes since then.

Illustration of architecture

Infrastructure and hosting:

  • Cloudflare as primary proxy/protection/cache, I previously used Nginx on my server as a proxy.
  • Cloudflare workers for static sites. Cloudflare’s low-latency workers (cold start 5 ms) using javascript/wasm distributed via CDN. Key-Value storage for static assets.
  • Google Cloud Functions for minor functionality. The latency of cloud functions can be high with high cold starts (Often 1 second or more), and their model for scalability allows for less in-memory optimization. They are great for some services and scheduled pub/sub-tasks.
  • Google Firebase
  • Dedicated virtual server: I still have a dedicated server because stuff is running on it.
    • DigitalOcean droplet.
    • SSLMate for the certificate.
  • Other temporary servers on Amazon EC2

Cloudflare is key in all of this, to bind it all together. Monthly cost breakdown:

  • Cloudflare: $5 (Workers w/storage)
  • DigitalOcean: $30
  • GitHub Pro: $7
  • Google Cloud: $0.28
  • Amazon Web Services: $2.98

The free tiers on most of these services are fantastic, and services that only consume resources when they in use have a massive impact on the total cost. On the Amazon Cloud9 service, you can also have micro-instances for free. The Go language has a relatively small memory footprint partially due to its native UTF-8 support and fast startup-times, so you get a lot done using the lowest Cloud Functions-tier available. Github recently improved its free offering, so the Pro-level might be overkill. I got it mostly due to a massive amount of private repositories. My old server sticks out a bit as very expensive; it is fast and capable, and you can´t beat a live server for low latency, perhaps except for distributing code globally in a CDN, as is the case with Cloudflare workers.

Technology:

  • Hugo with markdown or static HTML for content.
  • Javascript for cloud workers and web components.
  • Go for API-endpoints and processing.
  • R for statistics, but I have stopped using RMarkdown for content management and don´t run the server anymore.
  • Python for machine learning scripts
  • WebComponents with the Hybrids library.

Tools

  • Still using Cloud 9, but it´s now part of Amazon.
  • Favorite local IDE is Microsoft Visual Studio Code, used for Go and Python.
  • Rstudio for R, it is just so simple to do some stuff in it.
  • Github Pro for version control.
  • Evernote for capture.
  • Paper and pen.
  • More mechanical pencils than five years ago. My favorites are:
    • Pentel GraphGear 1000 for its awesome clip and precision.
    • Kuro Toga Advance for notes.
  • Notebooks: Moleskine, Leuchtturm1917, or Rhodia, but I have changed from hardcover to softcover.
  • Clip Studio Paint for graphics and a Cintiq 16

This is an image

© Tov Are Jacobsen 1997-2021 Privacy and cookies