Un serveur web domestique alimenté par l'énergie solaire a fonctionné pendant 15 mois : temps de disponibilité 95,26 %

Un serveur web domestique alimenté par l'énergie solaire a fonctionné pendant 15 mois : temps de disponibilité 95,26 %
Le premier prototype de serveur solaire avec un contrôleur de charge. Photo : solar.lowtechmagazine.com

En septembre 2018, un passionné de Low-tech Magazine a lancé le projet de serveur web « low-tech ».L'objectif était de réduire la consommation d'énergie suffisamment pour qu'un serveur auto-hébergé puisse fonctionner avec un seul panneau solaire. Ce n'est pas facile, car le site doit être opérationnel 24 heures sur 24. Voyons donc le résultat final.

Vous pouvez accéder au serveur solar.lowtechmagazine.com, vérifier la consommation d'énergie actuelle et le niveau de charge de la batterie. Le site est optimisé pour un minimum de requêtes par page et un trafic minimal, donc il devrait supporter une augmentation de la fréquentation en provenance de Habr. Selon les calculs du développeur, la consommation d'énergie par visiteur unique est de 0,021 Wh.

Peu avant l'aube du 31 janvier 2020, il restait 42 % de charge de la batterie. L'aube à Barcelone est à 8h04 heure locale, après cela, le courant doit provenir du panneau solaire.

Un serveur web domestique alimenté par l'énergie solaire a fonctionné pendant 15 mois : temps de disponibilité 95,26 %

Pourquoi ?

Il y a dix ans, des experts prévoyaientque le développement d'Internet contribuerait à la « dématiérialisation » de la société, à la numérisation généralisée — et, par conséquent, à une diminution de la consommation d'énergie globale. Ils avaient tort. En réalité, Internet exigeait des volumes énormes d'énergie, et ces volumes continuent de croître.

Les entreprises informatiques ont lancé des initiatives pour passer à des sources d'énergie alternatives, mais cela est actuellement impossible. Tous les centres de données consomment trois fois plus d'énergie que ce que génèrent toutes les installations solaires et éoliennes dans le monde. Pire encore, la production et le remplacement réguliers des panneaux solaires et des éoliennes nécessitent également de l'énergie, donc renoncer aux combustibles fossiles (pétrole, gaz, uranium) est aujourd'hui simplement impossible. Mais ces réserves ne dureront pas éternellement, donc nous devrons inévitablement réfléchir à comment vivre avec des sources renouvelables. Y compris le fonctionnement de l'infrastructure informatique, y compris des serveurs web.

Low-tech Magazine considère le problème de l'expansion trop rapide des pages web. De 2010 à 2018, la taille moyenne des pages a augmenté de 0,45 Mo à 1,7 Mo, et pour les sites mobiles — de 0,15 Mo à 1,6 Mo, selon des estimations prudentes.

L'augmentation des volumes de trafic dépassent les progrès en efficacité énergétique. (énergie requise pour transmettre 1 mégaoctet d'information), ce qui entraîne une augmentation constante de la consommation d'énergie d'Internet. Les sites plus lourds et chargés augmentent non seulement la charge sur l'infrastructure réseau, mais réduisent également le «cycle de vie» des ordinateurs et des smartphones, qui doivent être remplacés plus fréquemment, ce qui est un processus très énergivore.

Et bien sûr, l'augmentation de la charge est due au mode de vie lui-même : les gens passent presque tout leur temps sur Internet et dépendent en grande partie de divers services en ligne. Il est désormais difficile d'imaginer la société moderne sans une infrastructure IT cloud (réseaux sociaux, messageries, e-mail, etc.)

Configuration du serveur et du site web

Dans cet article décrit en détail la configuration matérielle et la pile logicielle du serveur web.

Ordinateur à carte unique Olimex Olinuxino A20 Lime 2 choisi pour sa faible consommation d'énergie et ses fonctionnalités supplémentaires utiles, telles que la présence d'une puce de gestion de l'alimentation AXP209. Elle permet de demander des statistiques sur la tension et le courant en cours depuis la carte et depuis la batterie. La puce alterné automatiquement l'alimentation entre la batterie et le port DC, où le courant provient du panneau solaire. Ainsi, une alimentation continue du serveur avec une batterie de secours est possible.

Un serveur web domestique alimenté par l'énergie solaire a fonctionné pendant 15 mois : temps de disponibilité 95,26 %
Olimex Olinuxino A20 Lime 2

Initialement, une batterie lithium-polymère de 6600 mAh (environ 24 Wh) a été choisie, puis une batterie au plomb-acide de 84,4 Wh a été installée.

Le système d'exploitation est chargé depuis une carte SD. Bien que le système d'exploitation ne prenne pas plus de 1 Go et qu'un site web statique prenne environ 30 Mo, il n'était pas économiquement viable d'acheter une carte de moins de 16 Go Class 10.

Le serveur est connecté à Internet via une connexion domestique de 100 mégabits à Barcelone et un routeur standard destiné aux consommateurs. Une adresse IP statique lui est réservée. Pratiquement n'importe qui peut héberger un tel site chez lui ; il faut simplement modifier légèrement la configuration du pare-feu pour le transfert de ports vers l'IP locale :

Port 80 vers 80 pour HTTP
Port 443 vers 443 pour HTTPS
Port 22 vers 22 pour SSH

Système d'exploitation Armbian Stretch basé sur la distribution Debian et le noyau SUNXI, développé pour les cartes uniques équipées de puces AllWinner.

Un serveur web domestique alimenté par l'énergie solaire a fonctionné pendant 15 mois : temps de disponibilité 95,26 %
Un panneau solaire de 50 watts pour le serveur web et un panneau de 10 watts pour l'éclairage du salon de l'auteur

Le site statique a été généré par le système Pelican (générateur de sites sur Python). Les sites statiques se chargent plus rapidement et ne créent pas de charge sur le CPU, donc ils sont beaucoup plus efficaces que les pages générées dynamiquement, en termes de consommation d'énergie. Le code source du thème est. ici.

Un point très important est la compression des images, car sans cette optimisation, il est pratiquement impossible de rendre les pages web de moins de 1 mégaoctet. Pour cette optimisation, nous avons décidé de convertir les photos en images en demi-teintes. Par exemple, voici une photo de femmes opératrices de commutation du siècle dernier, 253 Ko.

Un serveur web domestique alimenté par l'énergie solaire a fonctionné pendant 15 mois : temps de disponibilité 95,26 %

Voici une image en demi-teintes optimisée de taille 36,5 Ko avec trois couleurs (noir, blanc, gris). En raison de l'illusion optique, il semble au spectateur que le nombre de couleurs est supérieur à trois.

Un serveur web domestique alimenté par l'énergie solaire a fonctionné pendant 15 mois : temps de disponibilité 95,26 %

Les photos en demi-teintes ont été choisies non seulement pour optimiser la taille (une décision plutôt discutable), mais aussi pour des raisons esthétiques. Cette ancienne technique de traitement d'image possède certaines caractéristiques stylistiques, ce qui a donné au site un design unique en quelque sorte.

623 illustrations sur le site du magazine Low-tech Magazine ont vu leur taille réduite de 194,2 Mo à 21,3 Mo, soit une réduction de 89%.

Tous les anciens articles ont été convertis en Markdown pour simplifier la rédaction de nouveaux articles, ainsi que pour faciliter la sauvegarde via git. Tous les scripts et trackers ont été supprimés du site, ainsi que les logos. La police par défaut du navigateur du client est utilisée. Comme « logo » — le nom du magazine en lettres majuscules avec une flèche à gauche : LOW←TECH MAGAZINE. Au total, 16 octets au lieu d'une image.

En cas de temps d'arrêt, il a été organisé la possibilité de « lecture hors ligne » : les textes et images sont exportés vers un flux RSS. La mise en cache de 100 % du contenu est activée, y compris le HTML.

Une autre optimisation est l'activation de la configuration HTTP2 dans nginx, ce qui réduit légèrement le trafic et diminue le temps de chargement des pages par rapport à HTTP/1.1. Le tableau compare les résultats pour cinq pages différentes.

| | FP | WE | HS | FW | CW |
|----------|-------|-------|-------|-------|-------|
| HTTP/1.1 | 1.46s | 1.87s | 1.54s | 1.86s | 1.89s |
| HTTP2 | 1.30s | 1.49s | 1.54s | 1.79s | 1.55s |
| Images | 9 | 21 | 11 | 19 | 23 |
| économies | 11% | 21% | 0% | 4% | 18% |

Configuration complète de nginx :

root@solarserver: /var/log/nginx# cat /etc/nginx/sites-enabled/solar.lowtechmagazine.com

# Expires map
map $sent_http_content_type $expires {
default off;
text/html 7d;
text/css max;
application/javascript max;
~image/ max;
}

server {
listen 80;
server_name solar.lowtechmagazine.com;

location / {
return 301 https://$server_name$request_uri;
}
}

server{
listen 443 ssl http2;
server_name solar.lowtechmagazine.com;

charset UTF-8; #améliorer la vitesse de la page en envoyant le charset avec la première réponse.

location / {
root /var/www/html/;
index index.html;
autoindex off;
}


#Caching (enregistrer les pages html pendant 7 jours, le reste aussi longtemps que possible, pas de cache sur la page d'accueil)
expires $expires;

location @index {
add_header Last-Modified $date_gmt;
add_header Cache-Control 'no-cache, no-store';
etag off;
expires off;
}

#error_page 404 /404.html;

# rediriger les pages d'erreur du serveur vers la page statique /50x.html
#error_page 500 502 503 504 /50x.html;
#location = /50x.html {
# root /var/www/;
#}

#Compression

gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;


#Caching (enregistrer la page html pendant 7 jours, le reste aussi longtemps que possible)
expires $expires;

# Logs
access_log /var/log/nginx/solar.lowtechmagazine.com_ssl.access.log;
error_log /var/log/nginx/solar.lowtechmagazine.com_ssl.error.log;

# Paramètres SSL :
ssl_certificate /etc/letsencrypt/live/solar.lowtechmagazine.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/solar.lowtechmagazine.com/privkey.pem;

# Améliorer les performances HTTPS avec la reprise de session
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;

# Activer la protection côté serveur contre les attaques BEAST
ssl_prefer_server_ciphers on;
ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;

# Désactiver SSLv3
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

# Diminuer la taille du tampon pour augmenter le TTFB
ssl_buffer_size 4k;

# Paramètre Diffie-Hellman pour les suites de chiffrement DHE
# $ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
ssl_dhparam /etc/ssl/certs/dhparam.pem;

# Activer HSTS (https://developer.mozilla.org/en-US/docs/Security/HTTP_Strict_Transport_Security)
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";

# Activer le stapling OCSP (http://blog.mozilla.org/security/2013/07/29/ocsp-stapling-in-firefox)
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/solar.lowtechmagazine.com/fullchain.pem;
resolver 87.98.175.85 193.183.98.66 valid=300s;
resolver_timeout 5s;
}

Bilan de 15 mois d'activité

De la période du 12 décembre 2018 au 28 novembre 2019, le serveur a affiché un uptime de 95,26%. Cela signifie qu'en raison de conditions météorologiques défavorables, le temps d'arrêt sur l'année a été de 399 heures.

Cependant, si l'on ne tient pas compte des deux derniers mois, le temps de fonctionnement ininterrompu s'élevait à 98,2 %, et le temps d'arrêt n'était que de 152 heures, indiquent les développeurs. Le temps de fonctionnement ininterrompu a chuté à 80 % au cours des deux derniers mois, lorsque la consommation d'énergie a augmenté en raison d'une mise à jour du logiciel. Chaque nuit, le site était hors ligne pendant plusieurs heures.

Selon les statistiques, sur une période d'un an (du 3 décembre 2018 au 24 novembre 2019), la consommation d'énergie du serveur s'est élevée à 9,53 kWh. Des pertes significatives ont été observées dans le système photovoltaïque en raison de la conversion de tension et de la décharge de la batterie. Le contrôleur solaire a enregistré une consommation annuelle de 18,10 kWh, ce qui indique une efficacité du système d'environ 50 %.

Un serveur web domestique alimenté par l'énergie solaire a fonctionné pendant 15 mois : temps de disponibilité 95,26 %
Schéma simplifié. Il ne montre pas le convertisseur de tension de 12 à 5 volts ni le compteur d'ampères-heures de la batterie.

Au cours de la période étudiée, le site a été visité par 865 000 utilisateurs uniques. En tenant compte des pertes d'énergie dans l'installation solaire, la consommation d'énergie par utilisateur unique était de 0,021 Wh. Ainsi, un kilowatt-heure d'énergie solaire produite suffit à servir près de 50 000 utilisateurs uniques.

Au cours de l'expérience, des panneaux solaires de différentes tailles ont été testés. Le tableau présente les calculs du temps nécessaire pour charger des batteries de différentes capacités en utilisant des panneaux solaires de tailles variées.

Un serveur web domestique alimenté par l'énergie solaire a fonctionné pendant 15 mois : temps de disponibilité 95,26 %

La puissance moyenne consommée par le serveur web pendant la première année, y compris toutes les pertes d'énergie, était de 1,97 W. Les calculs montrent que pour alimenter le site web pendant la nuit la plus courte de l'année (8 heures 50 minutes, le 21 juin), 17,40 watt-heures de stockage sont nécessaires, alors que pour la nuit la plus longue (14 heures 49 minutes, le 21 décembre), il faut 29,19 Wh.

Un serveur web domestique alimenté par l'énergie solaire a fonctionné pendant 15 mois : temps de disponibilité 95,26 %

Étant donné que les batteries au plomb-acide ne doivent pas être déchargées en dessous de la moitié de leur capacité, le serveur nécessite une batterie de 60 Wh pour survivre à la nuit la plus longue dans des conditions d'ensoleillement optimales (2×29,19 Wh). Pendant la majeure partie de l'année, le système a fonctionné avec une batterie de 86,4 Wh et un panneau solaire de 50 watts, atteignant ainsi le taux de disponibilité mentionné de 95-98%.

Disponibilité de 100%

Pour atteindre une disponibilité de 100 %, il est nécessaire d'augmenter la capacité des batteries. Pour compenser un jour de très mauvais temps (sans génération significative d'électricité), il faut 47,28 watt-heures (24 heures × 1,97 watts) de stockage.

Du 1er décembre 2019 au 12 janvier 2020, un accumulateur de 168 watts a été installé dans le système, avec une capacité de stockage pratique de 84 watt-heures. Cet espace de stockage est suffisant pour maintenir le fonctionnement du site pendant deux nuits et un jour. La configuration a été testée pendant la période la plus sombre de l'année, mais le temps était relativement bon — et durant cette période, le temps de fonctionnement sans faille a été de 100%.

Mais pour garantir un uptime de 100% pendant plusieurs années, il faudra prévoir le pire scénario, lorsque le temps mauvais persiste plusieurs jours. Le calcul montre que pour maintenir le site en ligne pendant quatre jours avec une faible ou nulle production d'énergie, un accumulateur au plomb de 440 watt-heures sera nécessaire, ce qui équivaut à la taille d'une batterie de voiture.

En pratique, par temps clair, une batterie au plomb de 48 W⋅h supportera le fonctionnement du serveur toute la nuit de mars à septembre. Une batterie de 24 W⋅h maintiendra le serveur en fonctionnement pendant un maximum de 6 heures, soit il s'éteindra chaque nuit, mais à des heures différentes selon le mois.

En réalité, certains sites n'ont pas besoin de fonctionner la nuit, lorsque le nombre de visiteurs est minimal, selon les gars de Low-tech Magazine. Par exemple, s'il s'agit d'une publication régionale de la ville, où les visiteurs ne viennent pas d'autres fuseaux horaires, mais seulement des habitants locaux.

Cela signifie que pour les sites ayant une fréquentation et un uptime variés, il faut des batteries de différentes capacités et des panneaux solaires de tailles différentes.

Un serveur web domestique alimenté par l'énergie solaire a fonctionné pendant 15 mois : temps de disponibilité 95,26 %

Un serveur web domestique alimenté par l'énergie solaire a fonctionné pendant 15 mois : temps de disponibilité 95,26 %

L'auteur fournit un calcul sur la quantité d'énergie nécessaire pour la production des panneaux solaires eux-mêmes (énergie incorporée) et combien on obtient en divisant cette quantité par la durée de vie prévue de 10 ans.

Un serveur web domestique alimenté par l'énergie solaire a fonctionné pendant 15 mois : temps de disponibilité 95,26 %

Ainsi, il est possible de calculer l'équivalent des combustibles fossiles qui ont été utilisés pour la production et l'exploitation des panneaux. Low-tech Magazine a trouvé qu'au cours de la première année de fonctionnement, leur système (panneau de 50 W, batterie de 86,4 W⋅h) a « généré » environ 9 kg d'émissions ou l'équivalent de la combustion de 3 litres d'essence : à peu près la même quantité que celle qu'une voiture particulière émettrait sur 50 km.

Un serveur web domestique alimenté par l'énergie solaire a fonctionné pendant 15 mois : temps de disponibilité 95,26 %

Si le serveur n'est pas alimenté par des panneaux solaires, mais par le réseau électrique général, l'équivalent des émissions semble être environ six fois plus bas : 1,54 kg (dans le secteur énergétique espagnol, la part des énergies alternatives et des centrales nucléaires est élevée). Cependant, ce n'est pas tout à fait une comparaison correcte, écrit l'auteur, car elle prend en compte l'énergie incorporée de l'infrastructure solaire, sans tenir compte de ce même indicateur pour le réseau électrique général, c'est-à-dire les coûts de sa construction et de son entretien.

Améliorations futures

Au cours du temps, plusieurs optimisations ont été réalisées, réduisant la consommation d'énergie du serveur. Par exemple, à un moment donné, le développeur a remarqué que 6,63 To des 11,15 To de trafic total provenait d'une mise en œuvre incorrecte d'un flux RSS, qui récupérait du contenu toutes les quelques minutes. Après avoir corrigé ce bogue, la consommation d'énergie du serveur (sans tenir compte des pertes d'énergie) est tombée de 1,14 W à environ 0,95 W. Le gain peut sembler minime, mais une différence de 0,19 W équivaut à 4,56 watt-heures par jour, soit plus de 2,5 heures d'autonomie pour le serveur.

Au cours de la première année, le rendement n'était que de 50 %. Des pertes ont été observées lors de la charge et de la décharge de la batterie (22 %), ainsi qu'à la conversion de la tension de 12 V (système photovoltaïque) à 5 V (USB), où les pertes peuvent atteindre jusqu'à 28 %. Le développeur reconnaît qu'il a un convertisseur de tension non optimal (contrôleur sans USB intégré), donc il est possible d'optimiser ce point ou de passer à une installation solaire 5V.

Pour améliorer l'efficacité de stockage de l'énergie, il serait possible de remplacer les batteries au plomb-acide par des batteries lithium-ion plus coûteuses, qui ont de moindres pertes de charge/décharge (<10 %). Actuellement, le concepteur envisage un système compact de stockage d'énergie sous forme d'air comprimé (CAES), qui a une durée de vie de plusieurs décennies, ce qui signifie une « empreinte carbone » plus faible pour sa production.

Un serveur web domestique alimenté par l'énergie solaire a fonctionné pendant 15 mois : temps de disponibilité 95,26 %
Batterie d'énergie compacte à air comprimé, source

L'installation d'une éolienne supplémentaire est envisagée (elle peut être fabriquée en bois) et l'installation d'un tracker solaire pour orienter les panneaux vers le soleil. Le tracker permet d'augmenter la production d'électricité de 30 %.

Un serveur web domestique alimenté par l'énergie solaire a fonctionné pendant 15 mois : temps de disponibilité 95,26 %

Une autre façon d'augmenter l'efficacité du système est son évolutivité. Héberger davantage de sites web sur le serveur et exécuter plus de serveurs. Cela réduira la consommation d'énergie par site.

Un serveur web domestique alimenté par l'énergie solaire a fonctionné pendant 15 mois : temps de disponibilité 95,26 %
Société d'hébergement solaire. Illustration : Diego Marmolejo

Si l'on couvre tout le balcon de l'appartement avec des panneaux solaires et qu'on ouvre une société d'hébergement web solaire, les coûts par client seront nettement inférieurs à ceux d'un seul site web : économies d'échelle.

Dans l'ensemble, cette expérience démontre que, sous certaines conditions, l'infrastructure informatique peut fonctionner entièrement sur des sources d'énergie renouvelables.

Théoriquement, un tel serveur pourrait même fonctionner sans batterie, s'il est réfléchi dans d'autres parties du monde. Par exemple, installer des miroirs en Nouvelle-Zélande et au Chili. Là-bas, les panneaux solaires fonctionneront lorsque c'est la nuit à Barcelone.

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster