Introduction

I own and operate the collybird.com domain. All the services I use to host this domain, except for the registration of the domain itself, are free. This document will describe the services that I use and how they constitute the collybird.com cloud architecture.

The following is a current diagram of the collybird infrastructure. The code is developed and tested in docker containers running on the local machine. When customers access the services, they use a variety of services that I will cover in more detail.

Infrastructure Diagram

Note: this needs to be updated to include the CDN.

Infrastructure diagram (Cloudcraft)

Cloudcraft has a free plan that includes the following:

  • Single User (Unlimited private diagrams)
  • Design Advanced AWS & Azure Architectures (Includes all diagram components)
  • Export & Share (PNG / PDF / SVG, private shared links)
  • Cost Calculations (Simple drag and drop based AWS & Azure budgeting with Excel and CSV export)

I used their service to to create this document. I love the 3D view but the blocks are designed for either AWS or Azure components. I take the diagram I generate there and touch it up in a graphic editing program.

Core services

CI/CD (GitHub)

Github has a free plan that includes the following:

  • unlimited public/private repositories
  • 2,000 CI/CD minutes/month

This site allows you to collaborate with others and it also provides a way for you to streamline your deploument process. I use it to automatically deploy my app to Fly whenever changes are made to the master branch. You can read more about the process in the following resources

Content delivery network (Cloudflare)

Cloudflare has a free plan that includes the following:

  • Universal SSL Certificate
  • 3 Page Rules
  • 5 WAF Rules

The CDN has a large impact on the performance of the www pages. To configure the CDN, I changed the name servers from using Namecheap to using Cloudflare.

Email - Incoming (Zoho Mail)

Zoho Mail has a free plan that includes the following:

  • Up to five users
  • 5GB/User
  • 25MB attachment limit

I use this account to receive email with my domain name.

Email - Outgoing (Gmail)

Gmail has a free plan that includes the following:

  • 15GB of free storage

If you create an email account on Gmail, then you can use their smtp service to send outgoing mail programatically.

Monitoring (New Relic)

New Relic has a free plan that includes the following:

  • One Full Platform User
  • 100 GB Data Ingest
  • Unlimited Basic Users
  • Default Data Retention (8 days)
  • Unlimited Ping Monitors

New Relic allows you to to create monitors to notify you when your service is inaccessible. Since www is also a website, it can notify us when it finds broken links.

Registrar and name servers (Namecheap)

Unfortunately, Namecheap does not have a free plan. It costs me $14.76 to renew the domain

The collybird.com domain is registered at I’ve used GoDaddy to register domains in the past. At the time, they provided a service that allowed you to receive email. When I went to register collybird.com, I was lured in by NameCheap’s prices. If I were to register a domain today, I might be convinced to use GoDaddy because of the email service but NameCheap is good enough that it doesn’t warrant me switching registrars.

As part of their fees, NameCheap includes name servers but these are superceded by the CDN.

SEO (Google Analytics, Google Search Console, Semrush and Seobility.net)

Google Analytics has a free plan that includes the following:

  • Track Online Traffic
  • Understand User Behavior

Google Search Console has a free plan that includes the following:

  • monitor, maintain, and troubleshoot your site’s presence in Google Search results

Seobility.net has a free plan that includes the following:

  • 1 project
  • 10 keywords
  • maximum 10 requests per day

Seobility.net has a free plan that includes the following:

  • 1 website
  • 1,000 maximum analyzed web pages per crawl
  • three day wait for re-crawls
  • 10 keywords
  • 100 checked external links

These services allow you to design your websites so that they maximize the site’s visibility on the web.

Static files (Bitbucket)

Bitbucket allows you to host a static website free plan.

The site you’re currently reading is hosted on bitbucket. I built one for collybird and tried adding CNAME that pointed to the bitbucket site but since Bitbucket uses SSL, you get a warning when you try to use the collybird name.

Compute services

Overview

Heroku’s free plan ended on Nov 28, 2022. Here are some alternatives.

Service Proivider Instances vCPU RAM Storage
www Fly 2 1 256 3 GB
muds OCI 1
space GCP 1 0.25 1 GB

Compute (Fly)

Fly has an free plan that includes the following:

  • Up to 3 shared-cpu-1x 256mb VMs
  • 3GB persistent volume storage (total)
  • 160GB outbound data transfer

The www service is built using Laravel. Customers access the service through an aplication load balancer and two compute instances. These services are hosted on Fly.io.

One of their VMs is consumed by the Fly builder app leaving two instances for app deployment.

They recently changed between their V1 and V2 apps. After this change I noticed a considerable decrease in performance I repurposed one of the compute instances to be a second instance of the www service.

Fly also provides free SSL certificates. I registered one for collybird.com and one for www.collybird.com.

Fly also provides free SSL certificates. Originally this was a great boon because it allowed me to provide HTTPS to the site but with CloudFlare, it’s less of an issue

Our primary database was originally hosted as a MySQL instance on one of the 3 compute machines on Fly but after the performance issue in switching from Fly their V1 and V2 apps, I looked elsewhere (see below).

Compute (Vercel)

Vercel allows you to deploy containers, much like Fly. I am still evaluating this service.

Compute (PythonAnywhere)

PythonAnywhere allows you to deploy containers, much like Fly. I am still evaluating this service.

Compute (Oracle Cloud)

Oracle Cloud Infrastructure OCI allows you create virtual machines and databases. I am still evaluating this service.

Database

Overview

Service Proivider Instances vCPU RAM Storage
www Cockroach Labs 1 1 1 GB 10 GB
muds Aiven 1 1 1 GB 5 GB

Database (Cockroach Labs)

Cockroach is an excellent PostgreSQL database provider. One thing to watch out for is their implementation of unique_rowid which returns a non-sequential key. This caused my prd server to behave differently from my dev server.

Database (Aiven)

Aiven supports PostgreSQL, MySQL, Redis, Apache Kafka, OpenSearch, Apache Casandra, and others. I use this as my MySQL provider since I already have a PostgreSQL provider with Cockroach.