ecoserve is an experiment meant to allow for a low-energy personal server. With the advent of broadband connections in most points around the world, it is possible for many people to host their own services on even dynamic IP connections with reasonable latency, and likely do it off-grid.
This project has been inspired in part by Low-Tech Magazine's solarserver. They made a number of good decisions and optimizations described here, but some of the design decisions can be further optimized and worked on in a community format.
The end idea is to have this project support multiple SBCs with different configurations, and have a series of scripts specifically optimized for the low power use case. In this way it should be possible to develop a series of optimized, cloud-like services and run them for most users.
- Raspberry Pi 3 - see
raspi/armv7
for 32-bit (should work as a baseline for Raspberry Pi 2), orraspi/armv8
for 64-bit. - ODROID-C2 - see
odroid-c2
. I personally use this platform.
A lot of enthusiasts run home servers based upon second-hand enterprise-grade hardware. Often times our on-premises servers aren't as efficient as they could be, and we don't write the most optimized code for these solutions, either. Reducing power consumption for these systems to the lowest extent possible allows for individuals to run off-grid home servers with battery backup systems in the majority of locations.
Our individual electricity grids are also often significantly dirtier than the power systems on major cloud platforms. In the Bay Area where many technologists live, only 33% of PG&E electricity comes from renewable sources. Seattle does better, at 90% from hydropower. However, both of these are bad compared to Google Cloud Platform, which is powered with 100% renewable energy.
Thus, in order to reduce as much of our personal footprint as possible, it is prudent to:
-
Use a renewable energy program. In the Bay Area, PG&E Solar Choice is a voluntary way to pay a little more to source renewable-only power. Such programs are less expensive in the PNW, such as Portland General Electric's Green future program or Puget Sound Energy's Green Power program.
-
Reduce electronic power consumption as much as possible. Ultra-low-voltage chips reign supreme. When plotting hardware upgrades, look for performance-per-watt characteristics and try to buy as low of TDP solutions as possible. Instead of running a massive server rig at home that you use 1% of the time, build a low-TDP system that sees balanced utilization for most projects, and leverage cloud resources for spot performance where high-TDP systems are required.
-
Avoid second-hand "enterprise-grade" hardware in most cases. This is especially important for homelab switches and servers, which have redundant PSUs and power-hungry internal systems. For desktops, a Vice author recently hit Hacker News advising the purchase of used Xeon workstations instead of new hardware for use as recycled gaming PCs. Some can make a case for this if you have a clean energy grid and really need the horsepower, as electronics manufacturing and recycling has a lot of negative environmental impact. However, for almost all users one is better served with laptops and 35W -QM-class processors, or low-TDP T-class processors in desktops.
The reduction angle is the primary angle behind the ecoserve project - it is not meant to replace cloud services for truly high scale applications, but lower the barrier to entry and energy consumption of technologists worldwide.
Cloud platforms benefit from scale, but who your platform is seems to matter a lot for overall sustainability and carbon emissions practices. As of the time of this writing 5 June 2019:
- Google Cloud Platform is 100% renewable energy backed, using solar and RECs.
- Amazon Web Services is 50% renewable, not much better than PG&E. uses renewable energy in the NoVA
us-east
region.us-west
is offset. - Microsoft Azure targeted 50% renewable in 2018 and 60% by 2020, leaving it mostly on par with AWS.
- Cloudflare purchases RECs (renewable energy credits), similar to those offered to customers of specific utilities.
- Cheap hacker favorite cloud provider Hetzner uses hydropower and wind power at their German and Finnish data centers, respectively. Using the Server Auction you can get some good deals on older hardware. Intel Haswell and above allows undervolting, so you can eke out more performance-per-watt with these dedicated boxes and keep them from getting recycled.
Before this research, I used Digital Ocean. Some other DO users have chimed in on the DigitalOcean idea that exists regarding this, but CEO Moisey Uretsky seems to have posted at some point and there's not much DO can do since they don't own their data centers. It's best to avoid DO.
Linode should also be avoided, as they suffer the same issues. They are silent on renewable power, too.
If you have more information, please issue a pull request to this document.
Local proximity means a lot to a LAN and matters in overall energy consumption. Cloud energy costs for cloud providers themselves are good, but telecommunications infrastructure is not nearly as interested in environmental sustainability. Note how little data Comcast adds to this environmental fluff piece. Their environmental sustainability report simply states they're "working toward" sustainable practices. Monopolies don't need to care as much about such things, and corporate values aren't necessarily aligned in this direction.
Even though I call out Comcast, ISPs anywhere are often just victim to the grid in their area. At that case, the average US renewable energy amount is 12.2%.
Therefore, overall bandwidth production should also be reduced as much as possible. It seems that heavy compression/decompression from points with renewable energy sources is also likely better than energy usage in transit, as the telecom grid can be treated as relatively dirty.
There are also legal and privacy concerns raised regarding cloud services. Cloud services are often subject to government data requests and should be considered zero-knowledge parties whenever possible (i.e., when backing up to the cloud, encrypt it all on machines you control first.)
From an ecosystem angle, diversity is good. Cloud platforms are private companies and have the ability to restrict free speech and information via their own Terms of Use. Some far-right and alt-right parties have found notable problems in this regard over the period of 2016 to present, and even if their messages are disagreeable to those of us more left-leaning, Martin Niemöller would like a word with you. Having home servers and services also work great for developer education.
Contributions and further optimizations to this work are greatly appreciated and will be accepted after confirmed testing.
GPL 3.0.