Overview
The network layer consists of the hardware and software components that enable communication between various systems that allow them to function in a coordinated fashion. In the datacenter this often requires running your own routers, firewalls, switches, and knowing how to configure them in order to provide network segmentation, route/secure north/south and east/west traffic flows, ensuring enough throughput (QoS) for performant workloads, and various other functions. As an independent operator we want to make our life as simple as possible without sacrificing flexibility and security.
The biggest challenge for operators is redundancy and load-balancing of WAN links. The ISP is the single point of failure for most individuals, myself included, as the majority are unable to obtain two 1GB+ links. No matter how robust your on-premises setup is, when you lose your internet the uptime of your nodes will suffer. Ultimately most of us are reliant on unreliable ISPs, which isn't ideal, but it's something that we can prepare for by engineering disaster recovery to the cloud. This project considers the cloud as an important piece that compliments the home operator in increasing uptime and instilling confidence in their infrastructure.
The operational burden of having to manage networking equipment is eliminated using abstractions alloted to us by the public cloud providers. There are costs associated with these conveniences; the obvious is the money you have to spend to run these services but we also have to consider that the cloud providers are companies that could simply choose to stop providing their services to anybody at anytime. This is why we need to have the flexibility of operating our networks on-premises and in the cloud. We'll be using Google Cloud Platform which uses the Virtual Private Cloud (VPC) to provide cloud networking functionality.