Preliminary Research for Homelab2 #27

Closed
opened 2022-05-11 21:37:30 -07:00 by Jafner · 9 comments
Jafner commented 2022-05-11 21:37:30 -07:00 (Migrated from gitlab.jafner.net)

What is Homelab2?

The Homelab2 project's purpose is to transition from a compute resource model built around individual "snowflake" servers to a model built around commodified compute resources. Homelab2 will involve a complete rebuild of the underlying infrastructure, down to bare metal.

Why?

This project is motivated on one hand by the practical improvements to availability, portability, and efficiency, and on the other hand by the educational value of learning these enterprise technologies by working with them.

The practical benefits of making the pet-to-cattle paradigm shift are myriad but nuanced. Here they are summarized:

  • Availability. By abstracting workloads from the hardware they run on, high-availability (HA) can be achieved for stateless applications, and downtime can be reduced for stateful applications.
  • Portability. By treating nodes as simple piles of resources, a configuration can be picked up and plopped onto another pile of resources and run. This allows for easier integration with public cloud and multi-cloud resources.
  • Efficiency. By implementing the same technologies used by hyper-scale cloud providers, the system can scale dynamically with load for many applications.

Next Steps

  • Document infrastructure roles: purpose and requirements. Networking, Compute, Storage.
  • Graph infrastructure layout: bare metal, operating system, applications, and workloads.
  • When does it make sense to exclude a system from the cluster?
  • How will configuration be managed in the new paradigm?
  • Research and document operating system selection for infrastructure roles. Can everything be based on Debian? (TrueNAS Scale, VyOS, Debian)
  • How can persistent storage be best handled in this new paradigm? NFS? S3/Minio?
  • Research which roles can be made Highly-Available.
  • When would it make sense to use public cloud resources?
# What is Homelab2? The Homelab2 project's purpose is to transition from a compute resource model built around individual "snowflake" servers to a model built around commodified compute resources. Homelab2 will involve a complete rebuild of the underlying infrastructure, down to bare metal. ## Why? This project is motivated on one hand by the practical improvements to availability, portability, and efficiency, and on the other hand by the educational value of learning these enterprise technologies by working with them. The practical benefits of making the [pet-to-cattle paradigm shift](http://cloudscaling.com/blog/cloud-computing/the-history-of-pets-vs-cattle/) are myriad but nuanced. Here they are summarized: - Availability. By abstracting workloads from the hardware they run on, high-availability ([HA](https://en.wikipedia.org/wiki/High_availability)) can be achieved for stateless applications, and downtime can be reduced for stateful applications. - Portability. By treating nodes as simple piles of resources, a configuration can be picked up and plopped onto another pile of resources and run. This allows for easier integration with [public cloud](https://en.wikipedia.org/wiki/Cloud_computing) and multi-cloud resources. - Efficiency. By implementing the same technologies used by [hyper-scale](https://en.wikipedia.org/wiki/Hyperscale_computing) cloud providers, the system can scale dynamically with load for many applications. ## Next Steps - [x] Document infrastructure roles: purpose and requirements. Networking, Compute, Storage. - [ ] Graph infrastructure layout: bare metal, operating system, applications, and workloads. - [ ] When does it make sense to exclude a system from the cluster? - [ ] How will configuration be managed in the new paradigm? - [ ] Research and document operating system selection for infrastructure roles. Can everything be based on Debian? (TrueNAS Scale, VyOS, Debian) - [ ] How can persistent storage be best handled in this new paradigm? NFS? S3/Minio? - [x] Research which roles can be made Highly-Available. - [ ] When would it make sense to use public cloud resources?
Jafner commented 2022-05-11 21:40:04 -07:00 (Migrated from gitlab.jafner.net)

changed the description

changed the description
Jafner commented 2022-05-11 21:42:53 -07:00 (Migrated from gitlab.jafner.net)

mentioned in commit a5fe6f5f16

mentioned in commit a5fe6f5f165d10beeb345ac1067a7706c7b22e97
Jafner commented 2022-05-11 23:04:43 -07:00 (Migrated from gitlab.jafner.net)
Re: "Research which roles can be made Highly-Available" ## Networking - [Reddit/homelab - Highly-available Homelab Setup](https://www.reddit.com/r/homelab/comments/8vwnz4/highlyavailable_ha_homelab_setup/) - [HackerNews - My home lab setup for highly-available internet](https://news.ycombinator.com/item?id=17444230) - [Github bradfitz/homelab](https://github.com/bradfitz/homelab) - [VyOS - High Availability](https://docs.vyos.io/en/equuleus/configexamples/ha.html) ## Compute - [Kubernetes - High Availability](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/) - [Rancher - High Availability with Embedded DB](https://rancher.com/docs/k3s/latest/en/installation/ha-embedded/) ## Storage - [Ceph.io](https://www.ceph.com/en/) - [TrueNAS - Ubiquitously Available Storage](https://www.truenas.com/community/threads/ubiquitously-available-storage-jbod-multinode-multipath.95969/) - [TrueNAS - How to Set up a Multi-Node System?](https://www.truenas.com/community/threads/is-there-any-guides-or-info-on-how-to-set-up-a-multi-node-system.92338/)
Jafner commented 2022-05-12 08:57:47 -07:00 (Migrated from gitlab.jafner.net)

Re: "Document infrastructure roles: purpose and requirements. Networking, Compute, Storage."

Fundamentally, there are workloads and resources. Roles are specific sets of infrastructure workloads which require certain resources to perform appropriately.

Re: "Document infrastructure roles: purpose and requirements. Networking, Compute, Storage." Fundamentally, there are workloads and resources. Roles are specific sets of infrastructure workloads which require certain resources to perform appropriately. * Networking workloads include [DNS](https://en.wikipedia.org/wiki/Domain_Name_System), [DHCP](https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol), [Firewall](https://en.wikipedia.org/wiki/Firewall_(computing)), [NAT](https://en.wikipedia.org/wiki/Network_address_translation), [PPPoE (client)](https://en.wikipedia.org/wiki/Point-to-Point_Protocol_over_Ethernet), [VPN](https://en.wikipedia.org/wiki/WireGuard), [QoS](https://en.wikipedia.org/wiki/Quality_of_service), [traffic analysis](https://en.wikipedia.org/wiki/Traffic_analysis), [load balancing](https://en.wikipedia.org/wiki/Load_balancing_(computing)), [reverse proxy](https://en.wikipedia.org/wiki/Reverse_proxy). A networking node requires an upstream network interface capable of saturating the internet uplink, a cross link to any other networking node(s), and a downlink to a high-speed switch. Requires trivial storage, and sufficient compute and memory to handle routing all network traffic. * Compute workloads include monitoring & alerting, [Active Directory](https://en.wikipedia.org/wiki/Active_Directory), authentication and [identity provision](https://en.wikipedia.org/wiki/Identity_provider) ([SSO](https://en.wikipedia.org/wiki/Single_sign-on)), master nodes, and application workloads. * Storage workloads include [SMB](https://en.wikipedia.org/wiki/Server_Message_Block), [NFS](https://en.wikipedia.org/wiki/Network_File_System), [S3](https://en.wikipedia.org/wiki/Amazon_S3), [ZFS](https://en.wikipedia.org/wiki/ZFS), [S.M.A.R.T.](https://en.wikipedia.org/wiki/S.M.A.R.T.).
Jafner commented 2022-05-18 22:08:05 -07:00 (Migrated from gitlab.jafner.net)

marked the checklist item Research which roles can be made Highly-Available. as completed

marked the checklist item **Research which roles can be made Highly-Available.** as completed
Jafner commented 2022-05-18 22:13:19 -07:00 (Migrated from gitlab.jafner.net)
Look into [Netmaker](https://www.netmaker.org/), which may be useful in creating a distributed (multicloud) network via Wireguard. [Netmaker - How to Use Netmaker v0.10](https://www.netmaker.org/blog/how-to-use-netmaker-v0-10) [Netmaker - How to Implement Access Controls in Netmaker](https://www.netmaker.org/blog/how-to-implement-access-controls-in-wireguard-r-virtual-networks-with-netmaker) [Netmaker - Deploy Distributed Kubernetes Clusters](https://www.netmaker.org/blog/deploy-distributed-kubernetes-clusters-with-wireguard-and-netmaker) [Netmaker - Installation](https://docs.netmaker.org/install.html)
Jafner commented 2022-07-14 23:22:41 -07:00 (Migrated from gitlab.jafner.net)

assigned to @Jafner

assigned to @Jafner
Jafner commented 2022-10-24 08:32:15 -07:00 (Migrated from gitlab.jafner.net)

marked the checklist item Document infrastructure roles: purpose and requirements. Networking, Compute, Storage. as completed

marked the checklist item **Document infrastructure roles: purpose and requirements. Networking, Compute, Storage.** as completed
Jafner commented 2023-11-22 16:58:27 -08:00 (Migrated from gitlab.jafner.net)

:nerd:

:nerd:
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Jafner/homelab#27
No description provided.